《Graph Attention Network》閱讀筆記

基本信息

論文題目:GRAPH ATTENTION NETWORKS網絡

時間:2018架構

期刊:ICLR框架

主要動機

探討圖譜(Graph)做爲輸入的狀況下如何用深度學習完成分類、預測等問題;經過堆疊這種層(層中的頂點會注意鄰居的特徵),咱們能夠給鄰居中的頂點指定不一樣的權重,不須要任何一種耗時的矩陣操做(好比求逆)或依賴圖結構的先驗知識。函數

CNN 結構能夠有效用於解決網格狀的結構數據,例如圖像分類等。可是現有的許多任務的數據並不能表示爲網格狀的結構,而是分佈在不規則的區域,如社交網絡、生物網絡等。這樣的數據一般用圖的形式來表示。性能

目前有些研究經過擴展神經網絡來處理不規則結構圖,包括循環神經網絡(RNN)、圖神經網絡(GNN)及其改進的模型。另外一種研究思路是把卷積泛化到圖域中,分爲譜方法和非譜方法兩種。學習

注意力機制的一個好處是能夠處理可變大小的輸入,而且關注輸入的最相關部分以作出決策。當注意機制用於計算單個序列的表示時,一般將其稱爲自注意或內注意。該機制和 RNN 結合已經普遍應用於機器閱讀、句子表示和機器翻譯領域。測試

做者提出了一種基於注意機制的架構,可以完成圖結構數據的節點分類。該方法的思路是經過注意其鄰居節點,計算圖中的每一個節點的隱藏表徵,還帶有自注意策略。這種架構有多重性質:spa

  1. 運算高效,由於它能夠在 「頂點 - 鄰居」 對上並行計算;
  2. 能夠經過對近鄰節點指定任意的權重應用於不一樣度的圖節點;
  3. 該模型直接適用於概括學習問題,其中包括須要將模型泛化爲此前爲見的圖的任務。

GAT 架構

單個 graph attentional layer 的輸入是一個節點特徵向量集合,\(h=\lbrace \vec{h_1},\vec{h_2},\dots,\vec{h_N} \rbrace,\; \vec{h_i}\in R^F\),其中 \(N\) 表示節點的數目,\(F\) 表示每一個節點的特徵的數目。並生成一個新的節點特徵集合 \(h^{'}=\lbrace \vec{h_1^{'}},\vec{h_2^{'}},\dots,\vec{h_N^{'}} \rbrace,\; \vec{h_i^{'}}\in R^{F^{'}}\) 做爲輸出,其中 \(F\)\(F^{'}\) 具備不一樣的維度。翻譯

uploading-image-27011.png

爲了得到足夠的表達能力以將輸入特徵變換爲更高級別的特徵,須要至少一個可學習的線性變換。爲此,做爲初始步驟,一個共享的線性變換參數矩陣 \(W\in R^{F^{'}\times F}\) 被應用於每個節點。而後執行 self-attention 處理:3d

\[e_{ij}=a(W\vec{h_i}, W\vec{h_j})\tag{1}\]
其中,\(a\) 是一個 \(R^{F^{'}}\times R^{F^{'}}\to R\) 的映射,公式(1)表示了節點 \(j\) 的特徵對於節點 \(i\) 的重要性。通常來講,self-attention 會將注意力分配到圖中全部的節點上,這種作法顯然會丟失結構信息。爲了解決這一問題,做者使用了一種 masked attention 的方法 -- 僅將注意力分配到節點 \(i\) 的鄰居節點集上,即 \(N_i\),其中節點 \(i\) 也包括在 \(N_i\) 中。爲了使係數在不一樣節點之間易於比較,咱們使用 softmax 函數在 \(j\) 的全部選擇中對它們進行標準化:

\[\alpha_{ij}=softmax_j(e_{ij})=\frac{exp(e_{ij})}{\sum_{k\in N_i}{exp(e_{ik})}}\tag{2}\]

注意力機制 \(a\) 是一個單層前饋神經網絡,其中 \(\vec{a}\in R^{2F^{'}}\) 是權重參數,使用 LeakyReLU 做爲激活函數。徹底展開後,由注意機制計算的係數能夠表示爲:

uploading-image-236131.png

歸一化的注意力係數用於計算與它們對應的特徵的線性組合,以用做每一個節點的最終輸出特徵,採用非線性的函數:

uploading-image-575376.png

爲了提升模型的擬合能力,在本文中還引入了多抽頭的 self-attention(如圖 1 右側部分。與《Attention is All You Need》一致),即同時使用多個 \(W^k\) 計算 self-attention,而後將各個計算獲得的結果進行合併(鏈接或求和):

uploading-image-320683.png

uploading-image-698035.png

模型比較

上一節描述的圖注意力層直接解決了以前在圖結構上使用神經網絡建模的方法的幾個問題:

  1. 計算高效:self-attention 層的操做能夠在全部的邊上並行,輸出特徵的計算能夠在全部頂點上並行。沒有耗時的特徵值分解。單層的 GAT 的時間複雜度爲 \(O(|V|FF^{'}+|E|F^{'})\) 。儘管 multi-head 注意力將存儲和參數要求乘以係數 K,可是單個 head 的計算徹底獨立且能夠並行化。
  2. 與 GCN 相反,咱們的模型容許(隱式)爲同一鄰域的節點分配不一樣的重要性,從而實現模型表示能力的飛躍;
  3. 對於圖中的全部邊,attention 機制是共享的。所以 GAT 也是一種局部模型。也就是說,在使用 GAT 時,咱們無需訪問整個圖,而只須要訪問所關注節點的鄰節點便可。這一特色的做用主要有:(1)能夠處理有向圖(若 \(j\to i\) 不存在,僅需忽略 \(\alpha_{ij}\) 便可);(2)能夠被直接用於進行概括學習。
  4. 最新的概括學習方法(GraphSAGE 2017)經過從每一個節點的鄰居中抽取固定數量的節點,從而保證其計算的一致性。這意味着,在執行推斷時,咱們沒法訪問全部的鄰居。然而,本文所提出的模型是創建在全部鄰節點上的,並且無需假設任何節點順序。

咱們可以生成一個利用稀疏矩陣運算的 GAT 層版本,將存儲複雜性下降到節點和邊緣數量的線性,並在較大的圖形數據集上實現 GAT 模型。然而,咱們使用的張量操做框架僅支持秩 - 2 張量的稀疏矩陣乘法,這限制了當前實現的層的批處理能力(特別是對於具備多個圖的數據集),適當地解決這一限制是將來工做的重要方向。根據現有圖形結構的規律性,在稀疏場景中,GPU 相比於 CPU 可能沒法提供主要的性能優點。

實驗評估

概括學習(Inductive Learning):先從訓練樣本中學習到必定的模式,而後利用其對測試樣本進行預測(即首先從特殊到通常,而後再從通常到特殊),這類模型如常見的貝葉斯模型。

演繹學習(Transductive Learning):先觀察特定的訓練樣本,而後對特定的測試樣本作出預測(從特殊到特殊),這類模型如 k 近鄰、SVM 等。

在演繹學習中使用三個標準的引證網絡數據集——Cora、Citeseer 與 Pubmed。在這些數據集中,節點對應於文檔,邊(無向的)對應於引用關係。節點特徵對應於文檔的 Bag of Words 表示。每一個節點擁有一個類別標籤(在分類時使用 softmax 激活函數)。每一個數據集的詳細信息以下表所示:

uploading-image-317207.png

演繹學習的實驗結果以下表所示,能夠看到,GAT 模型的效果要基本優於其餘模型:

uploading-image-970836.png

對於概括學習,本文使用了一個蛋白質關聯數據集(protein-protein interaction, PPI),在其中,每張圖對應於人類的不一樣組織。此時,使用 20 張圖進行訓練,2 張圖進行驗證,2 張圖用於測試。每一個節點可能的標籤數爲 121 個,並且,每一個節點能夠同時擁有多個標籤(在分類時使用 sigmoid 激活函數),其實驗結果以下:

uploading-image-155912.png

相關文章
相關標籤/搜索