Graph attention networks (GAT)论文解析

研究报告
论文:Graph attention networks (GAT)
针对图结构数据,本文提出了一种GAT(graph attention networks)网络。在GAT中,图中的每个节点可以根据其邻居节点的特征,为其分配不同的权值。而且不需要昂贵的矩阵运算,或者依赖预先知道的图结构。

  1. Graph Architecture (Graph attention layer)
    和所有的attention mechanism一样,GAT的计算也分为两步:计算注意力系数和加权求和。
    Input:graph attention layer的输入是一个节点特征向量集合 h={h ⃗_1,h ⃗_2,…,h ⃗_N },h ⃗_i∈R^F。其中N是节点的数量,F是每个节点的特征数量。
    Output: 经过GAT层生成一个新的节点特征 h’={(h’) ⃗_1,(h’) ⃗_2,…,(h’) ⃗_N },(h’) ⃗_i∈R^F’。其中F和 F’具有不同的维度。
    为了得到相应的输⼊与输出的转换,需要根据输⼊的feature⾄少⼀次线性变换得到输出的feature,可以这将这种转换关系表示成,(h’) ⃗_i=Wh ⃗_i。
    (1)计算注意力系数(attention coefficient)
    为了得到充分表达能力,将输入特征转换为高水平的特征,至少需要一个可学习的线性转换(one learnable linear transformation)。为了达到该目标,作为初始步骤,一个共享的线性转换,参数化为 weight matrix,W∈R^(F’×F),应用到每一个节点上。然后在每一个节点上,进行 self-attention。节点i与节点j的注意力互相关系数为,
    在这里插入图片描述

注意力 e_ij 表示节点节点j对于节点i的重要性。向量 h ⃗ 就是节点的特征向量。α是一个注意力机制。W是一个参数化权重,将每个特征转换为可用的表达性更强的特征。这里只对图中节点i的邻居节点来计算节点间注意力互相关系数。也就是仅将注意力分配到节点i的邻节点集上。
为了使得注意⼒系数更容易计算和便于比较,引⼊了softmax对所有i的相邻节点j进⾏正则化:
在这里插入图片描述

其中,N_i 表示节点i的邻居节点集合。
注意力机制α是一个单层的前馈神经网络,参数化为权重向量 α ⃗∈R^2F’。并且加入了leakyRelu激活函数。我们将上述展开,注意力机制的计算过程如下,
在这里插入图片描述

其中,||表示concatenation操作(串联)
Graph attention networks (GAT)论文解析_第1张图片

这个图很好说明了节点i与其邻居节点j的注意力系数计算方法,首先用参数化权重参数W分别与i节点特征向量 h ⃗_i 与j节点特征向量 h ⃗_j 相乘提取高层面的特征。第二,将其串联与参数化向量 α ⃗ 相乘,来提取融合两者的特征。第三,经过一个非线性激活函数LeakyRelu。最后使用softmax进行归一化得到最终节点i与节点j的注意力系数 α_ij。
(2) 加权求和
得到归⼀化的注意⼒系数后,使⽤归⼀化的值计算对应特征的线性组合,作为每个顶点最后的输出特征(最后可以加⼀个非线性激活函数)。
在这里插入图片描述

(h’) ⃗_i 就是GAT输出的节点i融合了邻域信息的新特征。
multi-head attention机制
为了使self-attention的学习过程更稳定。发现使用multi-head attention 来扩展注意力机制是很有效的。使用K个独立的attention机制执行公式4,然后他们的特征连在一起,就会得到如下的输出,

在这里插入图片描述
其中,最后的返回输出 h ⃗_i,每个顶点都会有 KF’维特征,而不是 F’ 维特征。
特别的,如果在 network 的最后输出层执行该 multi-head attention,concatenation 就不再是必须的了,因此本文采用了 averaging,执行最终非线性操作。
在这里插入图片描述

下图给出了K=3时的multi-head attention机制示意图,此图表示了节点1在邻域执行的multi-head attention 机制,不同的箭头样式表示不同的head获得的 h ⃗_1。
Graph attention networks (GAT)论文解析_第2张图片
其中concat表示不同head获取的 h ⃗_1采取了concatenation操作,而avg表示取平均操作。

上图可以很好的说明第l层的i节点经过GAT输出特征的计算过程,

本文利用了masked self-attention对图结构数据进行操作。主要考虑了图的结构信息,即考虑了节点的邻居信息,不同的邻居节点的有不同的重要性,并为其分配不同的权重。

你可能感兴趣的:(Graph attention networks (GAT)论文解析)