注意力机制 神经网络_图注意力网络(GAT)
引言
作者借鑒圖神經網絡中的注意力機制,提出了圖注意力神經網絡架構,創新點主要包含如下幾個:①采用masked self-attention層,②隱式的對鄰居節點采用不同權重③介紹了多頭注意力機制。 在作者的Introduction中,該論文提出的思路類似于MoNet,下一次分享一下這個算法。
模型介紹
該模型相比于GraphSage而言其實是比較容易理解的,即對鄰居節點按照不同的概率加權運算。其輸入是節點特征
, ,其中 是節點的數目, 是節點相應的特征,更新后的特征是 。將每個節點施加不同的權重,并在自身節點采取self-attention,經過一個注意力機制計算函數 ,這里的 可以采用最簡單的相關度函數來計算,在dgl中可以將計算結果存儲到邊。計算權重系數公式為 ,此處采用masked attention來將圖結構應用到此機制,即只計算節點的鄰居節點特征,在此文中,采用的是一階子圖。為了更好的分配權重,采用softmax函數重新計算權重系數。更新后的系數為在作者論文中,注意力機制函數為一單層前向神經網絡,由權重向量
對其參數化,使用LeakyRelu作為激活函數,將上述公式展開后得到:然后將結果施加非線性函數
,得到結果如下:那么據此推理,我們可以得到多頭注意力機制運算方式:
其中,||表示拼接操作,表示將多個注意力頭學習到的特征進行拼接。在論文中,作者采用的是加法求平均后進過非線性變換。公式如下:
為了方便大家的理解,這里將原文的圖直接搬過來,一看就清晰了:
注意力機制左圖是單頭注意力機制,右圖是多頭注意力機制,其中,不同顏色的線代表不同的注意力頭。這樣對照上面的公式一看,是不是很清晰明了。
與相關工作對比
作者在第2.2節將其所作工作和相關方面的算法進行對比,主要具備如下幾個方面的優勢。
1. 計算高效,計算可以并行。
2. 相比于GCN來說,為同一鄰域的節點分配不同權重,可以擴充模型尺度
3. 模型權值共享
4. 相比于GraphSage而言,不需要固定采樣尺寸,算法處理整個鄰域
5. 采樣節點特征計算相似度,而并非節點的結構特性,這樣可以在不需要知道圖結構的前提下計算。
此外作者也指出了圖神經網絡計算中的幾個問題:
① GPU的計算性能在稀疏矩陣運算中并不一定由于CPU,甚至起到的效果更差。
②感受野的大小上限受模型深度影響。
③Skip-connection也許可以用于加深層數,解決過平滑等現象④圖中的并行計算由于臨近區域的高度重疊,也許導致許多的冗余計算。
實驗
作者在實驗方面采用的數據集分為了Transductive(直推式)學習、Inductive(歸納式)學習兩個方面,這個大家寫論文的時候也可以采用,效果好的放到一組。同時作者也將算法進行分類,例如GCN屬于Transductive學習算法,而上一次分享的GraphSage屬于Inductive學習算法。至于算法的復現也很簡單,建議大家直接采用dgl算法庫,可以參考其example中相關算法。本文直接測試cora數據,結果和論文相差無幾
結果總結
以上是生活随笔為你收集整理的注意力机制 神经网络_图注意力网络(GAT)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python字符串长度_如何使用pyth
- 下一篇: java实体类转map_十五道经典面试题