Graph Attention Networks
code & data:
https://github.com/PetarV-/GAT
1. 創新點
通過新型神經網絡對圖形結構數據進行操作,利用隱藏的自注意層賦予鄰域節點不同重要性,並無需提前了解整個網絡結構
通過堆疊這樣的一些層,這些層里的節點能夠注意其鄰近節點的特征,不需要進行成本高昂的矩陣運算(例如反演),也無需事先知道圖的結構
1.1. attention 引入目的
- 為每個節點分配不同權重
- 關注那些作用比較大的節點,而忽視一些作用較小的節點
- 在處理局部信息的時候同時能夠關注整體的信息,不是用來給參與計算的各個節點進行加權的,而是表示一個全局的信息並參與計算
1.2. 框架特點
- attention 計算機制高效,為每個節點和其每個鄰近節點計算attention 可以並行進行
- 能夠按照規則指定neighbor 不同的權重,不受鄰居數目的影響
- 可直接應用到歸納推理問題中
2. 模型
2.1. feature 處理
通過線性變換生成新的更強的 feature
輸入:node feature的集合


( N 為node 數量, F 為每個node 的 feature 數--feature vector 長度)
輸出:


( 使用W 將每個特征轉換為可用的表達性更強的特征)
2.2. 計算相互關注
每兩個node 間都有了相互關注機制(用來做加權平均,卷積時,每個node 的更新是其他的加權平均
共享的關注機制

通過node feature 計算兩個node 間的關系

用來做加權平均需要轉換一下參數

(這個系數 α 就是每次卷積時,用來進行加權求和的系數)
本文采取的計算attention coefficient的函數a是一個單層的前饋網絡,LeakyReLU 處理得

( || 表示串聯/ 連接,一旦獲得,歸一化的相互注意系數用來計算對應特征的線性組合,以用作每個節點的最終輸出特征)

左圖:
在模型中應用相互注意機制a(Whi,Whj),通過權重向量 a 參數化,應用 LeakyReLU 激活
右圖:
節點1在鄰域中具有多端注意機制,不同的箭頭樣式表示獨立的注意力計算,通過連接或平均每個頭部獲取 h1`
2.3. multi-head attention機制
不只用一個函數a進行attention coefficient的計算,而是設置K個函數,每一個函數都能計算出一組attention coefficient,並能計算出一組加權求和用的系數,每一個卷積層中,K個attention機制獨立的工作,分別計算出自己的結果后連接在一起,得到卷積的結果,即

假如有 k 個獨立的相互注意機制同時計算,則集中其特征,可得到特征表示

對於最后一個卷積層,如果還是使用multi-head attention機制,那么就不采取連接的方式合並不同的attention機制的結果了,而是采用求平均的方式進行處理,即

3. 對比
- 計算很高效,attention機制在所有邊上的計算是可以並行的,輸出的feature的計算在所有節點上也可以並行
- 和GCN不同,本文的模型可以對同一個 neighborhood 的node分配不同的重要性,使得模型的容量(自由度)大增。
- 分析這些學到的attentional weights有利於可解釋性(可能是分析一下模型在分配不同的權重的時候是從哪些角度着手的)
- attention機制是對於所有edge共享的,不需要依賴graph全局的結構以及所有node的特征
- 2017年Hamilton提出的inductive method 對於neighborhood的模式處理固定,不靈活
4. 實驗

- transductive learning
- inductive learning
4.1. transductive learning
- 兩層 GAT
- 在Cora 數據集上優化網絡結構的超參數,應用到Citeseer 數據集
- 第一層 8 head, F`=8 ELU 作為非線性函數
- 第二層為分類層,一個 attention head 特征數C,后跟 softmax 函數
- 為了應對小訓練集,正則化(L2)
- 兩層都采用 0.6 的dropout
- 相當於計算每個node位置的卷積時都是隨機的選取了一部分近鄰節點參與卷積
4.2. inductive learning
- 三層GAT 模型
- 前兩層 K=4, F1=256 ELU作為非線性函數
- 最后一層用來分類 K=6, F`=121 后跟logistics sigmoid 激活函數
- 該任務中,訓練集足夠大不需要使用 正則化 和 dropout
兩個任務都是用Glorot初始化初始的,並且是用Adam SGD來最小化交叉熵進行優化
4.3. 實驗結結果