前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通俗易懂理解Attention机制

通俗易懂理解Attention机制

作者头像
zenRRan
发布2018-07-25 11:16:58
1.4K0
发布2018-07-25 11:16:58
举报

阅读大概需要5分钟 跟随小博主,每天进步一丢丢

作者:何之源 链接:https://zhuanlan.zhihu.com/p/28054589 来源:知乎

Attention机制理论

在Encoder-Decoder结构中,Encoder把所有的输入序列都编码成一个统一的语义特征c再解码,因此, c中必须包含原始序列中的所有信息,它的长度就成了限制模型性能的瓶颈。如机器翻译问题,当要翻译的句子较长时,一个c可能存不下那么多信息,就会造成翻译精度的下降。Attention机制通过在每个时间输入不同的c来解决这个问题,下图是带有Attention机制的Decoder:

每一个c会自动去选取与当前所要输出的y最合适的上下文信息。具体来说,我们用

衡量Encoder中第j阶段的hj和解码时第i阶段的相关性,最终Decoder中第i阶段的输入的上下文信息

就来自于所有

的加权和

举个栗子

以机器翻译为例(将中文翻译成英文):

输入的序列是“我爱中国”,因此,Encoder中的h1、h2、h3、h4就可以分别看做是“我”、“爱”、“中”、“国”所代表的信息。在翻译成英语时,第一个上下文c1应该和“我”这个字最相关,因此对应的

就比较大,而相应的

就比较小。c2应该和“爱”最相关,因此对应的

就比较大。最后的c3和h3、h4最相关,因此

的值就比较大。

至此,关于Attention模型,我们就只剩最后一个问题了,那就是:这些权重

是怎么来的?

事实上,

同样是从模型中学出的,它实际和Decoder的第i-1阶段的隐状态、Encoder第j个阶段的隐状态有关。

同样还是拿上面的机器翻译举例,

的计算(此时箭头就表示对h'和

同时做变换):

的计算:

的计算:

以上就是带有Attention的Encoder-Decoder模型计算的全过程。

实例代码

之前我写的一篇实现机器翻译的代码和Attention机制公式详解的文章:

基于attention的seq2seq机器翻译实践详解

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档