GAT
GAT–Graph Attention Networks
GAT产生背景
神经网络在图数据上的应用需求:
- 随着深度学习技术在图像、语音、自然语言处理等领域的成功应用,研究人员开始尝试将神经网络方法扩展到图结构数据上。图数据广泛存在于社交网络、生物网络、通信网络等实际应用中,处理这些数据需要专门的算法。
现有方法的局限性:
- 传统的图神经网络(Graph Neural Networks, GNN)和图卷积网络(Graph Convolutional Networks, GCN)在处理图结构数据时遇到了一些挑战,例如:
- 固定权重分配:GNN和GCN通常使用固定的权重或预定义的方法来处理邻居节点的重要性,难以灵活地处理不同邻居节点的重要性差异。
- 计算复杂度高:一些基于光谱的方法需要进行复杂的矩阵分解或逆操作,在大规模图数据上计算成本较高。
- 依赖全局图结构:许多方法需要预先知道整个图的结构,在处理从未见过的新图时存在局限性。
注意力机制的发展:
- 注意力机制在自然语言处理领域(如机器翻译)取得了显著的成功,它能够动态地为输入序列的不同部分分配不同的权重,显著提升了模型的性能和灵活性。
- 自注意力(Self-Attention)机制尤其成功,它不仅可以提高模型的性能,还能处理变长输入,提供了更好的解释性。
从卷积神经网络到图神经网络的扩展:
- 卷积神经网络(CNN)在处理网格状数据(如图像)时非常有效,通过在图像的局部应用卷积滤波器,可以提取有效的特征。
- 图神经网络试图将卷积操作扩展到图结构数据上,但在如何有效处理不规则的图结构上仍然存在挑战。研究人员希望找到一种方法,可以像卷积神经网络处理图像那样高效地处理图结构数据,同时克服现有方法的局限性。
GAT的提出:
- GAT的提出是在这些背景下,研究人员希望通过引入注意力机制来解决上述问题。通过在图结构数据上应用自注意力机制,GAT能够动态地为不同邻居节点分配不同的权重,显著提升了模型的灵活性和性能。
- GAT还能够高效地并行计算,并且无需预先知道图的全局结构,这使得它在处理大规模图数据和归纳学习任务时具有优势。
与GNN、GCN相比的优势:
动态权重分配:
- GNN和GCN:通常在每个节点的邻居上施加固定的权重或通过预定义的方式计算权重,这种方法在处理不同重要性的邻居节点时有一定局限。
- GAT:通过自注意力机制,GAT可以动态地为每个节点的不同邻居分配不同的权重,这允许模型更加灵活地关注对节点更重要的邻居,提高了模型的表达能力和性能。
无需预先计算图结构:
- GNN和GCN:很多方法需要预先计算图的拉普拉斯特(Laplacian)矩阵或其他与图结构相关的特征,这可能导致计算复杂度较高,特别是在处理大规模图时。
- GAT:通过注意力机制直接在节点和边上操作,无需预先计算复杂的图结构特征,这使得模型在处理不同结构的图时更加灵活和高效。
高效并行计算:
- GNN和GCN:有些方法如基于光谱的卷积操作可能需要进行复杂的矩阵分解或逆操作,这在大规模图上计算成本较高。
- GAT:注意力机制可以在图的所有边上并行计算,而且由于注意力权重的计算是独立的,因此非常适合于GPU加速,从而提高了计算效率。
适用于归纳学习任务:
- GNN和GCN:一些方法在训练过程中需要访问整个图结构,这在处理从未见过的图(归纳学习)时可能会遇到困难。
- GAT:由于其注意力机制不依赖于全局图结构,GAT在处理归纳学习任务时表现尤为突出,可以在训练时只使用部分图而在测试时处理完全未见过的图。
处理不同大小的邻居集合:
- GNN和GCN:通常需要对不同大小的邻居集合进行固定处理,如使用固定大小的窗口或采样策略,这可能影响模型的灵活性和性能。
- GAT:通过注意力机制,GAT可以自适应地处理不同大小的邻居集合,不需要特殊的预处理步骤,从而提升了模型的适用性。
核心创新点
引入注意力机制:
- GAT的最大创新在于在图结构数据上应用了自注意力机制(Self-Attention Mechanism)。通过自注意力机制,GAT能够动态地为每个节点的邻居分配不同的权重,这使得模型能够更灵活地关注不同邻居节点的重要性。
高效并行计算:
- GAT的计算过程是并行化的,特别是在节点-邻居对上的计算可以并行进行。这种并行化使得GAT能够高效地处理大规模图数据,避免了许多传统方法中常见的计算瓶颈,如矩阵分解或逆操作。
无需预先知道图的全局结构:
- GAT不依赖于图的全局结构信息,只需要局部的邻居信息即可进行计算。这使得GAT在处理未知或动态变化的图结构时具有很大的优势,尤其是在归纳学习任务中,GAT能够处理完全未见过的新图。
处理不同大小的邻居集合:
- 通过注意力机制,GAT可以自适应地处理不同大小的邻居集合,而无需预定义邻居集合的大小或形状。这使得模型在处理具有不同拓扑结构的图时更加灵活和鲁棒。
多头注意力机制(Multi-Head Attention):
- GAT采用了多头注意力机制(Multi-Head Attention Mechanism),通过多个并行的注意力头计算不同的注意力分布,并将它们的输出进行拼接或平均。多头注意力机制提高了模型的表达能力和稳定性,使其能够捕捉更丰富的特征表示。
适用于多种图学习任务:
- GAT不仅适用于节点分类任务,还能够扩展到其他图学习任务,如图分类、链接预测等。其灵活的框架使得GAT在处理各种不同的图学习问题时都表现出色。
提高模型的解释性:
- 由于GAT能够动态地为每个邻居节点分配不同的权重,因此通过分析这些注意力权重,可以更好地理解模型在决策过程中关注的关键节点和特征,提高了模型的解释性。
GAT核心公式
1. 注意力系数的计算
GAT的基本思想是对每个节点的邻居节点计算注意力系数,这些系数表示每个邻居对目标节点的重要性。注意力系数 $e_{ij}$ 的计算公式如下:
其中:
- $\vec{a}$ 是一个可学习的权重向量。
- $\mathbf{W}$ 是一个可学习的权重矩阵。
- $\vec{h}_i$ 和 $\vec{h}_j$ 分别是节点 $i$ 和节点 $j$ 的特征向量。
- $|$ 表示向量的连接操作。
- $\text{LeakyReLU}$ 是带泄露的ReLU激活函数。
2. 注意力系数的归一化
计算得到的注意力系数 $e{ij}$ 需要进行归一化,以便进行比较和应用。归一化后的注意力系数 $\alpha{ij}$ 通过Softmax函数计算:
其中 $\mathcal{N}_i$ 表示节点 $i$ 的邻居节点集合,包括节点 $i$ 自身。
3. 节点特征的聚合
归一化后的注意力系数用于对邻居节点的特征进行加权平均,得到更新后的节点特征 $\vec{h}’_i$:
其中 $\sigma$ 是激活函数(例如ReLU或ELU)。
4. 多头注意力机制
为了增强模型的表达能力和稳定性,GAT采用了多头注意力机制。每个头独立计算注意力系数和节点特征,然后将它们的输出进行拼接或平均。多头注意力机制的公式如下:
其中:
$K$ 是注意力头的数量。
$\alpha_{ij}^k$ 和 $\mathbf{W}^k$ 分别是第 $k$ 个注意力头的注意力系数和权重矩阵。
$|$ 表示拼接操作。
在最终的输出层,多头注意力机制的结果通常进行平均,而不是拼接: