首先说明在sequence2sequence模型中,beam search的方法只用在测试的情况,因为在训练过程中,每一个decoder的输出是有正确答案的,也就不需要beam search去加大输出的准确率。
假设现在我们用机器翻译作为例子来说明。
我们的任务是翻译中文“我是中国人”--->英文“I am Chinese”
假设我们的词表大小只有三个单词就是I am Chinese。
那么如果我们的beam size为2的话,我们现在来解释,
如下图所示,我们在decoder的过程中,有了beam search方法后,在第一次的输出,我们选取概率最大的"I"和"am"两个单词,而不是只挑选概率最大的单词。
然后接下来我们要做的就是,把“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布,把“am”单词作为下一个decoder的输入算一遍也得到y2的输出概率分布。
比如将“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布如下:
比如将“am”单词作为下一个