今天學習的是劍橋大學的同學 2017 年的工作《GRAPH ATTENTION NETWORKS》,目前引用數量超過 1100 次。
Attention 機制在 NLP CV 等領域被廣泛應用,其可以幫助模型對輸入數據賦予不同的權重信息。同樣的,Attention 也可以應用於網絡圖中,它可以對鄰居中不同的節點指定不同的權重,既不需要進行矩陣運算,也不需要事先了解圖的全局結構。通過這種方式,作者解決了基於頻譜的圖神經網絡的幾個關鍵問題,並使得模型更方便的應用於歸納和轉換問題。
1.Introduction
在之前的文章中我們也說過,學者想將卷積操作應用於網絡圖中主要有兩種方式,一種是基於空域的方法,另一種是基於頻域的方法。空域是指直接在網絡中進行建模,而頻域是指將網絡圖映射到頻域後利用卷積變換進行建模。之所以要映射到頻域是因爲網絡在空域中不具備規整性(也可以理解爲平移不變性),而映射到頻域後則可以完成卷積操作。
在許多基於序列(sequence-based)的任務中,注意力機制幾乎已經成爲這個鄰域的標準。注意力機制的一大好處在於:它允許處理可變大小的輸入,將注意力集中在最相關的輸入部分。最開始的時候,注意力機制是用來計算序列的表徵,通常被稱爲:self-attention。注意力機制可以改進 RNN/CNN 在閱讀理解中性能,後來 Google 的同學直接通過 self-attention 構建出 Transformer 模型,並在機器翻譯任務中取得了 SOTA。
受此啓發,作者引入了基於注意力機制的體系結構來改進節點分類任務。其思想在於:在爲圖中每個節點計算向量表徵時,利用 self-attention 的策略加權節點的鄰居。這樣的結構有很多很好的性質:
- 計算效率高:可以跨節點進行並行計算;
- 可以應用於不同度(degree)的圖節點(克服了空間卷積的缺點);
- 可以進行歸納學習;
接下來看一下模型的詳細情況。
2.GAT
在這一節主要介紹下模型的架構,並與之前的工作進行對比。
2.1 Graph Attention Layer
首先描述一下圖注意力層(Graph Attentional Layer)。
圖注意力層的輸入是節點特徵 ,其中 N 爲節點的數量,F 爲節點特徵維度。圖注意力層的輸出是節點的新特徵 。
爲了獲得充分的表達,我們還需要一個線性變換,這裏採用一個共享的參數化權重矩陣 $W\in\mathbb{R}{F{’}\times F} $。然後利用一個共享注意力機制 :
這個公式表示爲節點 j 的特徵相對節點 i 的重要性。
對於這個公式來說,該模型允許每個圖中的每個節點都參與到其他節點的計算中,即刪除了網絡圖的結構信息。對此,我們可以通過 masked attention 操作確保每次計算時只考慮節點的鄰域信息,以此來爲模型注入網絡的結構信息。
這裏,作者只考慮一階鄰域信息(包括自身節點)。爲了消除權重量綱,作者使用 softmax 進行歸一化處理:
作者設計的注意力機制是一個單層的前饋神經網絡,參數向量爲 ,並利用 LeakyReLU 增加非線形。所以公式最終寫爲:
其中, 表示拼接操作(concat)。
得到歸一化注意係數後,計算其對應特徵的線性組合,並利用非線形激活函數得到最終的輸出特徵:
爲了穩定注意力機制的學習過程,我們將注意力機制拓展到多頭注意力(multi-head attention)。K 個的注意力機制獨立運行,並將最後的特徵進行拼接,最終公式爲:
此時,輸出的特徵是有 維。
特別的,如果多頭注意力後面會接一個預測層,那麼拼接操作可能就不太合理了,取而代之我們可以取其均值,並應用一個非線性函數:
原文:If we perform multi-head attention on the final (prediction) layer of the network, concatenation is no longer sensible。
這裏的不合理,感覺是通過實驗結果反推來的。
GAT 的注意力和多頭注意力的可視化如下圖所示:
左邊是兩個節點的 attention 過程,右邊是多頭注意力的聚合(K=3,不同顏色代表不同的注意力)。
2.2 Comparisons to Related Work
GAT 解決了之前用 GCN 建模圖結構數據時出現的幾個問題:
- 計算高效:既不用進行矩陣特徵分解,也不需要進行矩陣運算,單個時間注意力的時間複雜度爲 ,其複雜度與 GCN 的差不多;應用多頭注意力時,完全可以並行化計算;
- 隱式地爲節點的同一鄰居分配不同權重,從而擴展了模型的表達的能力,同時也提升了模型的可解釋性;
- 注意力機制以共享的方式應用於圖上的所有邊,因此無需知道圖上所有的節點和邊,最直接的好處在於可以直接適用於歸納學習;
- GraphSAGE 是對鄰域進行固定大小的採樣,相比 GAT 來說鄰域的信息獲取有限,而基於 LSTM 提取鄰域信息時,其假設存在一個一致且連續的節點排序,並且 GraphSAGE 通過提供隨機排序的序列進行糾正,GAT 則沒有對鄰域節點排序的限制;
#3.Experiment
簡單看下實驗部分。
先來看下數據集:
實驗分爲直推學習(Transductive learning)和歸納學習(Inductive learning)
利用 t-SNE 降維進行可視化展示:
4.Conclusion
總結:作者提出了一種新型的圖卷積神經網絡——圖注意網絡(GAT),其利用帶 masked 的自注意力層來處理圖結構數據,同時利用多頭注意力對節點鄰域進行充分表達。GAT 在諸多數據集中無論是直推學習還是歸納學習都取得不錯的成績。
當然,GAT 還有很多需要改進的地方,比如說在並行計算時如何克服冗餘計算,如何提高網絡深度等等。
5.Reference
- 《GRAPH ATTENTION NETWORKS》
關注公衆號跟蹤最新內容:阿澤的學習筆記。