圖注意力網絡(GAT) ICLR2018, Graph Attention Network論文詳解

背景:ICLR2018 論文,Graph Attention Network在GNN中非常重要,再之前圖卷積網絡GCN的基礎之上引入了注意力機制,非常實用。

論文地址:https://arxiv.org/abs/1710.10903

代碼地址: https://github.com/Diego999/pyGAT

目錄

一、背景與概覽

1.1 相關研究

1.2 貢獻點

1.3 相關工作

譜方法 spectral approaches

非譜方法 non-spectral approaches

注意力機制 self-attention

二、方法(重點)

2.1 方法特性

2.2 圖注意力層Graph Attention layer

輸入與輸出

特徵提取與注意力機制

Output features

multi-head attention

2.3 與同類工作的對比

算法複雜度低

更好魯棒性

不需要整張Graph

比LSTM更強

與MoNet的對比

三、實驗與評估

3.1 數據集

3.2 半監督學習transductive learning

3.3 歸納學習inductive learning

四、結論與個人總結


一、背景與概覽

圖注意力網絡(GAT)Graph attention network縮寫爲GAT,若按照首字母大寫,會與對抗生成網絡GAN混淆。所以後面GAT即本文的圖注意力網絡。

1.1 相關研究

下面三篇論文遞進關係:

  • Semi-Supervised Classification with Graph Convolutional Networks,ICLR 2017,圖卷積網絡 https://arxiv.org/abs/1609.02907
  • Graph Attention Networks,ICLR 2018.  圖注意力網絡,就是此篇文章所解析的論文 https://arxiv.org/abs/1710.10903
  • Relational Graph Attention Networks ,ICLR2019  關聯性圖注意力網絡,整合了GCN+Attention+Relational

1.2 貢獻點

  • 引入masked self-attentional layers 來改進前面圖卷積graph convolution的缺點
  • 對不同的相鄰節點分配相應的權重,既不需要矩陣運算,也不需要事先知道圖結構
  • 四個數據集上達到state of the art的準確率Cora、Citeseer、Pubmed、protein interaction

1.3 相關工作

對待圖結構的數據有兩種方法,譜方法和非譜方法

譜方法 spectral approaches

即Semi-Supervised Classification with Graph Convolutional Networks,ICLR 2017這篇文章中的方法

解析 :GCN (Graph Convolutional Network) 圖卷積網絡概覽

Finally, Kipf & Welling (2017) simplified the previous method by restricting the filters to operate in a 1-step neighborhood around each node.在每個節點周圍對卷積核做一階鄰接近似。但是此方法也有一些缺點:

  • 必須基於相應的圖結構才能學到拉普拉斯矩陣L
  • 對於一個圖結構訓練好的模型,不能運用於另一個圖結構(所以此文稱自己爲半監督的方法)

非譜方法 non-spectral approaches

One of the challenges of these approaches is to define an operator which works with different sized neighborhoods and maintains the weight sharing property of CNNs. 即每個節點的相鄰鏈接數量是不一樣的,如何能設置相應的卷積尺寸來保證CNN能夠對不同的相鄰節點進行操作。下文這種方法運用GraphSAGE, 取得了不錯的結果

William L Hamilton, Rex Ying, and Jure Leskovec. Inductive representation learning on largegraphs. Neural Information Processing Systems (NIPS), 2017.

這種方法是將相鄰節點設置爲固定的長度,然後進行specific aggregator,例如mean over all the sampled neighbors’ feature vectors, or the result of feeding them through a recurrent neural network。這種方法在幾個大的benchmarks上取得了非常好的效果。

注意力機制 self-attention

優點:可以處理任意大小輸入的問題,並且關注最具有影響能力的輸入。

注意力機制再RNN與CNN之中,都取得了不錯的效果,並且可以達到state of the art的性能。

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. arXiv preprint arXiv:1706.03762, 2017

二、方法(重點)

一整套推導下來,並不算難,沒有過於複雜的推導。下面每個公式以及每個變量我都明確的給出了其中的意義。

2.1 方法特性

The idea is to compute the hidden representations of each node in the graph, by attending over its neighbors, following a self-attention strategy. 針對每一個節點運算相應的隱藏信息,在運算其相鄰節點的時候引入注意力機制:

  • 高效:針對相鄰的節點對,並且可以並行運算
  • 靈活:針對有不同度(degree)的節點,可以運用任意大小的weight與之對應。(這裏我們解釋一個概念,節點的度degree:表示的是與這個節點相連接的節點的個數)
  • 可移植:可以將模型應用於從未見過的圖結構數據,不需要與訓練集相同。

2.2 圖注意力層Graph Attention layer

輸入與輸出

輸入

N爲節點的個數,F爲feature的個數,這表示輸入爲N個節點的每個節點的F個feature

輸出

表示對這N個節點的 F' 個輸出,輸出位N個節點的每個節點的F'個feature

這裏我們明確一下,針對的是N個節點,按照其輸入的feature預測輸出的feature。

特徵提取與注意力機制

爲了得到相應的輸入與輸出的轉換,我們需要根據輸入的feature至少一次線性變換得到輸出的feature,所以我們需要對所有節點訓練一個權值矩陣:,這個權值矩陣就是輸入與輸出的F個feature與輸出的F'個feature之間的關係。

We then perform self-attention on the nodes—a shared attentional mechanism,針對每個節點實行self-attention的注意力機制,機制爲  

注意力互相關係數爲attention coefficients:

  • 這個公式表示的節點 j 對於節點 i 的重要性,而不去考慮圖結構性的信息
  • 如前面所言,向量h就是 feature向量
  • 下標i,j表示第i個節點和第j個節點

作者通過masked attention將這個注意力機制引入圖結構之中,masked attention的含義 :只計算節點 i 的相鄰的節點 j

 節點 j 爲,其中Ni爲 節點i的所有相鄰節點。爲了使得互相關係數更容易計算和便於比較,我們引入了softmax對所有的i的相鄰節點j進行正則化:

實驗之中,注意力機制a是一個單層的前饋神經網絡,通過權值向量來確定,並且加入了 LeakyRelu的非線性激活,這裏小於零斜率爲0.2。(這裏我們回顧下幾種Relu函數,relu:小於0就是0,大於零斜率爲1;LRelu:小於零斜率固定一個值,大於零斜率爲1;PRelu:小於零斜率可變,大於零斜率爲1;還有CRelu,Elu,SELU)。注意力機制如下:

,也是我們前面需要得到的注意力互相關係數

在模型中應用相互注意機制a(Whi,Whj),通過權重向量 a 參數化,應用 LeakyReLU 激活

  • 模型權重爲
  • 轉置表示爲T
  • concatenation 用 || 表示
  • 公式含義就是權值矩陣與F'個特徵相乘,然後節點相乘後並列在一起,與權重相乘,LRelu激活後指數操作得到softmax的分子

Output features

通過上面,運算得到了正則化後的不同節點之間的注意力互相關係數normalized attention coefficients,可以用來預測每個節點的output feature:

  • 我們再回顧一下含義,W爲與feature相乘的權值矩陣
  • a爲前面算得的注意力互相關係數
  • sigema爲非線性激活
  • 遍歷的j 表示所有與i 相鄰的節點
  • 這個公式表示就是,該節點的輸出feature與與之相鄰的所有節點有關,是他們的線性和的非線性激活
  • 這個線性和的線性係數是前面求得的注意力互相關係數

multi-head attention

multi-head attention與下面這個工作類似:

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. arXiv preprint arXiv:1706.03762, 2017.

在上面的output feature加入計算multi-head的運算公式:

  • concate操作爲||
  • 第k個注意力機制爲
  • 共大K個注意力機制需要考慮,小k表示大K中的第k個
  • 輸入特徵的線性變換表示爲
  • 最終的輸出爲h' 共由KF' 個特徵影響

例如,K=3時候,結構如下

例如此圖,節點1在鄰域中具有多端注意機制,不同的箭頭樣式表示獨立的注意力計算,通過連接或平均每個head獲取 h1

對於最終的輸出,concate操作可能不那麼敏感了,所以我們直接用K平均來取代concate操作,得到最終的公式:

2.3 與同類工作的對比

因爲我們比較重點關注於運用,這部分我們粗略的看一下就好,需要的話再來細看更新。

算法複雜度低

GAT運算得到F'個特徵需要的算法複雜度

  • F':爲輸出特徵的個數
  • F:爲輸入特徵的個數
  • |V| :節點的個數
  • |E|:節點之間連接的個數

並且引入K之後,對於每個head的運算都獨立並且可以並行

更好魯棒性

與GCN的不同在於,GAT針對不同的相鄰節點的重要性進行預測,模型具有更好的性能並且對於擾動更加魯棒。

不需要整張Graph

引入注意力機制之後,只與相鄰節點有關,即共享邊的節點有關,無需得到整張graph的信息。

  • 即使丟失了i,j之間的鏈接,則不計算即可
  • 可以將模型運用於inductive learning,更好解釋性,即使graph完全看不到completely unseen,也可以運行訓練過程

比LSTM更強

The recently published inductive method of Hamilton et al. (2017) samples a fixed-size neighborhood of each node, in order to keep its computational footprint consistent; this does not allow it access to the entirety of the neighborhood while performing inference. Moreover, this technique achieved some of its strongest results when an LSTM (Hochreiter & Schmidhuber, 1997)-based neighborhood aggregator is used. This assumes the existence of a consistent sequential node ordering across neighborhoods, and the authors have rectified it by consistently feeding randomly-ordered sequences to the LSTM. Our technique does not suffer from either of these issues—it works with the entirety of the neighborhood (at the expense of a variable computational footprint, which is still on-par with methods like the GCN), and does not assume any ordering within it.

2017年Hamilton提出的inductive method爲每一個node都抽取一個固定尺寸的neighborhood,爲了計算的時候footprint是一致的(指的應該是計算的時候處理neighborhood的模式是固定的,不好改變,因此每次都抽樣出固定數量的neighbor參與計算),這樣,在計算的時候就不是所有的neighbor都能參與其中。此外,Hamilton的這個模型在使用一些基於LSTM的方法的時候能得到最好的結果,這樣就是假設了每個node的neighborhood的node一直存在着一個順序,使得這些node成爲一個序列。但是本文提出的方法就沒有這個問題,每次都可以將neighborhood所有的node都考慮進來,而且不需要事先假定一個neighborhood的順序

與MoNet的對比

As mentioned in Section 1, GAT can be reformulated as a particular instance of MoNet (Monti et al., 2016). More specifically, setting the pseudo-coordinate function to be u(x, y) = f(x)kf(y), where f(x) represent (potentially MLP-transformed) features of node x and k is concatenation; and the weight function to be wj(u) = softmax(MLP(u)) (with the softmax performed over the entire neighborhood of a node) would make MoNet’s patch operator similar to ours. Nevertheless, one should note that, in comparison to previously considered MoNet instances, our model uses node features for similarity computations, rather than the node’s structural properties (which would assume knowing the graph structure upfront). GAT可以看做一個MoNet的特例。

三、實驗與評估

實驗分成兩部分,transductive learning(半監督學習)和inductive learning(歸納學習)。模型用了兩層的GAT

3.1 數據集

圖結構的數據集,以及數據集之中的信息如下:

3.2 半監督學習transductive learning

  • 兩層 GAT
  • 在Cora 數據集上優化網絡結構的超參數,應用到Citeseer 數據集
  • 第一層 8 head, F`=8 , ELU 作爲非線性函數
  • 第二層爲分類層,一個 attention head 特徵數C,後跟 softmax 函數,爲了應對小訓練集,正則化(L2)
  • 兩層都採用 0.6 的dropout,相當於計算每個node位置的卷積時都是隨機的選取了一部分近鄰節點參與卷積

兩個細節暫時不細看,貼出結果,均取得了state-of-the-art的結果

3.3 歸納學習inductive learning

  • 三層GAT 模型
  • 前兩層 K=4, F1=256 ,ELU作爲非線性函數
  • 最後一層用來分類 K=6, F`=121 , 激活函數爲sigmoid
  • 該任務中,訓練集足夠大不需要使用 正則化 和 dropout

兩個任務都是用Glorot初始化初始的,並且是用Adam SGD來最小化交叉熵進行優化

四、結論與個人總結

引用了注意力機制,並且模型性能達到state of the art.

運算相鄰節點,更加具有魯棒性。

更具有可解釋性,公式也更直觀。

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