趋近智
某些图神经网络(GNN)架构(如 GCN 和 GraphSAGE)在处理节点的邻居时,认为它们的权重是均等的,或者仅仅是由图结构决定的。例如,GCN 通过节点度数派生出的权重来对邻近节点的特征进行平均。这种方法计算效率很高,但存在明显的局限性。在许多图中,某些邻居的重要性远超其他邻居。以引用网络为例,一篇新文章引用的奠基性论文应当比一篇次要的参考文献拥有更高的权重。
图注意力网络(GAT)通过让每个节点学习其邻居的相对重要性来解决这个问题。GAT 不使用固定权重,而是为每条边计算注意力系数,从而在聚合步骤中学习节点对每个邻居应当投入多少“注意力”。这种机制受到了自然语言处理领域(尤其是 Transformer 模型)中成功的注意力模型的启发。
GAT 层的核心是自注意力机制,它为图中的每条边计算一个分数。这个分数即注意力系数 ,它量化了节点 的特征对节点 的重要程度。
该过程始于两个相连节点 和 的输入特征 和 ,其中 , 是节点数量, 是特征数量。
线性变换: 首先,对每个节点的特征向量应用一个由权重矩阵 参数化的共享可学习线性变换。这会将特征投影到更高层的表示中。
打分机制: GAT 论文提出使用一个简单的单层前馈网络来计算注意力系数。将两个节点的变换后的特征向量 和 进行拼接。然后将这个组合向量乘以一个可学习的权重向量 ,随后应用 LeakyReLU 非线性激活函数。
此计算会为从 到 的边生成一个标量分数 。这个分数是未经归一化的,代表了它们连接的原始重要性。对节点 的每个邻居 都会执行这一过程。
这些原始注意力分数 不能直接使用,因为它们在不同节点之间难以比较。拥有许多邻居的节点的分数尺度可能与只有少数邻居的节点不同。为了使它们具有可比性并转化为概率分布,我们使用 softmax 函数对其进行归一化。
这里的一个细节是 掩码注意力(Masked Attention)。softmax 仅在节点 的邻居集合 上应用。这旨在将图结构注入到机制中,确保节点仅与其直接邻居计算注意力分数。
最终的注意力权重 计算如下:
得到的权重 为正值,且对于节点 的所有邻居 之和为 1。它们代表了节点 分配给其邻居的注意力分布。
单个节点
i及其邻居的 GAT 注意力机制流程。该过程通过计算、归一化并应用注意力权重来创建更新后的节点表示。
有了归一化后的注意力权重 ,最后一步是计算节点 的新特征向量(记作 )。这是通过对其所有邻居的线性变换特征进行加权求和来完成的。
这里, 表示应用于聚合特征的最终非线性激活函数,如 ReLU 或 ELU。整个过程构成了一个完整的 GAT 层。
自注意力的学习过程有时可能不稳定。为了缓解这一问题并使模型能够捕捉不同类型的关系,GAT 采用了多头注意力(Multi-head Attention)。这涉及并行运行多个独立的注意力机制或“头”。
每个头 都有自己的一组参数( 和 )并计算自己的一组注意力权重 。每个头生成一个独立的嵌入表示。然后将这些嵌入组合起来形成最终输出。通常有两种组合方式:
拼接(用于中间层): 将所有 个头的输出拼接在一起,创建一个更大的特征向量。
得到的输出维度为 ,其中 是单个头的输出维度。
平均(用于最终层): 对于网络的最终输出层(例如用于分类),拼接并不合适。相反,会对来自不同头的嵌入进行平均。
通过使用多头注意力,模型可以同时关注来自不同位置、不同表示子空间的信息。例如,一个头可能专注于社区结构,而另一个头则专注于局部连接模式,从而使整体模型更具表达力且更加稳定。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造