搜尋意圖: 如果你在找「圖注意力網路 是什麼」或「圖注意力網路 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 使用注意力機制對圖的鄰域進行聚合的 GNN 模型,能為不同鄰居節點分配不同的權重。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
使用注意力機制對圖的鄰域進行聚合的 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 在無邊特徵的圖上動態產生注意力權重,相當於學習邊的隱向量表示。
常見問題
GAT 為什麼要使用多頭注意力?
多頭注意力允許模型在多個表示空間並行學習。每個頭可能捕捉不同的語義或結構模式。例如,某個頭可能學習「相同類別的鄰居更重要」,另一個頭可能學習「度數相近的鄰居更相關」。多頭聚合後,模型能同時利用多個視角,提升表現力和魯棒性。但代價是參數增加和計算速度下降。
GAT 在訓練過程中注意力權重如何演變?
初期,注意力權重由隨機初始化的注意力向量 a 決定,分佈相對均勻。隨著訓練進行,損失函數優化權重矩陣 W 和 a,注意力權重逐漸適應任務。最終,高重要性的邊權重升高,低重要性邊權重降低。在某些任務中,權重分佈可能最終集中(少數邊主導),在其他任務中可能保持相對均勻。這個演變過程無法被完全預測,需透過可視化和分析來理解。
能否在 GAT 中使用邊特徵(邊權重或邊屬性)?
標準 GAT 未考慮邊特徵。若要融合邊特徵,有幾個做法:(1) 將邊特徵拼接到節點特徵(如在計算注意力時同時考慮邊屬性),(2) 修改注意力公式,讓注意力權重依賴於邊特徵,(3) 使用邊特徵預初始化注意力。這些修改在一些應用(如交通圖、知識圖譜)上被嘗試過,但標準實現中通常忽略邊特徵。