基本信息

背景

为了挖掘结构化的信息,我们希望能得到节点的一个表示,其包含了图的结构信息。
最近的许多研究都希望将图卷积应用到图神经网络中,以提取图的结构信息,例如GraphSAGE

因此,本文提出了一种基于注意力机制的图分类网络。

实现方法

最主要的部分,self-attention层,其与Transformer中的self-attention机制相似,但是简化了很多:如果将Transformer中的self-attention机制中的Q、K、V全部认为是一样的,即共享参数,那么就能得到这篇文中的实现机制。

记节点i的特征为hih_i
两个节点之间的相似度如下:

eij=Feedforward(Whi,Whj)e_{ij}=\text{Feedforward}(Wh_i, Wh_j)

其中feedforward网络可以先用一个最简单的感知机实现:

Feedforward(a,b)=LeakyRelu(wconcat(a,b))\text{Feedforward}(a, b)=\text{LeakyRelu}(w\cdot\text{concat}(a,b))

对于特定节点ii,其需要融合的其他节点的信息的系数如下:

αij=softmaxj(eij)\alpha_{ij}=\text{softmax}_j(e_{ij})

最终,节点聚合的信息如下(只需要聚合一阶邻居的信息即可):

hi=jN(i)αijWhjh_i=\sum_{j\in N(i)}\alpha_{ij}Wh_j

为了进一步提升性能,还可以使用多头注意力机制,将最终的结果拼接或平均,得到最终结果。

如图所示:
左:系数计算,右:3头注意力下的节点聚合

为了得到更多的结构信息,还可以将多个self-attention层叠在一起,得到更多信息。(和GraphSAGE的KK参数类似)

优势

  1. 相较于GCN,不需要进行谱分解,并且可以并行计算。
  2. 分析WW矩阵,可解释性更强。
  3. 只需要邻居的信息,无需全局信息,减少计算量
  4. 相较于GraphSAGE,可以采样所有的邻居,并且不存在LSTM处理无序序列带来的问题。(感觉有点故意拉踩了,GraphSAGE明明说的是防止计算量过大才采样邻居的,聚合器也提出了3种方法,池化方法性能也很强,该文非要逮着不太好的LSTM说)

实验结果

最终,无论是inductive还是transductive任务,都取得了很好的效果。

可解释性

不同颜色的节点代表不同的类别,边的粗细表示节点i和j之间的权重。

再通过降维技术,将其转化为2维,能直观的看到不同节点之间的关系。发现模型会关注 哪些信息。