论文阅读_图注意力网络
介绍
英文题目:GRAPH ATTENTION NETWORKS
中文题目:图注意力网络
论文地址:https://export.arxiv.org/pdf/1710.10903.pdf
领域:知识图谱,知识表示
发表时间:2018年
作者:Petar Veliˇckovi ́c,剑桥大学
出处:深度学习顶会 ICLR
被引量:1000
代码和数据:https://github.com/PetarV-/GAT
阅读时间:2022.04.25
读后感
简介部分复习了当时主流做法的演进过程,是很好的导读,其中GNN(基于RNN),GCN(基于CNN),GAN (基于Attention)都比较重要,MoNet和GraphSAGE也可以读一下(GraphSAGE用于大规模数据)。
泛读
- 针对问题:基于图结构的节点分类
- 结果:在小数据集传导测试中GAN与GCN效果不相上下,略好一点;在大数据集归纳测试中,无法使用GCN等方法,GAN更有优势。
- 核心方法:把注意力机制引入图神经网络。
- 难点:如果之前了解Attention和图的基本表示方法,本篇原理和代码都不复杂。
- 泛读后理解程度:直接精读
(看完题目、摘要、结论、图表及小标题)
精读
摘要
提出图注意力网络 graph attention networks(GATs),基于图结构,利用带MASK的自注意力机制。利用邻居节点的特征对不同邻居分配不同权重,无需高代价的矩阵运算,也不需要事先了解图结构。
简介
不规则数据常常使用图来描述,用神经网络解决图问题:最早提出用RNN方法表征有向无环图;2005提出GNN将RNN用于更多的图结构,它通过迭代扩展节点状态直至均衡,对每个节点产生一个输出;后又被改进,加入门控单元。(建议延伸阅读GNN)
卷积思想也被引入图神经网络,包含基于谱和不基于谱的方法。
基于谱方法:Bruna等在2014年使用谱表征方法应用于上下文中的节点分类问题,在频域使用卷积计算拉普拉斯矩阵的特征分解,它使用了大量计算和非局部的滤波器。2015年Henaff提出使用光滑系数,使其在空间上局部化;2016年Defferrard使用切比雪夫逼近滤波器,不再需要计算拉普拉斯的特征向量。最终,在2017年Kipf和Welling简化了之前的方法提出GCN,每层使用一跳的邻居,建构多层模型(CNN的谱方法推荐阅读GCN,其中也介绍了切比雪夫方法)。上述谱方法学习的过滤器(取舍邻居节点)都依赖拉普拉斯向量,拉普拉斯又基于图的邻接矩阵和度矩阵,强依赖图结构,因此,训练好的模型不能用于其它结构的图(结构变化,模型就不能用了)。
不基于谱方法:2015-2017年相继提出了将卷积直接用于图,计算空间上相邻的组的方法。面临的问题是节点的近临数各不相同以及如何保证CNN共享权重,解决方法有:学习不同度的权重矩阵;使用转换矩阵的强度来定义近邻,然后学习不同通道和邻居度的权重;以及提取并归一化包含固定数量节点的邻域。2016年Monti在MoNet(mixture model CNNs)提出了统一CNN结构的空间方法(GAT可以作为MoNet的一个特殊实例)。Hamilton在2017年提出了GraphSAGE,以归纳方法计算节点的表征,它采样固定数目的邻近节点,使用特殊的聚合函数,这种方法在几个大型归纳基准测试中取得了令人印象深刻的表现。(建议延伸阅读GraphSAGE,该方法常被用于大图模型的效果对比)
注意力机制近年来在很多序列任务中效果很好,它的一个主要优势是支持不同大小的输入,专注最相关的部分做决策,常用的方法有自注意力和内部注意力,通过和CNN和RNN结合,注意力在机器阅读和学习句子表征方面效果很好。2017年Vaswani展示了注意力不仅可以和其它模型结合,其本身也能在机器翻译任务中构建强大的模型。
本文受其启发,将注意力应用于基于图结构的节点分类问题,其主要想法是利用自注意力方法,使用领域信息,计算图中每个节点的隐藏表征,具有以下特点:
- 该操作是高效的,可以跨节点对并行操作
- 通过为邻域指定任意权重,应用于具有不同度的图节点
- 适用于归纳学习,可以推广到不完全可见的图
2. GAT架构
2.1 图注意力层
层的输入是节点特征h={h1,h2,...hN},其中N是节点数量,hi是向量hi ∈ RF,F是每个节点的特征个数。输出是新的节点特征:h'={h'1,h'2,...h'N},h'i∈ RF ′,输入的特征个数F可能与输出的特征个数F'不同。
为了通过层学习到更有效的表征,至少需要一个可学习的线性转换,模型参数W ∈ RF ′ ×F ,它被应用于每个节点,利用自注意力矩阵a,a : RF ′× RF ′来计算注意力参数:
它用于表示节点j对节点i的重要性。在注意力的一般公式中,模型允许每个节点参与其它节点的计算,因而与图结构无关。文中方法则使用Mask来遮蔽无关的节点,只考虑j ∈ Ni,即i在图中的邻居节点,实验只考虑一阶邻居。再使用Softmax进行归一化:
注意力a是单层前馈网络,权重参数a ∈ R 2F ′,使用LeakyReLU作为激活函数,将(1)代入式(2)后,表示为:
其中T表示转置,||表示串联操作,如图-1中左图所示:
之后,利用a来计算最终输出的特征h':
其中σ是激活函数。
为了保证模型的稳定性,将单头注意力扩充成多头注意力模型,使用K个互不依赖的注意力机来实现式-4的转换,然后将输出特征串联作为最终输出的特征表示,最终的输出每个节点有KF'个特征。
其中||表示串联。
当使用多头注意力时,网络的最后一层不应输出太长特征,因此使用均值方法averaging来计算输出特征。
多头聚合方法如图-1右图所示(一个颜色代表一个头,hi代表邻近节点)。
2.2 与之前方法对比
上述方法解决了之前图神经网络遗留的问题:
- 在计算方面,它非常高效,自注意力层可以并行计算边,输出特征可以在节点上并行。不需要特征分解或类似的复杂运算,单头的时间复杂度可表示为O(|V |F F ′ + |E|F ′),其中F是特征数,|V|和|E|是节点和边的个数,复杂度与GCN相当,多头注意力占用的空间和参数由头数K决定,且多头可以并行计算。
- 与GCNs方法不同的是,文中模型允许对同一邻居节点使用不同的权重,从而实现了模型容量的飞跃,此外,学习到的注意力权重可能提升模型的可解释性。
- 注意力机制以共享方式应用于图中所有边,它不依赖全局图结构f无需事先访问所有节点,因此:
- 图不需要是无向的
- 可用于归纳学习,支持在训练时不完全了解全图的任务
- 2017年提出的GraphSAGE方法对节点采样固定数目的邻居,为了保证计算过程的一致性,它不能访问所有邻居,当使用LSTM作为聚合工具时,它得到了更好的效果。文中方法则不受这些因素影响,它使用所有邻居,且不假设其顺序。
- 文中方法可视为MoNet的特例,与Monet相比,文中模型使用节点特征来计算相似性,而不是节点的结构属性。
3. 评价
3.1 数据集
文中共使用了四个数据集,前三个用于测试传导,第四用用于测试归纳,具体数据见表-1。
- 传导数据集中的节点是文档,边是文档间的引用关系(无向),特征是使用词袋模型提取的文档表征,每个节点对应一个类别标签。
- 归纳数据集是PPI(蛋白质相互作用),20张图训练数据,2个测试图,2个验证图,平均每图2372个节点,每个节点50个特征,共121个标签,一个节点可同时拥有多个标签。
3.2 对比模型
- 传导学习:使用多个模型对比,详见表-2,其中效果比较好的有图卷积网络GCN;使用切比雪夫过滤器的Chebyshev;以及MoNet模型。
- 归纳学习:主要与使用不同聚合方法的GraphSAGE模型对比,其它几种方法不能用于该数据集。
请注意,用于对比的多层感知机MLP完全没有用到图结构信息。
3.3 实验设置
- 传导学习:使用两层GAT模型,第一层多头K=8,每头输出特征数为F'=8,使用ELU激活函数,第二层用于分类,使用单头注意力计算C个特征,C是类别数,后接softmax激活函数。使用了dropout和正则化项,每个节点都可被领域随机采样。
- 归纳学习:使用三层GAT模型,前两层多头K=4,每头输出特征F'=256,使用ELU激活函数,最后一层为多标签的分类,使用6头注意力,每头121个特征,然后取均值,后接sigmoid激活函数。由于训练数据量大,因此不使用dropout和正则化项。还与注意力均为1(所有邻居权重相等)且架构相同的模型进行了对比。
两个模型均使用 Glorot 初始化,最小化交叉熵损失函数,使用Adam优化器,early stopping策略,最多迭代100次。
3.4 实验结果
- 传导学习
其中GCN-64* 表示使用64个隐藏层特征。GAT比GCN效果略好,这可能是由于对相同邻居分配不同权重带来的收益。
- 归纳学习
GAT相对之前方法明显提升20.5%,另外对比了相同架构下,与注意力衡定(Const-GAT)相比,分配给相同邻居不同权重使模型效果提升3.5%。
图-2在CORA数据集上,将GAT模型的第一层t-SNE变换将特征表示可视化。图上聚类对应7个标签,证明了模型输出对不同主题的区分能力。