AI 科技評(píng)論消息,繼去年 11 月開(kāi)源面向高維稀疏數(shù)據(jù)場(chǎng)景的深度優(yōu)化工具X-Deep Learning(截至發(fā)稿,GitHub Star 數(shù)已達(dá)到 1972)之后,阿里媽媽團(tuán)隊(duì)于今日正式開(kāi)源大規(guī)模分布式圖表征學(xué)習(xí)框架 Euler,這一框架具有四大特點(diǎn):
大規(guī)模圖的分布式學(xué)習(xí)
支持圖分割和高效穩(wěn)定的分布式訓(xùn)練,可以輕松支撐數(shù)十億點(diǎn)、數(shù)百億邊的計(jì)算規(guī)模。
支持復(fù)雜異構(gòu)圖的表征
在圖結(jié)構(gòu)存儲(chǔ)和圖計(jì)算的抽象上均良好的支持異構(gòu)點(diǎn)、異構(gòu)邊類型的操作,并支持豐富的異構(gòu)屬性,可以很容易的在圖學(xué)習(xí)算法中進(jìn)行異構(gòu)圖的表征學(xué)習(xí)。
圖學(xué)習(xí)與深度學(xué)習(xí)的結(jié)合
支持基于深度學(xué)習(xí)樣本的 mini-batch 訓(xùn)練,把圖表征直接輸入到深度學(xué)習(xí)網(wǎng)絡(luò)中聯(lián)合訓(xùn)練。
分層抽象與靈活擴(kuò)展
Euler 系統(tǒng)抽象為圖引擎層、圖操作算子層、算法實(shí)現(xiàn)層三個(gè)層次,可以快速的在高層擴(kuò)展一個(gè)圖學(xué)習(xí)算法,同時(shí),Euler 內(nèi)置了大量算法實(shí)現(xiàn)可供直接使用。
阿里媽媽團(tuán)隊(duì)表示,近年來(lái)隨著在圖深度學(xué)習(xí)技術(shù)的突破,有希望通過(guò)圖引入知識(shí)結(jié)構(gòu)和推理能力,與深度學(xué)習(xí)的結(jié)合,進(jìn)一步提升模型能力。
2017 年 3 月,阿里媽媽團(tuán)隊(duì)在探索使用深度學(xué)習(xí)來(lái)刻畫(huà)用戶與廣告的連接關(guān)系時(shí),他們意識(shí)到圖深度學(xué)習(xí)是一個(gè)非常重要的技術(shù)方向,且業(yè)界沒(méi)有成熟的解決方案。2017 年 5 月,阿里媽媽開(kāi)發(fā)完成第一個(gè)單機(jī)版本的圖學(xué)習(xí)系統(tǒng),支持他們基于隨機(jī)游走類的圖學(xué)習(xí)算法,并在阿里媽媽深度匹配業(yè)務(wù)上取得不錯(cuò)的效果。2018 年初,Euler 支持大規(guī)模分布式圖學(xué)習(xí)能力,支持在數(shù)十億點(diǎn)、數(shù)百億邊的大規(guī)模圖上進(jìn)行業(yè)務(wù)迭代。2018 年中,Euler 全面支持 GCN 類算法,并且創(chuàng)新的提出 LasGNN 模型與 Scalable-GCN 訓(xùn)練加速算法。2018 年 9 月,阿里媽媽正式?jīng)Q定把 Euler 的能力與業(yè)界分享,啟動(dòng) Euler 的開(kāi)源準(zhǔn)備。而今天,在做了詳盡準(zhǔn)備之后,這一工具正式與所有開(kāi)發(fā)者見(jiàn)面。
阿里媽媽團(tuán)隊(duì)也詳述了 Euler 系統(tǒng)設(shè)計(jì):
Euler 系統(tǒng)架構(gòu)圖
Euler 系統(tǒng)整體可以分為三層:最底層的分布式圖引擎,中間層圖語(yǔ)義的算子,高層的圖表示學(xué)習(xí)算法。
各個(gè)層次的核心功能如下:
一、分布式圖引擎
分布式圖引擎針對(duì)海量圖存儲(chǔ),分布式并行圖計(jì)算及異構(gòu)圖進(jìn)行了優(yōu)化設(shè)計(jì),確保了工業(yè)場(chǎng)景下的有效應(yīng)用。
首先為了存儲(chǔ)超大規(guī)模圖(數(shù)十億點(diǎn),數(shù)百億邊),Euler 必須突破單機(jī)的限制,從而采用了分布式的存儲(chǔ)架構(gòu)。在圖加載時(shí),整張圖在引擎內(nèi)部被切分為多個(gè)子圖,每個(gè)計(jì)算節(jié)點(diǎn)被分配 1 個(gè)或幾個(gè)子圖進(jìn)行加載。
為了充分利用各個(gè)計(jì)算節(jié)點(diǎn)的能力,在進(jìn)行圖的操作時(shí),頂層操作被分解為多個(gè)對(duì)子圖的操作由各個(gè)節(jié)點(diǎn)并行執(zhí)行。這樣隨著更多節(jié)點(diǎn)的加入,可以得到更好的服務(wù)能力。然后,引入多 replica 的支持,用戶從而可以靈活平衡 shard 與 replica 的數(shù)量,取得更佳的服務(wù)能力。最后,針對(duì)圖表示學(xué)習(xí)優(yōu)化了底層的圖存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)與操作算法,單機(jī)的圖操作性能獲得了數(shù)倍的提升。
多種不同類型的邊,點(diǎn)與屬性所組成的異構(gòu)圖,對(duì)很多復(fù)雜的業(yè)務(wù)場(chǎng)景必不可少。為了支持異構(gòu)圖計(jì)算能力,底層存儲(chǔ)按照不同的節(jié)點(diǎn)與邊的類型分別組織。這樣可以高效支持異構(gòu)的圖操作。
二、中間圖操作算子
由于圖學(xué)習(xí)算法的多樣性以及業(yè)務(wù)的復(fù)雜性,固定的某幾種甚至幾十種算法實(shí)現(xiàn)無(wú)法滿足客戶的所有需求。所以在 Euler 設(shè)計(jì)中,阿里媽媽圍繞底層系統(tǒng)的核心能力著重設(shè)計(jì)了靈活強(qiáng)大的圖操作算子,且所有算子均支持異構(gòu)圖操作語(yǔ)義。用戶可以利用它來(lái)快速搭建自己的算法變體,滿足獨(dú)特的業(yè)務(wù)需求。
首先,Euler 分布式圖引擎提供了 C++ 的 API 來(lái)提供所有圖操作?;谶@個(gè) API,大家可以方便的基于某個(gè)深度學(xué)習(xí)框架添加圖操作的算子,從而利用 Euler C++ 接口訪問(wèn)底層圖引擎的能力。支持廣泛使用的深度學(xué)習(xí)框架,比如阿里巴巴的 X-DeepLearning 與流行的 TensorFlow。后繼會(huì)考慮支持其它的深度學(xué)習(xí)框架,比如 PyTorch。
利用靈活的圖操作算子,機(jī)器學(xué)習(xí)框架可以在每個(gè) mini-batch 與 Euler 交互,動(dòng)態(tài)擴(kuò)充與組織訓(xùn)練樣本。這樣,Euler 不僅支持傳統(tǒng)的以圖為中心的學(xué)習(xí)模式,且可以把圖學(xué)習(xí)的能力注入傳統(tǒng)的學(xué)習(xí)任務(wù),實(shí)現(xiàn)端到端訓(xùn)練。
按照功能分類,Euler 的核心系統(tǒng)提供的 API 可以分類如下:
全局帶權(quán)采樣點(diǎn)和邊的能力。主要用于 mini-batch 樣本的隨機(jī)生成以及 Negative Sampling。
基于給定節(jié)點(diǎn)的鄰居操作。這個(gè)是圖計(jì)算的核心能力包括鄰居帶權(quán)采樣,取 Top 權(quán)重的鄰居等。
點(diǎn)/邊的屬性查找。這個(gè)能力使得算法可以使用更豐富的特征,而不僅限于點(diǎn)/邊的 ID 特征。
三、高層算法實(shí)現(xiàn)
目前,Euler 內(nèi)置的算法如下。除了 LINE 算法,Euler 實(shí)現(xiàn)的算法可以分為隨機(jī)游走與鄰居匯聚兩大類算法,其中也有阿里媽媽團(tuán)隊(duì)自研的開(kāi)創(chuàng)性算法。
以下是對(duì)阿里媽媽內(nèi)部三個(gè)創(chuàng)新算法 Scalable-GCN、LsHNE、LasGNN 的詳細(xì)介紹:
Scalable-GCN
它是一種高效的 GCN 訓(xùn)練算法。GCN 以及更一般的 Graph Neural Network (GNN)類的方法由于能有效的提取圖結(jié)構(gòu)信息,在許多任務(wù)上均取得了超過(guò)以往方法的效果。但是 GCN 的模型會(huì)引入巨大的計(jì)算量,導(dǎo)致模型的訓(xùn)練時(shí)間不可接受。Scalable-GCN 在保證優(yōu)秀效果的前提下,把 mini-batch GCN 的計(jì)算復(fù)雜度從層數(shù)的指數(shù)函數(shù)壓到線性。這使得在阿里媽媽的海量數(shù)據(jù)下應(yīng)用三層 GCN 成為可能,廣告匹配的效果獲得了顯著提升。
LsHNE
LsHNE 是技術(shù)團(tuán)隊(duì)結(jié)合阿里媽媽搜索廣告場(chǎng)景創(chuàng)新地提出一種無(wú)監(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 表示的距離敏感需求,提出兩個(gè)負(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)知識(shí)信息和海量用戶行為信息,大幅提升了模型精度,是工業(yè)界廣告場(chǎng)景下首次應(yīng)用半監(jiān)督圖方法。該方法有多處創(chuàng)新,例如將 metapath 的思想應(yīng)用于圖卷積網(wǎng)絡(luò)中,并提出了 metapathGCN 模型,有效解決了異構(gòu)網(wǎng)絡(luò)的卷積問(wèn)題;提出了 metapathSAGE 模型,在模型中設(shè)計(jì)高效的鄰居采樣的方法,使得大規(guī)模的多層鄰居卷積成為可能。
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3227瀏覽量
42343 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120904
原文標(biāo)題:繼 XDL 之后,阿里媽媽開(kāi)源大規(guī)模分布式圖表征學(xué)習(xí)框架 Euler
文章出處:【微信號(hào):worldofai,微信公眾號(hào):worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論