什么是Attention机制

Attention机制通俗的讲就是把注意力集中放在重要的点上,而忽略其他不重要的因素。其中重要程度的判断取决于应用场景,拿个现实生活中的例子,比如1000个人眼中有1000个哈姆雷特。根据应用场景的不同,Attention分为空间注意力和时间注意力,前者用于图像处理,后者用于自然语言处理。本文主要介绍Attention机制在Seq2seq中的应用。

为什么要用Attention机制

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

Attention原理

Attention的原理就是计算当前输入序列与输出向量的匹配程度,匹配度高也就是注意力集中点其相对的得分越高,其中Attention计算得到的匹配度权重,只限于当前序列对,不是像网络模型权重这样的整体权重。

算法过程:

1)encode对输入序列编码得到最后一个时间步的状态c,和每个时间步的输出h,其中c又作为decode的初始状态z0。

2)对于每个时间步的输出h与z0做匹配也就是match操作,得到每个时间步的匹配向量α01,如图1。

图1

3)对所有时间步的输出h与z0的匹配度α0,使用softmax做归一化处理,得到各个时间步对于z0的匹配分数。

4)求各个时间步的输出h与匹配分数的加权求和得到c0,作为decode的下一个时间步的输入,如图2。

图2

5)计算各个时间步的输出h与z1的匹配度得到c1作为decode下一个时间步的输入,如此一步一步重复下去,如图3。

图3

这样就可以把每个时间步重要的信息传给decode中,以上就是Attention机制的处理过程。其中match操作一般是求两个向量的相似度,通常有如下方法:
1)余弦相似度
2)一个简单的 神经网络,输入为hh和ww,输出为α
3)或者矩阵变换α=hTWzα=hTWz (Multiplicative attention,Luong et al., 2015)

在tensorflow1.0版本以后的api seq2seq库中,包含了两种Attention算法,他们的区别就是match操作的不同,因此也有人称他们为加法Attention和乘法Attention,具体内容下:

1)BahdanauAttention:论文https://arxiv.org/abs/1409.0473中的实现:

图4

2)LuongAttention:论文https://arxiv.org/abs/1508.04025中的实现 :

图5

由于图片来自不同地方,所以符号有些不同,图4和图5中的h是上文所说的每个时间步的输出向量,d是decode中每个时间步的状态,也就是上文中的z,c是match后计算的权值加和后的向量用于decode中每个时间步的输入,a就是match操作中经过softmax后的匹配权重,v是一个向量,相当于w一样的权重需要去学习。有上面两个公式可以看出,BahdanauAttention和LuongAttention的区别就是在match过程中的计算方式不同,一个是将decode的状态与encode的输出求和,一个是求乘,所以才有了加法Attention和乘法Attention的叫法。

待更新。。

参考:

台大李宏毅课程

Attention注意力机制介绍的更多相关文章

  1. 自然语言处理中注意力机制---Attention

    使用Multi-head Self-Attention进行自动特征学习的CTR模型 https://blog.csdn.net/u012151283/article/details/85310370 ...

  2. (转)注意力机制(Attention Mechanism)在自然语言处理中的应用

    注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html  近年来,深度 ...

  3. 注意力机制(Attention Mechanism)在自然语言处理中的应用

    注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...

  4. 注意力机制(Attention Mechanism)应用——自然语言处理(NLP)

    近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了最近神经网络研究的一个热点,下面是一些基于attention机制的神经网络在 ...

  5. CVPR2021| 继SE,CBAM后的一种新的注意力机制Coordinate Attention

    前言: 最近几年,注意力机制用来提升模型性能有比较好的表现,大家都用得很舒服.本文将介绍一种新提出的坐标注意力机制,这种机制解决了SE,CBAM上存在的一些问题,产生了更好的效果,而使用与SE,CBA ...

  6. 注意力机制最新综述:A Comprehensive Overview of the Developments in Attention Mechanism

    (零)注意力模型(Attention Model) 1)本质:[选择重要的部分],注意力权重的大小体现选择概率值,以非均匀的方式重点关注感兴趣的部分. 2)注意力机制已成为人工智能的一个重要概念,其在 ...

  7. 【学习笔记】注意力机制(Attention)

    前言 这一章看啥视频都不好使,啃书就完事儿了,当然了我也没有感觉自己学的特别扎实,不过好歹是有一定的了解了 注意力机制 由于之前的卷积之类的神经网络,选取卷积中最大的那个数,实际上这种行为是没有目的的 ...

  8. 深度学习之注意力机制(Attention Mechanism)和Seq2Seq

    这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1.注意力机制是为了解决什么问题而提出来的? 2.软性注意力机制的数学原理: 3.软性注意力机制. ...

  9. 关于注意力机制(《Attention is all you need》)

    深度学习做NLP的方法,基本上都是先将句子分词,然后每个词转化为对应的词向量序列.(https://kexue.fm/archives/4765) 第一个思路是RNN层,递归进行,但是RNN无法很好地 ...

随机推荐

  1. 课时47.datalist标签(了解)

    1.datalist标签 作用:给输入框绑定待选项 2.datalist格式: <datalist> <option>待选项内容</option> </dat ...

  2. HP-UNIX平台修改Oracle processes参数报错:ORA-27154、ORA-27300、ORA-27301、ORA-27302

    OS 版本     :HP-UX B.11.31Oracle版本:11.2.0.4 (RAC) (一)问题描述 最近发现无法连接上数据库,报错信息为“ORA-00020:maximum number ...

  3. ORACLE中查询语句的执行顺及where部分条件执行顺序测试

    Oracle中的一些查询语句及其执行顺序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查询条件: 1)LIKE:模糊查询,需要借助两个通配符, ...

  4. you don't have permission to access ...........on this server问题解决

    因为刚刚开始使用新架构的项目,于是把老项目统统替换成了新的项目.配置好后,本地登录页面报 you don't have permission to access ...... on this serv ...

  5. 类似"音速启动"的原创工具简码"万能助手"在线用户数终于突破100了!

    原本只是开发出来方便自己的一个小工具,看到群友也喜欢,就随手分享了, 经过1个多月的自然积累,在线用户数终于突破100了,这增长速度实在让人泪奔~ 博客园的朋友如果看到,喜欢的话就拿去用吧, 万能助手 ...

  6. 通过ES6写法去对Redux部分源码解读

    在Redux源码中主要有四个文件createStore,applyMiddleware,bindActionCreators,combineRedures createStore.js export ...

  7. Tesseract-OCR 自动生成识别库的批处理

    用Tesseract-OCR做识别库的时候,生成字典非常麻烦,就写了一个批处理,用来生成字典还是蛮方便的,希望大家有用,该批处理已经自动生成font_properties文件,各位无需手动创建 下载地 ...

  8. bootstrap-01-学习记录

    1.bootstrap所有插件依赖JQ,必须在JQ之后引入. 2.bootstrap分预编译版(css,js,fonts)和源码版(less,js,fonts,dist->预编译版内容,docs ...

  9. WEB中需求分析应该考虑的问题

    一. 针对用户群体要考虑因素 1.用户年龄 2.选择素材 3.网站布局 4.颜色搭配 5. 用户体验及动效 6.功能便捷 用户需求.用户兴趣爱好.性格.职业.教育水平高低.消费观念.PC端和移动端哪一 ...

  10. spring-mvc高级技术

    Spring MVC高级技术包括但不限于web.xml配置.异常处理.跨重定向请求传递数据 1.web.xml文件的配置 <!DOCTYPE web-app PUBLIC "-//Su ...