CS224W-08-Graph Neural Networks

Graph Neural Network

本文爲中文筆記翻譯,其英文原文地址爲Graph Neural Network

在上一節中,我們學習瞭如何使用“淺層編碼器”表示圖。這些技術爲我們提供了在向量空間中表示圖的強大方式,但也有其侷限性。在本節中,我們將探索使用圖神經網絡克服限制的三種不同方法。

Limitation of “Shallow Encoders”(淺層編碼器”的侷限性)

  • 淺編碼器無法縮放,因爲每個節點都有唯一的嵌入。
  • 淺層編碼器具有固有的傳導性。它只能爲單個固定圖生成嵌入。
  • 不考慮節點的特徵。
  • 不能將淺層編碼器推廣到具有不同損失函數的訓練中。

幸運的是,圖神經網絡可以解決上述限制。

Graph convolutional Networks(GCN, 圖神經網絡)

傳統上,神經網絡是爲固定大小的圖設計的。例如,我們可以將圖像視爲網格圖,或將一段文本視爲線圖。但是,現實世界中的大多數圖具有任意大小和複雜的拓撲結構。因此,我們需要不同地定義GCN的計算圖。

假設給定圖 G=(V,A,X)G=(V,A,X) :

  • VV 是頂點集合
  • AA 是鄰接矩陣
  • XRm×VX \in \mathbb{R}^{m \times|V|} 是節點的特徵矩陣

計算圖和廣義卷積在這裏插入圖片描述
假設示例圖(上圖左圖)爲圖 GG 。我們的目標是定義在圖 GG 上的GCN計算圖。計算圖應同時保持圖 GG 的結構和合並節點的相鄰要素。例如,節點的嵌入向量 AA 應該包括它的鄰居 {B,C,D}\left\{B,C,D\right\} 並且和 {B,C,D}\left\{B,C,D\right\} 的順序無關。一種方法是簡單地取 {B,C,D}\left\{B,C,D\right\} 的平均值。通常,聚合函數(上圖右圖中的方框)必須是階不變的(最大值,平均值等)。上圖具有兩層計算圖 GG 如下所示:在這裏插入圖片描述

這裏,每個節點都基於其鄰居定義一個計算圖。特別的,節點 AA 的計算圖結構如下所示:(第0層是輸入層,輸入爲節點特徵 XiX_{i} ):在這裏插入圖片描述

Deep Encoders(深度編碼器)

有了以上想法,這是節點 vv 使用平均聚合函數的每一層的數學表達式 :

  • 在第0層: hv0=xvh_{v}^{0} = x_{v}, 表示節點特徵
  • 在第k層:
    hvk=σ(WkuN(v)huk1N(v)+Bkhvk1),k{1,,K}h_{v}^{k}=\sigma\left(W_{k} \sum_{u \in N(v)} \frac{h_{u}^{k-1}}{|N(v)|}+B_{k} h_{v}^{k-1}\right), \forall k \in\{1, \ldots, K\}

hvk1h_{v}^{k-1} 是節點 vv 從上一層開始的嵌入。N(v)|N(v)| 是節點 vv 的鄰居數。$\sum_{u \in N(v)}\frac{h_{u}^{k-1}}{|N(v)|} $ 的目的是聚合節點 vv 上一層的所有鄰居特徵。σ\sigma 是引入非線性的激活函數(例如ReLU)。WkW_{k}BkB_{k} 是可訓練的參數。

  • 輸出層: zv=hvKz_{v}=h_{v}^K 是K層嵌入後的最後的嵌入層。

等效地,以上計算可以以寫成整個圖矩陣乘法的形式:
Hl+1=σ(HlW0l+A~HlW1l) such that A~=D12AD12 H^{l+1}=\sigma\left(H^{l} W_{0}^{l}+\tilde{A} H^{l} W_{1}^{l}\right) \text { such that } \tilde{A}=D^{-\frac{1}{2}} A D^{-\frac{1}{2}}

Training the Model

我們可以爲這些嵌入提供給任何損失函數,並進行隨機梯度下降訓練參數。例如,對於二進制分類任務,我們可以將損失函數定義爲:
L=vVyvlog(σ(zvTθ))+(1yv)log(1σ(zvTθ)) L=\sum_{v \in V} y_{v} \log \left(\sigma\left(z_{v}^{T} \theta\right)\right)+\left(1-y_{v}\right) \log \left(1-\sigma\left(z_{v}^{T} \theta\right)\right)
yv{0,1}y_{v}\in\left\{0,1\right\} 是節點類標籤。zvz_{v} 是編碼器的輸出。$\theta $ 是分類權重。σ\sigma 可以是 sigmoid 函數。σ(zvTθ)\sigma(z^T_{v}\theta) 表示節點 vv 的預測概率。因此,如果標籤爲正 (yv=1)(y_{v}=1),則損失函數方程將計算前半部分,否則,損失函數方程將計算後半部分。
我們還可以通過以下方式以無監督的方式訓練模型:隨機遊走,圖形分解,節點接近等。

Inductive Capability(歸納能力)

GCN可以應用在圖中看不見的節點。例如,如果使用節點 A,B,CA,B,C 訓練模型,由於參數在所有節點之間共享,新添加的節點 D,E,FD,E,F 因此也可以進行評估。在這裏插入圖片描述

GraphSAGE

本文爲中文筆記翻譯,其英文原文地址爲Graph Neural Networks
到目前爲止,我們已經探索了一種簡單的鄰域聚合方法,但是我們還可以將聚合方法概括爲以下形式:
hvK=σ([WkAGG({huk1,uN(v)}),Bkhvk1]) h_{v}^{K}=\sigma\left(\left[W_{k} A G G\left(\left\{h_{u}^{k-1}, \forall u \in N(v)\right\}\right), B_{k} h_{v}^{k-1}\right]\right)
對於節點 vv,我們可以應用不同的彙總方法(AGGAGG)與將其鄰居和節點 vv 本身的特徵相連接。

下面是一些常用的聚合函數:

  • 平均值:取其鄰居的加權平均值。
    AGG=uNvhuk1N(v) AGG=\sum_{u\in N_{v}}\frac{h_{u}^{k-1}}{|N(v)|}

  • 池化:轉換鄰居向量並應用對稱向量函數( γ\gamma 可以是按元素的均值或最大值)。
    AGG=γ({Qhuk1,uN(v)}) AGG=\gamma(\left\{Qh_{u}^{k-1},\forall u\in N(v)\right\})

  • LSTM:使用LSTM應用於重組後的鄰居。
    AGG=LSTM({huk1,uπ(N(v))}) AGG=LSTM(\left\{h_{u}^{k-1},\forall u\in \pi (N(v))\right\})

Graph Attention Networks(圖注意力網絡)

如果某些相鄰節點攜帶的信息比其他節點更重要怎麼辦?在這種情況下,我們希望通過使用注意力技巧將不同的權重分配給不同的相鄰節點。

假設 αvu\alpha_{vu} 是節點 uu 向節點 vv 傳遞的信息的加權因子(重要性)。 根據上面的平均聚合函數,我們定義了 α=1N(v)\alpha=\frac{1}{|N(v)|}。但是,我們也可以基於圖的結構特性顯式定義 α\alpha

Attention Mechanism(注意力機制)

αuv\alpha_{uv} 爲計算注意力機制 aa 的副產物,它根據節點對 u,vu,v 的消息計算注意力係數 evue_{vu}
evu=a(Wkhuk1,Wkhvk1) e_{vu}=a(W_{k}h_{u}^{k-1}, W_{k}h_{v}^{k-1})
evue_{vu} 表示了節點 uu 向節點 vv 傳遞的信息的重要性,然後,我們使用 softmax 函數歸一化係數以比較不同鄰居之間的重要性:
α=exp(evu)kN(v)exp(evk) \alpha=\frac{\exp(e_{vu})} {\sum_{k\in N(v) \exp (e_{v k})}}
因此有:
hvk=σ(uN(v)αvuWkhuk1) h_{v}^{k}=\sigma(\sum_{u \in N(v)}\alpha_{v u}W_{k}h_{u}^{k-1})
該方法與的選擇的 aa 無關,並且可以與 WkW_{k} 一起訓練參數。

參考

以下是有用的參考資料列表:

教程和概述:

基於注意力的鄰居節點聚合:

整個圖嵌入:

節點嵌入:

圖神經網絡的譜方法:

其他GNN方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章