開源圖神經網路框架DGL升級:GCMC訓練時間從1天縮到1小時
又一個AI框架迎來升級。
這次,是紐約大學、亞馬遜聯手推出 圖神經網路框架DGL。
不僅全面上線了對異構圖的支援,復現並開源了相關異構圖神經網路的程式碼,在GCMC、RCGN等業內知名的模型實現上,取得更好效果。
還發布了訓練知識圖譜嵌入(Knowledge Graph Embedding)專用包DGL-KE,在許多經典的圖嵌入模型上都獲得了效能提升。
目前,這個在2018年NeurIPS大會上釋出的框架,已經獲得了3000+標星,已經是圖神經網路和圖機器學習領域較受關注的工具。
異構圖:神經網路的新方向
異構圖是一個與同構圖相對應的新概念。
傳統同構圖(Homogeneous Graph)資料中只存在一種節點和邊,因此在構建圖神經網路時所有節點共享同樣的模型引數並且擁有同樣維度的特徵空間。
而異構圖(Heterogeneous Graph)中可以存在不只一種節點和邊,因此允許不同型別的節點擁有不同維度的特徵或屬性。
這一特點使得異構圖的應用十分廣泛,如果用圖來描述我們和周圍事物的關係就會發現所產生的圖都是天然異構的,比如這個例子:
我今天看了電影《流浪地球》,那“我”作為觀眾和電影《流浪地球》之間就建立了“看了”這一關係。
異構圖可以用來描述這種互動關係的集合。這個圖分“觀眾”和“電影”兩類節點,以及“看了”這一類邊。
“我”作為觀眾,和電影所具有的屬性一定是不同的,需要用不同的模型或者不同的特徵維度來表達。
所以說,這張圖就天然具有了異構性。而且,基於異構圖訓練的神經網路與傳統方法相比,在一些場景中,也能夠獲得更好的效果與表現。
現在已經被應用到了知識圖譜、推薦系統以及惡意賬戶識別等領域以及任務中。
其中比較有代表性的兩個模型分別是用於節點分類和連結預測等任務的RGCN和用於產品推薦的GCMC。
但如何設計“既快又好”的深度神經網路?
這正是紐約大學、亞馬遜聯手推出圖神經網路框架DGL的出發點。
新版DGL:異構圖神經網路利器
這次更新放出的,是DGL 0.4版本,讓整個框架變得更加實用。
不僅全面上線對於異構圖的支援,還復現並開源了相關異構圖神經網路的程式碼:
△DGL 0.4中基於異構圖的RGCN層實現程式碼
官方表示,在這一新版本的DGL上實現業內比較突出的異構圖神經網路,效能上也有更好的表現:
GCMC:DGL的實現相比原作者實現在MovieLens-100K上有5倍加速,在MovieLens-1M上有22倍加速。DGL的記憶體最佳化支援在一塊GPU上對MovieLens-10M進行訓練(原實現需要從CPU動態載入資料),從而將原本需要24小時的訓練時間縮短到了1個多小時。
RGCN:使用全新的異構圖介面重新實現了RGCN。新的實現大大減少了記憶體開銷。原實現在AM資料集上(邊數>5M)由於記憶體開銷太大,只能在CPU上計算,而DGL能使用GPU進行加速並獲得了291倍的速度提升。
HAN:提供了靈活的介面可以將一個異構圖透過元路徑(metapath)轉變成同構圖。
Metapath2vec:新的元路徑取樣實現比原作者的實現快兩倍。
而且, DGL也釋出了針對分子化學的模型庫DGL-Chem,以及訓練知識圖譜嵌入(Knowledge Graph Embedding)專用包DGL-KE。DGL-Chem提供了包括分子性質預測和分子結構生成等預訓練模型。
在單GPU上,DGL-KE能在7分鐘內使用經典的TransE模型訓練出FB15K的圖嵌入。相比GraphVite(v0.1.0)在4塊GPU上需要14分鐘。
DGL-KE首個版本釋出了TransE、ComplEx和Distmult模型,支援CPU訓練、GPU訓練、CPU和GPU混合訓練以及單機多程式訓練。
DGL團隊表示,在未來也會發布更多模型和訓練方式。
傳送門
DGL異構圖教程:
DGL v0.4 更新筆記:
DGL-KE程式碼及使用說明:
DGL-Chem 模型庫:
— 完 —
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2660160/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 訓練神經網路時如何確定batch size?神經網路BAT
- 從零開始:教你如何訓練神經網路神經網路
- 一小時神經網路從入門到精通(放棄)神經網路
- DGL更新報告:異構圖神經網路神經網路
- umich cv-5-1 神經網路訓練1神經網路
- 3.3 神經網路的訓練神經網路
- 聊聊從腦神經到神經網路神經網路
- 大咖眼中的AI開源 | 張建:圖神經網路和DGL的實際應用AI神經網路
- 機器學習之訓練神經網路:最佳做法機器學習神經網路
- 谷歌開源Neural Tangents:簡單快速訓練無限寬度神經網路谷歌神經網路
- 【python實現卷積神經網路】開始訓練Python卷積神經網路
- 使用tf.estimator.Estimator訓練神經網路神經網路
- 深度神經網路為何很難訓練?神經網路
- 如何應對訓練的神經網路不工作?神經網路
- Batch Normalization: 如何更快地訓練深度神經網路BATORM神經網路
- 用神經網路測量訓練集的半衰期神經網路
- 訓練自己的Android TensorFlow神經網路Android神經網路
- umich cv-5-2 神經網路訓練2神經網路
- 比DGL快14倍:PyTorch圖神經網路庫PyG上線了PyTorch神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 1. 從多層感知機到卷積神經網路卷積神經網路
- KDD 2020 開源論文 | 圖神經網路多變數時序預測神經網路變數
- 用神經網路訓練一個文字分類器神經網路文字分類
- 1分鐘訓練百萬級別節點嵌入,Mila開源圖嵌入訓練系統GraphViteMILAVite
- 訓練資料減少多達三個數量級,等變圖神經網路在長時間尺度上進行高保真分子動力學模擬神經網路
- MIT 提出Network Dissection框架,全自動窺探神經網路訓練的黑箱MIT框架神經網路
- 24小時從0到1開發陰陽師小程式
- 你也可以訓練超大神經網路!谷歌開源GPipe庫神經網路谷歌
- 《神經網路和深度學習》系列文章三十八:深度神經網路為何很難訓練?神經網路深度學習
- APP 開發從 0 到 1(二)框架與網路APP框架
- Jeff Dean本科論文首次曝光!第一批90後出生時,他就在訓練神經網路神經網路
- 神經網路訓練的三個基本概念Epoch, Batch, Iteration神經網路BAT
- 如何入門Pytorch之四:搭建神經網路訓練MNISTPyTorch神經網路
- 【機器學習】李宏毅——類神經網路訓練不起來怎麼辦機器學習神經網路
- 深度學習與CV教程(6) | 神經網路訓練技巧 (上)深度學習神經網路
- 神經網路之反向傳播訓練(8行程式碼)神經網路反向傳播行程
- 如何用C++在TensorFlow中訓練深度神經網路C++神經網路
- Nielsen:CBS神經視訊廣告壓縮技術,縮短時間讓效果更好