GRAPH ATTENTION NETWORKS(图注意力网络)
摘要
本文提出了一种新的基于图结构数据的神经网络结构——图注意力网络(GATs),不同于先前一些基于谱域的图神经网络,通过使用masked self-attentional layers 解决了图卷积网络(GCN)方面的一些缺点。通过堆叠层可以获得邻域节点的特征值,这样我们可以(隐式地)为邻域中的不同节点指定不同的权重,而不需要任何形式的复杂的矩阵运算(如转置),也不需要了解图本身的结构。本文同时解决了GCN的几个关键挑战,并使模型同时适用于Inductive和Transductive问题。我们的GAT模型已经在四个已建立的Inductive和Transductive基准上取得或匹配了最先进的结果:Cora、Citeseer和Pubmed引文网络数据集,以及蛋白质相互作用数据集(其中测试图在训练期间是看不见的)。
如何理解 inductive learning 与 transductive learning?
1 引言
由于注意力机制在RNN与CNN中都取得了不错的效果,基于此作者在此篇文章提出了图注意力机制。此方法的优点在于可以处理任意大小输入的问题,并且关注最具有影响能力的输入。
在摘要中作者说明了,本文的attention计算的目的是为每个节点邻域中的节点分配不同的权重,也就是attention是用来关注那些作用比较大的节点,而忽视一些作用较小的节点。
本文提出的GAT模型具有以下三个特点:
- attention机制计算效率高,为每一个节点和其每个邻域节点计算attention可以并行进行。
- 通过指定任意的权重给邻域节点,这个模型可以处理拥有不同度的节点,也就是说,无论一个节点连接多少个邻域节点,这个模型都能按照规则指定权重。
- 该模型直接适用于inductive learning problem,包括将模型推广到完全不可见图的任务。
2 GAT结构
在这个模块,作者提出了一种图注意力层,通过堆叠这个层来实现图注意力机制。通过与之前神经图处理领域的方法进行比较,阐述其优势及局限性。
2.1 图注意力层(GRAPH ATTENTIONAL LAYER)
首先要描述一个单层的图注意力层,作为一个单独的网络层被用于GAT框架中。
2.1.1 输入输出
上述网络层的输入是一组节点特征的集合:
其中,
N
N
N是节点数,
F
F
F是每个节点中的特征数。
网络层的输出是一组新的节点特征的集合:
其中,节点数
N
N
N不变,节点的特征数可变化为
F
′
F'
F′。
2.1.2 特征提取与注意力机制
为了将输入特征转换为高维特征(增维)以获得足够的表达能力,至少需要一个可学习的线性变换。因此,为每个节点训练一个权值矩阵 W ∈ R F × F ′ W∈R^{F×F'} W∈RF×F′,这个权值矩阵就是输入特征与输出特征的直接关系。
然后,对每个节点进行共享的注意力机制
a
a
a:
R
F
′
×
R
F
′
→
R
R^{F'}×R^{F'}→R
RF′×RF′→R来计算注意力系数:
该系数说明了对于节点
i
i
i来说节点
j
j
j的重要性,而忽略图结构性的信息(这个公式模型允许图中所有节点间计算相互间的影响而不是局限于k阶邻居节点)。我们通过执行masked attention将图结构注入到机制中——我们只计算节点
j
∈
N
i
j∈N_i
j∈Ni的
e
i
j
e_{ij}
eij,其中
N
i
N_i
Ni是图中节点
i
i
i的某个邻域。在我们所有的实验中,这些都将是
i
i
i(包括
i
i
i)的一阶邻居。为了使不同节点之间的系数容易比较,我们使用softmax函数对所有
j
j
j的选择进行正则化:
注意力机制
a
a
a(式1)是一个单层前馈神经网络,由
a
⃗
∈
R
2
F
′
\vec{a}∈R^{2F'}
a∈R2F′参数化,并应用LeakyReLU(负输入斜率
α
=
0.2
α=0.2
α=0.2)激活。完全展开后,由注意力机制计算的系数(如下图所示)可以表示为:
其中,
T
T
T表示转置,
∣
∣
||
∣∣表示连接运算。
激活函数ReLU、Leaky ReLU、PReLU和RReLU。
在得到正则化的注意力系数之后,可以通过计算与其对应的邻接节点特征的线性组合,来更新节点自身的特征作为输出(这里还需要使用一个
σ
\sigma
σ函数作为非线性激活函数):
其中:
- W W W为与输入feature相乘的权重矩阵
- α \alpha α为之前计算的注意力系数
- σ \sigma σ为非线性激活函数
- 考虑masked attention机制,遍历节点 i i i的邻居节点
- 公式意义:该节点的输出feature与与之相邻的所有节点有关,是他们的线性和的非线性激活。这个线性和的线性系数是前面求得的注意力系数 α \alpha α
2.1.3 多端注意力机制(multi-head attention)
为了稳定自我注意力(self-attention)的学习过程,我们发现扩展我们的机制,采用多端注意力机制是有益的。具体来说,K个独立的注意力机制执行公式(4)的变换,然后将它们的特征进行串联,得到如下的输出特征表示:
其中:
- ∣ ∣ || ∣∣表示连接运算
- a k a^k ak表示第 k k k个注意力机制,共需要考虑 K K K个注意力机制
- W k W^k Wk表示相应的输入特征的线性变换的权值矩阵
- 最终的输出特征 h ′ h^{'} h′由 K F ′ KF^{'} KF′个特征影响
如果我们在最后一层(预测层)使用Multi-head attention mechanism,连接操作就不是很适合了,相反,需要把输出进行平均化,再使用非线性函数(softmax或logistic sigmoid用于分类问题),公式如下:
例如,当
K
=
3
K=3
K=3的时候结构如下图所示:
图中,节点1在邻域中具有多端注意力机制,不同的箭头样式表示独立的注意力计算,通过连接或平均化每个head获得
h
⃗
1
′
\vec{h}_1'
h1′。
2.2 与相关工作的比较
第2.1小节中描述的图注意力层直接解决了用神经网络处理图结构数据方法中存在的几个问题:
- 在计算上,它是高效的:自注意力层的操作可以在所有边上并行,输出特征的计算可以在所有节点上并行。在运算过程中不需要进行特征分解等高代价的矩阵运算。
- 与GCNs相比,我们的模型允许(隐式地)为同一邻域的节点分配不同的重要性,从而实现模型容量的飞跃。此外,分析学习到的注意力权重可能会带来可解释性方面的好处。
- 注意力机制以共享的方式应用于图中的所有边,因此它不依赖于对全局图结构或其所有节点的(特征)的预先访问(这是许多先前技术的限制),因此它具有以下优势:图不需要是无向的(如果边 j → i j→i j→i 不存在,我们可以简单地忽略计算 α i j α_{ij} αij );使得模型能够处理inductive任务,能够在训练中完全看不到的图形上评估模型。
- 无需对节点的重要性进行预先排序。
3 模型评价
实验分成两部分,transductive learning(半监督学习)和inductive learning(归纳学习)。
3.1 数据集
Transductive learning:
利用三个标准的引文网络基准数据集——Cora、Citeseer和Pubmed。在所有这些数据集中,节点对应于文档,边(无向)对应于引用。节点特征对应于文档的单词包表示的元素。每个节点都有一个类标签。我们只允许每个类使用20个节点进行训练——然而,在整个transductive learning过程中,训练算法可以访问所有节点的特征向量。在1000个测试节点上评估训练模型的预测能力,并且使用500个额外的节点进行验证。
Inductive learning:
利用蛋白质-蛋白质相互作用(PPI)数据集,该数据集由对应于不同人体组织的图表组成。数据集包含20个用于训练的图,2个用于验证,2个用于测试。关键的是,测试图在训练过程中是完全没有被观察到的。每个图的平均节点数为2372个。 每个节点有50个特征,由位置基因集、基序基因集和免疫特征组成。从分子签名数据库收集到的基因本体中的每个节点集有121个标签,一个节点可以同时拥有几个标签。
3.2 最先进的方法
3.3 实验设置
3.4 结果
4 结论
参考博客
图注意力网络 GRAPH ATTENTION NETWORKS
GRAPH ATTENTION NETWORKS 学习翻译
图注意力网络(GAT) ICLR2018, Graph Attention Network论文详解
Graph Attention Networks
全面理解Graph Attention Networks