解码之Beam Search算法

解码是seq2seq模型的常见问题,常用方法有贪心搜索(Greedy Search)集束搜索(Beam Search)。

简单贪心搜索

这里写图片描述
From [1]

如图,Decoder根据Encoder的中间语义编码向量 c c <s>标签得到第一个输出的概率分布[0.1,0.1,0.3,0.4,0.1],选择概率最大的0.4,即moi

根据隐向量 h1 h 1 moi得到第二个输出的概率分布 [0.1,0.1,0.1,0.1,0.6] [ 0.1 , 0.1 , 0.1 , 0.1 , 0.6 ] ,选择概率最大的0.6,即suis

以此类推,直到遇到<\s>标签,得到最终的序列moi suis étudiant

集束搜索

上面的贪心搜索只选择了概率最大的一个,而集束搜索则选择了概率最大的前k个。这个k值也叫做集束宽度(Beam Width)。

还是以上面的例子作为说明,k值等于2,则集束搜索的过程如下图:

这里写图片描述

得到第一个输出的概率分布 [0.1,0.1,0.3,0.4,0.1] [ 0.1 , 0.1 , 0.3 , 0.4 , 0.1 ] ,选择概率最大的前两个,0.3和0.4,即Jemoi

然后Je和moi分别作为Decoder的输入,得到两个概率分布,然后再选择概率和最大的前两个序列,0.3+0.8和0.4+0.6,即Je suismoi suis

以此类推,最终可以得到两个序列,即Je suis étudiantmoi suis étudiant,很明显前者的概率和最大,为2.2,所以这个序列是最终得到的结果。

集束搜索本质上也是贪心的思想,只不过它考虑了更多的候选搜索空间,因此可以得到更多的翻译结果。

References

[1] https://www.tensorflow.org/tutorials/seq2seq

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手撕机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值