0%

Do Transformers Really Perform Bad for Graph Representation?

Graphormer:KDD Cup2021 OGB-LSC赛道的冠军方案

image-20210620141421029

Overview

来自大连理工和MSRA的一篇文章,值得一提的是Guolin Ke(https://github.com/guolinke)是TUPE的一作,也是尝试修改Transformer的工作。

Background

Transformer在NLP和CV都取得了成功,但在图表示学习任务上的表现还不尽如人意,不能匹敌GNN等图神经网络。本文提出了Graphormer,在原生Transformer的基础上改进,在许多图预测任务上取得了SOTA结果,包括OGB-LSC等。

原生Transformer适合序列建模,为了在图数据中发挥作用,需要在模型中融入图结构信息。本文的贡献如下:

  • 提出了Centrality Encoding,以捕获图中节点的重要性。
  • 提出了新颖的Spatial Encoding,捕获节点之间的结构关系。
  • 在数学上证明了Graphormer有强大的表示能力,且GNN等变体可以看作Graphormer的特例。

Preliminary

GNN

对于图来说,GNN旨在学习节点的表示向量,采用聚合一阶或高阶邻居的表示迭代更新参数。

假设为节点在第层的隐层表示,GNN的迭代过程主要有两步AGGREGATE和COMBINE:

AGGREGATE聚合了邻居的信息,常用方法有MEAN、MAX、SUM等;COMBINE将聚合的信息融入节点表示。

此外,对于图表示任务,还需要设计READOUT函数,以用最后一层的节点特征表示全图特征

Transformer

老生常谈,主要分为前馈网络和自注意力两个部分,自注意力采用缩放点积和多头注意力。

Graphormer

Centrality Encoding

centrality意为中心地位,文章认为GNN中的聚合方式没有考虑节点在图中的重要性,比如名人在社交网络中具有更重要的影响因子。

在Graphormer中,根据入度和出度为每个节点赋予两个嵌入向量,在原来的节点特征上相加。

Spatial Encoding

Transformer可以捕获全局信息,但副作用是需要显示指定位置编码,比如序列数据中的绝对位置或相对位置编码。在图中,节点没有这种时序关系,为此设计了空间编码以捕获图结构信息。

具体来说,映射可以描述节点间的关系。如果节点相连,采用最短路径SPD,否则为给定值如-1。本文采用可学习的标量,并作为自注意力模块中的偏置项。

其中,为注意力的权重矩阵。

Edge Encoding in the Attention

除此之外,本文还考虑了边的结构信息。一种方式是直接将边特征与节点特征相加,另一种方式则是在聚合的时候考虑边的特征。但这些方法只向相关节点传播信息,不能有效利用全局信息。

对于有序节点对,寻找最短路径,对于均值计算点积作为编码:

将编码结合在自注意力中

Implementation

Special Node

BERT中设计了[CLS]用于代表序列的全局信息,本文也设计了类似的节点[VNode],将最后一层的节点特征作为全局表示。不同于[CLS]放在句首,[VNode]与所有节点相连,但要区分空间编码

Experiment

首先在OGB-LSC上,进行了实验结果的比较,数据集为量子化学回归PCQM4M-LSC,总共包含3.8M的图。

参数方面,提供了两个版本,分别采用12层768维和6层512维。

image-20210620150651428

本文还在MoIPCBA、MoIHIV和ZINC上做了实验,都取得了较好的结果,数据集详情如下。

image-20210620151433362

本文也做了消融实验,验证各个模块的有效性。

image-20210620151217795