當下,機器學習的技術成果已經深入到了我們生活中的各個方面。從網頁檢索系統,到電影書籍推薦系統、廣告展示系統……這些看似隱形卻又存在感十足的技術無一不得到了機器學習的支撐。可以這麼說:沒有計算機技術的發展,就不會有這些智能服務的高效便捷。
在人們計算體驗改善的過程中,算法的進步自然功不可沒。例如,話題模型(topic-modeling)、點擊率預測(click-through prediction)等一系列算法的出現與不斷優化,使得例如推薦系統等信息服務的質量逐步提高。但是,在海量的數據規模上,要應用這些算法以解決問題,僅有理論是遠遠不夠的。我們顯然不能指望單臺計算機運行串行程序來維持當今網際網路級別的計算和服務。而隨著數據內容的增長和用戶量的劇增,更多的信息也使得我們面臨的挑戰愈加嚴峻。因此為了不斷應對新時期信息處理規模的需要,從科學研究到工程實踐,分布式計算的相關理論都得到了長足的發展,多個分布式系統先後湧現。它們將規模龐大的計算機聯合起來,從而有效地解決大規模的計算問題。其中,圖計算系統就是其中一隻重要的分支,從Pregel到GraphLab再到PowerGraph,她們解決的問題範圍逐步增大,性能也不斷提升。
而介紹圖計算系統,首先我們會問:什麼是圖呢?圖(Graph),將信息中的實體,以及實體之間的關係,分別抽象表達成為頂點以及頂點間的邊這樣的結構數據。圖計算系統就是主要針對圖結構數據處理的系統,並在這樣的數據上進行針對性優化的高效計算。
我們處理機器學習的問題時,為什麼會考慮到用圖計算系統呢?
首先,從其本質上來講,我們機器學習中需要處理的很多信息是由實體和關係構成的。例如:用戶和電影就是實體,他們之間的喜好構成了實體間的關係;搜索查詢和商品也是實體,他們之間的點擊率構成了實體間的關係……
下圖表示了如何將邏輯回歸(LR: Logistic Regression)計算抽象成圖計算。其中的綠色和黃色頂點分別表示樣本(sample)和特徵(feature),而聯結它們的藍色邊則是 「樣本具有特徵」 關係。樣本點上具有標籤y,特徵上具有權重w,而LR的目的就是希望通過回歸計算不斷更新各個w,從而得到適合該模型的權重w,以便通過此模型為只具有特徵關係的樣本預測標籤。
將邏輯回歸抽象成圖計算
其次,這樣的抽象會使我們有機會更有效地處理。圖計算系統已經在處理這樣的圖數據的長期實踐中積累了大量的經驗。圖計算系統可以利用圖結構的特性,有效地進行數據存儲和調度執行。譬如,我們可以通過基於圖的劃分方法將數據更平均的分發給多臺機器,讓他們並行執行,保證各機器的負載均衡,並且可以根據圖的結構信息來更好的安排數據的存放以改進計算時的數據局部性,從而帶來更高的性能。
諸如PageRank這樣的應用,傳統的圖計算系統已經可以很高效地處理了。用戶可以利用系統提供的編程模型接口實現相應算法的邏輯,然後將數據灌入系統運行即可。然而,許多常用的機器學習應用並不能直接採用傳統的例如PowerGraph這樣的系統。這是因為,與傳統的圖計算應用相比,許多機器學習應用處理數據有著不同於傳統圖算法的模式。例如小分批(mini-batch)和延時同步並行(SSP: Stale Synchronous Parallel)。前者需要按照指定的批量為單位處理數據,而後者是一種區別於傳統的圖計算中純同步/純異步當中的一種同步方式。這都需要對傳統圖計算系統進行重新設計,從而支持相應的功能。而這些重新設計的挑戰在某種意義上也是機會——我們可以利用這些機器學習應用共同的內在屬性,從而提高算法的執行效率。
因此,基於分布式圖計算系統的經驗和機器學習應用的理解,我們提出了分布式機器學習系統——圖學習TuX2(Tu Xue Xi)。TuX2作為一個全新的分布式圖引擎,致力於融合圖計算和分布式機器學習系統。TuX2繼承了傳統圖計算系統中的優勢:簡潔的計算模型,高效的數據排布,均衡的負載分配以及超過10億條邊的規模處理能力;並對於分布式機器學習進行了大幅擴展和優化,以支持異質性、延時同步並行(Stale Synchronous Parallel),並提出了一種新的編程模型——MEGA(Mini-batch, Exchange, GlobalSync, Apply)。
我們在TuX2上實現了一系列具有代表性的分布式機器學習算法,涵蓋了監督學習和非監督學習。通過與機器學習系統的對比,我們發現實現相同的算法,TuX2隻需要約25%的代碼量,因為我們的圖計算模型從開發者手中接管了很多瑣碎的處理細節,包括數據排布、數據劃分和並行。在640億條邊的大規模數據上的多個實驗結果充分表明,相比於目前最先進的圖計算系統PowerGraph和PowerLyra,TuX2具有一個量級上的性能優勢,並且與參測的兩個目前最先進的分布式機器學習系統相比,實現了至少48%的性能提升。
本文所介紹的工作發表於會議14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2017): TuX2: Distributed Graph Computation for Machine Learning》Wencong Xiao, Jilong Xue, Youshan Miao, Cheng Chen, and Ming Wu, Wei Li, Lidong Zhou。(請點擊閱讀原文或將網址複製至瀏覽器中打開即可查看:https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/xiao)
微軟亞洲研究院系統組從事計算機系統領域重大課題的基礎性研究,在分布式系統、存儲系統、雲計算、網絡、及計算機語言等方面均有理論與實踐經驗豐富的專家。自成立以來,系統組一直致力於設計、開發、分析、優化大規模分布式系統,其中一些系統已經在微軟產品中應用,支持各種在線服務。系統組成員在此過程中收穫了寶貴的第一手實踐經驗,而這些經驗更進一步激發了一系列新的研究項目,並在計算機系統及相關領域的頂級會議上收穫豐富成果。微軟亞洲研究院系統組多項工作發表於OSDI、SOSP、NSDI、EuroSys、SoCC、USENIX ATC等一系列高水平學術會議上。
你也許還想看:
感謝你關注「微軟研究院AI頭條」,我們期待你的留言和投稿,共建交流平臺。來稿請寄:msraai@microsoft.com。微軟小冰進駐微軟研究院微信啦!快去主頁和她聊聊天吧。