《GRAPH ATTENTION NETWORKS》論文理解

0.動機

爲鄰域內的不同節點指定不同的權重,而不需要任何複雜的矩陣操作(比如求逆),也不需要預先了解圖的結構。

1. 圖注意力層

輸入爲節點特徵h={h1,...,hN},hiRFh=\{\vec{h}_1,...,\vec{h}_N\},\vec{h}_i\in R^F,NN表示節點得數量。爲了得到更具有表達能力得特徵,需要把原來得輸入特徵hi\vec{h}_i進行一次可學習得線性映射(也就是輸入了一個全連接層),得到一組新的節點表示h={h1,...,hN},hiRFh^{'}=\{\vec{h}^{'}_1,...,\vec{h}^{'}_N\},\vec{h}^{'}_i\in R^{F^{'}}
hi=Whi\vec{h}^{'}_i=W\vec{h}_i

其中,WRF×FW\in R^{F^{'}×F^{'}}爲權重參數。
節點jj對節點iid得重要性(注意力權重)定義爲:
eij=a(Whi,Whj)e_{ij}=a(W\vec{h}_i,W\vec{h}_j)

其中函數a():RF×RFRa(\cdot):R^{F^{'}}×R^{F^{'}}\rightarrow R,表示一種共享得注意力機制,理論上可以計算所有節點之間得注意力,在實際中一般只計算每個節點鄰域的注意力權重,即:eij,jNie_{ij},j\in N_i
爲了使得在不同節點之間的注意力權重可以比較,需要將權重進行歸一化處理:
αij=softmaxj(eij)=exp(eij)kNiexp(eik)\alpha_{ij}=softmax_{j}(e_{ij})=\frac{exp(e_{ij})}{\sum_{k\in N_i}{exp(e_{ik})}}

在實驗中,函數a()a(\cdot)是通過單層神經網絡進行擬合的,即將Whi,WhjW\vec{h}_i,W\vec{h}_j進行拼接後送入單層全連接層,在通過非線性激活函數得到eije_{ij}
αij=exp(LeakyReLU(aT[WhiWhj]))kNiexp(LeakyReLU(aT[WhiWhk]))\alpha_{ij}=\frac{exp(LeakyReLU(\vec{a}^T[W\vec{h}_i||W\vec{h}_j]))}{\sum_{k\in N_i}{exp(LeakyReLU(\vec{a}^T[W\vec{h}_i||W\vec{h}_k]))}}

其中,aR2F\vec{a}\in R^{2F^{'}}表示全連接層的參數,||表示向量拼接。
最後,利用注意力層輸出的節點特徵爲:
hi=σ(jNiαijWhj)\vec{h}_{i}^{'}=\sigma(\sum_{j\in N_i}{\alpha_{ij}W\vec{h}_{j}})
在這裏插入圖片描述

2.多頭注意力機制

爲了注意力機制的穩定性,可以使用多頭的注意力機制,就是同時並行且獨立的使用多次的注意力機制,如下圖右邊所示。
在這裏插入圖片描述
不同顏色和格式的箭頭表示一次注意力機制(K=3K=3),同時使用KK次的注意力機制得到3個不同hi,k\vec{h}_{i,k}^{'}後,可以使用拼接或者均值的方式輸出最後的hi\vec{h}_{i}^{'}
hi=k=1Kσ(jNiαijkWkhj)\vec{h}_{i}^{'}={||}^{K}_{k=1}\sigma(\sum_{j\in N_i}{\alpha_{ij}^kW^k\vec{h}_{j}})

上式爲拼接的方式輸出,其中k=1K{||}^{K}_{k=1}表示拼接,輸出向量hiRKF\vec{h}_{i}^{'}\in R^{KF^{'}}

hi=σ(1Kk=1KjNiαijkWkhj)\vec{h}_{i}^{'}=\sigma(\frac{1}{K}\sum_{k=1}^{K}\sum_{j\in N_i}{\alpha_{ij}^kW^k\vec{h}_{j}})

上式爲均值的方式輸出。
如果將多頭的注意力機制用於最後一層預測層,那麼使用拼接方法進行softmaxsoftmax不能完成預測任務,因爲是節點特徵的多種不同表示形式的拼接,進行softmaxsoftmax後不能表示概率分佈,所以應該使用均值的方式更爲合適。

3.優點

①計算複雜度低,不需要對拉普拉斯矩陣進行特徵分解,
②允許(隱式地)爲相同鄰域的節點分配多個不同的權重。
③注意機制以共享的方式應用於圖中的所有邊,不需要預先知道圖的全局結構以及節點的特徵。

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