472 Chapter 14. 神经机器翻译模型推断 肖桐 朱靖波
• 使用源语言句子的编码结果,在目标语言端自左向右逐词生成译文;
• 在目标语言的每个位置计算模型得分,同时进行剪枝;
• 当满足某种条件时终止搜索。
这个过程与统计机器翻译中自左向右翻译是一样的(见第七章),即在目标语言
的每个位置,根据已经生成的部分译文和源语言的信息,生成下一个译文单词
[80, 81]
。
它可以由两个模块实现
[671]
:
• 预测模块,它根据已经生成的部分译文和源语言信息,预测下一个要生成的译
文单词的概率分布
1
。因此预测模块实际上就是一个模型打分装置;
• 搜索模块,它会利用预测结果,对当前的翻译假设进行打分,并根据模型得分
对翻译假设进行排序和剪枝。
预测模块是由模型决定的,而搜索模块可以与模型无关。也就是说,不同的模型
可以共享同一个搜索模块完成推断。比如,对于基于循环神经网络的模型,预测模块
需要读入前一个状态的信息和前一个位置的译文单词,然后预测当前位置单词的概
率分布;对于 Transformer,预测模块需要对前面的所有位置做注意力运算,之后预测
当前位置单词的概率分布。不过,这两个模型都可以使用同一个搜索模块。图14.1给
出了神经机器翻译推断系统的结构示意图。
预测模块
源语言句子(编码器输出)
搜索模块
译文中已经生成的单词
预测当前位置的单词概率分布
图 14.1 神经机器翻译推断系统的结构
这是一个非常通用的结构框架,同样适用于统计机器翻译模型。因此,神经机
器翻译推断中的很多问题与统计机器翻译是一致的,比如:束搜索的宽度、解码终
止条件等等。
一般来说,设计机器翻译推断系统需要考虑三个因素:搜索的准确性、搜索的
时延、搜索所需要的存储。通常,准确性是研究人员最关心的问题,比如可以通过增
大搜索空间来找到模型得分更高的结果。而搜索的时延和存储消耗是实践中必须要
考虑的问题,比如可以设计更小的模型和更高效的推断方法来提高系统的可用性。
1
在统计机器翻译中,也可以同时预测若干个连续的单词,即短语。在神经机器翻译中也有类似于生
成短语的方法,但是主流的方法还是按单词为单位进行生成。