神经机器翻译中的Attention机制

传统的机器翻译系统通常依赖于基于文本统计特性的复杂特征工程,需要投入大量工程大见他们。
神经机器翻译系统NMT,把一句话的意思映射到一个固定长度的特征向量,然后基于此进行翻译。由于NMT不再依赖于n-gram计数,而是捕捉文本更高层的含义。

基于encoder-decoder的模型

这里写图片描述

NMT系统使用RNN将源语句(比如,一句德语)编码为一个向量,然后同样用RNN将其解码为英语。
如上图中,“Echt”,”Dicke”,”Kiste”以此输入到编码器中,然后解码器开始生成翻译的语句,解码器持续依次生成生成对应的翻译,这里的h向量表示的编码器的内部状态,在解码器的那内部也有对应的隐状态;下面是较为全面的网络结构模型
这里写图片描述

encoder-decoder模型的不足

可以看出来编码器在翻译时仅仅依赖于最后的隐藏状态,h3向量必须对源句子的所有内容进行编码,它必须充分捕捉句子的含义,这个句子就是sentence embedding;
但是,问题在于我们无法将一个很长的句子所包含的所有信息编码成一个向量,很多的细节比如位置信息等就无法捕捉到,然后解码器仅仅根据这个向量生成很完美的翻译。
假设原文句子有50个单词,英文译文的第一个单词可能与原文的第一个单词高度相关,这就意味着解码器必须考虑50步之前的信息,而且那边信息需要以某种方式编码到向量中。
RNN在处理这类长距离依赖的关系上会出现问题,LSTM理论上能够处理这类问题,但是在实际的工程中仍然是无效的,有人将源语言的语序倒置或者两次输入同一个序列发现翻译的效果好一点,这样的方式跟语言的特点有关。

Attention机制

Attention机制,使得我们不需要将完整的原文句子编码为固定长度的向量,相反,我们允许解码器在每一步输出时使用原文的不同部分,尤为重要的是让模型根据输入的句子和已经生成的内容决定使用什么。
这里写图片描述
从输出端看公式:

St=f(St1,yt1,ct)

其中 St 是编码器生成的译文, yt1
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值