Beam Search:每步保留 B 个最优前缀
解码逐层展开搜索树:扩展词表 → 按累积 log P 排序 → 只留 Top-B、其余剪掉。
score(
y
1:u
) =
Σ
u'
log P(y
u'
| x, y
<u'
)
每步保留
Top-B
,丢弃其余
B×V−B
个
当前 beam(indigo)
保留 keep(emerald)
剪掉 prune(rose)
⎯ 累积 log P
beam width
B=2
<s>
我
你
他
的
想
爱
来
去
你
了
-0.4
-1.9
-0.6
-2.3
-1.7
-0.9
-0.8
-2.0
-1.1
-2.6
「换头」:上一步落后的「他来」(-0.8)
反超「我爱」(-0.9),成为新 beam 之首。
▶ 播放
单步
↺ 重播
点「▶播放」看 beam(B=2)如何扩展、裁剪、换头。
💡 束搜索是
近似
搜索:每步只留 Top-B 个前缀,扩展再裁剪。B 越大越接近全局最优;
B=1 就是贪心
,短视易走错路。