《GRAPH ATTENTION NETWORKS》论文理解

0.动机

为邻域内的不同节点指定不同的权重,而不需要任何复杂的矩阵操作(比如求逆),也不需要预先了解图的结构。

1. 图注意力层

输入为节点特征h={h1,...,hN},hiRFh=\{\vec{h}_1,...,\vec{h}_N\},\vec{h}_i\in R^F,NN表示节点得数量。为了得到更具有表达能力得特征,需要把原来得输入特征hi\vec{h}_i进行一次可学习得线性映射(也就是输入了一个全连接层),得到一组新的节点表示h={h1,...,hN},hiRFh^{'}=\{\vec{h}^{'}_1,...,\vec{h}^{'}_N\},\vec{h}^{'}_i\in R^{F^{'}}
hi=Whi\vec{h}^{'}_i=W\vec{h}_i

其中,WRF×FW\in R^{F^{'}×F^{'}}为权重参数。
节点jj对节点iid得重要性(注意力权重)定义为:
eij=a(Whi,Whj)e_{ij}=a(W\vec{h}_i,W\vec{h}_j)

其中函数a():RF×RFRa(\cdot):R^{F^{'}}×R^{F^{'}}\rightarrow R,表示一种共享得注意力机制,理论上可以计算所有节点之间得注意力,在实际中一般只计算每个节点邻域的注意力权重,即:eij,jNie_{ij},j\in N_i
为了使得在不同节点之间的注意力权重可以比较,需要将权重进行归一化处理:
αij=softmaxj(eij)=exp(eij)kNiexp(eik)\alpha_{ij}=softmax_{j}(e_{ij})=\frac{exp(e_{ij})}{\sum_{k\in N_i}{exp(e_{ik})}}

在实验中,函数a()a(\cdot)是通过单层神经网络进行拟合的,即将Whi,WhjW\vec{h}_i,W\vec{h}_j进行拼接后送入单层全连接层,在通过非线性**函数得到eije_{ij}
αij=exp(LeakyReLU(aT[WhiWhj]))kNiexp(LeakyReLU(aT[WhiWhk]))\alpha_{ij}=\frac{exp(LeakyReLU(\vec{a}^T[W\vec{h}_i||W\vec{h}_j]))}{\sum_{k\in N_i}{exp(LeakyReLU(\vec{a}^T[W\vec{h}_i||W\vec{h}_k]))}}

其中,aR2F\vec{a}\in R^{2F^{'}}表示全连接层的参数,||表示向量拼接。
最后,利用注意力层输出的节点特征为:
hi=σ(jNiαijWhj)\vec{h}_{i}^{'}=\sigma(\sum_{j\in N_i}{\alpha_{ij}W\vec{h}_{j}})
《GRAPH ATTENTION NETWORKS》论文理解

2.多头注意力机制

为了注意力机制的稳定性,可以使用多头的注意力机制,就是同时并行且独立的使用多次的注意力机制,如下图右边所示。
《GRAPH ATTENTION NETWORKS》论文理解
不同颜色和格式的箭头表示一次注意力机制(K=3K=3),同时使用KK次的注意力机制得到3个不同hi,k\vec{h}_{i,k}^{'}后,可以使用拼接或者均值的方式输出最后的hi\vec{h}_{i}^{'}
hi=k=1Kσ(jNiαijkWkhj)\vec{h}_{i}^{'}={||}^{K}_{k=1}\sigma(\sum_{j\in N_i}{\alpha_{ij}^kW^k\vec{h}_{j}})

上式为拼接的方式输出,其中k=1K{||}^{K}_{k=1}表示拼接,输出向量hiRKF\vec{h}_{i}^{'}\in R^{KF^{'}}

hi=σ(1Kk=1KjNiαijkWkhj)\vec{h}_{i}^{'}=\sigma(\frac{1}{K}\sum_{k=1}^{K}\sum_{j\in N_i}{\alpha_{ij}^kW^k\vec{h}_{j}})

上式为均值的方式输出。
如果将多头的注意力机制用于最后一层预测层,那么使用拼接方法进行softmaxsoftmax不能完成预测任务,因为是节点特征的多种不同表示形式的拼接,进行softmaxsoftmax后不能表示概率分布,所以应该使用均值的方式更为合适。

3.优点

①计算复杂度低,不需要对拉普拉斯矩阵进行特征分解,
②允许(隐式地)为相同邻域的节点分配多个不同的权重。
③注意机制以共享的方式应用于图中的所有边,不需要预先知道图的全局结构以及节点的特征。