返回 深度学习 思维导图
中文·English
🧠 深度学习ID: gat

GAT 注意力

Graph Attention Network
🎯核心定义
GAT(Graph Attention Network, Veličković et al. 2018)用注意力给每个邻居分配可学习权重。先对节点做线性变换 WhiWh_i, 拼接后经共享注意力向量打分: eij=LeakyReLU(aT[WhiWhj])e_{ij} = \mathrm{LeakyReLU}(a^T[Wh_i \Vert Wh_j])(其中 \Vert 表示拼接, aa 为可学习向量), 再对邻居做 softmax 归一化得到注意力系数 αij=exp(eij)kN(i)exp(eik)\alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k \in \mathcal{N}(i)} \exp(e_{ik})}, 聚合为 hi=σ(jN(i)αijWhj)h_i' = \sigma(\sum_{j \in \mathcal{N}(i)} \alpha_{ij} Wh_j)多头注意力: 用 KK 组独立的 Wk,akW^k, a^k 并行计算, 中间层拼接 hi=k=1Kσ(jN(i)αijkWkhj)h_i' = \Vert_{k=1}^{K} \sigma(\sum_{j \in \mathcal{N}(i)} \alpha_{ij}^k W^k h_j)(输出维度变为 KK 倍), 最后一层取平均 hi=σ(1Kk=1KjN(i)αijkWkhj)h_i' = \sigma(\frac{1}{K}\sum_{k=1}^{K} \sum_{j \in \mathcal{N}(i)} \alpha_{ij}^k W^k h_j) 以稳定训练。相比 GCN 的固定系数(仅由度决定), GAT 的系数是数据驱动的, 可在不同邻居间分配不同的重要性。
💡使用场景
邻居异质性强的图(社交网络影响力差异、引文重要度差异)、动态图与节点数可变场景; 面试对比题: GAT vs GCN、GAT vs Transformer 自注意力、多头机制的处理方式。
解决的核心痛点
GCN 的聚合权重 D~1/2A~D~1/2\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2} 是纯结构决定的常数, 表达能力受限且对图的度分布敏感。GAT 用 LeakyReLU 注意力 + 邻域 softmax 让权重随输入特征动态变化——同度邻居也能被区分(结构上不可分的节点对可被区分), 近似于把 Transformer 自注意力约束到邻域子图(N(i)\mathcal{N}(i) 代替全局 LL 位置), 兼具归纳能力与更强的拟合表达; 多头机制类似 Transformer 多头的多视角稳定作用。
🎯5 个高频面试考点 (Exam Points)
1
默写 GAT 注意力系数公式 αij=exp(LeakyReLU(aT[WhiWhj]))kN(i)exp(LeakyReLU(aT[WhiWhk]))\alpha_{ij} = \frac{\exp(\mathrm{LeakyReLU}(a^T[Wh_i \Vert Wh_j]))}{\sum_{k \in \mathcal{N}(i)} \exp(\mathrm{LeakyReLU}(a^T[Wh_i \Vert Wh_k]))} 并解释 \Vert 拼接、LeakyReLU 与 softmax 各自的作用。
2
GAT vs GCN 的核心区别: GCN 的系数是结构固定的(由度决定), GAT 为什么能区分同度邻居(结构不可分但语义不同的节点对)?
3
多头注意力的两种处理: 中间层为什么拼接、输出层为什么平均? 多头与单头在训练稳定性与表达能力上的差异。
4
为什么注意力系数只对邻居 N(i)\mathcal{N}(i) 做 softmax 归一化而不是对全图? 与 Transformer 全局 softmax 的对比(复杂度与局部性)。
5
GAT 与 Transformer 自注意力的异同: 查询/键/值在哪里、图结构如何通过 mask 融入、二者何时可以互相转换?
📖 关联深度指南:📄 gnn-and-graph-learning
更新于 2026-08-12
🎯
检验攻克程度:针对「GAT 注意力」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点GCN 谱域下一个知识点GAN 对抗训练

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWAutograd 动态图BatchNorm 批归一化