一、贪心搜索
1、基于贪心搜索从Y中找到具有最高条件概率的词元,但贪心可能不是最优解
2、比如
(1)贪心:.5*.4*.2*.1=.0024
(2)另外:.5*.3*.6*.6=.0054
二、穷举搜索
(1)穷举地列举所有可能的输出序列及其条件概率, 然后计算输出条件概率最高的一个。
(2)计算上不可行
三、束搜索
1、束搜索是贪心搜索的一个改进版本,有一个超参数,名为束宽K。
2、时间复杂度O(knT)
3、每个候选的最终分数(L是最终候选序列的长度, α通常设置为0.75。)
4、举例步骤(其中有一个是“<eos>”):
(1)在时间步1,我们选择具有最高条件概率的k个词元;在每个时刻,对每个候选新加一项(n个可能),在kn中选出最好的k个。
(2)在时间步1,假设具有最高条件概率 P(y1∣c)的词元是A和C。
(3)在时间步2,我们计算所有y2∈Y为:P(A,y2∣c) = P(A∣c)*P(y2∣A,c);P(C,y2∣c)=P(C∣c)*
P(y2∣C,c)从这十个值中选择最大的两个, 比如P(A,B∣c)和P(C,E∣c)。
(4)在时间步3,我们计算所有y3∈Y为:P(A,B,y3∣c)=P(A,B∣c)*P(y3∣A,B,c);
P(C,E,y3∣c)=P(C,E∣c)*P(y3∣C,E,c),从这十个值中选择最大的两个, 即P(A,B,D∣c)和P(C,E,D∣c)。
(5)得到六个候选输出序列: (1)A;(2)C;(3)A,B;(4)C,E;(5)A,B,D;(6)C,E,D。
(6)基于这六个序列, 我们获得最终候选输出序列集合
(7)选择其中条件概率乘积最高的序列作为输出序列
四、总结
1、序列搜索策略包括贪心搜索、穷举搜索和束搜索。
2、贪心搜索所选取序列的计算量最小,但精度相对较低。
3、穷举搜索所选取序列的精度最高,但计算量最大。
4、束搜索通过灵活选择束宽,在正确率和计算代价之间进行权衡。