圖學習(一)Graph Attention Networks

w糖炒栗子發表於2020-11-29

背景

研究機構:Department of Computer Science and Technology;Centre de Visi´o per Computador, UAB;Montreal Institute for Learning Algorithms
來源:ICLR2018

摘要

針對圖結構的資料,本文提出了一種圖注意力網路GAT,該網路使用masked self-attention用於解決之前圖卷積模型中存在的問題。在GAT中,圖中的每個節點可以根據鄰節點的特徵,為其分配不同的權值。GAT的另一個優點在於,無需使用預先構建好的圖。

動機

GCN的侷限性:
(1)無法完成inductive任務,即處理動態圖問題。
inductive任務是指:訓練階段與測試階段需要處理的graph不同。通常是訓練階段只是在子圖(subgraph)上進行,測試階段需要處理未知的頂點。(unseen node)
(2)處理有向圖的瓶頸,不容易實現分配不同的學習權重給不同的neighbor。

方法

作者提到,GAT的實現方式可以有兩種思路。其一,Global graph attention
即每一個頂點 i i i都對圖上任意頂點進行attention操作。優點:完全不依賴於圖的結構,可以很好的完成inductive任務。缺點:計算量巨大,並且資料本身的圖結構特點丟失,可能導致很差的結果。

其二,Mask graph attention,注意力機制的運算只在鄰居頂點上進行。作者採用的是這種方式。
具體細節:
與一般的attention方法類似,GAT的計算步驟也是兩步走策略:
(1)計算注意力分佈(即用於加權的係數)

對於頂點 i i i,逐個計算各個鄰居 j ( j ∈ N i ) j(j\in N_i) j(jNi)與自己的相似度係數:
e i j = a ( [ W h i ∣ ∣ W h j ] ) e_{ij}=a([Wh_i||Wh_j]) eij=a([WhiWhj])
W是共享的可學習引數矩陣用於對頂點特徵進行增維 [ . ∣ ∣ . ] [.||.] [..]表示對頂點 i , j i,j i,j變換後的特徵進行concate,最後利用 a ( . ) a(.) a(.)將拼接後的高維特徵對映到一個實數。顯然學習頂點 i , j i,j i,j之間的相關性,就是通過可學習的引數 W W W和對映 a ( . ) a(.) a(.)完成的。
有了相關性係數,接下來就是一個簡單的softmax操作,賦予不同的鄰居以不同的權重。
在這裡插入圖片描述
作者在此處使用了一個LeakyReLU,即
在這裡插入圖片描述
獲得加權係數的示意圖如下:
在這裡插入圖片描述
(2)進行加權求和
這一步比較簡單,公式表示為
在這裡插入圖片描述
h i ′ h_{i}^{'} hi就是GAT輸出的對於每個頂點 i i i的新特徵(融合了鄰域資訊), σ ( . ) \sigma(.) σ(.)是啟用函式。
受multi-head attention的影響,利用K個head來對特徵進一步增強,也可以理解為是一種ensemble
在這裡插入圖片描述
加權求和示意圖如下
在這裡插入圖片描述

為什麼GAT適用於有向圖?

GAT的運算方式是逐頂點的運算(node-wise),這一點可從上述公式中很明顯地看出。每一次運算都需要迴圈遍歷圖上的所有頂點來完成。逐頂點運算意味著,擺脫了拉普利矩陣的束縛,使得有向圖問題迎刃而解。

為什麼GAT適用於inductive任務?

GAT中重要的學習引數是 W W W a ( . ) a(.) a(.),因為上述的逐頂點運算方式,這兩個引數僅與第一個公式中闡述的頂點特徵相關,與圖的結構毫無關係。所以測試任務中改變圖的結構,對於GAT影響並不大,只需要改變 N i N_i Ni,重新計算即可。

參考文獻

知乎專欄:Graph Attention Networks學習筆記
知乎專欄:圖注意力模型

相關文章