核心要点

  • 能讲清核心改进:邻居权重由注意力可学习地计算,而非 GCN 由度数固定

  • 能写出注意力流程:拼接两端特征经线性层 + LeakyReLU 打分,再对邻居做 softmax 归一化

  • 能说明多头注意力:并行多组注意力增强稳定性与表达力,中间层拼接、输出层平均

  • 能指出优势:权重自适应、可解释(能看哪些邻居重要)、天然归纳式可处理新节点

标准回答

核心改进(独占一行)

GAT 把 GCN 中「由度数固定的邻居权重」换成「由注意力机制学习的自适应权重」,让模型自己决定每个邻居有多重要。

注意力权重怎么算

对节点 (i) 与其邻居 (j),先各自经共享线性变换 (W),再把两者拼接送入一个单层前馈 (a) 并过 LeakyReLU 得到打分 (e_{ij}),最后在 (i) 的所有邻居上做 softmax 归一化得到注意力系数 (\alpha_{ij}):(\alpha_{ij} = \text{softmax}_j(\text{LeakyReLU}(a^\top [Wh_i | Wh_j])))。新表示是邻居特征按 (\alpha) 加权求和。

多头与优势

GAT 用多头注意力:并行 K 组独立注意力,中间层把各头结果拼接、输出层取平均,提升稳定性与表达能力。相比 GCN,权重自适应(重要邻居权重更大)、可解释、且计算只依赖局部邻居不需要全图邻接矩阵,因此天然支持归纳式,能直接用于训练时未见的新节点

常见误区

⚠️ 常见踩坑

注意力打分要在每个节点自己的邻居集合内做 softmax 归一化,而不是全图归一化;另外别误以为 GAT 一定优于 GCN——在同质性强、噪声小的图上 GCN 往往已足够且更省算力

追问

追问 1GAT 的多头注意力在中间层和输出层处理方式有何不同?

中间层把 K 个头的输出在特征维拼接(concat),保留各头多样性、增大维度;输出层为了得到固定维度的最终表示,改为对 K 个头取平均(average),再过激活

追问 2相比 Transformer 的自注意力,GAT 的注意力有什么不同?

Transformer 自注意力是全连接、所有 token 两两计算;GAT 的注意力被图结构「掩码」,只在真实邻居之间计算,复杂度与边数成正比,且天然利用了图的稀疏先验。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。