#论文题目:Graph Attention Networks(图注意力网络)
#论文地址:https://arxiv.org/pdf/1710.10903.pdf
#论文发表网站:https://arxiv.org/abs/1710.10903
#论文源码开源地址:https://github.com/Diego999/pyGAT
#论文所属会议: ICLR 2018 (深度学习新兴顶级会议)
一、简介
图注意网络(GAT),一种基于图结构数据的新型神经网络架构,利用隐藏的自注意层来解决之前基于图卷积或其近似的方法的不足。通过堆叠节点能够处理其邻域特征的层,可以(隐式地)为邻域中的不同节点指定不同的权重,而不需要任何代价高昂的矩阵操作或依赖于预先知道图结构。
引入attention(自注意力机制)的目的:
- 为每个节点分配不同的权重;
- 在一个异质信息网络中,A节点的邻居节点对A节点的自注意力的数值越高,证明邻居节点对A节点所起的作用越大,影响越深;
- 自注意力机制可以考虑节点的整体特征,而不是仅仅依赖其节点本身的特征,使得求出的向量等数值更加精确。
二、GAT ARCHITECTURE(GAT 结构)
通过一个图注意力层,并不需要复杂的图卷积操作,使得节点及其邻居的结构信息可以整合到节点中,此自注意力的设定是基于Bahdanau 20151 。但是这个论文提出的框架对于注意力机制的选择是不可知的。
2.1 Graph Attentional Layer
该部分包括两个步骤:进行特征值的放缩变换,进行注意力相关系数的学习。
2.1.1 特征值的放缩变换
我们的输入是节点特征的集合h,输出是经过变换处理后(放缩变换等)的节点的新特征的集合h’。
2.1.2 注意力相关系数的学习
实验中用到的注意力机制 α 的算式:
下面为各激活函数的函数图像的表示:
2.1.3 加权求和
上面我们得到了归一化后的节点及其邻居节点的注意力数值,接下来我们要将每个数值整合起来最终形成图网络中节点的注意力表示的输出。
2.2 Multi-head attention机制
特别说明的是,若我们使用Multi-head attention机制作为网络中的最后一层卷积网络,我们不采用向量特征的链接,而是采用向量的加权平均值的形式。
三、总结
- 与GCN类似,GAT同样是一种局部网络。因此,(相比于GNN或GGNN等网络)训练GAT模型无需了解整个图结构,只需知道每个节点的邻节点即可。
- GCN和GAT相比,节点更新的方式不一样。相比于GCN,GAT在更新节点的时候多引入了一个权值矩阵Anew。
四、拓展
相比于GAT根据LeakyRELU激活函数得到最终的注意力机制的数值,AGNN方法使用节点及其邻居之间的余弦相似度的方法最后再进行归一化得到注意力机制的数值。
论文:Attention-based Graph Neural Network for semi-supervised learning
代码:https://github.com/dawnranger/pytorch-AGNN
参考:图注意力网络
Dzmitry Bahdanau, Kyunghyun Cho, and Y oshua Bengio. Neural machine translation by jointly learning to align and translate. International Conference on Learning Representations (ICLR), 2015 ↩︎