478 Chapter 14. 神经机器翻译模型推断 肖桐 朱靖波
14.2.4 译文多样性
机器翻译系统的输出并不仅限于单个译文。很多情况下,需要多个译文。比如,
译文重排序中通常就需要系统的 n-best 输出,在交互式机器翻译中也往往需要提供
多个译文供用户选择
[645, 705]
。但是,无论是统计机器翻译还是神经机器翻译,都面临
一个同样的问题:n-best 输出中的译文十分相似。实例14.1就展示了一个神经机器翻
译系统输出的多个翻译结果,可以看到这些译文的区别很小。这个问题也被看做是
机器翻译缺乏译文多样性的问题
[396, 706, 707, 708, 709]
。
实例 14.1 源语言句子:我们/期待/安理会/尽早/就此/作出/决定/ 。
机器译文 1 :We look forward to the Security Council making a decision on this
as soon as possible .
机器译文 2 :We look forward to the Security Council making a decision on this
issue as soon as possible .
机器译文 3 :We hope that the Security Council will make a decision on this
issue as soon as possible .
机器翻译输出缺乏多样性会带来很多问题。一个直接的问题是在重排序时很难
选择到更好的译文,因为所有候选都没有太大的差别。此外,当需要利用 n-best 输
出来表示翻译假设空间时,缺乏多样性的译文也会使得翻译后验概率的估计不够准
确,造成建模的偏差。在一些模型训练方法中,这种后验概率估计的偏差也会造成
较大的影响
[235]
。从人工翻译的角度,同一个源语言句子的译文应该是多样的,因此
过于相似的译文也无法反映足够多的翻译现象。
因此增加译文多样性成为了机器翻译中一个有价值的研究方向。在统计机器翻
译中就有很多尝试
[396, 708, 709]
。主要思路是通过加入一些“扰动”让翻译模型的行为发
生变化,进而得到区别更大的译文。类似的方法也同样适用于神经机器翻译。例如,可
以在推断过程中引入额外的模型,用于惩罚出现相似译文的情况
[707, 710]
。也可以在翻
译模型中引入新的隐含变量或者加入新的干扰,进而控制多样性译文的输出
[711, 712, 713]
。
类似地,也可以利用模型中局部结构的多样性来生成多样的译文
[714]
。除了考虑每个
译文之间的多样性,也可以对译文进行分组,之后增加不同组之间的多样性
[715]
。
14.2.5 搜索错误
机器翻译的错误分为两类:搜索错误和模型错误。搜索错误是指由于搜索算法
的限制,即使潜在的搜索空间中有更好的解,模型也无法找到。比较典型的例子是,
在对搜索结果进行剪枝的时候,如果剪枝过多,找到的结果很有可能不是最优的,这
时就出现了搜索错误。而模型错误则是指由于模型学习能力的限制,即使搜索空间
中存在最优解,模型也无法将该解排序在前面。
在统计机器翻译中,搜索错误可以通过减少剪枝进行缓解。比较简单的方式是
增加搜索束宽度,这往往会带来一定的性能提升
[716]
。也可以对搜索问题进行单独建
模,以保证学习到的模型出现更少的搜索错误
[717, 718]
。但是,在神经机器翻译中,这