阿里開源大規模分散式圖學習框架:無縫對接TF/PyTorch
【新智元導讀】阿里媽媽開源大規模分散式圖表徵學習框架Euler,面向工業級用戶和高級研究者,結合TF/XDL/PyTorch等深度學習基礎工具,支持超大規模複雜異構圖的模型訓練。
阿里媽媽宣布開源大規模分散式的圖表示學習框架Euler,Euler內置DeepWalk、Node2Vec等業界常見的Graph Embedding演算法,以及3種阿里媽媽自研創新演算法,可以支持數十億點和數百億邊的複雜異構圖上進行模型訓練。
日前,Euler開源框架開發團隊的幾位成員接受了新智元的採訪。(受訪人詳細信息請見文末)
在採訪中,他們對Euler框架與現在流行的TensorFlow和PyTorch框架的一些區別做了闡述,比如「圖」這一概念在定義和指代對象上的區別。並指出了Euler框架主要面向的兩類目標用戶。
需要指出,在TensorFlow和PyTorch中,圖(graph)指的是把程序執行流程分解成為一個有向無環圖,圖中每個節點代表一個需要執行的操作,邊代表各個操作的依賴關係。
在Euler中,圖(graph)指的是用戶的業務數據可以表達成複雜的異構圖
,用戶希望基於圖進行Graph Embedding,並進一步進行節點分類,邊預測,圖分類等任務。Euler針對兩類用戶:
- 擁有海量複雜工業級圖數據的用戶,用Euler可以快速訓練,拿到業務效果。
- 屬於高校或者企業裡邊的研究實驗室用戶,他們利用Euler靈活的圖操作運算元可以快速進行演算法創新與定製。
概述
過去幾年隨著數據規模和硬體計算力的迅速增長,深度學習技術在工業界被廣泛應用併產生了巨大的技術紅利。當前應用已經相對成熟,下一步的技術紅利在哪裡還在積極探索之中。圖神經網路將端到端學習與歸納推理相結合,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題。
對結構知識的表達、計算和組合泛化是實現具備human-like AI的關鍵,圖神經網路有希望在這些方面形成突破,使得機器能力進一步提升,因此對圖神經網路的深入應用有希望形成下一波技術紅利。
圖(Graph)作為表達能力很強的通用的數據結構,可以用來刻畫現實世界中的很多問題,例如社交場景的用戶網路、電商場景的用戶和商品網路、電信場景的通信網路、金融場景的交易網路和醫療場景的藥物分子網路等等。相比文本、語音和圖像領域的數據比較容易處理成歐式空間的Grid-like類型,適合現有的深度學習模型處理,圖是一種非歐空間下的數據,並不能直接應用現有方法,需要專門設計的圖神經網路系統。
1.1 Euler的核心能力
大規模圖的分散式學習
工業界的圖往往具有數十億節點和數百億邊,有些場景甚至可以到數百億節點和數千億邊,在這樣規模的圖上單機訓練是不可行的。Euler支持圖分割和高效穩定的分散式訓練,可以輕鬆支撐數十億點、數百億邊的計算規模。
支持複雜異構圖的表徵
工業界的圖關係大都錯綜複雜,體現在節點異構、邊關係異構,另外節點和邊上可能有非常豐富的屬性,這使得一些常見的圖神經網路很難學到有效的表達。Euler在圖結構存儲和圖計算的抽象上均良好的支持異構點、異構邊類型的操作,並支持豐富的異構屬性,可以很容易的在圖學習演算法中進行異構圖的表徵學習。
圖學習與深度學習的結合
工業界有很多經典場景,例如搜索/推薦/廣告場景,傳統的深度學習方法有不錯效果,如何把圖學習和傳統方法結合起來,進一步提升模型能力是很值得探索的。Euler支持基於深度學習樣本的mini-batch訓練,把圖表徵直接輸入到深度學習網路中聯合訓練。
分層抽象與靈活擴展
Euler系統抽象為圖引擎層、圖操作運算元層、演算法實現層三個層次,可以快速的在高層擴展一個圖學習演算法。實際上,Euler也內置了大量的演算法實現供大家直接使用。
1.2 Euler內置的演算法實現
考慮到框架的易用性,我們內置了多種知名演算法以及幾種我們內部的創新演算法。所有實現,我們仔細進行了測試,保證了演算法運行效率,且演算法效果與原論文對齊。用戶無需進行開發,注入數據到平台後,可以直接使用。我們內置的演算法列表見下表。鑒於公開演算法知名度很高,我們不做出詳細描述,請參見原始論文。有關我們內部演算法的詳細信息請見2.3節。
演算法類型
是否自研
特點
DeepWalk
隨機遊走
否
經典無偏的隨機遊走無監督演算法。
Node2Vec
隨機遊走
否
利用可配置參數在遊走時可傾向BFS或DFS
LINE
其它
否
靈活利用1階,2階鄰居信息的無監督演算法
GCN
鄰居匯聚
否
CNN操作類似推廣到非歐空間的演算法
GraphSAGE
鄰居匯聚
否
GCN改進,提出鄰居採樣,多種匯聚函數等
GAT
鄰居匯聚
否
將Attention技術用於鄰居匯聚
Scalable-GCN
鄰居匯聚
是
加速GCN訓練的一種方法
LsHNE
隨機遊走
是
異構圖中隨機遊走,利用深度網路編碼
LasGNN
鄰居匯聚
是
半監督大規模異構圖卷積網路學習方法
系統設計
Euler系統整體可以分為三層:最底層的分散式圖引擎,中間層圖語義的運算元,高層的圖表示學習演算法。
下邊我們分開描述各個層次的核心功能。
圖1 Euler架構總覽
2.1 分散式圖引擎
為了支持我們的業務,我們不僅面臨超大規模圖存儲與計算的挑戰,還需要處理由多種不同類型的點,邊及其屬性構成異構圖的複雜性。我們的分散式圖引擎針對海量圖存儲,分散式並行圖計算及異構圖進行了優化設計,確保了工業場景下的有效應用。
- 首先為了存儲超大規模圖(數十億點,數百億邊),Euler必須突破單機的限制,從而採用了分散式的存儲架構。在圖載入時,整張圖在引擎內部被切分為多個子圖,每個計算節點被分配1個或幾個子圖進行載入。
- 為了充分利用各個計算節點的能力,在進行圖的操作時,頂層操作被分解為多個對子圖的操作由各個節點並行執行。這樣隨著更多節點的加入,我們可以得到更好的服務能力。其次,我們引入了多replica的支持。從而用戶可以靈活平衡shard與replica的數量,取得更佳的服務能力。最後,我們針對圖表示學習優化了底層的圖存儲數據結構與操作演算法,單機的圖操作性能獲得了數倍的提升。
- 多種不同類型的邊,點與屬性所組成的異構圖,對很多複雜的業務場景必不可少。為了支持異構圖計算能力,底層存儲按照不同的節點與邊的類型分別組織。這樣我們可以高效支持異構的圖操作。
2.2 中間圖操作運算元
由於圖學習演算法的多樣性以及業務的複雜性,固定的某幾種甚至幾十種演算法實現無法滿足客戶的所有需求。所以在Euler設計中,我們圍繞底層系統的核心能力著重設計了靈活強大的圖操作運算元,且所有運算元均支持異構圖操作語義。用戶可以利用它來快速搭建自己的演算法變體,滿足獨特的業務需求。
首先,Euler分散式圖引擎提供了C++的API來提供所有圖操作。基於這個API,我們可以方便的基於某個深度學習框架添加圖操作的運算元,從而利用Euler C++介面訪問底層圖引擎的能力。我們支持廣泛使用的深度學習框架,比如阿里巴巴的X-DeepLearning與流行的TensorFlow。後繼我們也會考慮支持其它的深度學習框架,比如PyTorch。
利用靈活的圖操作運算元,機器學習框架可以在每個mini-batch與Euler交互,動態擴充與組織訓練樣本。這樣,Euler不僅支持傳統的以圖為中心的學習模式,且可以把圖學習的能力注入傳統的學習任務,實現端到端訓練。
按照功能分類,我們的核心系統提供的API可以分類如下:
- 全局帶權採樣點和邊的能力。主要用於mini-batch樣本的隨機生成以及Negative Sampling。
- 基於給定節點的鄰居操作。這個是圖計算的核心能力包括鄰居帶權採樣,取Top權重的鄰居等。
- 點/邊的屬性查找。這個能力使得演算法可以使用更豐富的特徵,而不僅限於點/邊的ID特徵。
2.3 高層演算法實現
如1.2節所述,除了LINE演算法以外,我們實現的演算法可以分為隨機遊走與鄰居匯聚兩大類演算法。有關外部演算法的詳細信息,請參見1.2節提供的論文鏈接。下面我們詳細介紹內部的三個創新演算法。
Scalable-GCN
它是一種高效的GCN訓練演算法。GCN以及更一般的Graph Neural Network (GNN)類的方法由於能有效的提取圖結構信息,在許多任務上均取得了超過以往方法的效果。但是GCN的模型會引入巨大的計算量,導致模型的訓練時間不可接受。
Scalable-GCN在保證優秀效果的前提下,把mini-batch GCN的計算複雜度從層數的指數函數壓到線性。這使得在阿里媽媽的海量數據下應用三層GCN成為可能,廣告匹配的效果獲得了顯著提升。
LsHNE
LsHNE是我們結合阿里媽媽搜索廣告場景創新地提出一種無監督的大規模異構網路embedding學習方法。區別於DeepWalk類演算法,LsHNE的特點包括:a) 採用深度神經網路學習表達,可以有效融合Attribute信息;b)考慮embedding表示的距離敏感需求,提出兩個負採樣原則:分布一致性原則和弱相關性原則;c)支持異構網路。
LasGNN
LasGNN是一種半監督的大規模異構圖卷積神經網路學習方法, 它有效融合了圖結構知識信息和海量用戶行為信息,大幅提升了模型精度,是工業界廣告場景下首次應用半監督圖方法。該方法有多處創新,例如將metapath的思想應用於圖卷積網路中,並提出了metapathGCN模型,有效解決了異構網路的卷積問題;提出了metapathSAGE模型,在模型中我們設計高效的鄰居採樣的方法,使得大規模的多層鄰居卷積成為可能。
應用實例
Euler平台已經在阿里媽媽搜索廣告的多個場景下廣泛實用,並取得了出色的業務效果,例如檢索匹配場景、CTR預估場景、營銷工具場景和反作弊場景等。我們以匹配場景的為例來看下Euler的應用。
廣告匹配的任務是給定用戶搜索請求,匹配模塊通過理解用戶意圖,快速準確地從海量廣告中找到高質量的小規模候選廣告集,輸送給下游的排序模塊進行排序。
我們首先使用一些傳統的挖掘演算法,從用戶行為日誌、內容屬性等維度挖掘出Query(查詢詞), Item(商品)和Ad(廣告)的多種關係,然後利用Euler平台的LsHNE方法學習圖中節點的embedding,這裡節點embedding後的空間距離刻畫了原來圖中的關係,對於在線過來的請求通過計算用戶查詢詞向量、前置行為中節點向量和廣告節點向量之間的距離進行高效的向量化最近鄰檢索,可以快速匹配到符合用戶意圖的廣告。圖2展示了LsHNE方法的離線和在線流程。圖3展示了樣本構造和網路結構示意。
圖2 DeepMatch召回框架
圖3 離線訓練流程
開源信息
Euler已在Github開源,開源地址如下:
https://github.com/alibaba/euler
Euler開源框架受訪人信息
李金輝(花名見獨)
資深技術專家,阿里媽媽工程平台技術負責人
北京理工大學模式識別專業碩士畢業,現任阿里媽媽-工程平台的技術負責人,定義了阿里媽媽最新一代廣告工程平台AdOS,過往一直從事廣告和搜索系統架構領域的技術研發和管理工作,在大數據計算,廣告引擎,搜索引擎和機器學習系統的技術方向上具備10年以上經驗,還曾擔任淘寶搜索引擎的核心架構師,阿里雲彈性雲計算產品線的產品主管。
朱曉宇 (花名赤空)
阿里媽媽研究員/資深總監
負責阿里搜索直通車演算法與工程技術,帶領團隊打造中國規模最大的商業廣告平台,幫助數百萬電商商家建立數字化智能化的電商營銷解決方案
張迪(花名樂迪)
資深技術專家,阿里媽媽大數據計算與機器學習平台的工程架構負責人
2010年上海交大碩士畢業後加入阿里巴巴,先後參與研發了淘寶新一代搜索引擎內核、神馬搜索大規模網頁處理系統、阿里媽媽大數據與機器學習平台。現在其團隊負責阿里媽媽全域數據倉庫、離線實時數據處理、深度學習建模等平台的研發建設,支撐著阿里巴巴搜索廣告、精準定向廣告、品牌廣告等眾多核心業務場景。
林偉(花名楊焜)
阿里巴巴高級演算法專家、阿里媽媽搜索廣告匹配和創意演算法負責人
2009年北京航空航天大學碩士畢業後加入騰訊搜搜,從事搜索研發。2011年加入阿里巴巴,先後參與阿里推薦演算法ETREC、定向廣告大規模興趣點演算法UIT++、搜索廣告近年來一系列創新的匹配演算法、Euler圖深度學習演算法和平台等。在WWW、WSDM等頂級會議發表過多篇論文。現在其團隊負責阿里媽媽圖深度學習演算法、搜索廣告Query分析演算法、相關性演算法、匹配演算法、創意演算法和粗排演算法等眾多核心業務場景。
※圖解2018年領先的兩大NLP模型:BERT和ELMo
※經典教材《模式識別和機器學習》官方免費下載!
TAG:新智元 |