Graph Neural Network
本文爲中文筆記翻譯,其英文原文地址爲Graph Neural Network
在上一節中,我們學習瞭如何使用“淺層編碼器”表示圖。這些技術爲我們提供了在向量空間中表示圖的強大方式,但也有其侷限性。在本節中,我們將探索使用圖神經網絡克服限制的三種不同方法。
Limitation of “Shallow Encoders”(淺層編碼器”的侷限性)
- 淺編碼器無法縮放,因爲每個節點都有唯一的嵌入。
- 淺層編碼器具有固有的傳導性。它只能爲單個固定圖生成嵌入。
- 不考慮節點的特徵。
- 不能將淺層編碼器推廣到具有不同損失函數的訓練中。
幸運的是,圖神經網絡可以解決上述限制。
Graph convolutional Networks(GCN, 圖神經網絡)
傳統上,神經網絡是爲固定大小的圖設計的。例如,我們可以將圖像視爲網格圖,或將一段文本視爲線圖。但是,現實世界中的大多數圖具有任意大小和複雜的拓撲結構。因此,我們需要不同地定義GCN的計算圖。
假設給定圖 :
- 是頂點集合
- 是鄰接矩陣
- 是節點的特徵矩陣
計算圖和廣義卷積
假設示例圖(上圖左圖)爲圖 。我們的目標是定義在圖 上的GCN計算圖。計算圖應同時保持圖 的結構和合並節點的相鄰要素。例如,節點的嵌入向量 應該包括它的鄰居 並且和 的順序無關。一種方法是簡單地取 的平均值。通常,聚合函數(上圖右圖中的方框)必須是階不變的(最大值,平均值等)。上圖具有兩層計算圖 如下所示:
這裏,每個節點都基於其鄰居定義一個計算圖。特別的,節點 的計算圖結構如下所示:(第0層是輸入層,輸入爲節點特徵 ):
Deep Encoders(深度編碼器)
有了以上想法,這是節點 使用平均聚合函數的每一層的數學表達式 :
- 在第0層: , 表示節點特徵
- 在第k層:
是節點 從上一層開始的嵌入。 是節點 的鄰居數。$\sum_{u \in N(v)}\frac{h_{u}^{k-1}}{|N(v)|} $ 的目的是聚合節點 上一層的所有鄰居特徵。 是引入非線性的激活函數(例如ReLU)。 和 是可訓練的參數。
- 輸出層: 是K層嵌入後的最後的嵌入層。
等效地,以上計算可以以寫成整個圖矩陣乘法的形式:
Training the Model
我們可以爲這些嵌入提供給任何損失函數,並進行隨機梯度下降訓練參數。例如,對於二進制分類任務,我們可以將損失函數定義爲:
是節點類標籤。 是編碼器的輸出。$\theta $ 是分類權重。 可以是 sigmoid 函數。 表示節點 的預測概率。因此,如果標籤爲正 ,則損失函數方程將計算前半部分,否則,損失函數方程將計算後半部分。
我們還可以通過以下方式以無監督的方式訓練模型:隨機遊走,圖形分解,節點接近等。
Inductive Capability(歸納能力)
GCN可以應用在圖中看不見的節點。例如,如果使用節點 訓練模型,由於參數在所有節點之間共享,新添加的節點 因此也可以進行評估。
GraphSAGE
本文爲中文筆記翻譯,其英文原文地址爲Graph Neural Networks
到目前爲止,我們已經探索了一種簡單的鄰域聚合方法,但是我們還可以將聚合方法概括爲以下形式:
對於節點 ,我們可以應用不同的彙總方法()與將其鄰居和節點 本身的特徵相連接。
下面是一些常用的聚合函數:
-
平均值:取其鄰居的加權平均值。
-
池化:轉換鄰居向量並應用對稱向量函數( 可以是按元素的均值或最大值)。
-
LSTM:使用LSTM應用於重組後的鄰居。
Graph Attention Networks(圖注意力網絡)
如果某些相鄰節點攜帶的信息比其他節點更重要怎麼辦?在這種情況下,我們希望通過使用注意力技巧將不同的權重分配給不同的相鄰節點。
假設 是節點 向節點 傳遞的信息的加權因子(重要性)。 根據上面的平均聚合函數,我們定義了 。但是,我們也可以基於圖的結構特性顯式定義 。
Attention Mechanism(注意力機制)
設 爲計算注意力機制 的副產物,它根據節點對 的消息計算注意力係數 :
表示了節點 向節點 傳遞的信息的重要性,然後,我們使用 softmax 函數歸一化係數以比較不同鄰居之間的重要性:
因此有:
該方法與的選擇的 無關,並且可以與 一起訓練參數。
參考
以下是有用的參考資料列表:
教程和概述:
- Relational inductive biases and graph networks (Battaglia et al., 2018)
- Representation learning on graphs: Methods and applications (Hamilton et al., 2017)
基於注意力的鄰居節點聚合:
整個圖嵌入:
- Graph neural nets with edge embeddings (Battaglia et al., 2016; Gilmer et. al., 2017)
- Embedding entire graphs (Duvenaud et al., 2015; Dai et al., 2016; Li et al., 2018) and graph pooling (Ying et al., 2018, Zhang et al., 2018)
- Graph generation and relational inference (You et al., 2018; Kipf et al., 2018)
- How powerful are graph neural networks(Xu et al., 2017)
節點嵌入:
- Varying neighborhood: Jumping knowledge networks Xu et al., 2018), GeniePath (Liu et al., 2018
- Position-aware GNN (You et al. 2019)
圖神經網絡的譜方法:
- Spectral graph CNN & ChebNet [Bruna et al., 2015; Defferrard et al., 2016)
- Geometric deep learning (Bronstein et al., 2017; Monti et al., 2017)
其他GNN方法