10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

WBOY
發布: 2023-04-11 23:52:01
轉載
1361 人瀏覽過

2019 年,紐約大學、亞馬遜雲端科技聯手推出圖神經網路框架 DGL (Deep Graph Library)。如今 DGL 1.0 正式發表! DGL 1.0 總結了過去三年學術界或工業界對圖深度學習和圖神經網路(GNN)技術的各類需求。從最先進模型的學術研究到將 GNN 擴展到工業級應用,DGL 1.0 為所有用戶提供全面且易用的解決方案,以更好的利用圖機器學習的優勢。


10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

#DGL 1.0 為不同場景提供的解決方案。

DGL 1.0 採用分層和模組化的設計,以滿足各種使用者需求。本次發布的關鍵特性包括:

  • 100 多個開箱即用的GNN 模型範例,15 多個在Open Graph Benchmark(OGB)上排名靠前的基準模型;
  • 150 多個GNN 常用模組,包括GNN 層、資料集、圖資料轉換模組、圖採樣器等,可用於建立新的模型架構或基於GNN 的解決方案;
  • 靈活高效的訊息傳遞和稀疏矩陣抽象,用於開發新的GNN 模組;
  • 多GPU 和分散式訓練能力,支援在百億規模的圖上進行訓練。


10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

#DGL 1.0技術堆疊圖

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本


#「https:/ /github.com/dmlc/dgl

此版本的亮點之一是引入了DGL-Sparse,這是一個全新的編程接口,使用了稀疏矩陣作為核心的程式設計抽象。 DGL-Sparse 不僅可以簡化現有的 GNN 模型(例如圖卷積網路)的開發,而且還適用於最新的模型,包括基於擴散的 GNN,超圖神經網路和圖 Transformer。 10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

DGL 1.0 版本的發佈在外網引起了熱烈反響,深度學習三巨頭之一 Yann Lecun、新加坡國立大學副教授 Xavier Bresson 等學者都點讚並轉發。

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

#在接下來的文章中,作者概述了兩種主流的GNN 範式,即訊息傳遞視圖和矩陣視圖。這些範式可以幫助研究者更好地理解 GNN 的內部工作機制,而矩陣視角也是 DGL Sparse 開發的動機之一。

訊息傳遞視圖和矩陣視圖

電影《降臨》中有這麼一句話:「你所使用的語言決定了你的思考方式,並影響了你對事物的看法。」這句話也適合GNN。 10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

###表示圖神經網路有兩種不同的範式。第一種稱為訊息傳遞視圖,從細粒度、局部的角度表達 GNN 模型,詳細描述如何沿邊交換訊息以及節點狀態如何進行對應的更新。第二種是矩陣視角,由於圖與稀疏鄰接矩陣具有代數等價性,許多研究人員選擇從粗粒度、全局的角度來表達 GNN 模型,強調涉及稀疏鄰接矩陣和特徵向量的操作。 #####################

訊息傳遞視角揭示了 GNN 與 Weisfeiler Lehman (WL)圖同構測試之間的聯繫,後者也依賴於從鄰居聚合資訊。而矩陣視角則從代數角度來理解 GNN,引發了一些有趣的發現,例如過度平滑問題。

總之,這兩個觀點都是研究 GNN 不可或缺的工具,它們互相補充,幫助研究人員更好地理解和描述 GNN 模型的本質和特性。正是基於這個原因,DGL 1.0 發布的主要動機之一就是在現有的訊息傳遞介面基礎之上,增加矩陣視角的支援。

DGL Sparse:為圖機器學習設計的稀疏矩陣庫

DGL 1.0 版本中新增了一個名為DGL Sparse 的庫(dgl.sparse),它和DGL 中的消息傳遞介面一起,完善了對於全類型的圖神經網路模型的支援。 DGL Sparse 提供專門用於 圖機器學習的稀疏矩陣類別和操作,使得在矩陣視角下編寫 GNN 變得更加容易。在下一節中,作者示範多個 GNN 範例,展示它們在 DGL Sparse 中的數學公式和相應的程式碼實作。

圖卷積網路(Graph Convolutional Network)

GCN 是 GNN 建模的先驅之一。 GCN 可以同時用訊息傳遞視圖和矩陣視圖來表示。下面的程式碼比較了 DGL 中用這兩種方法實現的差異。

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本


10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

使用訊息傳遞API 實作GCN


10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

使用DGL Sparse 實作GCN

#基於圖形擴散的GNN

圖擴散是沿邊傳播或平滑節點特徵或訊號的過程。 PageRank 等許多經典圖演算法都屬於這一類。一系列研究表明,將圖擴散與神經網路結合是增強模型預測有效且有效率的方法。下面的等式描述了其中比較有代表性的模型 APPNP 的核心計算。它可以直接在 DGL Sparse 中實現。

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

#超圖神經網路

超圖是圖的推廣,其中邊可以連接任意數量的節點(稱為超邊)。超圖在需要捕捉高階關係的場景中特別有用,例如電子商務平台中的共同購買行為,或引文網絡中的共同作者等。超圖的典型特徵是其稀疏的關聯矩陣,因此超圖神經網路 (HGNN) 通常使用稀疏矩陣定義。以下是超圖卷積網路(Feng et al., 2018)及其程式碼實作。

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

圖Transformer

###Transformer 模型已成為自然語言處理中最成功的模型架構。研究人員也開始將 Transformer 擴展到圖機器學習。 Dwivedi 等人開創性地提出將所有多頭注意力限制為圖中連接的節點對。透過 DGL Sparse 工具,只需 10 行程式碼即可輕鬆實現該模型。 ######

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本

#DGL Sparse 的關鍵特性

##DGL Sparse 的關鍵特性

  • 比較scipy.sparse 或torch.sparse 等稀疏矩陣函式庫,DGL Sparse 的整體設計是為圖機器學習服務,其中包含了以下關鍵特性:自動稀疏格式選擇
  • :DGL Sparse 的設計讓使用者不必為了選擇正確的資料結構儲存稀疏矩陣(也稱為稀疏格式)而煩惱。使用者只需要記住dgl.sparse.spmatrix 建立稀疏矩陣,而DGL 在內部則會根據呼叫的算子來自動選擇最優格式;標量或向量非零元素

:許多GNN 模型會在邊上學習多個權重(如Graph Transformer 範例中所示範的多頭注意力向量)。為了適應這種情況,DGL Sparse 允許非零元素具有向量形狀,並擴展了常見的稀疏操作,例如稀疏 - 稠密 - 矩陣乘法(SpMM)等。可以參考 Graph Transformer 範例中的 bspmm 操作。 透過利用這些設計特性,與先前使用訊息傳遞介面的矩陣視圖模型的實作相比,DGL Sparse 將程式碼長度平均降低了2.7 倍。簡化的程式碼也

使框架的開銷減少 43%

。此外DGL Sparse 與 PyTorch 相容,可輕鬆與 PyTorch 生態系統中的各種工具和套件整合。

開始使用 DGL 1.0

DGL 1.0 已經在全平台發布,並且可以使用 pip 或 conda 輕鬆安裝。除了前面介紹的範例之外,DGL Sparse 的第一個版本還包括 5 個教學和 11 個端到端範例,所有教學都可以在 Google Colab 中直接體驗,而無需本機安裝。

#########想了解更多關於 DGL 1.0 的新功能,請參考作者的發布日誌。如果您在使用 DGL 的過程中遇到任何問題或有任何建議和回饋,也可以透過 Discuss 論壇或 Slack 聯絡 DGL 團隊。 ######

以上是10行程式碼搞定圖Transformer,圖神經網路框架DGL迎來1.0版本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!