![在这里插入图片描述](https://img-blog.csdnimg.cn/13149cab89b24909b248ff37645ae624.png)
1、文章贡献
提出了图注意力网络GAT,通过引入注意力机制计算出每个节点和与之相关联节点间的重要性系数,从而解决GCN中对每个节点同等重要的问题。
2、GAT优点
1.可以通过注意力机制根据与节点相关的不同特征去分配不同的权重
2.可以作用在有向图上(原先GCN中的拉普拉斯矩阵要想特征分解依赖于无向图计算出的对称阵)
3.计算效率更高,注意力机制在输入上可以实现并行化(不用再像GCN特征分解了)
而且GAT是空域上的模型,GCN是谱域的,一开始纠结GAT改进后的式子怎么没卷积了,看了半天好吧是我傻了,还是再理解理解注意力机制
3、GAT结构
- 输入特征
- 输出特征
- 计算注意力系数(将输入特征线性变换后执行self-attention机制)
将上述算出的系数通过softmax归一化操作(结果在0,1间更容易比较)
通过非线性层后计算的注意力系数
将计算的系数跟对应的特征相乘求和后通过非线性变换得到输出特征
- 上面整体的结构图
为了让自注意力过程更加稳定,文中参考2017年那篇attention is all you need中的多头注意力机制对多个独立的注意力进行拼接
- 下面就是将k个独立的注意力机制拼接的公式(其中 || 是拼接的符号)
- 文中说跟拼接相比,还是求k个平均更有意义
- multi-head attention的结构图如下
这里不同颜色的连接符号代表的是多个不同的head,图上k=3 heads,将每个头的聚合特征拼接或取平均得到输出特征
说实话当看到文中这部分的时候还是有点蒙,感觉只是讲了讲公式的作用并没有说清楚背后的运算是咋来的,就比如 self-attention和 multi-head attention当时就是没搞懂,后来看了transformer那篇原文、看了很多关于注意力机制的博客和b站李宏毅老师的讲解,开始有点弄明白了,关于注意力机制的理解就写在另一篇博客上了
论文解读8——Attention Is All You Need