论文信息

论文标题:Do Transformers Really Perform Bad for Graph Representation?
论文作者:Chengxuan Ying, Tianle Cai, Shengjie Luo, Shuxin Zheng, Guolin Ke, Di He, Yanming Shen, Tie-Yan Liu
论文来源:2021, NeurIPS
论文地址:download 
论文代码:download

1 Introduction

  创新点:将 Transfomer 用于图表示领域。

    • 首先,我们提出了中心性编码(Centrality Encoding)来捕获图中节点的重要性;
    • 其次,我们提出了一种新的空间编码(Spatial Encoding)来捕获节点之间的结构关系;

2 Method

预备知识:

  Transformer 两个重要模块:

    • a self-attention module
    • a position-wise feed-forward network (FFN)

  设 $H=\left[h_{1}^{\top}, \cdots, h_{n}^{\top}\right]^{\top} \in \mathbb{R}^{n \times d}$ 表示自注意模块的输入,其中 $d$ 是隐藏维数,$h_{i} \in \mathbb{R}^{1 \times d}$ 。输入 $H$ 由三个矩阵 $W_{Q} \in \mathbb{R}^{d \times d_{K}}$、$W_{K} \in \mathbb{R}^{d \times d_{K}}$ 、  $W_{V} \in \mathbb{R}^{d \times d_{V}} $ 投影到相应的表示形式 $Q$、$K$、$V$。自注意(self-attention)的计算:

    $Q=H W_{Q}, \quad K=H W_{K}, \quad V=H W_{V} \quad\quad\quad(3)$

    $A=\frac{Q K^{\top}}{\sqrt{d_{K}}}, \quad \operatorname{Attn}(H)=\operatorname{softmax}(A) V \quad\quad\quad(4)$

  其中,$A$ 是一个捕获 queries 和 keys 之间的相似性的矩阵。

  为了便于说明,我们考虑了单头自注意,并假设 $d_K=d_V=d$。对多头注意力的扩展是标准的和直接的,为了简单起见,我们省略了偏差项

2.1 Structural Encodings in Graphormer

  如上述所述,在 Transformer 中使用图结构信息很重要,为此在Graphormer  提出了三种简单而有效的编码器设计。如 Figure 1 所示。

   

2.1.1 Centrality Encoding

  在 $\text{Eq.4}$ 中,根据节点间的语义相关性计算注意力分布。然而,节点中心性(衡量节点在图中的重要性),可以认为是图中强烈的信号。例如,拥有大量粉丝的名人是预测社交网络发展趋势的重要因素。这些信息在当前的注意力计算中被忽略了,我们认为它应该是 Transformer  模型的一个有价值的信号。

  在 Graphormer 中,使用度中心性,作为神经网络的附加信号。具体地说,开发了一个中心性编码方法,它根据每个节点的度和出度给每个节点分配两个实值嵌入向量。当中心性编码应用于每个节点时,只需将其添加到节点特征中作为输入。

    $h_{i}^{(0)}=x_{i}+z_{\operatorname{deg}^{-}\left(v_{i}\right)}^{-}+z_{\operatorname{deg}^{+}\left(v_{i}\right)}^{+} \quad\quad\quad(5)$

  其中,$z^{-}, z^{+} \in \mathbb{R}^{d}$ 分别是由入度 $deg  { }^{-}\left(v_{i}\right)$ 和 出度 $\operatorname{deg}^{+}\left(v_{i}\right)$ 指定的可学习的嵌入向量。对于无向图,$deg  { }^{-}\left(v_{i}\right)$ 和 $\operatorname{deg}^{+}\left(v_{i}\right)$ 可以统一为 $\operatorname{deg}\left(v_{i}\right)$。通过在输入中使用中心性编码,softmax attention 可以捕获 queries 和 keys  中的节点重要性信号。因此,该模型可以同时捕获注意机制中的语义相关性和节点的重要性。

2.1.2 Spatial Encoding

  在每个 Transformer 层中,每个 token 都可以关注任何位置的信息,但需要解决的问题是空间位置信息表示(位置依赖信息)。对于顺序数据我们使用一个位置嵌入向量,对 Tramsformer 层中的任何两个位置的相对距离进行编码。

  但是对于图来说,节点顺序不是按序列排放的,它存在于多维空间,通过边连接。为了对图空间位置信息进行编码,本文提出了一种新的 Spatial Encoding 方法。

  具体地说,对于任何图 $G$,定义函数 $\phi\left(v_{i}, v_{j}\right): V \times V \rightarrow \mathbb{R}$ 测量 $v_{i}$ 和 $v_{j}$ 之间的空间关系。函数 $\phi$ 可通过图中节点之间的连通性来定义。在本文中,对于连通节点  $v_{i}$  和  $v_{j}$ , $\phi\left(v_{i}, v_{j}\right)$ 定义为 $v_{i}$  和  $v_{j}$  之间的最短路径(SPD)的距离。如果 $v_{i}$  和  $v_{j}$ 不连通,将 $\phi$ 设置为一个特殊的值,即 $-1$。本文对给每对连通节点分配一个可学习的标量,将作为自注意模块中的一个偏差项。 $ A_{i j}$ 表示为 Query-Key 乘积矩阵 $A$ 的 $(i,j)$ 元素,因此有:

    $A_{i j}=\frac{\left(h_{i} W_{Q}\right)\left(h_{j} W_{K}\right)^{T}}{\sqrt{d}}+b_{\phi\left(v_{i}, v_{j}\right)} \quad\quad\quad(6)$

  $b_{\phi\left(v_{i}, v_{j}\right)}$ 是一个由 $\phi\left(v_{i}, v_{j}\right)$ 索引的可学习的标量,并在所有层中共享。

  对比于 GNNs,好处是:

    • 首先,GNNs 的感受域局限于邻居,而在 $Eq.6$ 中所涉及的范围是全局信息,每个节点可以关注其他节点;
    • 其次,通过使用 $b_{\phi\left(v_{i}, v_{j}\right)}$ ,单个 Transformer 层中的每个节点都可以根据图的结构信息自适应地关注所有其他节点。如果 $b_{\phi\left(v_{i}, v_{j}\right)}$ 是相对于 $\phi\left(v_{i}, v_{j}\right)$ 的递减函数,对于每个节点,模型可能会更关注其附近的节点,而对远离它较少的节点;

2.1.3 Edge Encoding in the Attention

  类比于原子之间的键,边之间的关系也很重要,将边编码与节点特征一起放入网络中是必不可少的。

  以往的边编码方法有两种形式:

    • 将边特征添加到相关节点的特征中;
    • 对于每个节点,其关联边的特征将与聚合中的节点特征一起使用;  

  然而,这种使用边特征的方法只将边信息传播到相关的节点,这可能不是利用边缘信息表示整个图的有效方法。

  为了更好的将边特征编码到注意力层,本文提出了一种新的边编码方式。

  注意机制需要估计每个节点对 $\left(v_{i}, v_{j}\right)$ 的相关性,对于每个有序节点对 $\left(v_{i}, v_{j}\right)$ ,我们找到了从 $v_{i}$ 到 $v_{j}$ 的最短路径 $\mathrm{SP}_{i j}=\left(e_{1}, e_{2}, \ldots, e_{N}\right)$ ,并计算了边特征的点积和沿路径的可学习嵌入的平均值。所提出的边编码通过一个偏差项将边特征合并到注意模块中。

  具体地说,我们修改了 $Eq.3$ 中 $A$ 的 $(i,j)$ 元素,通过加入边编码 $c_{i j}$ ,$A$ 进一步表示为:

    $A_{i j}=\frac{\left(h_{i} W_{Q}\right)\left(h_{j} W_{K}\right)^{T}}{\sqrt{d}}+b_{\phi\left(v_{i}, v_{j}\right)}+c_{i j}, \;\;\;\; \text {    where }\;\;\;\; c_{i j}=\frac{1}{N} \sum\limits_{n=1}^{N} x_{e_{n}}\left(w_{n}^{E}\right)^{T} \quad\quad\quad(7)$

  其中 $x_{e_{n}}$ 为 $\mathrm{SP}_{i j}$, $w_{n}^{E} \in \mathbb{R}^{d_{E}}$ 中第 $n$ 条边的特征,$w_{n}^{E} \in \mathbb{R}^{d_{E}}$ 为第 $n$ 个权值向量,$d_{E}$ 为边特征的维数。

2.2 Implementation Details of Graphormer

Graphormer Layer

  Graphormer 是建立在经典 Transformer 编码器上。此外,在多头自注意(MHA)和前馈块(FFN)之前应用层归一化(LN)。对于 FFN 子层,将输入、输出和隐藏层的维数设置为与 $d$ 相同的维数。我们正式地描述了 Graphormer 层如下:

    $h^{\prime}(l) =\operatorname{MHA}\left(\mathbf{L N}\left(h^{(l-1)}\right)\right)+h^{(l-1)} \quad\quad\quad(8)$

    $h^{(l)} =\operatorname{FFN}\left(\operatorname{LN}\left(h^{\prime}(l)\right)\right)+h^{\prime}(l) \quad\quad\quad(9)$

Special Node

  如前一节所述,我们提出了各种图池函数来表示图的嵌入。在 Graphormer 中,在图中添加了一个名为 $[VNode]$ 的特殊节点,并分别在 $[VNode]$ 和每个节点之间分别进行连接。在 AGGREGATE-COMBINE 步骤中,$[VNode]$  的表示已被更新为图中的普通节点,而整个图 $h_G$ 的表示将是最后一层 $[VNode]$ 的节点特征。在 $BERT$ 模型中,有一个类似的标记,即 $[CLS]$,它是每个序列开头附加的特殊标记,用于表示下游任务的序列级特征。虽然 $[VNode]$ 连接到图中的所有其他节点,这意味着对于任何 $\phi\left([\mathrm{VNode}], v_{j}\right)$ 和 $\phi\left(v_{i}\right. , [VNode]  )$,最短路径的距离为 $1$,但该连接不是物理的。为了区分物理和虚拟的连接,受[25]的启发,我们将 $b_{\phi\left([\text { VNode }], v_{j}\right)}$ 和 $b_{\phi\left(v_{i},[\text { VNode }]\right)}$ 的所有空间编码重置为一个独特的可学习标量。

2.3 How Powerful is Graphormer?

  Graphormer 可以表示 AGGREGATE 和 COMBINE 操作。

  Fact 1. By choosing proper weights and distance function  $\phi$ , the Graphormer layer can represent AGGREGATE and COMBINE steps of popular GNN models such as GIN, GCN, GraphSAGE.

  该事实说明:

    • 1) Spatial encoding 使自注意模块能够区分节点 $v_{i}$ 的邻域集 $\mathcal{N}\left(v_{i}\right)$,从而使 softmax 函数能够计算出 $\mathcal{N}\left(v_{i}\right)$ 上的平均统计量;
    • 2) 知道一个节点的程度,邻居的平均值可以转换为邻居的和;
    • 3) 通过 multiple heads 和 FFN, $v_{i}$ 和 $\mathcal{N}\left(v_{i}\right)$ 的表示可以分别处理,然后再组合在一起;

  此外,进一步表明,通过使用空间编码,信号信号器可以超越经典的信息传递 GNNs,其表达能力不超过 1-WL 测试。

Connection between Self-attention and Virtual Node

  除了比流行的 GNN 具有更好的表达性外,我们还发现在使用自注意和虚拟节点启发式之间存在着有趣的联系。如 OGB[22] 的排行榜所示,虚拟节点技巧在图中增加了连接到现有图中的所有节点,可以显著提高现有 GNN 的性能。从概念上讲,虚拟节点的好处是它可以聚合整个图的信息(比如 READOUT ),然后将其传播到每个节点。然而,在图中简单地添加一个超节点可能会导致信息传播的意外过度平滑。相反,我们发现这种图级的聚合和传播操作可以通过普通的自注意自然地实现,而不需要额外的编码。具体地说,我们可以证明以下事实:

  Fact 2. By choosing proper weights, every node representation of the output of a Graphormer layer without additional encodings can represent MEAN READOUT functions.

  这一事实利用了自我注意,每个节点可以注意所有其他节点。因此,它可以模拟图级读出(READOUT)操作,从整个图中聚合信息。除了理论上的论证外,我们还发现 Graphormer 没有遇到过度平滑的问题,这使得改进具有可扩展性。这一事实也激励了我们为图形读出引入一个特殊的节点(见上一小节)。

3 Experiment

  

  

4 Conclusion

  我们探讨了变压器在图表示中的直接应用。通过三种新的图结构编码,所提出的制图器在广泛的流行的基准数据集上工作得非常好。虽然这些初步结果令人鼓舞,但仍存在许多挑战。例如,自注意模块的二次复杂度限制了隐指器在大图上的应用。因此,今后发展高效磨粉剂是必要的。通过在特定的图数据集上利用领域知识驱动的编码,可以预期提高性能。最后,提出了一种适用的图采样策略来提取节点表示。我们把他们留给以后的工作吧。

论文解读(Graphormer)《Do Transformers Really Perform Bad for Graph Representation?》的更多相关文章

  1. 论文解读(GraphMAE)《GraphMAE: Self-Supervised Masked Graph Autoencoders》

    论文信息 论文标题:GraphMAE: Self-Supervised Masked Graph Autoencoders论文作者:Zhenyu Hou, Xiao Liu, Yukuo Cen, Y ...

  2. 论文解读(GMT)《Accurate Learning of Graph Representations with Graph Multiset Pooling》

    论文信息 论文标题:Accurate Learning of Graph Representations with Graph Multiset Pooling论文作者:Jinheon Baek, M ...

  3. 论文解读(LA-GNN)《Local Augmentation for Graph Neural Networks》

    论文信息 论文标题:Local Augmentation for Graph Neural Networks论文作者:Songtao Liu, Hanze Dong, Lanqing Li, Ting ...

  4. 论文解读(SUBLIME)《Towards Unsupervised Deep Graph Structure Learning》

    论文信息 论文标题:Towards Unsupervised Deep Graph Structure Learning论文作者:Yixin Liu, Yu Zheng, Daokun Zhang, ...

  5. 论文解读(GSAT)《Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism》

    论文信息 论文标题:Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism论文作者:Siqi ...

  6. 论文解读(PPNP)《Predict then Propagate: Graph Neural Networks meet Personalized PageRank》

    论文信息 论文标题:Predict then Propagate: Graph Neural Networks meet Personalized PageRank论文作者:Johannes Gast ...

  7. 论文解读(DropEdge)《DropEdge: Towards Deep Graph Convolutional Networks on Node Classification》

    论文信息 论文标题:DropEdge: Towards Deep Graph Convolutional Networks on Node Classification论文作者:Yu Rong, We ...

  8. 论文解读(SEP)《Structural Entropy Guided Graph Hierarchical Pooling》

    论文信息 论文标题:Structural Entropy Guided Graph Hierarchical Pooling论文作者:Junran Wu, Xueyuan Chen, Ke Xu, S ...

  9. 论文解读(GATv2)《How Attentive are Graph Attention Networks?》

    论文信息 论文标题:How Attentive are Graph Attention Networks?论文作者:Shaked Brody, Uri Alon, Eran Yahav论文来源:202 ...

随机推荐

  1. Java 中 ++ 操作符是线程安全的吗?

    不是线程安全的操作.它涉及到多个指令,如读取变量值,增加,然后存 储回内存,这个过程可能会出现多个线程交差.

  2. 学习GlusterFS(五)

    一,分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量 ...

  3. CommonsCollection2反序列链学习

    CommonsCollection2 1.前置知识 CmonnosCollection2需要用到Javassist和PriorityQueue 1.1.Javassist Javassist是一个开源 ...

  4. 1. 了解Git和Github

    1. 了解Git和Github 1.1 什么是Git Git是一个免费.开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统. ...

  5. (stm32f103学习总结)—独立看门狗(IWDG)

    一.IWDG介绍 1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另 一个是窗口看门狗WWDG.两个看门狗外设(独立和窗口)均可用于检测 并解决由软件错误导致 ...

  6. Altium Designer 开始一个项目

    通常一个嵌入式开发都需要一个开发板,这就涉及到原理图设计和PCB设计等流程.目前比较主流的设计软件当属Altium Designer了,于是便向写一个关于这方面的专题,也好总结一下,省得以后忘记. A ...

  7. 简单的多选框选择功能js代码

    最近没事写了个特别基础的多选框功能代码,代码如下:js部分: //获取所有class为checkbox的多选按钮(需要以下功能需要先写出对应功能的元素). var checkBoxList = doc ...

  8. scrapy框架爬取国际庄2011-2022的天气情况

    目标网站:http://www.tianqihoubao.com/lishi/ 一.创建项目+初始化爬虫文件: scrapy startpoject tianqihoubaocd tianqihoub ...

  9. Qt QPropertyAnimation+QTimer实现自制悬浮窗

    目录 Qt下的悬浮窗 QPropertyAnimation QTimer 事件过滤 图标变换 自适应窗口大小 使用方法 Qt下的悬浮窗 最近项目需要一个类似于360悬浮球类似的悬浮窗,当鼠标放入停留一 ...

  10. python---选择排序的实现

    选择排序 思想 ​ 一趟遍历记录最小的数, 放到第一个位置 ​ 再一趟遍历记录剩余列表中最小的数, 继续放置 关键点: ​ 无序区: 第i趟, 无序区为 i~n-1 ​ 最小数的位置 import r ...