當前位置:
首頁 > 新聞 > Github熱門圖深度學習源碼與框架

Github熱門圖深度學習源碼與框架

新智元推薦

來源:專知(ID: Quan_Zhuanzhi)

【新智元導讀】圖深度學習是當前深度學習領域最熱門的方向之一,圖神經網路(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 等深度學習工具,它支持用戶在數十億點數百億邊的複雜異構圖上進行模型訓練。

(本文轉載自專知,ID:Quan_Zhuanzhi)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

在線元學習:通過持續元學習解決傳統機器學習方式的致命不足

TAG:新智元 |