NYU、AWS聯合推出:全新圖神經網絡框架DGL正式發布

2021-01-11 機器之心Pro

機器之心發布

作者:DGL Team

深度神經網絡在近年來的發展和成功有目共睹。這些網絡架構成功的一個重要原因在於其能有效地捕捉到了數據內在的相關性,並在不同的抽象級別構建表示 (representation)。比如 CNN 刻畫了圖片中相鄰像素點間的空間不變性;RNN 抓住了文本數據的有序線性結構。

CNN 和 RNN 的成功讓人思考——我們是否能將此思想拓展到其他結構的數據上呢?事實上,人們一直在探索如何將深度學習應用於更廣泛的結構數據中。早在 2014 年,Kai Sheng Tai 等人就研究了能在文本語法樹上訓練的樹神經網絡模型 TreeLSTM。這個工作在一定程度上衝擊了大家用 RNN 處理文本的範式,並且用樹型結構看待文本數據開創了很多新的研究可能。從鍊表到樹,從樹到圖:近年來,對於圖神經網絡(Graph Neural Network)的研究熱潮使得神經網絡的應用領域大大增加。

小到分子結構圖([Gilmer et al., 2017], [Jin et al., 2018]),大到知識圖譜([Schlichtkrull et al., 2017])、社交網絡和推薦系統([Ying et al., 2018]),圖神經網絡都展現了強大的應用潛力。

廣義上說,沒有一個點的特徵表達是孤立的;豐富特徵的一個重要手段必然是融合該點和其他鄰居點的互動。從這個意義上來說,CNN 和 RNN 分別把空間和時間上的相鄰點看作互動對象是非常粗糙的。把圖和深度學習結合的意義正在於突破這個局限。

由於結構數據的普適性,Google, Deepmind, Pinterest 等公司也紛紛在這一領域發力。除了數據,深度神經網絡模型的發展也有著更加動態和更加稀疏的趨勢。這源於目前深度神經網絡對於算力的需求已經達到了一個驚人的地步。同時,我們觀察到現在還沒有一個框架既高效,又好用,能幫助開發新的模型。

(比如目前火熱的 BERT 模型在一臺 8 塊 V100 的伺服器上預計訓練時間是 42 天。)

於是一個很現實的問題是如何設計「既快又好」的深度神經網絡?也許更加動態和稀疏的模型會是答案所在。可見,不論是數據還是模型,「圖」應該成為一個核心概念。

基於這些思考,我們開發了 Deep Graph Library(DGL),一款面向圖神經網絡以及圖機器學習的全新框架。

在設計上,DGL 秉承三項原則:

DGL 必須和目前的主流的深度學習框架(PyTorch、MXNet、TensorFlow 等)無縫銜接。從而實現從傳統的 tensor 運算到圖運算的自由轉換。DGL 應該提供最少的 API 以降低用戶的學習門檻。在保證以上兩點的基礎之上,DGL 能高效並透明地並行圖上的計算,以及能很方便地擴展到巨圖上。

這裡,我們簡單介紹 DGL 是如何實現以上目標的。

設計一:DGL 是一個「框架上的框架」

神經網絡計算的重要核心是稠密張量計算和自動求導。當前神經網絡框架對此都已經有了非常良好的支持。此外,由於神經網絡模型的日益模塊化,用戶對於這些深度學習的框架的黏性度也越來越高。

為了避免重複造輪子(build a wheel again),DGL 在設計上採取了類似 Keras 的做法——基於主流框架之上進行開發。但又不同於 Keras,DGL 並不限制用戶必須使用自己的語法。相反,DGL 鼓勵用戶在兩者間靈活地使用。比如用戶可以使用他們偏愛的框架編寫常見的卷積層和注意力層,而當遇到圖相關的計算時則可以切換為 DGL。用戶通過 DGL 調用的計算,經過系統優化,仍然調用底層框架的運算和自動求導等功能,因此開發和調試都能更快上手。用戶和 DGL 的交互主要通過自定義函數 UDF(user-defined function)。在下一節編程模型我們將繼續展開。目前 DGL 支持 Pytorch 以及 MXNet/Gluon 作為系統後端。

設計二:基於「消息傳遞」(message passing)編程模型

消息傳遞是圖計算的經典編程模型。原因在於圖上的計算往往可以表示成兩步:

發送節點根據自身的特徵(feature)計算需要向外分發的消息。接受節點對收到的消息進行累和並更新自己的特徵。

比如常見的卷積圖神經網絡 GCN(Graph Convolutional Network)可以用下圖中的消息傳遞模式進行表示(圖中 h 表示節點各自的特徵)。用戶可以定製化消息函數(message function),以及節點的累和更新函數(reduce function)來構造新的模型。事實上,在 Google 的 2017 年的論文中 [Gilmer et al. 2017] 將很多圖神經網絡都歸納到了這一體系內。

DGL 的編程模型正基於此。以下是圖卷積網絡在 DGL 中的實現(使用 Pytorch 後端):

可以看到,用戶可以在整個程序中靈活地使用 Pytorch 運算。而 DGL 則只是輔助地提供了諸如 mailbox、send、recv 等形象的消息傳遞 API 來幫助用戶完成圖上的計算。在我們內部的項目預演中,我們發現熟悉深度學習框架的用戶可以很快上手 DGL 並著手開發新模型。

設計三:DGL 的自動批處理(auto-batching)

好的系統設計應該是簡單透明的。在提供用戶最大的自由度的同時,將系統優化最大程度地隱藏起來。圖計算的主要難點在於並行。

我們根據模型特點將問題劃分為三類。首先是處理單一靜態圖的模型(比如 citation graph),其重點是如何並行計算多個節點或者多條邊。DGL 通過分析圖結構能夠高效地將可以並行的節點分組,然後調用用戶自定義函數進行批處理。相比於現有的解決方案(比如 Dynet 和 TensorflowFold),DGL 能大大降低自動批處理的開銷從而大幅提高性能。

第二類是處理許多圖的模型(比如 module graph),其重點是如何並行不同圖間的計算。DGL 的解決方案是將多張圖合併為一張大圖的多個連通分量,從而將該類模型轉化為了第一類。

第三類是巨圖模型(比如 knowledge graph),對此,DGL 提供了高效的圖採樣接口,將巨圖變為小圖樣本,從而轉化為第一類問題。

目前 DGL 提供了 10 個示例模型,涵蓋了以上三種類別。其中除了 TreeLSTM,其餘都是 2017 年以後新鮮出爐的圖神經網絡,其中包括幾個邏輯上相當複雜的生成模型(DGMG、JTNN)我們也嘗試用圖計算的方式重寫傳統模型比如 Capsue 和 Universal Transformer,讓模型簡單易懂,幫助進一步擴展思路。

我們也對 DGL 的性能進行了測試:

可以看到,DGL 能在這些模型上都取得了相當好的效果。我們也對 DGL 在巨圖上的性能進行了測試。在使用 MXNet/Gluon 作為後端時,DGL 能支持在千萬級規模的圖上進行神經網絡訓練。

DGL 現已開源。

主頁地址:http://dgl.ai項目地址:https://github.com/jermainewang/dgl初學者教程:https://docs.dgl.ai/tutorials/basics/index.html所有示例模型的詳細從零教程:https://docs.dgl.ai/tutorials/models/index.html

我們歡迎任何來自社區的貢獻,同時也希望能和大家一起學習進步,推動結構化深度學習這一個新方向。

DGL 項目由紐約大學、紐約大學上海分校、AWS 上海研究院以及 AWS MXNet Science Team 共同開發(詳見 https://www.dgl.ai/ack)。

相關焦點

  • DGL | 基於深度學習框架DGL的分子圖初探
    紐約大學、紐約大學上海分校、AWS上海研究院以及AWS MXNet Science Team共同開源了一個面向圖神經網絡及圖機器學習的全新框架,
  • 專欄 | 手把手教你用DGL框架進行批量圖分類
    隨著近來學界對於圖神經網絡的熱情持續高漲,出現了一批用圖神經網絡做圖分類的工作。比如訓練圖神經網絡來預測蛋白質結構的性質,根據社交網絡結構來預測用戶的所屬社區等(Ying et al., 2018, Cangea et al., 2018, Knyazev et al., 2018, Bianchi et al., 2019, Liao et al., 2019, Gao et al., 2019)。
  • 專欄| 手把手教你用DGL框架進行批量圖分類
    它的應用廣泛,可見於生物信息學、化學信息學、社交網絡分析、城市計算以及網絡安全。隨著近來學界對於圖神經網絡的熱情持續高漲,出現了一批用圖神經網絡做圖分類的工作。比如訓練圖神經網絡來預測蛋白質結構的性質,根據社交網絡結構來預測用戶的所屬社區等(Ying et al., 2018, Cangea et al., 2018, Knyazev et al., 2018, Bianchi et al., 2019, Liao et al., 2019, Gao et al., 2019)。
  • 一文讀懂圖神經網絡
    在論文《Relational inductive biases, deep learning, and graph networks》中,作者定義了通用圖網絡框架graph networks (GN) framework,概括和擴展了各種圖神經網絡,並且支持使用簡單的模塊來構建複雜的結構。
  • DGL-LifeSci:面向化學和生物領域的 GNN 算法庫
    DGL團隊發布了以生命科學為重點的軟體包DGL-LifeSci。
  • 強化學習、聯邦學習、圖神經網絡,飛槳全新工具組件詳解
    機器之心發布機器之心編輯部11 月 5 日,在 Wave Summit+2019 秋季深度學習開發者峰會上,飛槳全新發布和重要升級了最新的 21 項進展,在深度學習開發者社區引起了巨大的反響。更多內容可參考:https://github.com/PaddlePaddle/PALMPGL 圖神經網絡近幾年來,深度神經網絡的成功推動了人工智慧的發展,然而,在實際場景中,有大量的數據是在非歐式空間的,這限制了深度神經網絡的應用。
  • 騰訊優圖開源神經網絡框架 ncnn ,主打移動端
    ncnn 是騰訊優圖實驗室首個開源項目,是一個為手機端極致優化的高性能神經網絡前向計算框架,於今日正式開源。ncnn 從設計之初深刻考慮手機端的部署和使用。
  • 基於複數神經網絡首發量子機器學習開發工具 「量槳」,飛槳布局...
    (圖:百度首席技術官王海峰)百度集團副總裁、深度學習技術及應用國家工程實驗室副主任吳甜正式對外發布飛槳最新的全景圖,包含飛槳開源深度學習平臺和飛槳企業版兩部分。(圖:飛槳核心框架架構全景)為了滿足時代與政策雙重作用下猛增的「智能化」快速轉型需求,飛槳此次全平臺全新發布和升級35項技術能力。
  • 比DGL快14倍:PyTorch圖神經網絡庫PyG上線了
    項目連結:https://github.com/rusty1s/pytorch_geometricLeCun評價:一個快速且漂亮的幾何深度學習庫(適用於圖神經網絡與其他不規則結構)PyTorch Geometric
  • 亞馬遜開源神經機器翻譯框架Sockeye:基於Apache MXNet的NMT平臺
    隨著神經機器翻譯(NMT)技術的不斷演進,越來越多的科研機構和公司選擇開源自己的項目,讓更多人能夠開發出自己的 NMT 模型。此前,清華大學開源了神經機器翻譯工具包 THUMT,谷歌也推出了基於 TensorFlow 的 NMT 模型搭建教程。作為 MXNet 的支持者,亞馬遜也開源了自己的 NMT 框架 Sockeye。
  • 亞馬遜推出Honeycode新應用,品牌域名跳轉至.aws
    據外媒消息,昨天亞馬遜對外宣布,推出一項名為Honeycode的新項目。該項目宣稱一些不會編碼的人員也能夠在零編碼知識基礎下構建移動和Web應用程式,這被認為是產品經理的福音。據了解,Honeycode可用於使用AWS內置資料庫來構建應用程式,例如項目管理應用程式或任務跟蹤應用程式,以管理小型團隊中的工作流。
  • 乾貨 | 語音識別全面進入CNN時代:會讀「語譜圖」的全新語音識別框架
    去年12月21日,在北京國家會議中心召開的以「AI復 始,萬物更新」為主題的年度發布會上,科大訊飛提出了以前饋型序列記憶網絡(FSMN, Feed-forward Sequential Memory Network)為代表的新一代語音識別系統,讓大家眼前一亮[1]。
  • 極驗發布全國首個專注於圖神經網絡的書籍,《深入淺出圖神經網絡...
    圖神經網絡是當前 AI 領域最為火爆的研究熱點之一,學術界與工業界各大公司紛紛投入大量資源研究。它在因果推理上擁有巨大潛力,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題,而這些問題被業界認為是能夠推動 AI 出現實質性進展的關鍵。
  • 圖神經網絡前沿綜述:動態圖網絡
    雪梨科技大學的 Katarzyna 團隊最近發表了預印本論文,對實際的複雜網絡以時間尺度進行分類,並以此為基礎總結了目前用於表徵動態複雜網絡數據的各種圖神經網絡架構。 本文首發自集智斑圖,完整論文資料清單請掃碼獲取: 動態網絡模型在靜態網絡的基礎上增加了時間維度,使其能同時表徵複雜系統的結構和時序信息,在生物、醫藥、社交網絡等領域被廣泛使用。另外,雖然圖神經網絡(GNN)在靜態複雜網絡的數據挖掘中披荊斬棘,但大多工作都不能處理這額外的時間維度。
  • 百度飛槳PGL-UniMP刷新3項任務記錄 登頂圖神經網絡權威榜單OGB
    9月18日,百度正式公布在圖神經網絡領域取得新突破,提出融合標籤傳遞和圖神經網絡的統一模型UniMP(Unified Message Passing),在圖神經網絡權威榜單OGB(Open Graph Benchmark)取得多項榜首,引發業界關注。  Leaderboard for ogbn-products
  • 初學AI神經網絡應該選擇Keras或是Pytorch框架?
    對於許多開發者來說,TensorFlow是他們接觸的第一個機器學習框架。TensorFlow框架儘管意義非凡,引起極大關注和神經網絡學習風潮,但對一般開發者用戶太不友好。軟體開發者畢竟不是科學家,很多時候簡單易學易用是程式設計師選擇的第一要素。
  • 清華大學圖神經網絡綜述:模型與應用
    機器之心專欄作者:PaperWeekly近年來,圖神經網絡的研究成為深度學習領域的熱點,機器之心曾介紹過清華大學朱文武等人綜述的圖網絡。近日,清華大學孫茂松組在 arXiv 上發布預印版綜述文章 Graph Neural Networks: A Review of Methods and Applications。
  • RPI-IBM團隊提出圖結構&表徵聯合學習新範式IDGL:用於圖神經網絡的...
    ,以幫助圖神經網絡 (GNN) 使用者在圖結構未知或存在噪聲的情況下,在特定下遊任務中取得最優的性能。自2016年圖卷積神經網絡 (GCN) 被推出以來,各類新式GNN模型層出不窮,成為各類AI頂級會議的常客。憑藉其強大的圖表徵學習能力,GNN在自然語言處理 (NLP)、計算機視覺 (CV) 、藥物發現、推薦系統等眾多應用領域取得了一系列重大進展。
  • 開放銀行大勢所趨騰訊雲與長亮科技聯合推出分布式金融業務服務框架
    在此背景下,5月22日,騰訊雲與長亮科技聯合發布新一代分布式金融業務框架TDBF,助力金融行業客戶改變系統建設模式,快速實現開放金融業務平臺。2-敏捷智能的業務支撐平臺敏捷智能的業務支撐平臺,包括前端的可擴展開發平臺與後端的框架,以及智能風控、營銷、運營的相關平臺,形成一整套智能的系統,例如移動金融開發平臺TMF、騰訊+長亮科技聯合推出BPaaS產品「分布式金融業務服務框架TDBF」、金融風控平臺天御、靈鯤、
  • 蘋果在WWDC上推出新的機器學習框架Core ML | 一周AI新聞
    WWDC | 蘋果發布了新的機器學習框架, 還有一系列硬體產品 6日,蘋果開發者大會(Worldwide Developers Conference)在美國聖何塞如期召開。素來以「軟體改變世界」的蘋果這次在硬體方面有了許多動作:除了包括iOS 11、macOS High Sierra、watchOS 4在內的各種作業系統,還重點推出了新款iPad Pro、全新的iMac Pro、以及多年以來的又一款新產品:智能音箱HomePod。在iOS 11更好的Siri、手機上的AR應用背後,Core ML就是蘋果新推出的,面向開發者的機器學習框架。