還記得 11 月 9 日 Google Research 推出第二代開源機器學習軟件庫 TensorFlow 吧!谷歌稱在建立和訓練神經網絡方面,TensorFlow 速度要比第一代系統快 5 倍,可支持CPU、GPU、桌面機、服務器和移動計算等平臺。TensorFlow 吸引了開發者廣泛的眼球。
就在同一天,微軟亞洲研究院也開源了分布式機器學習工具包 DMTK。開源版 DMTK 包含了目前世界上最大規模的主題模型和分布式詞向量模型,據稱比同類模型高了好幾個數量級。以至于有開發者驚呼,怎么微軟也能把這樣的核心技術給開源了?
那么,什么是 DMTK 分布式機器學習包?這還要從 DMTK 的開發歷史說起。DMTK 的主要研發負責人、微軟亞洲研究院人工智能研究組首席研究員、美國卡耐基·梅隆大學(CMU)博士生導師劉鐵巖告訴記者,近年來全球機器學習領域主要有三大趨勢:更大規模的機器學習、更深度的機器學習以及更強交互性的機器學習,這些都是基于大數據與云計算的興起。
微軟亞洲研究院從兩年前開始研發 DMTK 分布式機器學習系統。首先,DMTK 通過分布式計算部署的方式滿足了大規模機器學習的要求。由于云計算和高性能處理器的普及,讓機器學習從單機環境擴展到多機環境甚至是集群系統。分布式機器學習就是通過在更為廉價的集群系統上部署機器學習的算法,把原來單機的計算能力擴展到成千上萬臺服務器上。
DMTK 開源版提供了簡單高效的分布式機器學習框架,它由參數服務器和客戶端軟件開發包(SDK)兩部分構成。開發者只需要簡單幾行代碼,就可以非常容易地把自己開發的機器學習算法從單機環境擴展到多機或集群環境。這大幅降低了機器學習的門檻,無論是高校研究者或者是商用機器學習開發商,都能基于微軟 DMTK 開源版輕松擴展機器學習算法的計算環境和計算資源,從而實現基于大數據的大規模機器學習。
其次,DMTK 還提供了豐富的機器學習算法,以滿足更為深度、更為快速的機器學習。目前開源版的 DMTK 包含了其中兩款獨具特色的機器學習算法:LightLDA 主題模型和分布式詞向量模型。
什么是主題模型呢?互聯網和社交平臺等催生了龐大的文本內容,通過機器學習對這些內容進行數據挖掘,可以得出相關的主題(Topic),這是機器學習和文本理解的基礎。據劉鐵巖介紹,DMTK 提供的 LightLDA 算法是當前世界上唯一一款能訓練超過 100 萬個主題的機器學習算法,它僅用 20 臺服務器(300 余個 CPU 內核)就能訓練如此龐大的主題模型,這讓其它同類系統望塵莫及。
去年,曾經獲得國際數據挖掘大會(KDD)最佳論文獎的 AliasLDA 算法,要用多達 1 萬個 CPU 內核才能完成 2000 個主題的訓練。 LightLDA 算法之所以能夠用比 AliasLDA 少很多的計算資源訓練出高若干數量級的模型,是因為它具有一種獨創的、讓運算復雜度與主題數目無關的高效采樣方法。這樣一來,即使訓練再多的主題數,也無需更大規模的計算資源。據了解,LightLDA 已經幫助微軟的很多關鍵產品實現了性能的飛躍。
另一個更為神奇的分布式詞向量訓練模型算法,能夠更好地計算兩個詞之間的“距離”。簡單地說,過去通過搜索引擎搜索內容,主要依靠搜索關鍵詞的精確匹配。如果在被搜索的網頁上出現了與搜索關鍵詞相同的詞匯,被搜索網頁鏈接就會出現在搜索結果頁面。但在廣告展示、話題探索、垂直搜索等應用領域,更多需要的是語義級別匹配,也就是在語義方面的相關性匹配。詞向量模型通過挖掘文本數據,為每一個詞訓練出上千個相關指標(維度),而帶有上千個維度的一個詞即為一個向量,通過數學方式計算兩個詞向量之間的距離,即可以有效地表征兩個詞之間的語義相關度。
DMTK 中包含的分布式詞向量模型是目前市面上唯一的一款詞向量模型的多機版,它可以把單機計算資源擴展到多機或集群中,從而更快、更高效地學習詞向量。分布式詞向量模型把“搜索”推進到了“探索”階段,這有望給整個搜索和相關產業帶來顛覆性變化。
據了解,DMTK 已經被應用到了微軟的必應搜索引擎、廣告、小冰等多款在線產品當中,實現了更強交互性的機器學習。以微軟小冰為例,作為聊天機器人,人類用戶與小冰的平均每次對話輪數達到了 18 輪,而此前最領先同類機器人的平均輪數僅有 1.5 至 2 輪。這就說明微軟小冰在與人類對話中對相關詞匯的“命中率”遠高于同類技術,創造了更好的交互性機器學習體驗。
DMTK 開源版在 Github 開源社區發布一周以來始終保持在 Top 10 的位置,DMTK 官網目前的訪問量已經突破百萬,DMTK 可執行文件下載量達到十余萬次,而 GitHub 開發人員也是在一周之內就給 DMTK 上千顆星,這是很多同類開源項目幾年都無法達到的熱度。
同一天開源的 TensorFlow 和 DMTK 之間到底有什么區別呢?記者了解到,谷歌目前開源出來的 TensorFlow,作為單機深度學習工具并不支持分布式計算,而微軟 DMTK 開源版則支持分布式、異構、異步計算集群環境部署。另外,谷歌的 TensorFlow 主要是系統實現,并不包含算法方面的創新;而 DMTK 則兩者兼顧,因此可以用更少的資源,訓練出大N個數量級的模型。
那么,為何科技巨頭們紛紛將機器學習技術開源?這一方面是為了推進整個機器學習應用的普及,通過開源高端算法和軟件,為人工智能和機器人產業打開新的機遇之門。另一方面則是在更深層次拉動各自的軟件與算法生態,從戰略技術制高點布局下一代產業格局。