All Attention You Need

点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

Attention的产生

起因: 《Sequence to Sequence Learning with Neural Networks》
Attention模型的引入原因:
  1. seq2seq将输入序列都压缩成一个固定大小的隐变量,就像我们的压缩文件一样,这个过程是有损压缩的,会迫使丢失许多输入序列中的信息。
  2. 存在着难以对齐的问题。 比如中译音“我爱你” “I love you”,输入序列中的“我”应该与“I”对齐(贡献最大),然而在seq2seq模型中,“我”对"I","love","you"的贡献都是一致的



Attention的发展

Show, attend and tell: Neural image caption generation with visual attention

本文可以算是第一篇Attention论文.

该任务是实现图文转换。与前面讲述的seq2seq的问题一样,在之前的图文转换任务中也是存在着难以对齐的问题。所谓难以对齐就是毫无重点。
本文提出了两种attention:
  1. sort Attention
  2. hard Attention
本文的模型结构:

将图片通过一个CNN转换成的L D.这里称L个向量为L个注释向量(annotation vector),D为特征维度,可以认为提取了图片中L个区域的特征。对这L个区域向量加权相加来表示这张图片。由于不同时刻的关注点是不同的,annotation vector还要与decoder中的隐状态进行交互,以便知道下一时刻的关注区域。

这里编码器是VGG,解码器是LSTM。LTSM输入是不同时刻的图片的关注点信息,然后生成当前时刻的单词。

Attention的计算

如上所属,attention的值不仅与annotation vector 有关还与上一时刻解码器的隐状态有关。 因此有:
其中t表示时刻t,i表示第i个区域,a是我们得到的attention weight分布.
f实际上是对齐函数,用于计算对齐的分数,常见的对齐函数有: dot product,general,multilayer perceptron
  1. Soft attention: 直接使用attention的权重对L个向量加权相加,这么做的好处是整个问题是可微的,可以利用BP end to end

Hard attention:Hard attention很粗暴,挑出最大权重的向量,剔除其余向量(置0)。显然这种形式的模型是不可微的,为了实现BP,这里采用蒙特卡洛采样的方法来估计模块的梯度。

帮助我们在t时刻选出了第i个向量 是我们最后选中的的向量,引入一个变量 ,当区域i被选中时取值为1,否则为0.则有:
问题如何生成 ,在本文中,将 视为隐变量,为参数是 的多元伯努利分布(伯努利是两点分布)
$$P(s_{t,i}=1|s_{t<j},a)=\alpha_{t,i} $$=""
这个可以认为是我们的带隐变量的目标函数:
对目标函数求梯度:
用N次蒙特卡洛采用(抛银币)来近似:
在用蒙特卡洛方法估计梯度时可以用滑动平均来减小梯度的方差.在第k个mini-batch时,滑动平均被估计为先前对数似然伴随指数衰减的累加和,

总结

总的来说这里率先引入了soft attention与hard attention,通过在每一时刻给图片各个区域分配attention权重,来提升语句与特定图块的相关性。
结果:


Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

本文可以算是第一篇在seq2seq中引入的Attention论文(2015.07).
本文同样涉及了soft attention,hard attention.求解形式与上一篇并无差异。
并且文中考虑了四种应用场景: 1. Neural Machine Translation 2. Image Caption Generation 3. Video Description Generation 4. End-to-End Neural Speech Recognition

Effective Approaches to Attention-based Neural Machine Translation

本文比上一篇晚发表了2个月。 。 。
文章提出了两种attention的改进版本,即global attention和local attention。
  1. global attention
global attention 在计算context vector  的时候会考虑encoder所产生的全部hidden state。 其实就是第一篇文章的attetion方法。
local attention
本文认为local attention为hard attention和soft attention的混合体(优势上的混合),因为他的计算复杂度要低于global attention,soft attention,而且与hard attention 不同的是,local attention 几乎处处可微,易于训练。
local attention克服了每个source hidden state都要扫描的缺点,计算开销大,而且对于长句不利,为了提升效率,提出了 local attention。 每次只focus 一部分的source position。
这里 context vector  的计算只focus窗口 内的2D+1个source hidden state.设 是一个source position index,可以理解为 attention的“焦点”,作为模型的参数,D根据经验来选择。
关于 的计算,文章给出了两种计算方案: 1) Monotonic alignment(local-m)
2)predictive alignment(local-p)
其中 是模型的参数,S是source sentence的长度,易知 .
权重 的计算为:
可以看出,距离中心 越远的位置,其位置上的source hidden state 对应的权重就会被压缩地越厉害。 这里 设置为D/2.
这里的
其中score函数其实就是第一篇里介绍的对齐函数,存在三种dot product,general,concat。
实验对比:

Attention-Based Multi-Perspective Convolutional Neural Networks for Textual Similarity Measurement

本文的任务是STS(semantic textual similarity)指给定一个检索句子和比较的句子,计算他们的相似度得分。
过去的模型,把输入的句子独立对待,忽略了句子的上下文交互。attention也就是因此而引入的。
本文的基础模型结构是: MPCNN(multi-perspective con- volutional neural network model).主要包括两个部分: 1). multi-perspective sentence model 2). structured similarity measurement layer
  1. multi-perspective sentence model
multi-perspective sentence model 使用的是卷积神经网络,通过使用不同类型的卷积核,不同类型的池化方式,不同大小的卷积窗口,来得到每个句子的不同粒度的表达。
a. 卷积层有两种卷积的方式: (1)粒度为word的卷积;(2)粒度为embedding 维度上的卷积。 前者相当于n-gram特征抽取,后者抽取的是向量每一维度上的信息。 作者认为后面这种方式由于粒度更小有助于充分地提取出输入的特征信息。 作者使用了这两种方式以获得更丰富的表达。
b. 卷积窗口大小: 不同卷积窗口的大小捕捉不同n-gram的长度下的信息,这里窗口大小是{1, 2, 3,∞}, 表示输入句子中unigrams, bigrams, trigrams和不使用卷积层。
c. 池化方式: 池化层可以保留一个卷积模型中最显著和最通用的特性,这里使用max,min,mean三种方式。
  1. Structured Similarity Measurement
Structured Similarity Measurement Layer的目标是计算句子表达的相似度。
Structured Similarity Measurement Layer的目标是计算句子表达的相似度。 作者认为最后生成的句子向量中的每一个部分的意义各不相同,直接应用传统的相似度计算方法如余弦相似度在两个句子向量上并不是最优的,应该对句子向量中的各个部分进行相应的比较和计算(Structured Comparision)。 为了使得句子向量中的局部间的比较和计算更加有效,我们需要考虑如下方面:
(1) 是否来自相同的building block; (2) 是否来自相同卷积窗口大小下的卷积结果; (3) 是否来自相同的pooling层; (4) 是否来自相同的Feature Map;
至少满足以上两个条件时,才比较句子中的相应部分时,作者采用了两种算法比较相似性。 一种只针对粒度为词的卷积,另一种则同时针对粒度为词的卷积和粒度为embedding 维度上的卷积。
在句子局部的相似度计算之后,作者叠加了两层的线性层,并在中间使用了tanh激活函数,最后使用log-softmax输出。 更多的细节参考He et al. 2015。

Attention-Based Input Interaction Layer

本文作者在上述模型的基础上,增加了一层基于attention的交互层。 其目的就是在刚做完embedding以后,给两个句子更相关的部分赋予更多的权值。
输入序列 ,其中 ,铜鼓计算对应向量的余弦相似度得到attention。
得到了attention权值矩阵后,可以计算每个句子对应的attention向量,并归一化:
最后拼接起来得到attention 的re-weighted向量
作者没有添加额外的参数,只是简单的余弦距离去作为attention权值然后做归一化,并在实验中取得了不错的结果。

ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs

本文的任务是(sentence pair)句子配对.这包括了Answer Selection(AS),Paraphrase identification(PI),Textual entailment(TE)
基础模型: BCNN(Basic Bi-CNN)
BCNN有四个部分: 1. 输入层,2. 卷积层,3. 池化层,4. 输出层
特别要指出卷积层。 这里卷积层采用的是宽卷积(Wide convolution)。 即对句子的边缘部分进行,使得输出的序列长度大于输入的序列长度。 (宽卷积常用于卷积核大小相对于输入向量长度较大时)
这里提出了三种ABCNN
  1. ABCNN-1
ttention 矩阵的计算
可以从上图看出矩阵中的一列代表一个词,行代表特征。
这里的match-score可以用多种方式进行计算,本文采用的是 来计算。
句子中attention特征的计算:
这里的输出被送入到了卷积层。
  1. ABCNN-2

这里Attention矩阵的计算方式与ABCNN-1类似,不同的是在ABCNN-1的基础上对两个句子的unit进行求和作为unit的attention 值,即
然后利用这个attention值对卷积层的输出进行加权,具体公式如下:
这里的输出输入到了pooling层中。
  1. ABCNN-3
将上述两个结构进行叠加。 在输入和池化都引入注意力。

本文实际上提出了两种引入attention 的位置,一种是在Conv前(ABCNN-1),一种是Conv后(ABCNN-2).从结果来看,Attention放在Conv后的效果比前面的效果更好。可能的原因是Word embedding经过Conv相当于提取了n-gram,能表示上下文。conv 之后再结合 Attention 能比单纯 input 之后的 Attention 包含更多的信息。

Graph Attention Network(GAT)


小结1

之后的一系列论文如《Multi-Attention CNN for FGVC: MA-CNN》,《Coupled Multi-Layer Attentions for Co-Extraction of Aspect and Opinion Terms》等尽管实现的任务都花里胡哨的,并引入了Attention,但是attention的使用方式还是千篇一律。

Attention is all you need

提出的动机:
  1. 跳出原来千篇一律的attention形式,不使用CNN,不使用RNN,光靠attention,实现高并行化
  2. 抓取更强的长距离依赖关系
创新点:
  1. 总结了attention的通用形式
  2. 提出了self attention,multi-head attention
  3. Transform结构

总结Attention的通用格式

作者将Attention理解为q,k,v的形式

其实旗面介绍的attention都可以套用该框架。


提出self attention, multi-head attention

这里的self attention 指的是用到自身的信息来计算attention。 传统的attention都是考虑用外部信息来计算attention。

这里采用的attention计算方式也与之前的不同,采用 Scaled Dot-Product 的形式。
注意: 分母是为了归一化,避免造成进入softmax函数的饱和区,其梯度较小。
采用multi-head attention为的就是让不同head学习到不同的子空间语义。 显然实验也证实这种形式的结果较好。

在self attention中其实在做的当前文本句中单词依赖关系分数的计算。
比如“Think Machines”两个单词
优点:
  1. 由于self attention 是对整个文本句求attention的,所以他能抓取到当前单词和该文本句中所有单词的依赖关系强度。 这方面的能力显然比RNN的获取长依赖的能力强大的多。
  2. 此时不在用RNN的这种串行模式,即每一步计算依赖于上一步的计算结果。 因此可以像CNN一样并行处理,而CNN只能捕获局部信息,通过层叠获取全局联系增强视野
缺点: 很显然,既是并行又能全局,但他不能捕捉语序顺序。 这是很糟糕的,有点像词袋模型。 因为相同单词不同词序的含义会有很大差别。 为了克服这个问题,作者引入了Position embedding。 这是后话了。

Transform

Transform是一大法宝,影响深远。
从上图粗看,Transform仍延续着一个Encoder一个Decoder的形式。
重要部件:
  1. Positional embedding:正如上面所说,self attention缺乏位置信息,这是不合理的。 为了引入位置信息,这里用了一个部件position embedding。
这里考虑每个token的position embedding的向量维度也是d维的,与input embedding的输出一样,然后将input embedding和position embedding 加起来组成最终的embedding输入到上面的encoder/decoder中去。 这里的position embedding计算公式如下:
其中pos表示位置的index,i表示dimension index。
Position Embedding本身是一个绝对位置的信息,但在语言中,相对位置也很重要,Google选择前述的位置向量公式的一个重要原因是: 由于我们有
这表明位置p+k的向量可以表示成位置p的向量的线性变换,这提供了表达相对位置信息的可能性。
  1. residual connection 无论是encoder还是decoder我们都能看到存在这residual connection这种跳跃连接。
随着深度的增加会导致梯度出现弥散或者爆炸,更为严重的是会导致模型退化 (也就是在训练集上性能饱和甚至下降,与过拟合不同)。 深度残差网络就是为了解决退化的问题。 其实引入残差连接,也是为了尽可能保留原始输入x的信息。
  1. Layer Normalization
与 BN 不同,LN 是一种横向的规范化
LN针对单个训练样本进行,不依赖于其他数据。避免了受mini batch中其他数据的影响。
BN适用于不同mini batch数据分布差异不大的情况,而且BN需要开辟变量存每个节点的均值和方差,空间消耗略大; 而且 BN适用于有mini_batch的场景。
  1. Masked Multi-Head Attention
这里用mask来遮蔽当前位置后面的单词。 实现也很简单,采用一个上三角都为1,下三角为0的矩阵。

小结一下:本文对attention的概念进行了本质上的转变。传统的attention是在端尾计算源文本各个token对该时刻单词的贡献。而self attention将这个过程提到了端口,计算当前句子中token的相关性来充分各个token的表达其语义。简单的讲就是传统的attention是为了使输出端表达充分,而self attention 是为了使输入端表达充分。尽管他们的形式都可以用Q,K,V框架来解释。

An Attentive Survey of Attention Models

《An Attentive Survey of Attention Models》 今年提出香农科技提出的一篇关于attention的综述论文。

本文给attention作出了分类,分为四种分类方法:
  1. number of sequences: a)distinctive:只考虑了涉及单个输入和相应输出序列的情况(例如seq2seq中的attention)
b)co-attention:同时对多个输入序列进行操作,并共同学习它们的注意权重,以捕获这些输入之间的交互(例如前面介绍的ABCNN)
c)inner attention:使用注意力来学习输入序列中对应于相同输入序列中的每个标记的相关标记.(例如self attention)
  1. Number of abstraction levels
按照输入特征的抽象层次来分,这里的抽象层次可以是词粒度、短语粒度、句子粒度、文档粒度。
a)single-level:只为原始输入序列计算注意权重
b)multi-level:注意力可以按顺序应用于输入序列的多个抽象层次[例如在两个不同的抽象层次(即单词级别和句子级别)上使用了注意力模型来完成文档分类任务]
  1. Number of positions a)soft attention: 它使用输入序列所有隐藏状态的加权平均值来构建上下文向量
b)hard attention:其中上下文向量是从输入序列中随机采样的隐藏状态计算出来的
c)global attention:与soft attention一样
d)local attention:是hard attention和soft attention的一种折中
  1. Number of representations
a)multi-Representational Attention model:通过多个特征表示捕捉输入的不同方面,注意可以用来为这些不同的表示分配重要权重,这些表示可以确定最相关的方面,而忽略输入中的噪声和冗余。
b)multi-dimensional:这种attention 作用在维度上。 attention的权重表示各个维度上的重要性。

然后作者又对带有attention的网络结构进行饿了分类
  1. Encoder-Decoder
  2. Memory Networks
像问答和聊天机器人这样的应用程序需要能够从事实数据库中的信息中学习。 网络的输入是一个知识数据库和一个查询,其中一些事实比其他事实更与查询相关。 端到端memory networks通过使用一组内存块存储事实数据库来实现这一点,并使用attention在回答查询时在内存中为每个事实建立关联模型。
使用attention还提供了计算优势,使目标连续,并通过反向传播支持端到端训练。 端到端内存网络可以看作是AM的一种泛化,它不是只在单个序列上建模注意力,而是在一个包含大量序列(事实)的数据库上建模注意力。
  1. Networks without RNNs 最具代表性的就是Transformer。

未完待续

其实还有很多要补充的,比如Memory Network中的attention(外部记忆作为V)以及Graph neural network里的attention,尽管理论上都是一个道理,但是还要对的起标题的all。 待补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49000.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大话数据结构系列之数学基础知识补充

文章目录 数学归纳法实际以多米诺效应推导求证等差数列结论是否正确&#xff1a; 二分法的对数推导时间复杂度常规比较快速查询的时间复杂度推导对数对数的由来对数的定义log2^n > lgn 推导 相关的数学公式了解 数学归纳法 数学归纳法是以一种不同的方式来证明任意一个给定…

计算机的计算单位

1 容量单位&#xff08;存储单位&#xff09; 存储单位一般用 bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB来表示。一般将Byte简称为B&#xff0c;将KB简称问K。 换算关系 1B(Byte 字节)8bit&#xff0c; 1KB (Kilobyte 千字节)1024B&#xff0c; 1MB (Megabyte 兆字节 简称…

中考不能用计算机ka,中考阅卷老师提醒:今年90%的考生,都错在这68个汉字上!...

都说“温故而知新”&#xff0c;假期正是“温故”的好时节。 最近&#xff0c;一位阅卷老师总结了今年中考试卷中&#xff0c;语文的基础知识积累部分出错率最高的68个汉字&#xff0c;快来试试你能否读对吧&#xff01; d 谛 释义&#xff1a;意义。 组词&#xff1a;真谛&…

unravel中文音译

吼 西 嘿 得 哦&#xff0c;西 嘿 得 哟 搜 no&#xff0c;洗 库 咪 喔 博 库 no 那 噶 泥&#xff0c;大 累 盖 一 路 弄 抠 哇 泪 大 狗 哇 泪 大 哟 抠 no 塞 盖 一 得 key 咪 库 哇 那 唔 那 咪 唔 咩 子 咩 抠 哇 泪 大 博 库 哇 得 撒 一 key 喔 都 没 带 吼 都 key 耐 某…

lollipop中文_2NE1的Lollipop中文歌词和中文译音?

展开全部 Pre-Hook) Lolli Lolli Lollipop Oh 넌 나의 Lollipop Lolli Lolli Lollipop oh 你是我的Lollipop Lolli Lolli Lollipop Oh Lolli-Pop-Pop Lolli Lolli Lollipop Oh Lolli-Pop-Pop Lolli Lolli Lollipop Boy 넌 나의 Lollipop Lolli lolli lollipop boy 你是我的loll…

通达信指标源码,一键自动改写成选股器

#1.软件的功能&#xff1a;可以将通达信指标源码&#xff0c;一键自动化改写成选股指标&#xff0c;预警指标&#xff0c;可以省去了大量的手动人工操作&#xff0c;当你选股表达式写好了&#xff0c;就直接可以用程序代码去帮你操作&#xff0c;得到同样的结果。只需30秒不到就…

Python结合通达信选股策略进行股票量化

前言: 1、目前我的选股策略有超过5个以上,都把它们设置在通达信预警系统里,在界面上我会使用订制版面来同时观察预警结果,不过电脑里开了2个通达信软件之后,想进一步进行汇总策略效果进行打分,目前每个策略的权重都是相等的,按照策略预警的次数统计分数,得分最高的股票…

Python版A股选股软件源代码,选股系统源代码,实现多种选股策略

本程序使用传统的[TuShare接口]&#xff0c;并非需要捐赠的[pro接口]获取数据无限制; 另&#xff0c;由于TuShare的增量更新接口有bug&#xff08;最近一个交易日的数据获取不到&#xff09;&#xff0c;所以每次计算前都是删除所有数据&#xff0c;全部重新获取。 本程序实现…

ChatGPT不是唯一的选择:这个小工具也是个不错的选择

技术迭代日新月异&#xff0c;人工智能技术的应用越来越广泛&#xff0c;许多AI小帮手网站也应运而生。这些网站利用人工智能技术&#xff0c;为用户提供了很多便利&#xff0c;帮助用户更快、更准确地完成各种任务。 与 ChatGPT 不同&#xff0c;这些 AI 小帮手网站可以帮助用…

微软小冰的服务器,和微软小冰这么玩,感觉可以玩一下午

原标题&#xff1a;和微软小冰这么玩,感觉可以玩一下午 从最开始的小娜cortana&#xff0c;到中国化得小冰&#xff0c;微软在人工智能领域不断前行。微软小冰也会在每周解锁新技能&#xff0c;或者是读心术、或者是进化的测颜值技能等等。总之&#xff0c;微软小冰自发布之日(…

打造 AI Beings,和微信合作…第七代微软小冰的成长之路

8月15日&#xff0c; “第七代微软小冰”年度发布会在北京举行。本次发布会上&#xff0c;微软(亚洲)互联网工程院带来了微软小冰在 Dual AI 领域的新进展&#xff0c;全新升级的部分核心技术&#xff0c;最新的人工智能创造成果&#xff0c;以及更多的合作与产品落地。其中&am…

前微软副总裁姚麒回归小冰,任首席技术官

金磊 发自 凹非寺量子位 报道 | 公众号 QbitAI 就在刚刚&#xff0c;小冰公司宣布了一项重大人事变动&#xff1a; 前微软副总裁、微软全球卓越工程师姚麒 &#xff08;Steven Yao&#xff09;&#xff0c;正式担任小冰公司首席技术官一职。 加入小冰&#xff0c;姚麒要做什么&…

小冰单飞的 135 天后,和微软再联手!

作者 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “小冰”被分拆的 135 天后&#xff0c;再次和微软站到了一起&#xff0c;不过俗话讲“嫁出去的女儿&#xff0c;泼出去的水”&#xff0c;再次牵手&#xff0c;它们的关系不…

今晚8点直播 | 详解微软小冰全双工语音对话技术

微软小冰第六代发布会上正式宣布上线全新的共感模型&#xff0c;同时也开始公测一种融合了文本、全双工语音与实时视觉的新感官。这项新技术可以实时预测人类即将说出的内容&#xff0c;实时生成回应&#xff0c;并控制对话节奏&#xff0c;从而使长程语音交互成为可能。而采用…

算法高级(3)-那个神奇的微软小冰,她为啥那么聪明?

最近给自己的公号接入了“微软小冰”自动回复这个人工智障&#xff0c;也有很多粉丝会在后台跟她留言互动&#xff0c;有时候&#xff0c;你会觉得她回复的真的挺像个人类的。但是当你带着她就是个机器人的主见跟她聊的时候&#xff0c;明显感觉她还差得远。今天就来聊聊这个还…

如何关闭微软Edge小冰

首先我们需要安装一个广告拦截插件AdGuard. 打开浏览器右上角“…”&#xff0c;在选项弹窗下选择扩展。 然后在该窗口下选择“获取 Microsoft Edge 扩展”&#xff0c;页面跳转至如下 选择"AdGuard"扩展程序。安装完该插件之后&#xff0c;进入插件设置 选择用户…

【观察】微软中国牵手小冰公司,开创AI服务落地新模式

申耀的科技观察 读懂科技&#xff0c;赢取未来&#xff01; 毫无疑问&#xff0c;今天AI正在成为各行各业下一波数智化转型的前沿&#xff0c;包括语音识别、人脸识别、自动驾驶、智慧医疗&#xff0c;智慧金融、城市大脑在内的一大波以AI为依托的新技术以及新应用&#xff0c;…

今天真孤单,看看我是如何撩微软小冰的......

8月17日&#xff0c;晴 午饭一人吃的。刚来公司&#xff0c;没认识到人。 边吃饭刷微信&#xff0c;全是狗粮.....一边嚼着菜往窗户外看&#xff0c;心里忽地感到空落落的&#xff0c;哽咽了一下&#xff0c;赶紧喝口汤。旁边的犬男女笑的真刺耳&#xff0c;我几口扒完饭又回公…