Attention 在 GNN 中的应用

今天学习的是剑桥大学的同学 2017 年的工作《GRAPH ATTENTION NETWORKS》,目前引用数量超过 1100 次。

Attention 机制在 NLP CV 等领域被广泛应用,其可以帮助模型对输入数据赋予不同的权重信息。同样的,Attention 也可以应用于网络图中,它可以对邻居中不同的节点指定不同的权重,既不需要进行矩阵运算,也不需要事先了解图的全局结构。通过这种方式,作者解决了基于频谱的图神经网络的几个关键问题,并使得模型更方便的应用于归纳和转换问题。

1.Introduction

在之前的文章中我们也说过,学者想将卷积操作应用于网络图中主要有两种方式,一种是基于空域的方法,另一种是基于频域的方法。空域是指直接在网络中进行建模,而频域是指将网络图映射到频域后利用卷积变换进行建模。之所以要映射到频域是因为网络在空域中不具备规整性(也可以理解为平移不变性),而映射到频域后则可以完成卷积操作。

在许多基于序列(sequence-based)的任务中,注意力机制几乎已经成为这个邻域的标准。注意力机制的一大好处在于:它允许处理可变大小的输入,将注意力集中在最相关的输入部分。最开始的时候,注意力机制是用来计算序列的表征,通常被称为:self-attention。注意力机制可以改进 RNN/CNN 在阅读理解中性能,后来 Google 的同学直接通过 self-attention 构建出 Transformer 模型,并在机器翻译任务中取得了 SOTA。

受此启发,作者引入了基于注意力机制的体系结构来改进节点分类任务。其思想在于:在为图中每个节点计算向量表征时,利用 self-attention 的策略加权节点的邻居。这样的结构有很多很好的性质:

  1. 计算效率高:可以跨节点进行并行计算;

  2. 可以应用于不同度(degree)的图节点(克服了空间卷积的缺点);

  3. 可以进行归纳学习;

接下来看一下模型的详细情况。

2.GAT

在这一节主要介绍下模型的架构,并与之前的工作进行对比。

2.1 Graph Attention Layer

首先描述一下图注意力层(Graph Attentional Layer)。

扫描二维码关注公众号,回复: 11334049 查看本文章

图注意力层的输入是节点特征 ,其中 N 为节点的数量,F 为节点特征维度。图注意力层的输出是节点的新特征

为了获得充分的表达,我们还需要一个线性变换,这里采用一个共享的参数化权重矩阵 。然后利用一个共享注意力机制

这个公式表示为节点 j 的特征相对节点 i 的重要性。

对于这个公式来说,该模型允许每个图中的每个节点都参与到其他节点的计算中,即删除了网络图的结构信息。对此,我们可以通过 masked attention 操作确保每次计算时考虑节点的邻域信息,以此来为模型注入网络的结构信息。

这里,作者只考虑一阶邻域信息(包括自身节点)。为了消除权重量纲,作者使用 softmax 进行归一化处理:

作者设计的注意力机制是一个单层的前馈神经网络,参数向量为 ,并利用 LeakyReLU 增加非线形 。所以公式最终写为:

其中, 表示拼接操作(concat)。

得到归一化注意系数后,计算其对应特征的线性组合,并利用非线形激活函数得到最终的输出特征:

为了稳定注意力机制的学习过程,我们将注意力机制拓展到多头注意力(multi-head attention)。K 个的注意力机制独立运行,并将最后的特征进行拼接,最终公式为:

此时,输出的特征是有 维。

特别的,如果多头注意力后面会接一个预测层,那么拼接操作可能就不太合理了,取而代之我们可以取其均值,并应用一个非线性函数:

原文:If we perform multi-head attention on the final (prediction) layer of the network, concatenation is no longer sensible。

这里的不合理,感觉是通过实验结果反推来的。

GAT 的注意力和多头注意力的可视化如下图所示:

左边是两个节点的 attention 过程,右边是多头注意力的聚合(K=3,不同颜色代表不同的注意力)。

2.2 Comparisons to Related Work

GAT 解决了之前用 GCN 建模图结构数据时出现的几个问题:

  1. 计算高效:既不用进行矩阵特征分解,也不需要进行矩阵运算,单个时间注意力的时间复杂度为 ,其复杂度与 GCN 的差不多;应用多头注意力时,完全可以并行化计算;

  2. 隐式地为节点的同一邻居分配不同权重,从而扩展了模型的表达的能力,同时也提升了模型的可解释性;

  3. 注意力机制以共享的方式应用于图上的所有边,因此无需知道图上所有的节点和边,最直接的好处在于可以直接适用于归纳学习;

  4. GraphSAGE 是对邻域进行固定大小的采样,相比 GAT 来说邻域的信息获取有限,而基于 LSTM 提取邻域信息时,其假设存在一个一致且连续的节点排序,并且 GraphSAGE 通过提供随机排序的序列进行纠正,GAT 则没有对邻域节点排序的限制;

#3.Experiment

简单看下实验部分。

先来看下数据集:

实验分为直推学习(Transductive learning)和归纳学习(Inductive learning)

利用 t-SNE 降维进行可视化展示:

4.Conclusion

总结:作者提出了一种新型的图卷积神经网络——图注意网络(GAT),其利用带 masked 的自注意力层来处理图结构数据,同时利用多头注意力对节点邻域进行充分表达。GAT 在诸多数据集中无论是直推学习还是归纳学习都取得不错的成绩。

当然,GAT 还有很多需要改进的地方,比如说在并行计算时如何克服冗余计算,如何提高网络深度等等。

5.Reference

  1. 《GRAPH ATTENTION NETWORKS》

更多精彩内容(请点击图片进行阅读)

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

个人微信

备注:昵称+学校/公司+方向

如果没有备注不拉群!

拉你进AI蜗牛车交流群

点个在看,么么哒!

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/105872504
GNN
今日推荐