DeepMind圖網路庫開源了!

天府雲創發表於2018-10-22

解決關係推理,從圖網路入手!DeepMind圖網路庫開源了!

來源:GitHub、arXiv

        DeepMind今天開源了內部的Graph Nets庫,用於在TensorFlow中構建簡單而強大的關係推理網路。“圖網路”由DeepMind、谷歌大腦、MIT等27位研究者提出,由於其支援關係推理和組合泛化的優勢,引起大量關注。

<iframe allowfullscreen="" data-src="https://v.qq.com/iframe/preview.html?width=500&amp;height=375&amp;auto=0&amp;vid=b07093cjnqb" src="https://v.qq.com/iframe/player.html?width=500&amp;height=375&amp;auto=0&amp;vid=b07093cjnqb" width="500" height="375" class="center-iframe"></iframe>

DeepMind提出的簡單而強大的關係推理網路“graph network”終於開源了!

今年6月,由DeepMind、谷歌大腦、MIT 和愛丁堡大學等公司和機構的 27 位科學家共同發表了一篇論文Relational inductive biases, deep learning, and graph networks,提出了圖網路(graph network)的概念。“讓深度學習也能因果推理”,這篇論文引起了業內的大量關注。

【CNN已老,GNN來了】DeepMind、谷歌大腦、MIT等27位作者重磅論文,圖網路讓深度學習也能因果推理

簡單的說,圖網路(graph network)是將graph作為輸入,並返回graph作為輸出的神經網路。輸入圖具有edge-(E ), node-(V ), 和global-level(u) 的屬性。輸出圖具有相同的結構,但更新了屬性。 Graph networks是更廣泛的“graph neural networks”家族的一部分 (Scarselli et al., 2009)。

這篇論文裡,作者詳細解釋了他們的“圖網路”。圖網路(GN)的框架定義了一類用於圖形結構表示的關係推理的函式。GN 框架概括並擴充套件了各種的圖神經網路、MPNN、以及 NLNN 方法,並支援從簡單的構建塊(building blocks)來構建複雜的結構。

GN 框架的主要計算單元是 GN block,即 “graph-to-graph” 模組,它將 graph 作為輸入,對結構執行計算,並返回 graph 作為輸出。如下面的 Box 3 所描述的,entity 由 graph 的節點(nodes),邊的關係(relations)以及全域性屬性(global attributes)表示。

論文中對“graph”的定義

論文作者用 “graph” 表示具有全域性屬性的有向(directed)、有屬性(attributed)的 multi-graph。一個節點(node)表示為,一條邊(edge)表示為,全域性屬性(global attributes)表示為u。和表示傳送方(sender)和接收方(receiver)節點的指標(indices)。具體如下:

  • Directed:單向,從 “sender” 節點指向 “receiver” 節點。
  • Attribute:屬性,可以編碼為向量(vector),集合(set),甚至另一個圖(graph)
  • Attributed:邊和頂點具有與它們相關的屬性
  • Global attribute:graph-level 的屬性
  • Multi-graph:頂點之間有多個邊

GN 框架的 block 的組織強調可定製性,並綜合表示所需關係歸納偏置(inductive biases)的新架構。

論文:Relational inductive biases, deep learning, and graph networks

地址:https://arxiv.org/pdf/1806.01261.pdf

圖網路為什麼重要?

康納爾大學數學博士/MIT博士後Seth Stafford則認為,圖神經網路(Graph NNs)可能解決圖靈獎得主Judea Pearl指出的深度學習無法做因果推理的核心問題。

Judea Pearl

圖靈獎得主、貝葉斯網路之父Judea Pearl,在ArXiv釋出了他的論文《機器學習理論障礙與因果革命七大火花》,論述當前機器學習理論侷限,並給出來自因果推理的7大啟發。Pearl指出,當前的機器學習系統幾乎完全以統計學或盲模型的方式執行,不能作為強AI的基礎。他認為突破口在於“因果革命”,借鑑結構性的因果推理模型,能對自動化推理做出獨特貢獻。

如何解決這個問題?DeepMind認為,要從“圖網路”入手。

現在,這篇重磅論文的開源軟體庫終於釋出了!可以用於在TensorFlow和Sonnet中構建Graph Nets。

在TensorFlow中構建Graph Nets

安裝

Graph Nets庫可以從pip安裝。

此安裝與Linux/Mac OS X以及Python 2.7和3.4+相容。

要安裝庫,請執行:

1$ pip install graph_nets

用例

以下程式碼用於構建一個簡單的graph net模組,並將其與資料連線。

1importgraph_nets asgn

2importsonnet assnt

3

4# Provide your own functions to generate graph-structured data.

5input_graphs = get_graphs()

6

7# Create the graph network.

8graph_net_module = gn.modules.GraphNetwork(

9edge_model_fn=lambda: snt.nets.MLP([32, 32]),

10node_model_fn=lambda: snt.nets.MLP([32, 32]),

11global_model_fn=lambda: snt.nets.MLP([32, 32]))

12

13# Pass the input graphs to the graph network, and return the output graphs.

14output_graphs = graph_net_module(input_graphs)

Jupyter notebooks演示

這個庫包括demos,演示如何在最短路徑查詢任務、排序任務和物理預測任務上建立、操作和訓練graph networks,以推理圖結構化資料。每個demo都使用相同的graph network架構,突出了該方法的靈活性。

在瀏覽器 Colaboratory 中嘗試演示

要在本地沒有安裝任何內容的情況下嘗試demo,你可以通過雲Colaboratory後端,在瀏覽器(甚至手機上)執行demo。

在瀏覽器中執行“最短路徑演示”

“最短路徑演示”建立隨機的graph,並訓練圖網路以標記任意兩個節點之間的最短路徑上的節點和邊緣。在一系列訊息傳遞步驟中,模型改進了對最短路徑的預測。

在瀏覽器中執行“排序演示”

“排序演示”建立隨機數列表,並訓練圖網路對列表進行排序。在一系列訊息傳遞步驟之後,模型可以準確預測哪些元素(圖中的列)緊跟在彼此的後面(行)。

在瀏覽器中執行“物理演示”

"physics demo"建立隨機質量的彈簧物理系統,並訓練一個圖網路來預測系統在下一時間步長的狀態。模型的下一步預測可作為輸入反饋進來,以建立未來軌跡的rollout。下面的每個子圖顯示了50步以上的真實和預測mass-spring系統狀態。這類似於Battaglia et al. (2016)提出的"interaction networks”裡的模型和實驗。

論文地址:

https://arxiv.org/pdf/1806.01261.pdf

GitHub地址:

https://github.com/deepmind/graph_nets

相關文章