40

【GNN】GAN:Attention 在 GNN 中的应用

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650413012&%3Bidx=4&%3Bsn=c4853855948e77856fafc75655a4c00d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

mUBZzuv.jpg!web

今天学习的是剑桥大学的同学 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)。

图注意力层的输入是节点特征,其中 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 的注意力和多头注意力的可视化如下图所示:

VJ7VRry.png!web

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

2.2 Comparisons to Related Work

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

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

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

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

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

#3.Experiment

简单看下实验部分。

先来看下数据集:

iiaANnZ.png!web

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

iIRJjmV.png!webvA3AVvv.png!web

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

MveYR3q.png!web

4.Conclusion

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

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

5.Reference

  1. 《GRAPH ATTENTION NETWORKS》

推荐阅读

AINLP年度阅读收藏清单

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

qIR3Abr.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK