圖注意力網路 是什麼?

Graph Attention Network:圖注意力網路 的完整解釋

使用注意力機制對圖的鄰域進行聚合的 GNN 模型,能為不同鄰居節點分配不同的權重。

核心概念

注意力機制的核心思想是為不同的輸入分配不同的重要性權重。在 Transformer 等序列模型中,注意力權重決定了每個位置對其他位置的關注程度。GAT 將這個思想遷移到圖上,對於每個節點的每條入邊,計算一個注意力係數,表示源節點對目標節點的「重要程度」。

GAT 的核心優勢在於其適應性。不同的節點對其鄰域的聚合需求不同。某些節點可能需要重視少數關鍵鄰居,而另一些則需要均衡考慮所有鄰域。GAT 讓模型自動學習這些差異,提升了模型的靈活性。

運作原理

GAT 的層級計算分為三步:

  • 線性變換:對於輸入特徵矩陣 H^(l),首先進行線性變換:

  • H' = H^(l) W,其中 W 是可學習的變換矩陣

  • 注意力係數計算:對於邊 (i, j),使用注意力機制計算權重係數:

  • e_ij = LeakyReLU(a^T [H'_i || H'_j])

  • α_ij = softmax_j(e_ij) = exp(e_ij) / Σ_k exp(e_ik)

其中 a 是可學習的注意力向量,[·||·] 表示向量串聯,softmax 對每個節點的所有入邊進行歸一化,確保權重和為 1。

  • 特徵聚合:聚合加權鄰域特徵:
  • H_i^(l+1) = σ(Σ_j∈N(i) α_ij H'_j)

其中 N(i) 是節點 i 的鄰域(包括自身),σ 是激活函數。

  • 多頭注意力:為了增加表現力,GAT 使用多頭注意力,並行計算多組注意力權重。最終輸出是所有頭的聚合(串聯或平均)。

實際應用

  • 知識圖譜補全:GAT 在知識圖譜中計算不同關係的重要性,對稀有邊(如稀見的三元組)能更細緻地學習。

  • 蛋白質相互作用預測:在蛋白質互作網路上,GAT 根據序列相似性和結構特徵自動權衡不同鄰居蛋白的影響,預測新的相互作用。

  • 推薦系統:在使用者-物品圖上,GAT 能識別使用者的「核心興趣」物品和「邊際興趣」物品,為不同用戶提供個性化推薦。

  • 文件分類:將文件表示為詞語共現圖,GAT 学習詞語間的上下文關係,提升文件分類精度。

  • 視覺推理:在場景圖(scene graph)上使用 GAT,為不同物體對間的視覺關係分配不同權重,改進視覺問答任務。

常見誤區

  • 誤區一:注意力權重總是稀疏的。GAT 的注意力權重是 softmax 的結果,理論上所有權重都非零且和為 1。實際中權重分佈可能相對集中(少數高權重),但不一定稀疏。某些任務上,注意力可能相對均勻分佈。

  • 誤區二:GAT 的注意力權重完全可解釋。雖然 GAT 的注意力權重看起來可解釋(如可視化高權重邊),但這些權重是許多因素(初始化、訓練損失、正則化)交互的結果,不一定反映邏輯上的「重要性」。直接解釋權重可能誤導。

  • 誤區三:多頭注意力總是優於單頭。多頭注意力增加表現力但也增加參數和計算量。在小圖或特徵維數已高的情況下,多頭未必帶來收益,反而可能過擬合。

  • 誤區四:GAT 對稀疏邊總是處理良好。若某些節點的鄰域特別稀疏或孤立,即使使用注意力機制也無法充分聚合資訊,反而可能增加方差。稀疏圖需要特殊處理(如圖平滑化、採樣)。

與相關技術的比較

  • GCN:GCN 使用固定的度歸一化權重,GAT 使用可學習的動態權重。GAT 更靈活,但計算複雜度更高(注意力計算涉及 softmax)。

  • GraphSAGE:GraphSAGE 使用簡單的聚合函數(平均、LSTM),不涉及注意力。GAT 的注意力機制更精細,適合邊權重變異大的圖。

  • Transformer:Transformer 是 GAT 在序列模型上的對應物。Transformer 中每個位置關注所有其他位置,GAT 中每個節點關注其圖鄰域。二者都使用多頭自注意力。

  • 邊權圖神經網路:某些 GNN 設計允許邊有權重(edge features)。GAT 在無邊特徵的圖上動態產生注意力權重,相當於學習邊的隱向量表示。

常見問題