百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Attention注意力机制的前世今身

bigegpt 2024-09-02 16:28 3 浏览

总体介绍

注意力机制(Attention Mechanism)最早应用 CV 任务上 ,但最初的论文引用,作者没有找到,如有知晓的,还望在评论中给出。在 NLP 中的最早应用,应该是文献 [1],机器翻译中对齐与翻译联合学习。

直观地说,注意力机制是衡量重要性权重的向量,或元素之间相关性的表示。

先引入 seq2seq 框架,由编码器和解码器组成,广泛用于机器翻译、自动文摘等任务。

  • 由编码器对原始输入进行编码,压缩为固定长度的上下文向量;
  • 编码器最后的一个隐藏层状态送入解码器,进行解码输出。

可以解决变长的输入与输出,用于不同语言、不同长短的输入与输出。常用的网络结构为 RNN,具体为 LSTM 或 GRU。


Attention最初的样子

但是上述任务面临一个问题,仅靠编码层最后一个隐层状态能否包含整个输入的信息,特别当翻译的语句特别长,这种问题更加显著。

文献 [1] 提出将编码层所有隐层状态经过线性加权后,送入解码层,进行每一步的输出,如下图所示。这样能够保证在解码不同词时,每个词的编码贡献是不同的,也能反映出源语言与目标语言中哪些词是较为相关的。

公式也特别简单,下面来复述一下:

2.1 首先定义符号:

表示输入序列;

表示输出序列;

表示编码层的第 i 时刻的隐藏层状态;

表示解码层第 t 时刻的隐藏层状态;

表示第 t 时刻解码时注意力分布,这是本篇论文的关键

总体是为了计算条件概率分布:


2.2 计算

表示解码输出第 t 个词时,与第 i 个输入序列词之间的相关因子。

2.3 计算

这里就是一个 softmax 函数,归一化所有的注意力权重。

2.4 计算

在文中为对齐模型(前馈神经网络)。

至此,公式就介绍结束。这里需要注意的一点是,计算 的函数又被统称为配分函数,即 score 函数。后面会介绍多种配分函数的计算方式。

论文还通过对齐分数矩阵可视化所提模型的翻译对齐效果,通过颜色的深浅反应两者之间的联系紧密,这也成为后面应用注意力机制解决其他问题的常用实验结果分析方法。


注意力统一化描述

将 Attention 从 seq2seq 框架中抽取出来,可以描述为下图所示:

source 中包含键值对(相当于文献 [1] 中的编码层隐层状态),计算 Target 中query(前一时刻的解码层隐层状态)与 key 的相关性,得到 key 对应 value 的权重(),最后对 value 加权求和得到 attention value。

将上述描述公式化:

其计算过程可以分为三个阶段,如下图所示:

  1. 计算 query 和 key 之间的相似性或相关性;
  2. 对权重进行归一化处理;
  3. 依据权重对 value 进行加权求和。


其中,计算相似度或相关性函数是上节提到的 score 函数,在文献 [3] 中给出了其他几种常用的配分函数计算形式:

这里的 等价于上节的 , 第一项为点积运算,在计算相似度上还有常用的 cosine 计算(文献 [4]);第二项常用于输入输出维度不对等,使用中间矩阵相乘将其对齐;第三项为二者进行拼接后,使用 tanh 函数进行激活。

此外,还有 Transfomer 中使用到的缩放点积注意力, (文献 [5]),是点积计算的延伸,增加了一个缩放因子。


Attention的分类

注意力机制发展至今,研究者从各个方面对其进行了改进,也就产生了注意力的各种形式,下面将分类对其进行介绍。

注:内容参考了文献 [2]、[6]、[7]

  1. Soft attention v.s. Hard attention
  2. Global attention v.s. Local attention
  3. Self-attention
  4. Multi-head attention
  5. Hierarchical attention
  6. Attention over attention
  7. Memory-based attention

Soft Attention VS Hard Attention

这种分类方式由文献 [8] 提出,该研究任务是由图片生成文字描述(Image Caption),文中使用注意力捕获文字与图中特定区域的联系。

Soft Attention

NLP 中尝试用的注意力方式,取值为 [0, 1] 的权重概率分布,使用了所有编码层的隐层状态,与上两节的介绍相同,可以直接在模型训练过程中,通过后向传播优化对参数进行优化。

Hard Attention

Hard attention 在原文中被称为随机硬注意力(Stochastic hard attention),这里的随机是指对编码层隐状体的采样过程,Hard attention 没有使用到所有的隐层状态,而是使用 one-hot 的形式对某个区域提取信息,使用这种方式无法直接进行后向传播(梯度计算),需要蒙特卡洛采样的方法来估计梯度。

Global Attention VS Local Attention

由文献 [3] 提出,文中小节首句介绍,先打消了字面的意思,不是按照原序列的所有位置和局部位置做 attention 来划分。

These classes differ in terms of whether the “attention”is placed on all source positions or on only a few source positions.

这两者的区别在于 source-side 的上下文向量 的计算,关于 的介绍具体看第一小节。

Global Attention

以下简称 Global attention 为 GA, GA 在推导 c_t 时考虑了所有的编码层隐层状态,模型图如下图所示,其中蓝色表示编码码层,红色表示解码层。

可以看到 global attention 是在计算 c_t 时考虑了当前的目标解码隐层状态和所有编码隐层状态,这里的 a_t 为全局对齐权重。若不指定说明,一般 attention 都是指 global attention。

▲ global attention model

Local Attention

Global Attention 存在以下两个缺点:

  1. 每次解码目标词,都要计算所有的编码隐层向量,在翻译或处理长文本序列时计算代价高。
  2. 文本序列过长,也有可能导致注意力不集中、过度分散(这个不是论文中介绍,只是借鉴他人介绍,可不做参考)。

Local attention 相对于 global attention 直观的感受,专注于小窗口的上下文,也就是不考虑所有的编码隐层状态,模型结构图如下所示。为实现该想法,要在每一时刻解码时构造一个位置变量 ,记录当前解码位置,该窗口就可以表示为 ,其中 D 为窗口大小,为实验选值。

不同于 global attention 中对齐向量是变长的,Local attention 中 是定长的,文中给出了两种方法定义该对齐向量:

  1. local-m 固定的, ;
  2. local-p 预测的,利用 预测 ,计算公式为:,其中 S 为原句长度, 为待学习的模型参数。此外,为了使对齐点更接近 ,引入了高斯分布计算对齐权重 ,公式这里就不给出了,感兴趣的可以看论文公式 10。

Self-attention

Self-attention 又称为 intra attention,顾名思义,其不是计算 source-target 之间的注意力分布,而是单一计算 source 或 target 内部的注意力分布,也可以看作特殊的 source=target 的情况。其可视化的示例如下图所示,文本序列内部不同词之间的联系。

▲ self attention 可视化

具体来讲,self attention 具有以下优点:

  1. 可以捕获句法特征和语义特征(可视化结果);
  2. 相比 RNN 依次序列计算,在长距离依赖特征上表现更好;可并行化计算。

在文献 [5] 中给出了不同层模型(self-attention\RNN\CNN)在层复杂度、序列操作、最大路径长度的对比,结果如下图所示。

▲ 文献5

Multi-Head attention [5]

注意力并行化的代表,缩放点积注意力在前面小节中已经提过,多头注意力不仅计算一次注意力,而是并行化计算多次注意力,这样模型可以同时关注多个子空间的信息。计算公式为:

Hierarchical attention

Hierarchical attention (层次注意力)由文献 [9] 提出,由词级别、句子级别注意力机制组成,在文档级别的任务上,往往由多篇章、多句子、多词语组成,Hierarchical attention 能够更好捕获 global 和 local 的信息。

attention over attention

由文献 [10] 提出,论文研究任务为阅读理解,AOA 从结构图(下图)上来看时 attention 之后再 attention,与 hierarchical attention 有些相似,但是其具体计算却不同。首先对文档与当前 query 进行点积注意力,然后从行、列分别对齐进行归一化,得到两个注意力权重分布,再次求一次点积注意力。

memory-based attention

memory 中存储了的键值对,当 key 和 value 相同时,就是最基本的 attention 形式。以 Q&A 任务 [11] 为例能够更好地说明计算,memory 存储了 question(key)---->>answer(value),现新来一个 question,要依据 memory 中的问题-答案对得到答案。计算方式为:

  1. 计算新来的 question 与历史 question 的相似度,即
  2. 归一化,
  3. 得到新的答案,

网上有一个例子,比较能够说明问题,不过没找到最初的来源,如下图所示:


写在最后

Attention 的“花样”真的很多,每次看都有很多新的玩法,不过基本也不脱离最本质的 QKV 结构,期待着有更多研究。


参考链接

[1] Neural Machine Translation by Jointly Learning to Align and Translate. https://arxiv.org/abs/1409.0473

[2] https://blog.csdn.net/malefactor/article/details/78767781

[3] Effective approaches to attention-based neural machine translation. https://arxiv.org/abs/1508.04025

[4] Neural Turing Machines. https://arxiv.org/abs/1410.5401

[5] Attention Is All You Need. https://arxiv.org/abs/1706.03762

[6] https://cloud.tencent.com/developer/article/1420941

[7] https://www.jianshu.com/p/270832a34e7f

[8] Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. https://arxiv.org/abs/1502.03044

[9] Hierarchical attention networks for document classification. https://www.aclweb.org/anthology/N16-1174

[10] Attention-over-Attention Neural Networks for Reading Comprehension. https://arxiv.org/abs/1607.04423

[11] End-To-End Memory Networks. https://arxiv.org/abs/1503.08895


原文转自:https://mp.weixin.qq.com/s/2kFZAmb_WnTNYUXT_jVMqg

相关推荐

一条命令搞定pip国内镜像源设置(pip install 指定镜像)

玩python的同学想必没有不用pip的吧,pip是python包管理工具,和Nodejs的npm、Java的maven类似,这些依靠开源力量建立起的庞大软件库极大提高了开发的效率,不过默认pytho...

Cadence Allegro在PCB中手动或者自动添加差分对属性

设计PCB过程中,若设计中有差分对信号,则需要将是差分的2个信号设置为差分对,设置差分对有2种方式:手动添加及自动添加一、手动添加差分对:1、点击Setup-Constraints-Constrain...

合亿 Gutab 三防|车载工业平板功能介绍,车载工业平板厂家推荐

在商用车队管理迈向智能化、特种车辆作业追求高效化的今天,车载工业平板早已突破传统“车载导航”的单一功能,成为连接车辆、司机与云端管理的核心枢纽。从物流运输的实时调度中枢,到矿山开采的无人驾驶控制器,再...

「探长分享-黑匣子」本田冠道 2020款

【品牌】探长360汽车黑匣子【产品型号】2TPro【安装车型】本田冠道2020款【功能特点】360全景安全辅助,行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,震动监控,一步标...

「探长分享-黑匣子」奥迪A6L 2019款

【品牌】探长360汽车黑匣子【产品型号】2TPro【安装车型】奥迪A6L2019款【功能特点】360全景安全辅助,行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,震动监控,一步...

探长360全景案例分享:奥迪Q7 2011款360全景效果展示

【品牌】DCT360汽车黑匣子【产品型号】3TPro【安装车型】奥迪Q72011款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小时停...

「探长分享-黑匣子」保时捷Cayenne 2015款

【品牌】探长360汽车黑匣子【产品型号】4TPro【安装车型】保时捷Cayenne2015款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,...

苍蝇再小也是肉,变态电路的大阳巧客S2差点难死大神

这台大阳巧客S2电动四轮车是我家第二台四轮俱全的篷车!哈哈!大阳巧客S2配置4.5Kw永磁同步电机,SVPWM矢量控制正弦波系统,车辆在加速、爬坡上性能有提升,效率高,操控灵敏。这台车前段时间刚更换了...

「探长分享-黑匣子」奥迪Q5L 2020款

360汽车黑匣子【产品型号】4TPro【安装车型】奥迪Q5L2020款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小时停车监控,一秒一...

「探长分享-黑匣子」丰田兰德酷路泽 2016款

【品牌】探长360汽车黑匣子【产品型号】3TPro【安装车型】丰田兰德酷路泽2016款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小...

驾驶室盲区是酿成重卡事故主因?后视系统:这个锅我不背

小时候家中长辈常常提醒:离大货车远一点!司机根本看不到你!早期的货车可能真的存在驾驶盲区,比如车辆正下方,因驾驶座过高,恰好是司机看不到的视野盲区。而如今的重卡在环视系统上已经非常完善,是否还存在驾驶...

前后双录,360 G580行车记录仪(360行车记录仪g580s)

相信每一位车主都会为爱车安装行车记录仪,行车记录仪的作用不仅能为交通事故还原证据,还能防止碰瓷。传统的单镜头行车记录仪只能拍摄车头方向的行车画面,如果遇到后方车辆故意碰瓷的事故时,没有监控和后摄画面则...

海康威视同轴录像机怎么使用,海康XVR配置说明

海康威视同轴录像机支持模拟、同轴以及数字IP摄像机接入,因此在使用多种类型摄像机、老久监控项目改造等场景广泛使用。首先,新录像机第一次使用需要设置管理密码激活,密码需由8-16位数字、小写字母、大写...

亿道三防2代工业级车载平板电脑震撼登场,农机矿车专用

亿道三防近日推出2024年全新2代车载平板电脑V12R,引领多项技术创新和升级,为农机、矿车等车载领域带来了超越期待与想象的震撼体验。V12R是一款从里到外,性能、功能全线拉满的工业级车载平板电脑!拥...

分析神州十八号返回舱内的摄像机最有可能是什么类型的摄像头

有没有发现,神州十八号返回舱内摄像机的图像虽然清晰度不是很高,但是画面非常干净,没有一点干扰,几乎看不到噪点。图像清晰度不高不太可能是镜头原因,很可能是图像传感器的分辨率比较低的原因,图像传感器分辨率...