NLP复习之Attention概述

Preview

这一部分主要对注意力机制(Attention Mechanism)做一个概述,整合一下之前学习的内容,免得遗忘。

来源

注意力机制的设计,或者说命名,是借鉴了人类的注意力机制。人类的注意力机制属于生物的天性之一,无论是视觉还是听觉,都可以让我们在大量信息中筛选并关注高价值信息,获取更多所需要关注目标的细节信息,而抑制其他无用信息,极大地提高了信息处理的效率与准确性。

而应用于深度学习的注意力机制,其核心目标也是在海量信息中挑选出最有价值的信息。

Encoder-Decoder(Seq2seq)

要了解注意力机制,就需要先理解Seq2seq问题,Seq2Seq是一种语言建模方法,可以使用Encoder-Decoder框架来实现的端到端的模型。它的目标是将输入序列转换为目标序列,并且两个序列的长度都可以是任意的。转换任务的例子包括文本或音频的翻译、问答、对话生成等等。

Encoder-Decoder框架的结构如下面一个文本翻译图所示:

Encoder(编码器):负责处理输入序列,并将信息压缩成固定长度的上下文向量(Context Vector),上下文向量的目的是概括整个源序列的含义。

Decoder(解码器):使用上下文向量和之前生成的历史信息生成下一个单词,一直到目标文本生成完毕。

其中,编码器和解码器可以使用任何模型,CNN/RNN/LSTM/GRU/Transformer均可。

但是,由于编码和解码阶段一直使用一个定长的上下文向量,也造成了一些问题,其中最严重的是下面两个问题:

  • 信息表示困难:编码器要将整个序列的信息压缩进一个固定长度的上下文向量,使得语义向量无法完全表示整个序列的信息
  • 无法记住长句:对于长序列输入,最开始输入的序列容易被后输入的序列给覆盖掉,从而丢失许多细节信息

注意力机制就是为了解决这些问题而诞生的。

注意力机制(Attention)

Attention机制在NLP领域第一次应用是Bahdanau et al., 2015的论文,应用于神经机器翻译(NMT)中,协助记忆长源句信息,其构建单个上下文向量的方式与Encoder不同,Encoder仅在最后一个隐藏状态构建上下文向量,而Attention在上下文向量和所有输入之间创建链接权重,供输出元素使用。

因为上下文向量可以访问整个输入序列,所以无需担心序列过长导致的信息遗忘问题。

下图是Bahdanau论文提出的具有附加注意机制的编码器-解码器模型。

Attention的类型

下面是几个常用的Attention和对应函数的汇总表:

^注意:scale-dot product添加了一个缩放系数,避免当输入很大时,softmax函数可能由于梯度过小,难以有效学习的问题。

下面是对更广泛的注意机制类别的总结:

其中:

Self-Attention:使用自适应方式获取特征信息,详见Transformer。

Soft Attention:通过加权求和的方式来选取特征信息。

Hard Attention:通过随机采样或最大采样的方式来选取特征信息,使得其无法使用反向传播算法进行训练。

Global Attention:关注的是整个序列的输入信息,相对来说需要更大的计算量。

Local Attention:关注限定窗口范围内的序列信息,但窗口的限定使得中心词容易忽视不在窗口范围内的信息,因此窗口的大小设定十分重要。

Thanks:

https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html

https://www.zhihu.com/question/68482809/answer/264632289

原文地址:https://www.cnblogs.com/shadowlight/p/12527003.html

时间: 2024-07-30 21:38:18

NLP复习之Attention概述的相关文章

【整理】软件工程复习提纲(概述)

章鱼小年糕整理,如果有错误欢迎提出,若要二次修改发布,请留言,谢谢^_^! 概念 软件危机:在计算机软件的开发和维护过程中遇到的一系列严重的问题.包含如何开发软件,如何维护已有软件. 软件:计算机程序.方法.规则.相关文档资料以及在计算机上运行时必需的数据. 软件工程:①把系统的.规范的.可度量的途径应用到软件开发.运行和维护过程:②研究①中提到的途径. 软件工程方法学(范型):软件生命周期全过程中使用的一套技术方法的集合.最广泛的有传统方法学.面向对象方法学. 传统方法学(生命周期方法学.结构

[NLP/Attention]关于attention机制在nlp中的应用总结

原文链接: https://blog.csdn.net/qq_41058526/article/details/80578932 attention 总结 参考:注意力机制(Attention Mechanism)在自然语言处理中的应用 Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射,如下图. 在计算attention时主要分为三步: 第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等: 第二步

图形学复习1——图形学图形系统概述与对象表示

图形学复习 CH1 图形学概述 1.1 图形学 计算机图形学是研究图形的输入.模型的构造和表示.图形数据库管理.图形的操作以及以图形为媒介的人机交互的方法和应用的一门综合性学科 其最主要的任务是:研究如何用数据模型生成数字图像,具体来说有以下几个方面: 图形建模 几何处理 光栅化 片元处理 等等 计算机图形一般有两种表示方法: 图像:枚举图形中所有的点构成的2维点阵 图形:用图形的形状参数(参数方程.端点坐标等)和属性参数(颜色.线形等)来表示的参数模型 图形学中主要用后者表示计算机图形 CH2

MySQL学习笔记_8_SQL语言基础复习

 SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 3)以"/*"开始,以"*/"结束的所有内容都是注释,可用于注释多行 二.数据库操作 1.创建数据库 create database db_name; db_name命名规则: 1)名称可由任意字母,数字,"_"或"$"组

自注意力机制(Self-attention Mechanism)——自然语言处理(NLP)

近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中.随着注意力机制的深入研究,各式各样的attention被研究者们提出.在2017年6月google机器翻译团队在arXiv上放出的<Attention is all you need>论文受到了大家广泛关注,自注意力(self-attention)机制开始成为神经网络attention的研究热点,在各个任务上也取得了不错的效果.对这篇论文中的self-attention以及一些相关工作进行了学习

【CV中的Attention机制】易于集成的Convolutional Block Attention Module(CBAM模块)

前言: 这是CV中的Attention机制专栏的第一篇博客,并没有挑选实现起来最简单的SENet作为例子,而是使用了CBAM作为第一个讲解的模块,这是由于其使用的广泛性以及易于集成.目前cv领域借鉴了nlp领域的attention机制以后生产出了很多有用的基于attention机制的论文,attention机制也是在2019年论文中非常火.这篇cbam虽然是在2018年提出的,但是其影响力比较深远,在很多领域都用到了该模块,所以一起来看一下这个模块有什么独到之处,并学着实现它. 1. 什么是注意

服务器 2

复习: 服务器概述 协议 :// 服务器地址 : 端口 数据库服务器 常见的数据库:SQLite.MySQL.SQLServer.Oracle.DB2 使用步骤: 服务器端:安装(mysqld.exe).启动(3306) 客户端:安装(mysql.exe).连接服务器(mysql -uroot) SQL语句的运行模式: (1)交互模式 (2)脚本模式 练习: #1. 设置SQL语句的编码格式 #2. 删除数据库dangdang #3. 创建数据库dangdang,指定存储数据所用的编码 #4.

Attention-based Model

一.Attention与其他模型 1.LSTM.RNN的缺点:输入的Memory长度不能太长,否则参数会很多. 采用attention可以输入长Memory,参数不会变多. 2.Sequence to Sequence Learning : 输入和输出的句子长度可以不一样,常用来做句子翻译. 比如:将中文的4个字”机器学习“翻译成英文的2个单词”machine learning“. 二.Attention的研究发展 1.在RNN模型上使用了attention机制来进行图像分类[google mi

ICLR 2020 | 抛开卷积,multi-head self-attention能够表达任何卷积操作

近年来很多研究将nlp中的attention机制融入到视觉的研究中,得到很不错的结果,于是,论文侧重于从理论和实验去验证self-attention可以代替卷积网络独立进行类似卷积的操作,给self-attention在图像领域的应用奠定基础 论文: On the Relationship between Self-Attention and Convolutional Layers 论文地址:https://arxiv.org/abs/1911.03584 论文代码:https://githu