在Seq2Seq解码部分中,常用到Beam Search。每个时刻它会保存b(beam size)个概率最大的选择作为当前的最佳选择,然后解码下一时刻时,继续选择和之前保存的b个选择组合起来后的概率最大的b个选择,依次循环迭代下去,直到编码结束。
下面直接上图:
在机器翻译中:
法语输入:Jane visite l’Afrique en septembre.
人工翻译:Jane visits Africa in September.
这里 beam size 为3。
在时刻1时,模型选择了概率最大的三个选择为:in ,jane,september。
在时刻2时,模型分别对时刻1的三个单词组合每个组合做贪心搜索,然后输出条件概率最大的三个选择为:in september,jane is,jane visits.
在时刻3,模型继续对前面的三个组合每个组合做贪心搜索,然后输出条件概率最大的三个选择为:
in september Jane,jane is visit , jane visits africa.
依次循环直到最后输出<EOS>符. 假设最后输出为这三个答案:
1)Jane is visit Africa in September.<EOS>