论文解读:Graph Transformer for Graph-to-Sequence Learning
图神经网络在深度学习领域内得到十分广泛的应用,其可以对拓扑结构的数据进行表征。现阶段传统的以GNN及其相关变体在进行表征时普遍做法是将结点多跳范围内的邻居结点通过平均或加权等方式进行聚合,但这类方式存在一些不足之处,本篇文章提出的Graph Transformer模型主要解决含有关系以及在有限跳数范围内部分结点之间信息无法得到交互的问题,并应用到graph-to-sequence类问题上。
一、简要信息
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | G r a p h T r a n s f o r m e r Graph Transformer GraphTransformer |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 图神经网络,图表征 |
4 | 核心内容 | GNN, Transformer |
5 | GitHub源码 | https://github.com/jcyk/gtos |
6 | 论文PDF | https://arxiv.org/pdf/1911.07470 |
二、介绍
动机:
先前 的GNN的缺陷:
(1)固有的局部传播更新自然而然地排除了一些有效的全局交互,不利于大规模的图或当两个结点距离很远的情况;
假设对一个图结构进行训练,迭代次数设置为 L L L ,因此对于每个结点其只能有机会与其在 L L L
跳数之内的所有结点实现直接的信息交互,而超过范围的结点之间信息得不到显式的交互。这类似于在RNN及其相关变体中存在的梯度消失问题。
(2)尽管两个结点能够在一定距离范围内可达,而由于过长距离信息也会被削弱;
当然第一种情况可以避免,例如增加迭代次数,另外即便在一定跳数范围内信息得不到直接交互,但通过中间部分结点也可以实现简介的信息交互,但可想而知过长的距离使得这些信息变得非常的稀疏;
(3)Transformer:完全以Attention实现对不同成分之间的进行显式的信息交互,不受到长距离的限制。但现有的Transformer模型均只在序列模型上得以验证,而并没有在图结构上进行应用。
Transformer的思想是将每个结点抽象为一个全连接图,每个结点均可以与所有结点进行信息交互,但它们的交互并没有融入实际的结点与结点见的关系relation,特别是对于像依存句法树(Dependency Tree,DP)和抽象语义表示(Abstract Mean Representation,AMR)等富含边信息。因此需要模型能够显式地学习这些边的信息的同时,不受到距离约束的影响。
(4)现阶段一些Graph-to-Sequence的方法可大致分为如下几类:
- Graph-to-Sequence的目标: 是指输入一个图结构的数据,输出一段序列(文本或语音等),例如基于AMR的转换为对应的句子,或基于语法(syntax)翻译为对应的句子等;
- 基于规则和语法: 将依存句法树或抽象语义表示通过一定的规则构建成序列,并基于序列做进一步的转换;
- Sequence-toSequence: 部分工作是通过将图转换为序列,并应用Seq2Seq的模型实现,类似于机器翻译等做法;
- 借助CNN或RNN来缓解图表征中长距离问题,例如图卷积网络(GCN)通过类似卷积的计算方式实现周围结点信息的聚集;
三、方法
本文提出一种Graph Transformer模型,主要解决两个问题:
(1)先期GNN及其变种模型中没有解决的结点之间长距离信息交互问题,我们将输入的图抽象为一个全连接图,因此可以借助Transformer的特性来实现;因此每个结点都可以获得其他所有结点的信息,不会受到距离限制;
(2)先前图表征模型并没有对关系边信息进行表示,部分方法将边视为一个结点,但这依然不能全面的提取图的全局信息,因此我们需要引入对关系的表征来避免信息的稀疏性;由于有些结点之间并不是单跳内可达,因此为了能够表示任意两个结点之间的关系,使用最短路径来表示,因此引用GRU来实现关系的表征。
模型分为两个部分,分别是Graph Encoder和Sequence Decoder。架构图如下所示:
Graph Encoder:
输入的图是一个有向无环图(DAG),在对图进行表征时,需要考虑一个核心的问题是如何在维持图自身结构的同时允许所有结点全连接式的进行信息交互。因此总的来说需要两个步骤——先对图中的任意两个结点寻找对应的关系表示(即Relation Encoder),再使用全连接的思想实现信息交互(即Transformer中的multi-head attention)。
Relation Encoder
对于一个图来说,每个三元组(head, relation, tail)可以表达两个结点之间的语义关系,因此对于这两个结点是具有单跳关系(one-hop relation);如果两个结点需要多跳可达,则这两个结点具有多跳关系(multi-hop relation)。事实上,对于一个图,两个结点之间的路径可以作为这两个结点的语义推理关系,但最短路径表达的推理关系更为简明,因此我们使用最短路径表示两个结点之间的显式关系。
假设图中的两个结点记做 i i i 和 j j j,则两个结点之间的最短路径可以表示为 s p i − > j = [ e ( i , k 1 ) , e ( k 1 , k 2 ) , . . . , e ( k n , j ) ] sp_{i->j} = [e(i, k_1), e(k_1, k_2), ..., e(k_n, j)] spi−>j=[e(i,k1),e(k1,k2),...,e(kn,j)] 。使用双向的GRU进行表征,公式为:
s t → = G R U f ( s t − 1 → , s p t ) \overrightarrow{s_t} = GRU_f(\overrightarrow{s_{t-1}}, sp_t) st=GRUf(st−1,spt)
s t ← = G R U f ( s t + 1 ← , s p t ) \overleftarrow{s_t} = GRU_f(\overleftarrow{s_{t+1}}, sp_t) st=GRUf(st+1,spt)
最终将两个方向的末状态拼接起作为两个结点之间的关系表征: r i j = [ s n → ; s 0 ← ] r_{ij} = [\overrightarrow{s_n}; \overleftarrow{s_0}] rij=[sn;s0]。
- 虽然图是一个有向无环图,但在对两个结点进行表征时,可以忽略具体的方向,因此对于原来有向边关系可以定义对于的反向关系,例如在AMR中关系“ARG1”的反向关系定义为“RARG1”;
- 每个结点(设记做node)允许存在自环,因此相当于添加一个三元组记做 n o d e , s e l f − l o o p , n o d e node, self-loop, node node,self−loop,node;
- 每个图额外添加一个结点 x g l o b a x_{globa} xgloba 并与所有其他结点相连;、
- 类似于Transformer引入一个绝对位置表征。因为原始的输入图(例如DP或AMR)是单根有无环图,因此每个结点都有对应的顺序,因此在对每个结点进行表征时额外加入位置信息;
- 如果两个结点之间存在多条最短路径,则在训练过程中只随机任取一条,在测试过程中则取平均。
Transformer
为了能够让所有结点之间进行显式全局的信息交互,引入Transformer的思想。传统的Transformer在计算multi-head attention时,主要计算Q和K的乘积,即:
而这种计算方式将每个结点
i
i
i 和
j
j
j 单纯的视为一个全连接图,并没有引入关系信息,因此作者对其进行了改进:
总体来看,其相当于为每个结点多额外添加了关系信息,这里的
r
i
−
>
j
r_{i->j}
ri−>j 即为上一节(Graph Encoder)的表征
r
i
j
r_{ij}
rij 。具体包含四个项,分别是:
- (a)捕捉两个结点自身信息之间的相关性。即为传统的Transformer的计算方法;
- (b)表示结点 x i x_i xi 作为头结点的关系偏向;
- (c)表示结点 x j x_j xj 作为尾节点的关系偏向;
- (d)捕捉两个结点不同推理关系方向之间的相关性;
上述公式介绍的是multi-head attention中一个头部的权重计算方法,其他部分则与原始的Transformer一致,即包含多层Transformer块,每块内包含multi-head attention、add、layer归一化、dropout线性层以及残差连接等;
需要特别说明的是,整个Graph Encoder模块的目标是为输入的图的结点进行表示,并最终得到图的表示,上节提到每个图中都额外新增一个节点 x g l o b a l x_{global} xglobal, 由于其与所有结点均有直接的边相连,因此在多层迭代之后直接将 x g l o b a l x_{global} xglobal 的表征向量作为整个图的表征。
Sequence-Decoder
解码层采用传统的Copy Mechanism(CopyNet),具体可参加2016年的工作(Incorporating Copying Mechanism in Sequence-to-Sequence Learning)。
四、实验
最后作者在AMR-to-Text生成任务和Syntax-based机器翻译任务上进行了验证,效果达到SOTA。其次作者进行了一些分析,包括:
- 分析图的规模大小对结果的影响,如下图(a):
(1)图越大,计算越复杂越困难;
(2)我们的方法始终可以超过先前的方法; - 图的直径:反应结点之间的最大距离,如下图(b);
(1)传统的GNN方法不能很好处理长距离的交互;
(2)我们的方法则可以很好的提升效果; - 相同的结点有多个父结点(相同的结点可能有多个指向该结点的其他结点,即判断当前模型的reentrancies),如下图(c);
- attention可以看多远?
(1)我们提出的模型之所以能够在复杂和大的图上具有很强的性能,归功于全局信息交互的优势,因此自然想到一个问题是如何利用这一特性的?
(2)对于每层的每个head,进行了可视化,如下图。将最大的attention权重对应的距离来表示每个head。
(3)可以发现一大半的注意力head的平均距离超过2;
总结:
本文提出一种图表示方法,旨在解决先前的GNN-based方法只考虑到单跳(one-hop/first-order)范围内的结点的信息聚集,而忽略对长距离的结点信息交互的问题,提出的Graph Transformer方法则可以实现每个结点之间进行显式地信息交互,并将结点之间的最短路径关系表征作为保留图结构信息的依据。
缺点则在于不适用于大规模的图训练,因为transformer之所以速度快是因为使用可并行处理的attention,而本文将关系路径使用GRU进行编码,直接破坏了attention带来的优势,使得计算量进一步增加;
参考文献:
【1】Text Generation from Knowledge Graphs with Graph Transformers
【2】Transformer和BERT笔记:http://www.wjn1996.cn/blog/article?blogid=81
【3】Densely connected graph convolutional networks for graph to-sequence learning