日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[图神经网络] 图节点Node表示---GAT

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [图神经网络] 图节点Node表示---GAT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 概括

圖神經網絡已經成為深度學習領域最熾手可熱的方向之一。本文提出Graph Attention Networks(GATs),將注意力機制應用到圖神經網絡中,每一層學習節點每個鄰居對其生成新特征的貢獻度,按照貢獻度大小對鄰居特征進行聚合,以此生成節點新特征。GATs具有計算復雜度低,適用歸納學習任務的特性。因此,GAT 不僅對于噪音鄰居較為魯棒,注意力機制也賦予了模型一定的可解釋性。

二. self-attention

本節詳細介紹每一次迭代(每一層)中aggregate模塊所使用的Self-Attention機制

2.1 方法

輸入:節點i特征??, 鄰居特征

輸出:鄰居j對節點i生成新特征的貢獻度?

模型:使用一個簡單的前饋神經網絡去計算?, 共享參數W? 通過反向傳播學習。

2.2 輸入預處理

對,???線性變換,得到W和W?

  • W為參數矩陣,將F維的特征線性組合生成F'維特征。
  • 線性變換的目的是得到更強大的表達,可以見參考:YJango:深層學習為何要“Deep”
  • 2.3 輸入層->隱層

    注意力網絡可以有很多的設計方式,這里作者將節點 i和j?的表示進行了拼接,再映射為一個標量。需要。

  • ?eij表示鄰居j的特征對i的重要性/貢獻度。
  • ?||表示將將i和j拼接起來,作為神經網絡的輸入(2F'維),注意這里拼接導致eij != eji ,也就是說注意力值?是非對稱的.
  • ?a為輸入層->隱層的參數,因為隱藏只有一個神經元,故是一個2F'維的向量。
  • 激活單元使用Leaky ReLU?進行非線性轉換
  • 2.4 隱層->輸出層

    為了使不同鄰居的貢獻度可以對比,使用softmax歸一化,最終得到鄰居j對節點i生成新特征的貢獻度 aij

    2.5 生成節點新特征

    對節點i的鄰居特征按貢獻度 aij進行加權平均后加一個非線性轉換,得到節點i的新特征?

    2.6?Transformer Vs GAT

    NLP 中大火的 Transformer 和 GAT 本質在做一樣的事情。Transformer 利用 self-attention 機制將輸入中的每個單詞用其上下文的加權來表示,而 GAT 是利用 self-attention 機制將每個節點用其鄰居的加權來表示。下面是經典的 Transformer 公式:

    上述過程和 GAT 的核心思想非常相似:都是通過探索輸入之間的關聯性(注意力權重),通過對上下文信息(句子上下文/節點鄰居)進行聚合,來獲得各個輸入(單詞/節點)的表示。

    Transformer 和 GAT 的主要區別是:

    1.在 GAT 中,作者對自注意力進行了簡化。每個節點無論是作為中心節點/上下文/聚合輸出,都只用一種表示?。也就是說,在 GAT 中 Q=K=V

    2.在圖上,節點的鄰居是一個集合,具有不變性。Transformer 將文本隱式的建圖過程中丟失了單詞之間的位置關系,這對 NLP 的一些任務是很致命的。為了補償這種建圖損失的位置關系,Transformer 用了額外了的位置編碼來描述位置信息

    ?

    三. Multi-head Attention

    因為只計算一次attention,很難捕獲鄰居所有的特征信息,《Attention is all you need》論文中進一步完善了attention機制,提出了multi-head attention ,其實很簡單,就是重復做多次attention計算),如下圖所示:

    其中,?表示一個可訓練的參數向量, 用來學習節點和鄰居之間的相對重要性,?也是一個可訓練的參數矩陣,用來對輸入特征做線性變換,表示向量拼接(concate)。

    ?

    本文也使用了multi-head attention:學習K個不同的attention,對應參數?,然后在生成節點i的新特征時拼接起來

    如果在整個圖神經網絡的最后一層,使用平均替代拼接,得到節點最終的embedding:

    ?

    四. GAT VS GCN

    1.?與GCN的聯系與區別

    無獨有偶,我們可以發現本質上而言:GCN與GAT都是將鄰居頂點的特征聚合到中心頂點上(一種aggregate運算),利用graph上的local stationary學習新的頂點特征表達。不同的是GCN利用了拉普拉斯矩陣,GAT利用attention系數。一定程度上而言,GAT會更強,因為頂點特征之間的相關性被更好地融入到模型中。

    2.? 為什么GAT適用于有向圖?

    我認為最根本的原因是GAT的運算方式是逐頂點的運算(node-wise),這一點可從公式(1)—公式(3)中很明顯地看出。每一次運算都需要循環遍歷圖上的所有頂點來完成。逐頂點運算意味著,擺脫了拉普利矩陣的束縛,使得有向圖問題迎刃而解。

    3. 為什么GAT適用于inductive任務?

    GAT中重要的學習參數是?W??a(·)?,因為上述的逐頂點運算方式,這兩個參數僅與頂點特征相關,與圖的結構毫無關系。所以測試任務中改變圖的結構,對于GAT影響并不大,只需要改變?Ni,重新計算即可。

    與此相反的是,GCN是一種全圖的計算方式,一次計算就更新全圖的節點特征。學習的參數很大程度與圖結構相關,這使得GCN在inductive任務上遇到困境。

    ?

    ?

    ?

    ?

    ?

    補充. Message Passing

    ?

    ?

    ?

    https://zhuanlan.zhihu.com/p/66812926

    ?

    總結

    以上是生活随笔為你收集整理的[图神经网络] 图节点Node表示---GAT的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。