标准回答
核心改进(独占一行)
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 往往已足够且更省算力。
追问
追问 1:GAT 的多头注意力在中间层和输出层处理方式有何不同?
中间层把 K 个头的输出在特征维拼接(concat),保留各头多样性、增大维度;输出层为了得到固定维度的最终表示,改为对 K 个头取平均(average),再过激活。
追问 2:相比 Transformer 的自注意力,GAT 的注意力有什么不同?
Transformer 自注意力是全连接、所有 token 两两计算;GAT 的注意力被图结构「掩码」,只在真实邻居之间计算,复杂度与边数成正比,且天然利用了图的稀疏先验。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。