0.動機
爲鄰域內的不同節點指定不同的權重,而不需要任何複雜的矩陣操作(比如求逆),也不需要預先了解圖的結構。
1. 圖注意力層
輸入爲節點特徵h={h1,...,hN},hi∈RF,N表示節點得數量。爲了得到更具有表達能力得特徵,需要把原來得輸入特徵hi進行一次可學習得線性映射(也就是輸入了一個全連接層),得到一組新的節點表示h′={h1′,...,hN′},hi′∈RF′:
hi′=Whi
其中,W∈RF′×F′爲權重參數。
節點j對節點id得重要性(注意力權重)定義爲:
eij=a(Whi,Whj)
其中函數a(⋅):RF′×RF′→R,表示一種共享得注意力機制,理論上可以計算所有節點之間得注意力,在實際中一般只計算每個節點鄰域的注意力權重,即:eij,j∈Ni。
爲了使得在不同節點之間的注意力權重可以比較,需要將權重進行歸一化處理:
αij=softmaxj(eij)=∑k∈Niexp(eik)exp(eij)
在實驗中,函數a(⋅)是通過單層神經網絡進行擬合的,即將Whi,Whj進行拼接後送入單層全連接層,在通過非線性激活函數得到eij:
αij=∑k∈Niexp(LeakyReLU(aT[Whi∣∣Whk]))exp(LeakyReLU(aT[Whi∣∣Whj]))
其中,a∈R2F′表示全連接層的參數,∣∣表示向量拼接。
最後,利用注意力層輸出的節點特徵爲:
hi′=σ(j∈Ni∑αijWhj)
2.多頭注意力機制
爲了注意力機制的穩定性,可以使用多頭的注意力機制,就是同時並行且獨立的使用多次的注意力機制,如下圖右邊所示。
不同顏色和格式的箭頭表示一次注意力機制(K=3),同時使用K次的注意力機制得到3個不同hi,k′後,可以使用拼接或者均值的方式輸出最後的hi′:
hi′=∣∣k=1Kσ(j∈Ni∑αijkWkhj)
上式爲拼接的方式輸出,其中∣∣k=1K表示拼接,輸出向量hi′∈RKF′。
hi′=σ(K1k=1∑Kj∈Ni∑αijkWkhj)
上式爲均值的方式輸出。
如果將多頭的注意力機制用於最後一層預測層,那麼使用拼接方法進行softmax不能完成預測任務,因爲是節點特徵的多種不同表示形式的拼接,進行softmax後不能表示概率分佈,所以應該使用均值的方式更爲合適。
3.優點
①計算複雜度低,不需要對拉普拉斯矩陣進行特徵分解,
②允許(隱式地)爲相同鄰域的節點分配多個不同的權重。
③注意機制以共享的方式應用於圖中的所有邊,不需要預先知道圖的全局結構以及節點的特徵。