seq2seq与Attention机制(三)

本文涉及的产品
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
语种识别,语种识别 100万字符
简介: seq2seq与Attention机制(三)

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的结果。

例子说明:


image.png


  • 第一次:选出概率最大的三个词
  • 第二次:选择上一步三个词,每个词对应三个概率最大的词(可能存在重复)
  • ....


假设只有两步,那么得到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下的可以衡量翻译的流程性,当我们对不同尺度的词进行统计出来,计算精度的时候,结果为


image.png


随着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机制


目录
相关文章
|
6月前
|
机器学习/深度学习 自然语言处理
序列到序列(Seq2Seq)模型
序列到序列(Seq2Seq)模型
262 8
|
6月前
|
机器学习/深度学习 自然语言处理
seq2seq的机制原理
【8月更文挑战第1天】seq2seq的机制原理。
46 1
|
9月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
seq2seq:中英文翻译
seq2seq:中英文翻译
71 1
|
9月前
|
机器学习/深度学习 存储 自然语言处理
NLP中的RNN、Seq2Seq与attention注意力机制(下)
NLP中的RNN、Seq2Seq与attention注意力机制(下)
75 1
|
9月前
|
机器学习/深度学习 存储 自然语言处理
NLP中的RNN、Seq2Seq与attention注意力机制(上)
NLP中的RNN、Seq2Seq与attention注意力机制
80 1
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
详细介绍Seq2Seq、Attention、Transformer !!
详细介绍Seq2Seq、Attention、Transformer !!
189 0
|
机器学习/深度学习 存储 自然语言处理
深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
189 0
|
机器学习/深度学习 自然语言处理 文字识别
初步了解RNN, Seq2Seq, Attention注意力机制
初步了解RNN, Seq2Seq, Attention注意力机制
147 0
初步了解RNN, Seq2Seq, Attention注意力机制
|
机器学习/深度学习 自然语言处理 PyTorch
【文本摘要(3)】Pytorch之Seq2seq: attention
【文本摘要(3)】Pytorch之Seq2seq: attention
113 0
|
机器学习/深度学习 自然语言处理
Seq2seq
机器学习中的 Seq2seq 模型是一种将一个序列映射为另一个序列的模型,其主要应用场景是自然语言处理、机器翻译等领域。Seq2seq 模型通过编码器(encoder)将输入序列(如源语言句子)编码为一个连续的向量,然后通过解码器(decoder)将该向量解码为输出序列(如目标语言句子)。在训练过程中,模型会尽可能地使输出序列与真实目标序列接近,以达到最好的映射效果。
69 5