Beam Search

Beam Search是一种在seq2seq模型中避免贪心算法预测错误影响后续单词的搜索策略。在每次预测时,它保留概率最高的n个单词(n为Beam宽度),逐步构建多个可能的序列。当遇到结束符时,搜索宽度减小,直至所有路径结束,选取平均概率最高的序列作为结果。这种方法虽非最优,但兼顾精度与效率,在NLP和机器翻译等领域有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:如图1所示,在seq2seq推理过程中,需要通过上下文和上一个预测的单词,来预测下一个词。如果前面的单词是w1,通过上下文和w1可以预测w2,然后再通过w2和上下文预测出w3,这种算法简单快速,能够得到不错的效果,但是这种贪心算法有个问题就是,如果在预测序列中有一个单词预测的不准确,那么它会影响后面所有单词的预测。Beam Search就是在这种背景下产生的,Beam有“束”的意思,Beam Search的字面意思就是在一个范围内搜索。

图1 rnn推理


原理:还是如图1所示,在从w1得到w2的过程中,一般是得到了所有词表中单词出现的概率的排序,w2是出现概率最大单词(一般是用softmax回归得到概率),Beam Search如果把Beam设置为n,算法每次搜索到概率最大的n个单词,而不是一个单词。

如图2所示,假如词表大小为5,里面有abcde五个单词,Beam大小为2,预测到的第一个单词是c和e,单词是c时下个输出可能是ca,cb,cc,cd,ce,单词是e时,下个输出是ea,eb,ec,ed,ee,我们在这10个可能中挑到概率最大的两个组合ce和eb,依次再以e和b为输入获得10个组合可能,找到概率最大的两个组合,这就是Beam Search的基本原理。

需要注意的是什么时

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值