Sequence-to-Dependency Neural Machine Translation

[TOC]

Motivation

当前的提升NMT效果的方法主要有:

  • OOV词的翻译
  • 设计attention机制
  • 高效参数学习
  • 利用源端语法树

作者发现长距离上的句法错误经常出现在翻译结果中,说明线性RNN不容易捕捉到细微的长距离word dependency。

这种长距离的词语相关可以通过句法依赖树来解决。好处有两点:

  • 句法树可以作为翻译的语法标准验证
  • 句法树可以作为context辅助后面的翻译

但是想法的实现有很多困难:

  • 如何使用RNN建模语法结构树
  • 如何使用同一网络同时进行目标词生成和语法结构建立
  • 如何有效利用目标端句法context辅助目标词生成

本文主要采用的是 Jointly 产生 目标词Action 的改进Decoder的方法

Methods

Dependency Tree Construction

算法: arc-standard algorithm

利用一个栈和一个buffer,定义三种transition actions

语法结构树和transition actions序列等价

对长度为n的句子,每个词需要入栈和出栈一次,则transition actions序列长度l=2n

Model

  • 模型目标

总体上来说,模型定义为

其中 $a_{j} \in{\{SH, RR(d), LR(d)\}}$

只有在产生动作SH时,才预测下一个词,通过定义函数$\delta$来实现这一点

  • 模型架构

利用两个相互关联的RNN来分别model Y和A,例如

总体架构如下

  • 终止条件

终止条件除了word-RNN产生EOS之外,还要求栈里的所有词都经过规约

  • 句法Context的引入

考虑栈顶两个词 $\omega_0$ 和 $\omega_1$ ,及它们的在句法树里的最左最右两个修饰 $\omega_0l$,$\omega_0r$,$\omega_1l$,$\omega_1r$,文中考虑了2种一元特征和4种二元特征,最后得到的context如下

其中

:Context只在model概率的时候用到,在计算hidden state时只利用了 $c_j$

  • 训练和解码

训练目标为最大化

解码时score如下

Experiments

Effect of dependency tree

直观上来说,action prediction时beam size越大,则dependency tree质量越高

作者通过调大该beam size,观测到翻译BLEU值的提升,从而说明建立dependency tree能够增强目标词生成

Estimation of dependency tree