開源圖神經(jīng)網(wǎng)絡框架DGL升級:GCMC訓練時間從1天縮到1小時,RGCN實現(xiàn)速度提升291倍
乾明 編輯整理
量子位 報道 | 公眾號 QbitAI
又一個AI框架迎來升級。
這次,是紐約大學、亞馬遜聯(lián)手推出圖神經(jīng)網(wǎng)絡框架DGL。
不僅全面上線了對異構(gòu)圖的支持,復現(xiàn)并開源了相關(guān)異構(gòu)圖神經(jīng)網(wǎng)絡的代碼,在GCMC、RCGN等業(yè)內(nèi)知名的模型實現(xiàn)上,取得更好效果。
還發(fā)布了訓練知識圖譜嵌入(Knowledge Graph Embedding)專用包DGL-KE,在許多經(jīng)典的圖嵌入模型上都獲得了性能提升。
目前,這個在2018年NeurIPS大會上發(fā)布的框架,已經(jīng)獲得了3000+標星,已經(jīng)是圖神經(jīng)網(wǎng)絡和圖機器學習領(lǐng)域較受關(guān)注的工具。
異構(gòu)圖:神經(jīng)網(wǎng)絡的新方向
異構(gòu)圖是一個與同構(gòu)圖相對應的新概念。
傳統(tǒng)同構(gòu)圖(Homogeneous Graph)數(shù)據(jù)中只存在一種節(jié)點和邊,因此在構(gòu)建圖神經(jīng)網(wǎng)絡時所有節(jié)點共享同樣的模型參數(shù)并且擁有同樣維度的特征空間。
而異構(gòu)圖(Heterogeneous Graph)中可以存在不只一種節(jié)點和邊,因此允許不同類型的節(jié)點擁有不同維度的特征或?qū)傩浴?/p>
這一特點使得異構(gòu)圖的應用十分廣泛,如果用圖來描述我們和周圍事物的關(guān)系就會發(fā)現(xiàn)所產(chǎn)生的圖都是天然異構(gòu)的,比如這個例子:
我今天看了電影《流浪地球》,那“我”作為觀眾和電影《流浪地球》之間就建立了“看了”這一關(guān)系。
異構(gòu)圖可以用來描述這種交互關(guān)系的集合。這個圖分“觀眾”和“電影”兩類節(jié)點,以及“看了”這一類邊。
“我”作為觀眾,和電影所具有的屬性一定是不同的,需要用不同的模型或者不同的特征維度來表達。
所以說,這張圖就天然具有了異構(gòu)性。而且,基于異構(gòu)圖訓練的神經(jīng)網(wǎng)絡與傳統(tǒng)方法相比,在一些場景中,也能夠獲得更好的效果與表現(xiàn)。
現(xiàn)在已經(jīng)被應用到了知識圖譜、推薦系統(tǒng)以及惡意賬戶識別等領(lǐng)域以及任務中。
其中比較有代表性的兩個模型分別是用于節(jié)點分類和鏈接預測等任務的RGCN和用于產(chǎn)品推薦的GCMC。
但如何設計“既快又好”的深度神經(jīng)網(wǎng)絡?
這正是紐約大學、亞馬遜聯(lián)手推出圖神經(jīng)網(wǎng)絡框架DGL的出發(fā)點。
新版DGL:異構(gòu)圖神經(jīng)網(wǎng)絡利器
這次更新放出的,是DGL 0.4版本,讓整個框架變得更加實用。
不僅全面上線對于異構(gòu)圖的支持,還復現(xiàn)并開源了相關(guān)異構(gòu)圖神經(jīng)網(wǎng)絡的代碼:
△DGL 0.4中基于異構(gòu)圖的RGCN層實現(xiàn)代碼
官方表示,在這一新版本的DGL上實現(xiàn)業(yè)內(nèi)比較突出的異構(gòu)圖神經(jīng)網(wǎng)絡,性能上也有更好的表現(xiàn):
GCMC:DGL的實現(xiàn)相比原作者實現(xiàn)在MovieLens-100K上有5倍加速,在MovieLens-1M上有22倍加速。DGL的內(nèi)存優(yōu)化支持在一塊GPU上對MovieLens-10M進行訓練(原實現(xiàn)需要從CPU動態(tài)加載數(shù)據(jù)),從而將原本需要24小時的訓練時間縮短到了1個多小時。
RGCN:使用全新的異構(gòu)圖接口重新實現(xiàn)了RGCN。新的實現(xiàn)大大減少了內(nèi)存開銷。原實現(xiàn)在AM數(shù)據(jù)集上(邊數(shù)>5M)由于內(nèi)存開銷太大,只能在CPU上計算,而DGL能使用GPU進行加速并獲得了291倍的速度提升。
HAN:提供了靈活的接口可以將一個異構(gòu)圖通過元路徑(metapath)轉(zhuǎn)變成同構(gòu)圖。
Metapath2vec:新的元路徑采樣實現(xiàn)比原作者的實現(xiàn)快兩倍。
而且, DGL也發(fā)布了針對分子化學的模型庫DGL-Chem,以及訓練知識圖譜嵌入(Knowledge Graph Embedding)專用包DGL-KE。DGL-Chem提供了包括分子性質(zhì)預測和分子結(jié)構(gòu)生成等預訓練模型。
在單GPU上,DGL-KE能在7分鐘內(nèi)使用經(jīng)典的TransE模型訓練出FB15K的圖嵌入。相比GraphVite(v0.1.0)在4塊GPU上需要14分鐘。
DGL-KE首個版本發(fā)布了TransE、ComplEx和Distmult模型,支持CPU訓練、GPU訓練、CPU和GPU混合訓練以及單機多進程訓練。
DGL團隊表示,在未來也會發(fā)布更多模型和訓練方式。
傳送門
DGL異構(gòu)圖教程:
https://docs.dgl.ai/tutorials/hetero/1_basics.html
DGL v0.4 更新筆記:
https://github.com/dmlc/dgl/releases
DGL-KE代碼及使用說明:
https://github.com/dmlc/dgl/tree/master/apps/kg
DGL-Chem 模型庫:
https://docs.dgl.ai/api/python/model_zoo.html#chemistry