Graph Attention Networks

 Graph Attention Networks

 

1. 創新點

經過新型神經網絡對圖形結構數據進行操做,利用隱藏的自注意層賦予鄰域節點不一樣重要性,並沒有需提早了解整個網絡結構
 
經過堆疊這樣的一些層,這些層裏的節點可以注意其鄰近節點的特徵,不須要進行成本高昂的矩陣運算(例如反演),也無需事先知道圖的結構
 

1.1. attention 引入目的

  • 爲每一個節點分配不一樣權重
  • 關注那些做用比較大的節點,而忽視一些做用較小的節點
  • 在處理局部信息的時候同時可以關注總體的信息,不是用來給參與計算的各個節點進行加權的,而是表示一個全局的信息並參與計算

1.2. 框架特色

  • attention 計算機制高效,爲每一個節點和其每一個鄰近節點計算attention 能夠並行進行
  • 可以按照規則指定neighbor 不一樣的權重,不受鄰居數目的影響
  • 可直接應用到概括推理問題中

2. 模型

2.1. feature 處理

經過線性變換生成新的更強的 feature
輸入:node feature的集合 
( N 爲node 數量, F 爲每一個node 的 feature 數--feature vector 長度)
輸出:
( 使用W 將每一個特徵轉換爲可用的表達性更強的特徵)

2.2. 計算相互關注

每兩個node 間都有了相互關注機制(用來作加權平均,卷積時,每一個node 的更新是其餘的加權平均
共享的關注機制
 
經過node feature 計算兩個node 間的關係
 
 
用來作加權平均須要轉換一下參數
 
(這個係數 α 就是每次卷積時,用來進行加權求和的係數)
 
本文采起的計算attention coefficient的函數a是一個單層的前饋網絡,LeakyReLU 處理得
 
( || 表示串聯/ 鏈接,一旦得到,歸一化的相互注意係數用來計算對應特徵的線性組合,以用做每一個節點的最終輸出特徵)
 
左圖:
在模型中應用相互注意機制a(Whi,Whj),經過權重向量 a 參數化,應用 LeakyReLU 激活
 
右圖:
節點1在鄰域中具備多端注意機制,不一樣的箭頭樣式表示獨立的注意力計算,經過鏈接或平均每一個頭部獲取 h1`

2.3. multi-head attention機制

不僅用一個函數a進行attention coefficient的計算,而是設置K個函數,每個函數都能計算出一組attention coefficient,並能計算出一組加權求和用的係數,每個卷積層中,K個attention機制獨立的工做,分別計算出本身的結果後鏈接在一塊兒,獲得卷積的結果,即
 
 
假若有 k 個獨立的相互注意機制同時計算,則集中其特徵,可獲得特徵表示
 
 
 
對於最後一個卷積層,若是仍是使用multi-head attention機制,那麼就不採起鏈接的方式合併不一樣的attention機制的結果了,而是採用求平均的方式進行處理,即
 

3. 對比

  • 計算很高效,attention機制在全部邊上的計算是能夠並行的,輸出的feature的計算在全部節點上也能夠並行
  • 和GCN不一樣,本文的模型能夠對同一個 neighborhood 的node分配不一樣的重要性,使得模型的容量(自由度)大增。
    • 分析這些學到的attentional weights有利於可解釋性(多是分析一下模型在分配不一樣的權重的時候是從哪些角度着手的)
  • attention機制是對於全部edge共享的,不須要依賴graph全局的結構以及全部node的特徵
  • 2017年Hamilton提出的inductive method 對於neighborhood的模式處理固定,不靈活

4. 實驗

  • transductive learning
  • inductive learning

4.1. transductive learning

  • 兩層 GAT
  • 在Cora 數據集上優化網絡結構的超參數,應用到Citeseer 數據集
  • 第一層 8 head, F`=8 ELU 做爲非線性函數
  • 第二層爲分類層,一個 attention head 特徵數C,後跟 softmax 函數
    • 爲了應對小訓練集,正則化(L2)
  • 兩層都採用 0.6 的dropout
    • 至關於計算每一個node位置的卷積時都是隨機的選取了一部分近鄰節點參與卷積

4.2. inductive learning

  • 三層GAT 模型
  • 前兩層 K=4, F1=256 ELU做爲非線性函數
  • 最後一層用來分類 K=6, F`=121 後跟logistics sigmoid 激活函數
  • 該任務中,訓練集足夠大不須要使用 正則化 和 dropout
兩個任務都是用Glorot初始化初始的,而且是用Adam SGD來最小化交叉熵進行優化
 

4.3. 實驗結結果

相關文章
相關標籤/搜索