嗨,各位技术小伙伴们!今天咱们来聊一个在自然语言处理(NLP)和序列生成任务中超重要的算法——集束搜索(Beam Search)!🎯 无论是机器翻译、文本摘要,还是对话系统,集束搜索都能让AI生成的句子更通顺、更合理。它到底是怎么工作的?和贪心搜索(Greedy Search)有什么区别?别急,咱们就通过下面文章一次性搞懂!📚
🌰 开篇小例子:翻译“Hello”到中文
假设我们训练了一个中译英的神经网络模型,输入是“我爱你”,模型会逐步生成英文词:
- 第一步:生成“I”、“LOVE”、“YOU”(概率分别为0.3、0.6、0.1)。
- 第二步:根据上一步选的词,继续生成下一个词……
如果用贪心搜索,在翻译每个字的时候,直接选择条件概率最大的候选值作为当前最优。

而集束搜索是对贪心算法的一个改进算法。相对贪心算法扩大了搜索空间🎉
🤖 什么是集束搜索?
集束搜索是一种启发式搜索算法,它在每一步生成序列时,保留概率最高的前k个候选序列(k称为“集束宽度”),然后继续扩展这些序列,直到生成完整结果。
🔄 和贪心搜索的区别
| 方法 | 每一步候选数 | 优点 | 缺点 |
|---|---|---|---|
| 贪心搜索 | 1 | 速度快 | 容易陷入局部最优(如“你你好”) |
| 集束搜索 | k(可调) | 能找到全局更优的序列 | 计算量比贪心搜索大 |
💻 集束搜索的步骤(以机器翻译为例)
假设我们要将英文“I love NLP”翻译成中文,集束宽度 k

最低0.47元/天 解锁文章
687

被折叠的 条评论
为什么被折叠?



