基于门控图网络的图到序列学习
摘要
许多NLP应用可以被构造成图到序列学习的问题。 为了解决这个问题,相比于基于语法的方法,之前的工作提出了神经结构并且获得了满意的效果,但是这个结果仍然依靠于线性启发法或者标准递归网络(standard RN)才能得到较好的性能。在此工作中,我们提出了一个新的模型,其可以把包含在图中的完整的结构信息进行编码,在处理先前工作中的参数爆炸问题时,这个结构结合了最近提出的门控图网络和一个允许节点和边有隐表示(hidden representations)的输入转换。实验结果表明,我们的模型在从AMR图和基于语法的神经机器翻译(NMT)中获得了强大的优势基准(baseline)。
1 介绍
图结构在自然语言表示中无处不在。特别地,许多整个句子的语义框架都采用了有向无环图(DAG)作为基础形式,而大多数基于树的语法表示也可以被看作是图。一系列的NLP应用可以被框定为将图结构转换为一个序列的过程。例如,语言生成可能涉及将语义图实现为表面形式(surface form),并且语法机器翻译涉及将注释树(tree-annotated)的源句子转换为其翻译。
此问题中的先前工作依赖于基于语法的方法,例如树转换器和超边替换语法。这些方法的关键局限是需要图节点和表面token之间的对齐。 这些对齐通常是自动生成的,因此在构建语法时它们会传播错误。最近的方法将图转换为线性形式,并使用现成的方法,例如基于短语的机器翻译或神经序列到序列模型。这些方法忽略了完整的图形结构,丢弃了关键信息。
在这项工作中,我们提出了一个图到序列(以下称为g2s)学习的模型,该模型利用了神经编码器 - 解码器架构的最新进展。 具体来说,我们采用了一种基于门控图神经网络(GGNN)的编码器,它可以在不丢失信息的情况下整合完整的图结构。 这样的网络将边信息表示为标签方式参数(label-wise para),对于小尺寸标签词汇表(大约数百个)也可能存在问题。为了解决这个限制,我们还引入了图转换,它将边更改为额外的节点,解决了参数爆炸问题。 这也确保了边具有特定图的隐向量,为网络中的注意力(attention)和解码模块提供了更多信息。
我们在两个图到序列问题中对我们的模型进行基准测试,从抽象意义表示(AMR)生成和使用源依赖信息的神经机器翻译(NMT)。与以前的工作相比,我们的方法在不依赖标准RNN编码器的情况下优于两项任务(AMR和NMT)中的强s2s基准。特别对于NMT任务,我们通过在依赖关系树中的连续单词之间添加连续边来避免对RNN的需要。这说明了我们方法的一般性:语言偏差(linguistic biases)可以通过简单的图转换添加到输入中,而无需更改模型结构。
图1:左图:AMR图表示句子“The boy wants the girl to believe him.”。右图:我们提出的架构,使用相同的AMR图作为输入,表面形式
(surface form)
作为输出。第一层是节点和位置嵌入(embeddings)的串联,位置:距根节点的距离。GGNN编码器使用由不同颜色表示的边参数(edge-wise paras)来更新嵌入(在该示例中为
和
)。编码器还为每个节点添加相应的反向边(图上是较浅的虚线箭头)和自循环边(图上是深色的虚线箭头)。所有参数在层之间共享。注意力(attention)和解码器组件类似于标准s2s模型。这是一个图表示:在我们的实验中,图在被用作输入之前被转换(见§3)。
2 神经图到序列模型(Neural G2S Model)
我们提出的架构如图1所示,一个示例AMR图并将其转换为表面形式。与标准s2s模型相比,主要区别在于编码器,我们使用GGNN来构建图表示(Graph representation)。在下文中,我们将详细介绍此体系结构的组件
。
( 我们的实现使用MXNet(Chen等,2015),并基于Sockeye工具包(Hieber等,2017)。代码可在https://github.com/beckdaniel/acl2018_graph2seq 获得)
2.1 门控图神经网络(GGNNs)
关于图的递归网络的早期方法假设固定点表示参数,并使用收缩图(contraction maps)进行学习。李等人认为这限制了模型的能力(capacity),使得学习节点之间的长距离关系变得更加困难。为了解决这些问题,他们提出了门控图神经网络(GGNN),它采用与门控递归单元(GRU---LSTM的变种,可以解决远距离依赖)类似的门控机制扩展了这些架构。这允许通过现代反向传播过程来学习网络。
在下文中,我们正式定义了我们在本研究中使用的GGNN版本。假设有向图,其中
是节点集合
,是
边集合
,
和
分别是节点和边的词汇表(vocabularies),从其中定义节点和边标签
。给定一个输入图,其中节点映射到嵌入X(embedding X),GGNN被定义为:
其中是节点u和v之间的边,
是v的邻居节点集合,ρ是非线性函数,σ是sigmoid函数,
是归一化常数。
我们的公式(formulation)与Li等人2016年的原始GGNN公式有几方面不同:1)我们为隐状态(hidden state)、复位门(reset gate)和更新门(update gate)计算添加偏置向量(bias vectors); 2)特定标签(label-specific)的矩阵不共享任何组件; 3)在计算之前将复位门应用于所有隐状态,4)添加了归一化常数。这些修改基于初步实验,且易于实现。
GGNN的另一种选择是来自Marcheggiani和Titov2017年的模型,其将边标签信息添加到图卷积网络(GCN)。根据Li等人的说法,GCN和GGNN之间的主要区别类似于卷积网络和循环网络之间的差异。更具体地说,GGNN可以看作多层的GCN,且绑定了分层参数(layer-wise parameters),并且添加了门控机制。许多层可以在图中传播较长距离的节点信息,并且与GCN不同的是,GGNN可以具有任意数量的层而不增加参数的数量。尽管如此