Module 03 · Sequence Models & Attention Mechanism
Beam Search束搜索
在本视频中,我们将深入探讨 束搜索算法(Beam Search),并介绍它如何在 机器翻译 和 语音识别 中被应用。我们将通过一个具体的例子来演示如何利用束搜索来优化翻译过程。
回顾:机器翻译中的目标
在上一期视频中,我们讨论了 机器翻译 的目标:给定法语输入句子,输出最有可能的英文翻译。同样的原则也适用于语音识别:给定一段音频,输出最有可能的文本转录。这两个任务都需要找到最佳的翻译或转录,而不是随机选择一个翻译。
束搜索 是用于此类任务的 最广泛应用的算法,它帮助我们选择最优解。
束搜索算法的基本概念
我们将通过法语句子“Jane visite l'Afrique en Septembre”来演示束搜索,目标是将其翻译为英文:“Jane visits Africa in September”。
第一步:选择第一个单词
束搜索的第一步是选择英文翻译的第一个单词。假设我们有一个 包含 10,000 个单词的词汇表,为了简化问题,我们将忽略大小写,仅使用小写字母列出所有单词。
- 束宽度(Beam Width):我们设定束宽度为 3,这意味着束搜索将考虑多个可能的翻译选择,而不是仅仅选择一个最可能的词汇。
在第一个步骤中,束搜索会运行 编码器 和 解码器,计算给定法语句子后,英文翻译第一个词的概率。
Greedy Search 与 Beam Search 的区别
- Greedy Search:选择最有可能的第一个单词,并继续向下生成翻译。
- Beam Search:考虑 3 个可能的选择(例如:in, Jane, September),并记住这些选择,继续往后处理。
如果束宽度设为 10,那么束搜索会考虑 10 个最可能的选择,并记住它们。可以看出,束宽度的设置会影响模型的搜索空间。
概率计算
- 每次计算时,束搜索会对每个候选单词计算 条件概率:P(y | x),即 给定法语句子 的情况下,翻译为 某个英文单词 的概率。

第二步:选择第二个单词
接下来,束搜索会根据选择的第一个单词(例如:“in”)来选择 第二个单词。
- 假设第一个词选择了 in,那么束搜索将选择 in 后最可能出现的词,例如:“a, Jane, September, visit”。
这时,解码器的任务是根据已经选定的第一个单词(例如:“in”)来评估 第二个单词 的概率。
- 计算方法: 通过将 y₁ = "in" 输入到网络中,计算 y₂ 的概率,即给定第一个单词 in,下一个最可能的单词是什么。
计算示例
- 对于 in,我们可以生成候选的第二个单词组合,比如:“in a, in Jane, in September” 等。
- 然后计算 每对单词的联合概率,即:P(y₁) × P(y₂ | y₁)。
这个步骤会为每个候选的第二个单词计算概率。

第三步:选择第三个单词
同样地,接下来我们将考虑选择 第三个单词,并评估每对候选单词的联合概率。
- 如果我们已经选择了 "in September",束搜索将评估接下来最可能的第三个单词。
对于每对可能的 前两个单词,束搜索会考虑整个 10,000 个词汇表 中的所有可能的第三个单词。

束搜索的高效计算
束搜索通过维护 束宽度为 3 来逐步减少需要考虑的候选翻译数目。例如:
- 在第一步,我们有 10,000 个单词 的选择。
- 在第二步,考虑 3 × 10,000 = 30,000 种可能性。
- 经过筛选,最终将保留 最有可能的三种选择。
这种方式避免了暴力搜索所有可能的组合,极大提高了计算效率。
束宽度(Beam Width)与 Greedy Search 的关系
- 束宽度为 1 时,束搜索变成了 贪心搜索(Greedy Search)。
- 束宽度大于 1 时,束搜索会考虑更多的候选翻译,通常能够得到更好的结果。
继续选择下一个单词
在每个步骤中,束搜索会将最有可能的翻译保存在内存中,然后继续选择下一个单词,直到形成完整的翻译句子。
例如:
- 在 September 后,选择下一个单词,如:“a, Jane, is, visit”。
- 然后评估每对单词的概率。
束搜索的终止条件
束搜索通常会在生成完整的翻译句子时终止。最终,模型会输出 最有可能的英文句子,例如:“Jane visits Africa in September”,并在句子末尾添加终止符号。
总结:束搜索与贪心搜索的对比
- 贪心搜索:每次只选择最有可能的下一个单词,容易陷入局部最优。
- 束搜索:同时考虑多个候选翻译,通过增加束宽度,通常能找到更优的翻译结果。
束搜索不仅在机器翻译中应用广泛,还在 语音识别 等任务中发挥了重要作用。通过逐步选择最有可能的单词并考虑多个候选翻译,束搜索能够有效提升翻译质量。
下一步:束搜索的优化与技巧
在接下来的视频中,我们将进一步探讨束搜索的优化方法,帮助你提升束搜索的效果并解决实际应用中的问题。