圖深度學習是當前深度學習領域最熱門的方向之一,圖神經網絡(GNN)不僅在理論上有所創新,在工業界中也真實的應用。本文介紹 Github 上熱門的圖神經網絡源碼及框架,方便研究人員和工程師上手圖深度學習。
近兩年來,圖卷積、圖注意力網絡等圖神經網絡在學術界、工業界都有廣泛的應用。雖然大多數圖神經網絡理論包含復雜的公式推導,但最終產出的網絡結構(公式)缺一般比較簡單,但這并不意味著圖神經網絡的實現會很簡單。
導致圖神經網絡實現復雜的原因主要有以下幾個:
以圖卷積網絡為例,它的原版依賴完整鄰接矩陣和全部節點作為輸入,對內存、顯存和計算效率都造成了限制。好在目前有一些理論如 FaskGCN 可以通過 mini-batch 等方式來進行數據切分從而解決這個問題。
雖然利用稀疏矩陣可以一定程度上緩解上述問題,但依然不能處理大規模的數據。另外,由于多層網絡結構的復雜,一般在實現時要同時實現稀疏版和非稀疏版的組件。
對圖結構數據的預處理比較麻煩。例如在處理異構網絡時,有時需要對每種類型的節點進行獨立地編號、為每種關系獨立建立子圖等,才能將圖數據轉換為深度學習模型可用的數值化數據,并且任何一個細節可能都會影響算法的效率(如鄰節點列表的數據結構使用 list 和 set 會導致不同的采樣效率和查詢效率)。
需要一些基于圖的額外操作,例如 Random Walk、有類型約束的 Random Walk(Meta-path)等,由于圖結構的復雜性,這些操作在單機上的實現都比較費力,更不用說在大規模分布式上。
圖深度學習研究者和工業界在 Github 上開源了一些優秀的圖神經網絡的實現其框架,都從一定程度上去解決了上述的問題,非常值得我們借鑒。下面我們列出一些優秀的 Github 倉庫:
DeepWalk / LINE
鏈接:
DeepWalk: https://github.com/phanein/deepwalk
LINE: https://github.com/tangjianpku/LINE
簡介:
雖然 DeepWalk 和 LINE 屬于網絡表示學習中的算法,與現在端到端的圖神經網絡有一定的區別,但目前一些圖神經網絡應用(如社交網絡、引用網絡節點分類)依然使用 DeepWalk/LINE 來作為預訓練算法,無監督地為節點獲得初始特征表示。另外,DeepWalk 項目中的 Random Walk 也可以被直接拿來用作圖神經網絡的數據采樣操作。
圖卷積網絡 GCN TensorFlow/PyTorch 版
鏈接:
TensorFlow:https://github.com/tkipf/gcn
PyTorch:https://github.com/tkipf/pygcn
簡介:
GCN 論文作者提供的源碼,該源碼提供了大量關于稀疏矩陣的代碼。例如如何構建稀疏的變換矩陣(這部分代碼被其他許多項目復用)、如何將稀疏 CSR 矩陣變換為 TensorFlow/PyTorch 的稀疏 Tensor,以及如何構建兼容稀疏和非稀疏的全連接層等,幾乎是圖神經網絡必讀的源碼之一了。
快速圖卷積網絡 FastGCN TensorFlow 版
鏈接:
https://github.com/matenure/FastGCN
簡介:
FastGCN 作者提供的源碼,基于采樣的方式構建 mini-match 來訓練 GCN,解決了 GCN 不能處理大規模數據的問題。
圖注意力網絡 GAT TensorFlow 版
鏈接:
https://github.com/PetarV-/GAT
簡介:
GAT 論文作者提供的源碼。源碼中關于 mask 的實現、以及稀疏版 GAT 的實現值得借鑒。
Mini-batch 版圖注意力網絡 DeepInf
鏈接:
https://github.com/xptree/DeepInf
簡介:
DeepInf 論文其實是 GAT 的一個應用,但其基于 Random Walk 采樣子圖構建 mini-batch 的方法解決了 GAT 在大規模網絡上應用的問題。
DeepMind 開源的圖神經網絡框架Graph Nets
鏈接:
https://github.com/deepmind/graph_nets
簡介:
基于 TensorFlow 和 Sonnet。上面的項目更側重于節點特征的計算,而 graph_nets 同時包含節點和邊的計算,可用于一些高級任務,如最短路徑、物理場景模擬等。
工業級分布式圖神經網絡框架 Euler
鏈接:
https://github.com/alibaba/euler
簡介:
Euler 是阿里巴巴開源的大規模分布式的圖學習框架,配合 TensorFlow 或者阿里開源的 XDL 等深度學習工具,它支持用戶在數十億點數百億邊的復雜異構圖上進行模型訓練。
-
神經網絡
+關注
關注
42文章
4810瀏覽量
102914 -
深度學習
+關注
關注
73文章
5555瀏覽量
122529 -
GitHub
+關注
關注
3文章
481瀏覽量
17480
原文標題:Github熱門圖深度學習(GraphDL)源碼與框架
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Debian和Ubuntu哪個好一些?
如何添加一些網絡上的庫到mpy固件的說明或手冊教程?
SSM框架的源碼解析與理解
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介
飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核簡介
一些常見的動態電路

分享一些常見的電路

評論