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