本文介绍的论文《HOW ATTENTIVE ARE GRAPH ATTENTION NETWORKS?》。
作者改进了GAT网络在图数据上的注意力的局限性,提出了GATv2模型将原始的静态注意力调整成动态注意力机制,并在许多开源数据验证了改进后模型的有效性。
一、背景 |
图注意力网络GATs是目前较为流行的GNN架构,在GAT中每个节点可以看成一个查询向量Q,该节点的邻居可以看成键向量K,然后基于Q和K计算对应的注意力分数,也可以说成是权重系数,然后利用该权重对该节点的邻居进行加权求和聚合操作,作为该节点新的表示向量。
但是这篇文章作者发现GAT计算的注意力表示能力非常有限,注意力得分排名不受查询节点的影响,作者将这种注意力定义为静态注意力。
静态注意力:
动态注意力:
由上面图可以看出,第一幅图就是静态注意力,第二幅图是动态注意力。
第一幅图中每个查询节点q对【k0,k1…k9】计算注意力分数时,都是k8的注意力分数最大,也就是无论q是什么,k8的贡献都是相对最大的,为了解决这个问题,作者提出了GATv2来使用动态注意力。
二、模型方法 |
作者的改进措施很简单,就是修改了GAT中的计算顺序。
在GAT中,是分别将节点特征使用 W W W 进行映射到新的空间,然后将新的向量进行拼接,然后使用 α \alpha α 进行内积操作,最后使用 L e a k y R e L U LeakyReLU LeakyReLU 激活函数进行激活,随后使用 s o f t m a x softmax softmax 操作进行归一化。
在GATv2中,作者是先将节点特征向量进行拼接,然后使用 W W W 进行映射,然后使用激活函数进行激活,最后使用 α \alpha α 做内积操作计算得分。
GATv2网络操作:
三、实验结果 |
作者使用一个简单的综合问题证明了GA T的弱点,即GAT甚至无法拟合简易数据,但很容易通过GATv2解决。其次,发现GATv2对边缘噪声更为鲁棒,因为它的动态注意力机制允许它衰减有噪声边缘,而GAT的性能随着噪声的增加而严重降低。最后,在12个基准测试中比较了GAT和GATv2。
引入多头注意力的作用是稳定学习过程,然而上图显示,增加头部的数量严格地提高了训练的准确性,从而提高了表现力。因此,遗传算法依赖于具有多个注意力头部。相比之下,即使是单个GATv2头也比多头GAT具有更好的通用性。
作者又进一步比较了OGB的四个节点预测数据集上的GATv2、GAT和其他GNN。
四、总结 |
在本文中,作者发现广泛的图注意力网络不计算动态注意力。相反,GAT的标准定义和实现中的注意力机制只是静态的:对于任何查询,其邻居得分相对于每个节点得分都是单调的。因此,GAT甚至不能表达简单的对齐问题。
为了解决这一局限性,该作者引入了一个简单的修复方法,并提出了GATv2:通过修改GAT中的操作顺序,GATv2实现了一个通用的近似注意力函数,因此比GAT更强大。