在上一篇文章seq2seq与注意力机制中,我们提到编码器最终输出了一个背景向量c,该背景向量编码了输入序列x1,x2,...,xT的信息。假设训练数据中的输出序列是,输出序列的生成概率为
对于机器翻译的输出来说,如果输出语言的词汇集合的大小为,输出序列的长度,那么可能的输出序列种类是。为了找到生成概率最大的输出序列,一种方法是计算所有种可能序列的生成概率,并输出概率最大的序列。我们称该序列为最优序列。但是这种方法的计算开销过高(例如,)
我们目前所介绍的解码器在每个时刻只输出生成概率最大的一个词汇。对于任一时刻,我们从个词种搜索出输出词
因此,搜索计算开销显著下降(例如,),但这并不能保证一定搜索到最优序列
束搜索(beam search)介于上面二者之间。下面看一个例子
假设输出序列的词典中只包含5个词:。束搜索的一个超参数叫束宽(beam width)。以束宽等于2为例,设输出序列长度为3。假如时刻1生成概率最大的两个词为和,我们在时刻2对于所有的都分别计算和,从计算出的10个概率中取最大的两个,假设为和。那么,我们在时刻3对于所有的都分别计算和,从计算出的10个概率中取最大的两个,假设为和
接下来,我们可以在输出序列:、、、、、中筛选出以特殊字符EOS结尾的候选序列。再在候选序列中取以下分数最高的序列作为最终候选序列:
其中为候选序列长度,一般可选为0.75。分母上的是为了惩罚较长序列的分中的对数相加项
2002年,IBM团队提出了一种评价翻译结果的指标,叫做BLEU(Bilingual Evaluation Understudy)
设为我们希望评价的n-gram的最大长度,例如。n-gram的精度为模型输出中的n-gram匹配参考输出的数量与模型输出中的n-gram数量的比值。例如,参考输出(真实值)为ABCDEF,模型输出为ABBCD。那么。设和分别为参考输出和模型输出的词数。那么BLEU的定义为
需要注意的是,随着的提高,n-gram精度的权值随着中的指数减小而提高。例如
换句话说,匹配4-gram比匹配1-gram应该得到更多的奖励。另外,模型输出越短往往越容易得到较高的n-gram精度。因此,BLEU公式里连乘项前面的系数是为了惩罚较短的输出。例如当时,参考输出为ABCDEF,而模型输出为AB,此时的,而,因此BLEU=0.135。当模型输出也为ABCDEF时,BLEU=1
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有