文章原名:Learning Graphical State Transitions
作者:Daniel D. Johnson
单位: Department of Computer Science, Harvey Mudd College
译者:涂存超
链接:
1
导读
本文是ICLR 2017的一篇oral论文。
图结构的数据对于建模不同类型实体之间的关系非常重要,也可以和许多数据结构一样用来表示真实世界的状态。这篇工作基于ICLR 2016的一篇基于门的图序列神经网络(Gated Graph SequenceNeural Network, GGS-NN)。GGS-NN根据图结构数据的输入来产生序列输出。本文对GGS-NN进行了扩展,提出了一种基于门的图变换神经网络(Gated GraphTransformer Neural Network, GGT-NN),利用图结构的数据作为一种中间表示。这个模型能够基于文本输入来精细的构建以及修改图,并且利用这个图产生不同类型的输出。例如,该模型能够成功的解决几乎所有的bAbI任务,并且也在规则发现任务上取得了不错的效果。
2
模型
GGT-NN以文本或图结构的数据作为输入,来产生文本或图结构的输出。这里介绍一种根据输入的句子序列来构建修改一个图,最后生成一个回答的GGT-NN。
对于每个句子k,通过GRU层产生一个句子的表示i(k),以及根据不同词(节点)的类型n,产生相应的部分表示向量 Dn(k) = Σl∈Rn pl(k)。为了利用得到的每个句子的表示向量以及每个句子对应的不同节点类型的部分表示向量,构建中间的图结构,本文定义了如下五种图变换操作:
-
增加节点:通过增加新的节点来更改一个图,并且基于一个输入向量给它们分配注释向量xv以及强度sv。
-
节点状态更新:利用输入向量来修改每个节点的状态。
-
边更新:对于每个节点对,根据它们的状态以及额外的输入向量,来更新边。
-
传播:允许节点通过存在的边传播信息,并且根据接收到的信息更新自身的状态。
-
聚合:利用注意力机制来选择相关的节点,形成图级别的输出。
以上每种转换操作都拥有自己的可以训练的参数。将这些方法结合起来,可以通过复杂的方式来构建和处理一个图。具体步骤的伪代码如下:
如上图所示,通过一系列的图转换操作,形成了一个中间的图结构G。根据问题的词条(query),形成一个与图相关的表示,然后利用多层感知机+softmax层来产生单个词的结果,或利用循环神经网络产生句子序列的输出。
由于上述所有的图转换操作都是可微分的,所以可以通过与正确的输出进行对比,来更新网络的参数。
此外,该模型需要额外的监督信息来抽取有意义的图结构数据。为了提供必要的监督信息,可以提供每一个时间步骤的正确的图,来使得该模型可以产生该图。针对节点和边,该模型设计了如下目标函数:
3
实验
本文在BABI任务以及规则发现任务上进行了实验。
BABI是一系列简单的自然语言任务,给定一系列的句子以及一个询问,来产生一个词的回答。GGT-NN可以根据输入的句子,产生一个图结构来存储学习到的知识,然后产生相应的回答。具体的错误率如下图所示:
此外,为了展示GGT-NN对于不同的基于图的问题建模的能力,本文还进行了规则发现的任务,也就是利用一系列的数据结构的输入,来构建图结构的表示,进行预测接下来的数据,结果如下所示:
4
总结
本文提出的GGT-NN模型能够有效的对一系列基于图结构的问题进行建模。与之前的方法相比,GGT-NN可以处理非结构化的输入,并且能够根据输入构建以及修订图结构。该网络的中间状态完全是基于图结构的,并且其中的复杂计算能够分散到途中所有的节点上。