介绍

1
2
3
4
5
6
7
8
9
10
英文题目: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 ′来计算注意力参数:

Pasted image 20220502150544.png

它用于表示节点 j 对节点 i 的重要性。在注意力的一般公式中,模型允许每个节点参与其它节点的计算,因而与图结构无关。文中方法则使用 Mask 来遮蔽无关的节点,只考虑 j ∈ Ni,即 i 在图中的邻居节点,实验只考虑一阶邻居。再使用 Softmax 进行归一化:

Pasted image 20220502151126.png

注意力 a 是单层前馈网络,权重参数 a ∈ R 2F ′,使用 LeakyReLU 作为激活函数,将 (1) 代入式 (2) 后,表示为:

Pasted image 20220502151536.png

其中 T 表示转置,||表示串联操作,如图 -1 中左图所示:

Pasted image 20220502151714.png

之后,利用 a 来计算最终输出的特征 h':

Pasted image 20220502152416.png

其中σ是激活函数。

为了保证模型的稳定性,将单头注意力扩充成多头注意力模型,使用 K 个互不依赖的注意力机来实现式 -4 的转换,然后将输出特征串联作为最终输出的特征表示,最终的输出每个节点有 KF' 个特征。

Pasted image 20220502153904.png

其中||表示串联。

当使用多头注意力时,网络的最后一层不应输出太长特征,因此使用均值方法 averaging 来计算输出特征。

Pasted image 20220502154332.png

多头聚合方法如图 -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 数据集

Pasted image 20220502160927.png

文中共使用了四个数据集,前三个用于测试传导,第四用用于测试归纳,具体数据见表 -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 效果略好,这可能是由于对相同邻居分配不同权重带来的收益。

Pasted image 20220502162314.png
  • 归纳学习

    GAT 相对之前方法明显提升 20.5%,另外对比了相同架构下,与注意力衡定 (Const-GAT) 相比,分配给相同邻居不同权重使模型效果提升 3.5%。

Pasted image 20220502162337.png

图 -2 在 CORA 数据集上,将 GAT 模型的第一层 t-SNE 变换将特征表示可视化。图上聚类对应 7 个标签,证明了模型输出对不同主题的区分能力。

Pasted image 20220502165922.png