闵昶榮 图注意力网络(graph attention networks)
新闻来源:IR实验室       发布时间:2019/10/14 14:34:13

1.引言

神经网络目前所处理的图像数据、文本数据以及音频数据都是网格数据,也可以称为欧几里德结构数据。对于该类型的数据,目前已经有足够成熟的模型来处理,比如:卷积神经网络、循环神经网络等。但是,一些非欧几里德结构的数据,比如分子结构网络、社交网络、脑连接体网络,都是无法通过卷积神经网络等进行处理。卷积神经网络通过固定尺寸的卷积核对于图片上固定区域内的像素进行特征提取,但是图结构数据中,由于节点周围数据的随机性,卷积神经网络无法通过共享的卷积核,完成对于图结构数据的特征提取。因此,本文提出了一种用于处理图结构数据的图注意力网络。

本文发表在ICML(Internation Conference on Machine Learning)2018上。ICML是由国际机器学习协会主办的年度机器学习顶会。2018年的ICML在瑞典斯德哥尔摩召开,在提交的2473篇论文中,录用了621篇,录用率为25.1%。

2.模型原理与算法

图注意力网络的核心是Masked Self-attention层,该层的对于图数据进行特征提取的过程如下。先定义一组图中的节点image.png,每个节点被表示为一个长度为F的向量。然后,本文设置了一个权重矩阵image.png,其目的是将节点特征转换为更高级的特征。经过转换后,得到新的特征image.png,此时每个节点的向量长度为image.png

  定义一个共享的注意力机制a,定义image.png为节点i与节点j之间的注意力系数,表示节点j对于节点i的重要程度。其式子可以表示如下:image.png。对于节点间的相互作用定义完成后,需要设定应该由哪些节点参与到中心节点的更新中。为此,本文对于中心节点i定义了一个一阶邻域image.png,该邻域由节点i以及邻接的节点构成。接下来计算中心节点i与image.png内每个节点之间的注意力系数image.png,其中image.png。然后对于所有的系数进行归一化处理,得到image.png。该系数在对于中心节点的更新中扮演着权重的角色。至此,上述对于权重获取的过程可以表示如下:

image.png

其中,LeakyReLU为论文所采用的非线性激活函数,公式中的双竖线表示为两个向量之间进行连接操作。论文采用一个前馈神经网络(FNN),来学习注意力系数image.png的权重image.png。下图为中心节点i与一阶邻域内节点j之间注意力系数的计算过程:

image.png

图1 注意力系数计算过程

论文在对于中心节点更新这一步骤中,采用了多头(multi head)机制。对于每一个头,设置了节点的更新策略:

image.png

对于K个头,论文提出了两种不同的聚合策略,一种是在并行更新每个头的节点后,将更新后的节点进行连接,重新构成一个K倍长度的向量,称之为concatenating;第二种策略是对于更新后的中心节点进行向量相加,然后对于中心节点整体缩小K倍,文中称为Averaging。

Concatenatingimage.png

Averagingimage.png

下图为K=3情况下,对于中心节点的更新:

image.png

图2 中心节点更新策略

3.实验与结果

论文采取了两种实验策略,分别为转导学习(Transductive learning)与归纳学习(inductive learning),转导学习的思想与半监督学习有些相似,其测试集与验证集来自于训练集中未标记的部分,因此对于模型而言,图中每个节点(训练集、验证集与测试集)在训练过程中是可见的,但是边的信息则是未知的;归纳学习理解起来就容易很多了,它与有监督学习是类似的,其训练集均为有标记的数据,而验证集与测试集都是模型在训练过程中没有见过的。

论文采用四种数据集,Cora、Citeseer、Pubmed以及PPI。前三个数据集为科学文献引用关系数据集,每个数据集中只包含一张图,图中的每一个节点表示为一个科学文献文档,节点之间的边表示为文献间的引用关系;第四个数据集为生物医学领域内的数据集,描述蛋白质间的相互作用,该数据集由24张图构成。数据集的详细信息总结如下:

 

 

 

 

表1 实验数据集总览

image.png

对于Cora、Citeseer以及Pubmed这三种数据集,论文采用了转导学习。实验采用了一个二层结构,第一层是一个头数为8,每头上输出8维特征的自注意力层,第二层为单头结构,主要负责对于节点分类,因为其输出长度取决于数据集的类别总数。论文采用了Cora数据集对于模型进行优化,并将训练好的模型用于Citeseer上,这可以看作是一种预训练的方式,我认为主要是因为两个数据集的规模以及内容是相差无几的,模型可以在二者之间进行迁移,这样可以减少运算量,而且实验结果证实方法可行。对于Pubmed数据集,论文对于二层结构进行了一些调整,但是没有给出具体原因,但应该是通过实验调参得到的结论,而且该数据集相对于前两者,规模很大,所以相应的调整是合理的。而且,论文采用了dropout的策略,在神经网络训练过程中对于神经元随机进行,而且在一阶邻域节点的选取上,也采用了dropout这种随机方式,这也与之前提到的masked思想相呼应。模型采用准确率进行评估,三个数据集上的实验结果如下:

表2 转导学习实验结果

image.png

不难看出,模型在Cora数据集以及Citeseer数据集上,相比于baseline,均提升了1.6%左右;但是,在Pubmed数据集上,模型保持了与baseline相同的准确率。我认为,论文提出的GAT模型与baseline中的GCN模型,在不同规模数据集上的表现值得进一步的通过实验验证。

对于PPI数据集,采用一个三层网络模型进行归纳学习。第一层与第二层均为头数4,每头输出256维特征的自注意力层,第三层为头数6,每头输出121维特征的自注意力层,并采用sigmoid函数进行分类。而且模型没有采用dropout策略。其实验结果如下:

表3 归纳学习实验结果

image.png

可以看出,GAT在该数据集上有很明显的提升(20.5%),而且实验通过设置const-GAT,即将所有注意力系数设置为1,证明了对于不同节点分配不同注意力系数的策略是有效的。但是,遗憾的是论文只采用一种数据集进行实验,如果能够采用三种或三种以上数据集进行,相信结果会更加有说服力。

4.总结

GAT模型在注意力系数计算以及多头更新中心节点上,采用了并行计算的思想,减少了运算量;而且,对于不同的一阶邻域内节点采取了动态分配权重的思想,而且证实其有效性。宏观来看,这种模型也可以称为一种卷积操作,因为都是采用了加权再求和的思想。

5.参考文献

[1] Petar, V. et al. Graph Attention Mechanism. ICML (2018).

[2] Thomas, N. K. et al. Semi-Supervised Classification with Graph Convolutional Networks. ICLR (2017).