Introduction to Graph Neural Network (GNN): A Primer
DeepMind 在 2018 年6月發表名為 “Relational inductive biases, deep learning, and graph networks” 的文章,提到 graph neural networks 的概念。在這篇文章中,graph 可以從兩個方面來定義:從輸入(Input as a graph)和從模型架構(Model architecture as a graph)談起。模型架構在這裡指的是具有多層的類神經網路架構。本文我們會以 Graph 來表示電腦圖學中所定義,包含一組節點集合和另一組連結節點的邊線集合。而 graph 澤端看上下文的意思。
從輸入資料來看,任何具有結構的表現方式(structured representation),若能用 graph 呈現,則以 graph 輸入來訓練模型(見上圖左,包括了化學原子到 Visual Q&A)等。
從類神經網路到 Relation 學習
類神經網路則可以看作 graph-based 的學習模型,而連接的型態則提供架構如何引入 relation inductive bias 的說明。 Relation inductive bias 是在做邏輯推論時來自先驗知識的偏好。擁有 relation inductive bias,可以幫助人或演算法節省計算的空間。除了 fully-connected layer 沒有引入 inductive bias 外,convolution neural network (CNN) 和 recurrent neural network (RNN) 的連結方式都提供寶貝的線索。CNN 是在空間中共享,所以可以看作 CNN 對空間上的連結方式有喜好。同樣的,RNN 則為對時間上的連結有喜好(上圖右)。
過往,對於學習 relation,學者們多認為類神經網路尤其是 fully connected layer 不是一個好的模型。但該文章的作者指出, 類神經網路具有特徵學習的能力,或將離散的節點與邊線(edges) 以分散式的特徵學習法轉為在連續域的向量表示法。若能透過將類神經網路的 active function 視為 rule,則可以仿效 rule-based 的學習方式學習。
但要直接使用類神經網路來做學習 relation 的模型仍有一個問題:那便是所謂的 combinatorial generalization。Combinatorial generalization 亦即該如何學習實體間不同的組合方式。此文章作者們提出 graph network 的概念來解決這個問題。有別於其他概念下的 graphical models,該 network 是以 Graph 為輸入,輸出一個 Graph。這裡的 Graph 允許兩節點間擁有 multiple directed edge,且除了節點和邊線擁有各自的 attributes 外,整張圖更有一個全域性的 attribute。在演算法上,使用 message passing 演算法來一步步更新 Graph 中每一個元件( 節點和邊線)和整張圖的表示法。
最後,作者將此專案的原始碼開源,大家可以到這個 GitHub repo 先玩玩tutorial。
附註:
- 本文最早發表於 facebook 臉書專頁。