[图神经网络] 图节点Node表示---GAT
一. 概括
圖神經(jīng)網(wǎng)絡已經(jīng)成為深度學習領域最熾手可熱的方向之一。本文提出Graph Attention Networks(GATs),將注意力機制應用到圖神經(jīng)網(wǎng)絡中,每一層學習節(jié)點每個鄰居對其生成新特征的貢獻度,按照貢獻度大小對鄰居特征進行聚合,以此生成節(jié)點新特征。GATs具有計算復雜度低,適用歸納學習任務的特性。因此,GAT 不僅對于噪音鄰居較為魯棒,注意力機制也賦予了模型一定的可解釋性。
二. self-attention
本節(jié)詳細介紹每一次迭代(每一層)中aggregate模塊所使用的Self-Attention機制
2.1 方法
輸入:節(jié)點i特征??, 鄰居特征
輸出:鄰居j對節(jié)點i生成新特征的貢獻度?
模型:使用一個簡單的前饋神經(jīng)網(wǎng)絡去計算?, 共享參數(shù)W? 通過反向傳播學習。
2.2 輸入預處理
對,???線性變換,得到W和W?
2.3 輸入層->隱層
注意力網(wǎng)絡可以有很多的設計方式,這里作者將節(jié)點 i和j?的表示進行了拼接,再映射為一個標量。需要。
2.4 隱層->輸出層
為了使不同鄰居的貢獻度可以對比,使用softmax歸一化,最終得到鄰居j對節(jié)點i生成新特征的貢獻度 aij
2.5 生成節(jié)點新特征
對節(jié)點i的鄰居特征按貢獻度 aij進行加權平均后加一個非線性轉換,得到節(jié)點i的新特征?
2.6?Transformer Vs GAT
NLP 中大火的 Transformer 和 GAT 本質在做一樣的事情。Transformer 利用 self-attention 機制將輸入中的每個單詞用其上下文的加權來表示,而 GAT 是利用 self-attention 機制將每個節(jié)點用其鄰居的加權來表示。下面是經(jīng)典的 Transformer 公式:
上述過程和 GAT 的核心思想非常相似:都是通過探索輸入之間的關聯(lián)性(注意力權重),通過對上下文信息(句子上下文/節(jié)點鄰居)進行聚合,來獲得各個輸入(單詞/節(jié)點)的表示。
Transformer 和 GAT 的主要區(qū)別是:
1.在 GAT 中,作者對自注意力進行了簡化。每個節(jié)點無論是作為中心節(jié)點/上下文/聚合輸出,都只用一種表示?。也就是說,在 GAT 中 Q=K=V
2.在圖上,節(jié)點的鄰居是一個集合,具有不變性。Transformer 將文本隱式的建圖過程中丟失了單詞之間的位置關系,這對 NLP 的一些任務是很致命的。為了補償這種建圖損失的位置關系,Transformer 用了額外了的位置編碼來描述位置信息
?
三. Multi-head Attention
因為只計算一次attention,很難捕獲鄰居所有的特征信息,《Attention is all you need》論文中進一步完善了attention機制,提出了multi-head attention ,其實很簡單,就是重復做多次attention計算),如下圖所示:
其中,?表示一個可訓練的參數(shù)向量, 用來學習節(jié)點和鄰居之間的相對重要性,?也是一個可訓練的參數(shù)矩陣,用來對輸入特征做線性變換,表示向量拼接(concate)。
?
本文也使用了multi-head attention:學習K個不同的attention,對應參數(shù)?,然后在生成節(jié)點i的新特征時拼接起來
如果在整個圖神經(jīng)網(wǎng)絡的最后一層,使用平均替代拼接,得到節(jié)點最終的embedding:
?
四. GAT VS GCN
1.?與GCN的聯(lián)系與區(qū)別
無獨有偶,我們可以發(fā)現(xiàn)本質上而言:GCN與GAT都是將鄰居頂點的特征聚合到中心頂點上(一種aggregate運算),利用graph上的local stationary學習新的頂點特征表達。不同的是GCN利用了拉普拉斯矩陣,GAT利用attention系數(shù)。一定程度上而言,GAT會更強,因為頂點特征之間的相關性被更好地融入到模型中。
2.? 為什么GAT適用于有向圖?
我認為最根本的原因是GAT的運算方式是逐頂點的運算(node-wise),這一點可從公式(1)—公式(3)中很明顯地看出。每一次運算都需要循環(huán)遍歷圖上的所有頂點來完成。逐頂點運算意味著,擺脫了拉普利矩陣的束縛,使得有向圖問題迎刃而解。
3. 為什么GAT適用于inductive任務?
GAT中重要的學習參數(shù)是?W?與?a(·)?,因為上述的逐頂點運算方式,這兩個參數(shù)僅與頂點特征相關,與圖的結構毫無關系。所以測試任務中改變圖的結構,對于GAT影響并不大,只需要改變?Ni,重新計算即可。
與此相反的是,GCN是一種全圖的計算方式,一次計算就更新全圖的節(jié)點特征。學習的參數(shù)很大程度與圖結構相關,這使得GCN在inductive任務上遇到困境。
?
?
?
?
?
補充. Message Passing
?
?
?
https://zhuanlan.zhihu.com/p/66812926
?
總結
以上是生活随笔為你收集整理的[图神经网络] 图节点Node表示---GAT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css中display属性有几种含义
- 下一篇: cebx文件怎么打开