论文:Graph Attention Networks
作者:Petar Velickovic, Guillem Cucurull
来源:ICLR 2018
1. 概括
本文提出Graph Attention Networks(GATs),将注意力机制应用到图神经网络中,每一层学习节点每个邻居对其生成新特征的贡献度,按照贡献度大小对邻居特征进行聚合,以此生成节点新特征。
GATs具有计算复杂度低,适用归纳学习任务的特性。
review:
- 本文使用的注意力机制是来自Google 2017的论文《Attention is all you need》中的self-attention和multi-head attention,该论文提出了一个仅用attention搭建的神经网络架构"the transformer" 应用到机器翻译任务,支持并发,性能更强。
- GATs其实是扩展了GraphSAGE框架,使用了注意力机制的aggregate方法,从实验效果看显著提升(PPI数据集上F1-score从0.768--> 0.973, 是否具有普遍性,打个问号)。
- GeniePath:蚂蚁提出自动选择邻居的GNN 这篇论文是本文在学习深度邻居贡献度上的一个扩展(本文只学习直接相连邻居的贡献度)。
2. self-attention
本节详细介绍每一次迭代(每一层)中aggregate模块所使用的self-attention机制 (主流的图神经网络架构介绍见另一篇文章GraphSAGE框架)
2.1 方法
输入:节点i特征
输出:邻居j对节点i生成新特征的贡献度
模型:使用一个简单的前馈神经网络去计算
如下图所示:
![c83f8be909af5e8a3eb0b52918591d5c.png](https://i-blog.csdnimg.cn/blog_migrate/d831d60b8b7113f403f8bf5214866826.jpeg)
2.2 输入预处理
对
- W为参数矩阵,将F维的特征线性组合生成F'维特征。
- 线性变换的目的是得到更强大的表达,可以见参考:YJango:深层学习为何要“Deep”
2.3 输入层->隐层
-
表示邻居j的特征对i的重要性/贡献度。
-
表示将将
和
拼接起来,作为神经网络的输入(2F'维)
-
为输入层->隐层的参数,因为隐藏只有一个神经元,故是一个2F'维的向量。
- 激活单元使用Leaky ReLU 进行非线性转换
2.4 隐层->输出层
为了使不同邻居的贡献度可以对比,使用softmax归一化,最终得到邻居j对节点i生成新特征的贡献度
2.5 生成节点新特征
对节点i的邻居特征按贡献度
3. multi-head attention
因为只计算一次attention,很难捕获邻居所有的特征信息,《Attention is all you need》论文中进一步完善了attention机制,提出了multi-head attention ,其实很简单,就是重复做多次attention计算),如下图所示:
![6f6601daccb29c75127a3be1307466f9.png](https://i-blog.csdnimg.cn/blog_migrate/38eb851bb04bb33c26da9d787c2ee55b.jpeg)
本文也使用了multi-head attention:学习K个不同的attention,对应参数
![8bce7b18f915542a0010bf402a4bfeb5.png](https://i-blog.csdnimg.cn/blog_migrate/11467d6e104681740d9b8e9d7077bd4d.jpeg)
如果在整个图神经网络的最后一层,使用平均替代拼接,得到节点最终的embedding:
![58816832c47a7a7dc79f30c32191fe5b.png](https://i-blog.csdnimg.cn/blog_migrate/6b6934933d8d2f12c582d63d2b150a00.jpeg)
4.实验效果
GATs可适用直推和归纳学习也是作者强调,在实验中分别做了测试
直推学习
![2a0d1270f1219b8e2b111443c120294f.png](https://i-blog.csdnimg.cn/blog_migrate/744df98e54a684cf82e8c76768955fe2.jpeg)
归纳学习
感觉效果有点夸张,因为在直推学习数据集中也没有这么大的差异。
![992c6d01cfc4282c11dd72b63b8786cb.png](https://i-blog.csdnimg.cn/blog_migrate/001dd76cbe7924e43828deb859188cfd.jpeg)
5.未来有价值的工作:
- 利用attention机制分析模型可解释性。
- 在attention中考虑边的特征:本文仅考虑“直接相连”的邻居计算attention。
参考:
- 传统attention机制:https://www.coursera.org/learn/nlp-sequence-models
- self-attention机制:川陀学者:Attention机制详解(二)——Self-Attention与Transformer