《Graph Attention Networks》阅读笔记

Graph Attention Networks

来源: ICLR 2018

作者:Petar Velickovic, Guillem Cucurull, Arantxa Casanova, Yoshua Bengio

Abstract

针对图结构数据,本文提出了一种GAT(graph attention networks)网络。该网络使用masked self-attention层解决了之前基于图卷积(或其近似)的模型所存在的问题。在GAT中,图中的每个节点可以根据邻节点的特征,为其分配不同的权值。GAT的另一个优点在于,无需使用预先构建好的图。因此,GAT可以解决一些基于谱的图神经网络中所具有的问题。实验证明,GAT模型可以有效地适用于(基于图的)归纳学习问题与转导学习问题。

创新点:

  • 引入masked self-attentional layers 来改进前面图卷积graph convolution的缺点
  • 对不同的相邻节点分配相应的权重,既不需要矩阵运算,也不需要事先知道图结构

attention 引入目的

  • 为每个节点分配不同权重
  • 关注那些作用比较大的节点,而忽视一些作用较小的节点
  • 在处理局部信息的时候同时能够关注整体的信息,不是用来给参与计算的各个节点进行加权的,而是表示一个全局的信息并参与计算

框架特点

  • attention 计算机制高效,为每个节点和其每个邻近节点计算attention 可以并行进行
  • 能够按照规则指定neighbor 不同的权重,不受邻居数目的影响
  • 可直接应用到归纳推理问题中

Definition

  • 归纳学习(Inductive Learning):先从训练样本中学习到一定的模式,然后利用其对测试样本进行预测(即首先从特殊到一般,然后再从一般到特殊),这类模型如常见的贝叶斯模型。
  • 转导学习(Transductive Learning):先观察特定的训练样本,然后对特定的测试样本做出预测(从特殊到特殊),这类模型如k近邻、SVM等。

谱方法 spectral approaches

GCN:

在每个节点周围对卷积核做一阶邻接近似。但是此方法也有一些缺点:

  • 必须基于相应的图结构才能学到拉普拉斯矩阵L
  • 对于一个图结构训练好的模型,不能运用于另一个图结构(所以此文称自己为半监督的方法)

非谱方法 non-spectral approaches

直接在图上(而不是在图的谱上)定义卷积。

MoNet(mixture model CNN),该方法可以有效地将CNN结构引入到图上。

GraphSAGE模型,该模型使用一种归纳的方法来计算节点表示。具体来说,该模型首先从每个节点的邻节点中抽取出固定数量的节点,然后再使用特定的方式来融合这些邻节点的信息(如直接对这些节点的特征向量求平均,或者将其输入到一个RNN中)

注意力机制 self-attention

优点:可以处理任意大小输入的问题,并且关注最具有影响能力的输入。

注意力机制再RNN与CNN之中,都取得了不错的效果,并且可以达到state of the art的性能。

Model

方法特性

针对每一个节点运算相应的隐藏信息,在运算其相邻节点的时候引入注意力机制:

  • 高效:针对相邻的节点对,并且可以并行运算
  • 灵活:针对有不同度(degree)的节点,可以运用任意大小的weight与之对应。(这里我们解释一个概念,节点的度degree:表示的是与这个节点相连接的节点的个数)
  • 可移植:可以将模型应用于从未见过的图结构数据,不需要与训练集相同。

图注意层 Graph Attention layer

输入 img N为节点的个数,F为feature的个数,这表示输入为N个节点的每个节点的F个feature

输出img 表示对这N个节点的 F' 个输出,输出位N个节点的每个节点的F'个feature

针对的是N个节点,按照其输入的feature预测输出的feature。

特征提取与注意力机制:

为了得到相应的输入与输出的转换,我们需要根据输入的feature至少一次线性变换得到输出的feature,所以我们需要对所有节点训练一个权值矩阵:img,这个权值矩阵就是输入与输出的F个feature与输出的F'个feature之间的关系。

We then perform self-attention on the nodes—a shared attentional mechanism,

针对每个节点实行self-attention的注意力机制,机制为 img

注意力互相关系数为attention coefficients:img

  • 这个公式表示的节点 j 对于节点 i 的重要性,而不去考虑图结构性的信息
  • 向量h就是 feature向量
  • 下标i,j表示第i个节点和第j个节点

通过masked attention将这个注意力机制引入图结构之中 ( masked attention的含义 :只计算节点 i 的相邻的节点 j )

节点 j 为img,其中 \(N_i\) 为 节点 i 的所有相邻节点。为了使得互相关系数更容易计算和便于比较,引入了\(softmax\) 对所有的 i 的相邻节点 j 进行正则化:img

实验之中,注意力机制a是一个单层的前馈神经网络,通过权值向量来确定img,并且加入了 LeakyRelu的非线性激活,这里小于零斜率为0.2。

注意力机制如下:

img

注意力互相关系数img

img

在模型中应用相互注意机制\(a(Wh_i,Wh_j)\),通过权重向量 a 参数化,应用 LeakyReLU 激活

  • 模型权重为img
  • 转置表示为T
  • concatenation 用 || 表示
  • 公式含义就是权值矩阵与F'个特征相乘,然后节点相乘后并列在一起,与权重img相乘,LRelu激活后指数操作得到softmax的分子

Output features

通过上面,运算得到了正则化后的不同节点之间的注意力互相关系数normalized attention coefficients,可以用来预测每个节点的output feature:img

  • 我们再回顾一下含义,W为与feature相乘的权值矩阵
  • \(a_{ij}\)为前面算得的注意力互相关系数
  • sigma为非线性激活
  • 遍历的 j 表示所有与 i 相邻的节点
  • 这个公式表示就是,该节点的输出feature与与之相邻的所有节点有关,是他们的线性和的非线性激活
  • 这个线性和的线性系数是前面求得的注意力互相关系数

multi-head attention

output feature加入计算multi-head的运算公式:

img
  • concat 操作为 \(||\)
  • 第k个注意力机制为img
  • 共k注意力机制需要考虑
  • 输入特征的线性变换表示为img
  • 最终的输出为h' 共由KF' 个特征影响

例如,K=3时候,结构如下

image-20200809145933581

例如此图,节点1在邻域中具有多端注意机制,不同的箭头样式表示独立的注意力计算,通过连接或平均每个head获取 h1

对于最终的输出,concat操作可能不那么敏感了,所以我们直接用K平均来取代concate操作,得到最终的公式:

img

对比

更好的效率

GAT运算得到F'个特征需要的算法复杂度img

  • F':为输出特征的个数
  • F:为输入特征的个数
  • |V| :节点的个数
  • |E|:节点之间连接的个数

并且引入K之后,对于每个head的运算都独立并且可以并行

更好鲁棒性

与GCN的不同在于,GAT针对不同的相邻节点的重要性进行预测,模型具有更好的性能并且对于扰动更加鲁棒。

不需要整张Graph

引入注意力机制之后,只与相邻节点有关,即共享边的节点有关,无需得到整张graph的信息。

  • 即使丢失了i,j之间的链接,则不计算img即可
  • 可以将模型运用于inductive learning,更好解释性,即使graph不完全,也可以运行训练过程

与GraphSAGE相比

最新的归纳学习方法(GraphSAGE)通过从每个节点的邻居中抽取固定数量的节点,从而保证其计算的一致性。这意味着,在执行推断时,我们无法访问所有的邻居。然而,本文所提出的模型是建立在所有邻节点上的,而且无需假设任何节点顺序。

Experiments

数据集

image-20200809151201493

半监督学习transductive learning

  • 两层 GAT

  • 在Cora 数据集上优化网络结构的超参数,应用到Citeseer 数据集

  • 第一层 8 head, F`=8 ELU 作为非线性函数

  • 第二层为分类层,一个 attention head 特征数C,后跟 softmax 函数

    • 为了应对小训练集,正则化(L2)
  • 两层都采用 0.6 的dropout

    • 相当于计算每个node位置的卷积时都是随机的选取了一部分近邻节点参与卷积

在transductive的任务中,比较平均分类准确度。为了公平的评估注意力机制的优势,作者进一步评估了一个计算64个隐含特征的GCN模型,并同时尝试了ReLU和ELU激活。由表1,GAT方法在数据集Cora、Citeseer的分类准确度比GCNs高1.5%和1.6%。这说明,将不同的权重分配给邻域内不同的邻居能够有效提高模型表达能力。

归纳学习inductive learning

  • 三层GAT 模型
  • 前两层 K=4, F1=256 ELU作为非线性函数
  • 最后一层用来分类 K=6, F`=121 后跟logistics sigmoid 激活函数
  • 该任务中,训练集足够大不需要使用 正则化 和 dropout

对于Inductive任务,取两个模型从未见过的graph测试,比较节点的F1-score。在PPI数据集上,GAT模型的表现比GraphSAGE的最好成绩还要高20.5%,GAT模型具有良好的inductive setting运用潜力。

Conclusion

引用了注意力机制,并且模型性能达到state of the art.

运算相邻节点,更加具有鲁棒性,不需要整张图。

更具有可解释性,公式也更直观。

posted @ 2020-08-12 09:33  C_W_K  阅读(717)  评论(0编辑  收藏  举报