Graph Attention Networks理解

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

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

Related Work

在之前的模型中,已经有很多基于神经网络的工作被用于处理图结构的数据。例如,最早的GNN网络(详情见GNN)可以被用于处理有环图、有向图或无向图。然而,GNN网络本身必须使整个网络达到不动点之后才可以进行计算。针对这一问题,[2]中通过将GRU引入到网络结构中,进一步提出了GGNN网络(详情见GGNN)。后来,人们开始关注将卷积操作引入到图领域中,这一类算法可以被分为谱方法(spectral approaches)与非谱方法(non-spectral approaches)两大类。

谱方法是基于对图进行谱表示的一类方法。其上的卷积操作与图拉普拉斯矩阵的特征值分解有关,因此,往往需要进行密集的矩阵运算,而且整个计算并不是局部的。为了解决这一问题,[3]提出了GCN网络,该网络可以有效地对节点的一阶邻居进行处理,而且可以避免复杂的矩阵运算。然而,这些模型都依赖于图的结构,因此,在特定图结构上训练得到的模型往往不可以直接被使用到其他图结构上。

不同于谱方法,非谱方法是直接在图上(而不是在图的谱上)定义卷积。这类方法的一个挑战在于,如何定义一个可以处理可变大小邻居且共享参数的操作。针对这一问题,在[4]中,作者提出了MoNet(mixture model CNN),该方法可以有效地将CNN结构引入到图上。类似地,[5]提出了一种GraphSAGE模型,该模型使用一种归纳的方法来计算节点表示。具体来说,该模型首先从每个节点的邻节点中抽取出固定数量的节点,然后再使用特定的方式来融合这些邻节点的信息(如直接对这些节点的特征向量求平均,或者将其输入到一个RNN中),这一方法已经在很多大型归纳学习问题中取得了很好的效果。

在本文中,作者提出了一种基于attention的节点分类网络——GAT。其基本思想是,根据每个节点在其邻节点上的attention,来对节点表示进行更新。GAT具有以下几个特点:(1)计算速度快,可以在不同的节点上进行并行计算;(2)可以同时对拥有不同度的节点进行处理;(3)可以被直接用于解决归纳学习问题,即可以对从未见过的图结构进行处理。

Graph Attentional Layer

输入:

单个的 graph attentional layer 的输入是一个节点特征向量集。其中,  表示节点集中节点的个数,  表示相应的特征向量维度。

输出:

每一层的输出是一个新的节点特征向量集。其中,  表示新的节点特征向量维度(可以不等于  )。

结构可以用下图表示:

Graph Attention Networks理解_第1张图片

graph attentional layer首先根据输入的节点特征向量集,进行self-attention处理:

 其中,  是一个  的映射(文章叫注意力机制),  是一个权值矩阵(被所有  所共享)。一般来说,self-attention会将注意力分配到图中所有的节点上,这种做法显然会丢失结构信息。为了解决这一问题,本文使用了一种masked attention的方式——仅将注意力分配到节点  的邻节点集上(文中用i(包括i)的一阶邻居),即  (在本文中,节点  也是  的一部分)。

本文的实验中,注意力系数计算如下:

 || is the concatenation operation(只是一个符号表示,串联操作???). 

那么就可以得到

为了提高模型的拟合能力,在本文中还引入了多抽头(multi-head attention)的self-attention(如结构图右侧部分。与《Attention is All You Need》一致),K个独立的注意机制执行公式4的转换,即同时使用多个  计算 self-attention, 然后将各个  计算得到的结果合并(concatenated,可能是连接,也可能是求和,只是一个表示) :

Graph Attention Networks理解_第2张图片

 

可以采取求平均的方式来得到

 图1(右)说明了多头图注意层的聚合过程。

这就完了。。。。。。

你可能感兴趣的:(GNN)