Attention注意力机制

对于注意力机制一知半解,便网上查阅资料来进行了解,记录以防日后遗忘。包含各博主文章内容,附链接。
博客、文章链接:
Attention注意力机制–原理与应用
浅谈Attention注意力机制及其实现带注意力机制的Seq2Seq翻译模型
Attention注意力机制介绍
自然语言处理中的自注意力机制(Self-attention Mechanism)

什么是Attention注意力机制?

简要描述就是“你正在做什么,你就将注意力集中在那一点上”。
Attention分为空间注意力时间注意力,即Spatial Attention 和Temporal Attention,前者用于图像处理,后者用于自然语言处理。
Attention空间注意力:当我们正在看一件物品时,当前时刻关注的一定是该物品的某一区域,当目光转移别处后,注意力/关注点随之转移。这意味着,当人们注意到某个目标或某个场景时,该目标内部记忆该场景内每一处空间位置上的注意分布是不一样的。
Attention时间注意力:当我们试图描述一件事情,我们当前时刻说到的单词和句子,和正在描述的事情的对应片段最相关,而其他部分随着描述的进行,相关性也在逐渐改变。例如我们在思考将句子“我是一个学生”翻译成英文的时候,脑子中首先想到的就是“我” <=>"I"的这样一种映射(而不是先想到其它部分),这就是注意力机制在人脑中的表现。即,我们在按词组依次翻译这句话的过程中,当我们翻译到某个部分时,我们的大脑就只会联想到(将注意力集中到)最与其相关(相似)的英文映射。
上述为从应用层面上的分类,而从Attention的作用方法上,可以将其分为Soft AttentionHard Attention,即Attention输出的向量分布是一种one-hot的独热分布还是soft的软分布,这直接影响对于上下文信息的选择作用。

为什么要加入Attention?

解释1:我们知道在Seq2seq模型中,原始编解码模型的encode过程会生成一个中间向量C,用于保存原序列的语义信息。但是这个向量长度是固定的,当输入原序列的长度比较长时,向量C无法保存全部的语义信息,上下文语义信息受到了限制,这也限制了模型的理解能力。所以使用Attention机制来打破这种原始编解码模型对固定向量的限制。

解释2:要提出注意力机制就是为了解决当解码的序列太长时,越到后面效果就越差。因为在未引入注意力机制之前,解码时仅仅只依靠上一时刻的输出而忽略了编码阶段每个时刻的输出(“称之为记忆”)。注意力机制的思想在于,希望在解码的时刻能够参考编码阶段的记忆,对上一时刻输出的信息做一定的处理(也就是只注意其中某一部分),然后再喂给下一时刻做解码处理。这样就达到了解码当前时刻时,仅仅只接受与当前时刻有关的输入,类似于先对信息做了一个筛选(注意力选择)。

Attention原理(Seq2Seq为例)

参考Attention注意力机制介绍

实现

keras 使用 self-attention
keras-self-attention

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值