GAT

Paper : Graph Attention Networks
Code :

摘要

注意力機制的核心在於對給定信息進行權重分配,只關注最相關的輸入來進行決策。當注意力機制用來生成一個序列的表示時,也被稱作是自注意力機制。注意力機制的表示形式如下

在這裏插入圖片描述
假定Source是需要系統處理的信息源,Query代表某種條件或者先驗信息,Attention Value是給定Query信息的條件下,通過注意力機制從Source中提取得到的信息。一般Source裏面包含有多種信息,我們將每種信息通過Key-Value對的形式表示出來,那麼Attention定義爲

Attention(Query,Source)=isimilarity(Query,Keyi)Valuei \text{Attention(Query,Source)} = \sum_i\text{similarity(Query,Key}_i)\cdot\text{Value}_i

其中 similarity(Query,Keyi)\text{similarity(Query,Key}_i) 表示權重,當Query與Key越接近時,答案越依賴於對應的Value的值。GAT將Attention機制應用到GNN中,Attention機制的三要素分別對應到圖中的以下要素

  • Query : 某節點的特徵向量
  • Source : 上一層所有鄰居節點的特徵向量
  • Attention Value : 經過聚合後形成的當前層某節點的特徵向量

GAT具有以下幾個特點

  • 操作高效,可以在 節點-鄰居 之間進行並行化計算
  • 通過對鄰居指定任意權重,可以應用於度數不同的圖節點
  • 該模型直接適用於歸納學習問題,包括必須將模型推廣到完全不可見圖的任務

GAT結構

GAT層的輸入是節點的特徵表示 h={hi1iN}\text h = \{\overrightarrow{h}_i| 1\leq i\leq N\} ,其中 hiRF\overrightarrow{h}_i \in \mathbb R^F,輸出是聚合後節點的新的特徵表示 h={hi1iN}\text h' = \{\overrightarrow{h'}_i| 1\leq i\leq N\} ,其中 hiRF\overrightarrow{h'}_i \in \mathbb R^{F'}。與其他MPNN結構GNN層相似,GAT層需要學習一個線性映射 WRF×FW\in\mathbb R^{F'\times F} ,而節點 jj 對於節點 ii 的注意力權重定義爲
ei,j=a(Whi,Whj) e_{i,j} = a(W\overrightarrow h_i, W\overrightarrow h_j)

最通用的形式下,該注意力機制可以表示任意節點 jj 對任意節點 ii 的權重,但是一般限制爲一階鄰居和自己,即
jN~(vi)N~(vi)=N(vi){vi} \\j\in \widetilde N(v_i) \\ \widetilde N(v_i) = N(v_i) \cup\{v_i\}

爲了便於比較不同節點之間的相關係數,需要對節點 ii 所有的鄰居節點 jj 的權重進行正則化

αi,j=softmaxj(ei,j)=exp(ei,j)vkN~(vi)exp(ei,k) \alpha_{i,j} = \text{softmax}_j(e_{i,j}) = \frac{\exp(e_{i,j})}{\sum_{v_k\in \widetilde N(v_i)}\exp(e_{i,k})}

對於 ei,je_{i,j}aa 可以選擇爲非參數的相似度函數,也可以選擇使用參數化的模型來輸出相似度。在GAT中採用單層全連接網絡進行相似度評估,即 aR2F\overrightarrow a \in \mathbb R^{2F'},並使用LeakyReLU 參數 α=0.2\alpha = 0.2,最終權重可以表示爲

αi,j=exp(LeakyReLU(aT[Whihj]))vkN~(vi)exp(LeakyReLU(aT[Whihk])) \alpha_{i,j} = \frac{\exp(\text{LeakyReLU}(\overrightarrow a^{\text T}[W\overrightarrow h_i||\overrightarrow h_j]))}{\sum_{v_k\in\widetilde N(v_i)}\exp(\text{LeakyReLU}(\overrightarrow a^{\text T}[W\overrightarrow h_i||\overrightarrow h_k]))}

節點表示向量聚合之後的結果如下

hi=σ(vjN~(vi)αi,jWhj) \overrightarrow h_i' = \sigma(\sum_{v_j\in \widetilde N(v_i)}\alpha_{i,j}W\overrightarrow h_j)

爲了使自注意力機制的學習過程更加穩定,可以將該方法擴展到multi-head attention,假設同時使用了K個注意力機制,輸出是將它們單獨的輸出進行連接

hi=k=1Kσ(vjN~(vi)αi,jkWkhj) \overrightarrow h_i' = ||_{k=1}^K \sigma(\sum_{v_j\in \widetilde N(v_i)}\alpha_{i,j}^kW^k\overrightarrow h_j)

在這裏插入圖片描述

如果將多頭注意力機制使用到最後一層,那麼連接操作不太合適,一般使用均值操作來合併多個注意力機制的結果並延遲sigmoid操作

hi=σ(1Kk=1KvjN~(vi)αi,jkWkhj) \overrightarrow h_i' = \sigma(\frac{1}{K}\sum_{k=1}^K\sum_{v_j\in \widetilde N(v_i)}\alpha_{i,j}^kW^k\overrightarrow h_j)

總結

GAT提出了一個只需要知道局部特徵就可以計算的Attention機制,算法並行支持很好,而且對於效果也有一定的改善。從實驗設置上,可能缺乏一個有關計算代價的實驗來支持“低代價計算Attention”的結論。GAT具有以下幾個可以改進的方向

  • 處理的batch size的數據
  • 使用Attention分析模型表示能力
  • 從node classification 擴展到graph classification
  • 將edge features考慮進來
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章