ACL 2016 | Modeling Coverage for Neural Machine Translation

ACL 2016 | Modeling Coverage for Neural Machine Translation

2016-08-03小S 程序媛的日常 程序媛的日常


今天的 ACL 2016 系列推荐的论文,虽然不是 outstanding papers 之一,但是却符合 simple yet powerful。这篇论文就是《Modeling Coverage for Neural Machine Translation》,据作者自我爆料说,有个审稿人给了5分好评并评价为“Everyone working on neural MT will be running to implement this as soon as they read this paper.


这篇论文所要解决的问题,是一个在 end-to-end Neural Machine Translation(NMT) 中非常普遍的问题,即在 source sentence 中的某些词,可能会被多次翻译到 target sentence 里;也有可能是压根就被“漏翻译”了——即作者所谓的 over-translated 和 under-translated。以下是作者给出的具体定义:

1. Over-translation: some words are unnecessarily translated for multiple times;

2. Under-translation: some words are mistakenly untranslated.

那么举个具体的例子来看看什么是 over-translated:从图1可以看出,”关闭“这个词就属于被翻译了两次。

ACL 2016 | Modeling Coverage for Neural Machine Translation_第1张图片

为了解决这个问题,作者从在 NMT 出现前被广泛采用的 Statistical Machine Translation(SMT)中找原因。他们发现,在 phrase-based SMT 中有一个 coverage vector 可能是对于这个问题非常重要的因素。coverage vector 就像在学习算法中的计数器,它的任务就是记录 source sentence 中的每个 word 是否已经被翻译(covered)。加入计数器去解决这个 MT 中的问题是非常直观的。


这篇论文就是想把 coverage mechanism 结合到 end-to-end attention-based NMT 系统中。然而,直接结合是不靠谱的。所以他们提出了一个 general model,两类 representative implementation 和三个具体的实现。既然是基于 attention-based NMT,就希望能让 coverage vector 和 attention vector 做一些结合。从思想上讲,也就是希望在 decoding 的过程中,能对那些已经被翻译过的 source words 降低”注意力“,降低他们再次被翻译的可能性。于是乎,最直接的解决方案就呼之欲出了——把 coverage vector 直接和 annotation 结合在一起,这样就可以利用 coverage vector 去调节 attention,从而起到”纠正“注意力的作用。那么,这个 general model 大概就是这样:

ACL 2016 | Modeling Coverage for Neural Machine Translation_第2张图片
ACL 2016 | Modeling Coverage for Neural Machine Translation_第3张图片

作者同时给出了这个 general model 的两种 representative implementations,一种是从 linguistic 或者说可解释性比较高的角度去实现的;另一种是从神经网咯的角度去实现的。第一种,linguistic coverage model,就是利用简单的 linguistic heuristic 去迭代更新 coverage vector。这个思想并不是很新,是从前人的工作中总结提取出来的。在此基础上,作者还提出了一个改进版本的 linguistic coverage model,就是加入一个叫 fertility 的因子。Fertility 也是 word-level SMT 中的一个概念,它表示的是在 source sentence 中的某个词对应到 target sentence 中的词的个数。比如还是图一中的例子,中文”被迫“对应的就是3个词”were forced to“,fertility 就是3。利用这个 fertility 数目去做 linguistic coverage model 的归一化。值得一提的是,暂时这个数值只能作为一个 hyperparameter,靠手工写死,不能随着模型自动学习。

ACL 2016 | Modeling Coverage for Neural Machine Translation_第4张图片

第二种 representative implementation 就是和 NMT 一样的 neural network based coverage model。其实就是再去学习一个用于更新 coverage vector 的 NN。思想简单,不做赘述。

ACL 2016 | Modeling Coverage for Neural Machine Translation_第5张图片

介绍完两种三个实现,就剩怎么把这些 coverage model 结合到原来的 attention-based NMT 里去了。上文已经说过,思想是用 coverage model 学出来的 coverage vector 去”纠正“或者说辅助 attention,而辅助的方式就是它提供了一种对于过去信息的记录,而这是独立的 attention 机制无法做到的。


最后看一些实验结论,首先,即使是没有加入 fertility 的最简单的 linguistic coverage model 就已经可以提高1.1个BLEU,可见 coverage vector 的重要性。其次,加入 fertility 后进一步提高。第三,他们发现越是在长句子,尤其是那些含有单句的复杂句时,这种结合效果更好。最后给一个比较直观的利用 coverage vector 辅助 attention 后的结果:

ACL 2016 | Modeling Coverage for Neural Machine Translation_第6张图片


ACL 2016 | 十大优秀论文 Multimodal Pivot for Image Caption Translation
ACL 2016 | 十大优秀论文 Globally Normalized Transition-Based NN
ACL 2016 | 十大优秀论文 Improving Hypernymy Detection by Yoav Goldberg

ACL 2016 | 十大优秀论文之 Learning Language Games Through Interaction

ACL 2016 | 十大优秀论文之 Harnessing DNN with Logic Rules

ACL 2016 | 放弃 human annotations,提出可解释性更好的 evaluation

干货 | Multimodal Deep Learning 初窥




你可能感兴趣的:(Deep,Learning,Neural,Machine,Translation,(NMT),ACL,2016)