4.3.4 集束搜索(Beam Search)
4.3.4.1 问题引入
我们在找到一个合适的句子的时候,一个很直观的方法是在生成第一个词y^{1}y1分布之后,根据条件语言模型挑选出最有可能的第一个词y^{1}y1 ,然后生成第二个词y^{2}y2的概率分布挑选第二个词y^{2}y2,依此类推,始终是选择每一个最大概率的词,这种方法在机器翻译领域其实并不管用,我们来举个例子
法语句子"Jane visite l'Afrique en septembre." 翻译1-Jane is visiting Africa in September. 翻译2-Jane is going to be visiting Africa in September. 翻译1显然比翻译2要更好,更加简洁的表达了意思。
如果该算法挑选了 y^{1},y^{2}y1,y2, ('Jane' , 'is'),那么在英语中"is going"更加常见,因此在选择 y^{3}y3 ='going',于是对于合适的句法来说"Jane is visiting"相比"Jane is going"会有更高的概率使用,所以有时候真正需要的是一次性挑选整个单词序列y^{1},y^{2},y^{3},...,y^{t}y1,y2,y3,...,yt 使得整体的条件概率最大。
4.3.4.2 集束搜索流程
定义:在Beam Search中有一个参数B,叫做beam width(集束宽),用来表示在每一次筛选时挑top B的结果。
例子说明:
- 第一次:选出概率最大的三个词
- 第二次:选择上一步三个词,每个词对应三个概率最大的词(可能存在重复)
- ....
假设只有两步,那么得到9个结果。最终我们要从中选出三组结果
- is fine
- in alright
- at alright
那么这三个句子就是我们需要的结果。
4.3.5 BLEU-机器翻译的自动评估方法
对于上述筛选的结果我们可以让一些语言专家进行评估选出最合适的。当然有大量人力也是可以这样去做,但是我们希望系统能够自动选择一个最合适的翻译句子。需要提供两个
1、衡量机器翻译结果越接近人工翻译结果的数值指标
2、一套人工翻译的高质量参考译文
4.3.5.1 定义
BLEU的全名为:bilingual evaluation understudy(双语互译质量评估辅助工具),它是用来评估机器翻译质量的工具。
- 判断两个句子的相似程度
4.3.5.2 N-gram Precision(多元精度得分)方法
- N-gram Precision(多元精度得分)
这里的N是什么意思,我们通过一个例子来理解一下。
候选翻译: the the the the the the the 参考翻译: the cat is on the mat 参考翻译: there is a cat on the mat
两个句子,S1和S2,S1里头的词出现在S2里头越多,就说明这两个句子越一致。记做\frac{number1}{number2}number2number1。上面例子,候选翻译的词7个词the都在参考翻译中出现,记做分子得分7,候选翻译一共就7个词,分母为7。7/7=1,该候选翻译显然不行!!这个时候N=1,选出一个词
- 改进
- 原因:常用词干扰、选词的粒度太小(the)
- 使用N-gram,多元词组:{“the cat”, “cat is”, “is on”, “on the”, “the mat”}
1、同样还是一个词的时候的改进
- 过滤常见词(the on is ...so on)
- 公式计算(分子)
- Count_{w_i,j}^{clip} = min(Count_{w_i},Ref_{j}\_Count_{w_i})Countwi,jclip=min(Countwi,Refj_Countwi)
- 统计候选区域
- Count_{w_i}Countwi:候选翻译中单词w_iwi出现过的个数,如上表就是对“the”的计数为7
- Ref_{j}\_Count_{w_i}Refj_Countwi:词w_iwi在第个jj参考翻译里出现的次数
- {Count}^{clip} = max(Count_{w_i,j}^{clip}), i=1,2,{...}Countclip=max(Countwi,jclip),i=1,2,...
- 作用:选出候选翻译在参考翻译中最大的计数
- Count_{w_i,j}^{clip}Countwi,jclip:第jj个参考翻译,w_{i}wi计数
- Count^{clip}Countclip:在所有参考翻译中的w_iwi综合计数
仍然以上面的例子来看:Ref_{1}\_Count_{'the'}=2Ref1_Count′the′=2,则Count_{'the',1}^{clip}=min(7,2)=2Count′the′,1clip=min(7,2)=2,Count_{'the',2}^{clip}=1Count′the′,2clip=1,所以综合计数为Count^{clip}=max(1,2)=2Countclip=max(1,2)=2,分母不变,仍是候选句子的n-gram个数。这里分母为7。得分P = 2/7=0.28
2、多个改进的多元精度(modified n-gram precision)进行组合
n-gram下的可以衡量翻译的流程性,当我们对不同尺度的词进行统计出来,计算精度的时候,结果为
随着n-gram的增大,精度得分总体上成指数下降的。采取几何加权平均,并且将各n-gram的作用视为等重要的,即取权重服从均匀分布:
p_{ave}=\sqrt[\sum_{n=1}^{N}w_{n}]{\prod_{n=1}^Np_{n}^{w_{n}}}=\frac{1}{\sum_{n=1}^{N}w_{n}}exp(\sum_{i=1}^{N}w_{n}*log^{p_{n}})=exp(\frac{1}{N}*\sum_{i=1}^{N}log^{p_{n}})pave=∑n=1Nwn√∏n=1Npnwn=∑n=1Nwn1exp(∑i=1Nwn∗logpn)=exp(N1∗∑i=1Nlogpn)
上面图的理解就为:
p_{ave}=exp(\frac{1}{4}*(log^{p_{1}}+log^{p_{2}}+log^{p_{3}}+log^{p_{4}}))pave=exp(41∗(logp1+logp2+logp3+logp4))
3、进行短句惩罚
候选翻译: the cat 参考翻译: the cat is on the mat 参考翻译: there is a cat on the mat
这样就很容易的高分,所以就需要一个有效的乘惩罚机制。我们设c为候选翻译,r为参考翻译。则有下面的公式
BP=\lbrace^{1,ifc>r}_{e^{1-\frac{r}{c}},ifc \leq r}BP={e1−cr,ifc≤r1,ifc>r
4、最终BLEU值得计算公式
BLEU=BP*exp(\sum_{n=1}^{N}w_{n}*log^{p_{n}})BLEU=BP∗exp(∑n=1Nwn∗logpn)
4.3.6 总结
- 掌握seq2seq模型特点
- 掌握集束搜索方式
- 掌握BLEU评估方法
- 掌握Attention机制