0.动机
为邻域内的不同节点指定不同的权重,而不需要任何复杂的矩阵操作(比如求逆),也不需要预先了解图的结构。
1. 图注意力层
输入为节点特征h={h1,...,hN},hi∈RF,N表示节点得数量。为了得到更具有表达能力得特征,需要把原来得输入特征hi进行一次可学习得线性映射(也就是输入了一个全连接层),得到一组新的节点表示h′={h1′,...,hN′},hi′∈RF′:
hi′=Whi
其中,W∈RF′×F′为权重参数。
节点j对节点id得重要性(注意力权重)定义为:
eij=a(Whi,Whj)
其中函数a(⋅):RF′×RF′→R,表示一种共享得注意力机制,理论上可以计算所有节点之间得注意力,在实际中一般只计算每个节点邻域的注意力权重,即:eij,j∈Ni。
为了使得在不同节点之间的注意力权重可以比较,需要将权重进行归一化处理:
αij=softmaxj(eij)=∑k∈Niexp(eik)exp(eij)
在实验中,函数a(⋅)是通过单层神经网络进行拟合的,即将Whi,Whj进行拼接后送入单层全连接层,在通过非线性**函数得到eij:
αij=∑k∈Niexp(LeakyReLU(aT[Whi∣∣Whk]))exp(LeakyReLU(aT[Whi∣∣Whj]))
其中,a∈R2F′表示全连接层的参数,∣∣表示向量拼接。
最后,利用注意力层输出的节点特征为:
hi′=σ(j∈Ni∑αijWhj)

2.多头注意力机制
为了注意力机制的稳定性,可以使用多头的注意力机制,就是同时并行且独立的使用多次的注意力机制,如下图右边所示。

不同颜色和格式的箭头表示一次注意力机制(K=3),同时使用K次的注意力机制得到3个不同hi,k′后,可以使用拼接或者均值的方式输出最后的hi′:
hi′=∣∣k=1Kσ(j∈Ni∑αijkWkhj)
上式为拼接的方式输出,其中∣∣k=1K表示拼接,输出向量hi′∈RKF′。
hi′=σ(K1k=1∑Kj∈Ni∑αijkWkhj)
上式为均值的方式输出。
如果将多头的注意力机制用于最后一层预测层,那么使用拼接方法进行softmax不能完成预测任务,因为是节点特征的多种不同表示形式的拼接,进行softmax后不能表示概率分布,所以应该使用均值的方式更为合适。
3.优点
①计算复杂度低,不需要对拉普拉斯矩阵进行特征分解,
②允许(隐式地)为相同邻域的节点分配多个不同的权重。
③注意机制以共享的方式应用于图中的所有边,不需要预先知道图的全局结构以及节点的特征。