论文笔记:Beam Search Strategies for Neural Machine Translation

作者:

Markus Freitag and Yaser Al-Onaizan

单位:

IBM T.J. Watson Research Center

关键词:

Beam search; Pruning strategies

问题:

束搜索算法跟踪k个状态,而不仅仅只跟踪一个。它从k个随机生成的状态开始,在每一步中都生成所有k个状态的所有后继者。如果这其中的任何一个后继者是目标,那么算法就会停止。否则,它将从完整列表中选择k个最佳后继者并不断重复。

在束或并行搜索数量确定的情况下,现有的束搜索策略存在的可能的问题是:

1、  远小于当前最优得分的序列也会被扩展;

2、  与当前最优得分相差不多的序列由于k的限制未被扩展。

第二种情况可以通过采用较大的束宽度来避免,然而这种性能的提高会导致解码速度降低。

动机:

提出多种beam search的策略,加快解码器速度。

候选序列(best scoring candidates)往往共享同一个部分序列(partialhypothesis),文章对这种现象做出限制,从而加大候选序列的多样性。

模型:

几种剪枝策略:

1、  Relative Threshold Prunning

给定一个相对剪枝门限rp,丢弃比最优候选序列得分低的序列:

论文笔记:Beam Search Strategies for Neural Machine Translation

2、  Absolute Threshold Prunning

给定一个绝对剪枝门限ap,丢弃比最优候选序列得分低的序列:

论文笔记:Beam Search Strategies for Neural Machine Translation

3、  Relative Local Threshold Prunning

只考虑最后一个生成的单词的得分而不是整个候选序列的得分:

论文笔记:Beam Search Strategies for Neural Machine Translation

4、  Maximum Candidates per Node

只允许有限数目个共享部分序列的候选序列。

解码速度的衡量:

1、  与不采用任何剪枝策略的普通beamsearch速度相比

论文笔记:Beam Search Strategies for Neural Machine Translation

2、  在每一个时刻,定义该时刻扩展的候选序列为fan out。fan out的取值上限为beam size,也可以小于beam size,小于的情况包括扩展到终止符或者使用了上面提到的剪枝策略。

论文笔记:Beam Search Strategies for Neural Machine Translation

对于每种剪枝策略,作者在不同的threshold值下做了实验,最终选取在不会降低翻译质量的前提下的最大threshold值。

简评:

采用文章的剪枝策略可以做到在每个时刻选择的后继者数目不同。实验证明能够加速解码。