贪心搜索(Greedy Search)是最简单的策略:每一步选择概率最高的词元。
xt=argmaxxP(x∣x1,…,xt−1)x_t = \arg\max_{x} P(x | x_1, \dots, x_{t-1})xt=argmaxxP(x∣x1,…,xt−1)
贪心搜索速度快且确定性强,但有一个根本缺陷:局部最优不等于全局最优。 在某一步选择概率最高的词元,可能导致后续步骤进入较差的生成路径。
束搜索(Beam Search)通过同时维护 $B$ 条($B$ 称为束宽)最优候选序列来缓解贪心搜索的局限。每一步,为每条候选序列扩展所有可能的下一个词元,保留总分数最高的 $B$ 条序列。
束搜索在机器翻译等有明确“正确答案”的任务中效果显著——通过扩大搜索范围,更可能找到全局最优的输出序列。但对于创造性文本生成,束搜索往往产生重复、无趣、过于保守的输出——因为最高概率的序列并不总是最“好”的回答。
束搜索的计算成本和延迟是贪心搜索的 $B$ 倍,对于实时对话场景通常不实用。
最后更新于1天前