Attention机制可以说是Transformer模型中最核心的概念了,正是Transformer模型采用了Attention机制使得Transformer模型具有比深度学习模型更加有力的信息提取能力。
1. 什么是Attention
Attention机制的产生渊源
注意力机制源自神经学中的Hebb学习规则,Hebb的理论认为在同一时间被激发的神经元间的联系会被强化。

注意力机制成为人工智能中的一个概念则比较复杂,目前来讲有3个不同版本。
版本1,2014年由Yoshua Bengio和Dizmitry Bahdanau提出

版本2:Andrej Karpathy在注意力机制论文发表的2年之前在与Dizmitry Bahdanau的邮件中提出了注意力机制

版本3:Jürgen Schmidhuber在1990-1991之间发表的相关论文中,提出了线性复杂度Transformer和注意力机制。



Attention机制的原理
Attention机制中的核心要素
人工智能中的Attention机制注意包括3个核心要素,查询(Query)、键(Key)、值(Value),此外还一个分数(Score)的概念是Attention机制中的一个必要概念。
• 查询(Query):用于表示模型当前需要关注的信息,相当于关键词,一般用张量形式表示
• 键(Key):用于表示输入到模型中序列的每个信息单元的标识符或标签,用于与Query进行比较,以决定哪些信息是相关的, 在机器翻译任务中,Key可能是源语言的每个单词或短语的特征张量
• 值(Value):Value通常包含输入序列的实际信息,当Query和Key匹配时,相应的Value值被用于计算输出
• 分数(Score): Score又称为注意力分数,用于表示Query和Key的匹配程度,Score越高,模型对当前信息单元的关注度越高
用一个比较形象的比喻:在图书馆查找想要的图书,Query是要查找的关键词,根据关键词(Query)在图书馆中图书的标题进行查找,这里图书的标题就是Key,当根据关键词(Query)查找到相应的图书标题(Key)之后,根据图书的标题(Key)提取对应图书的内容,而这里图书的内容就是Value。
Attention的核心原理
Attention机制的核心原理可以用下图表示:

根据查询(Query)在不同的键(Key)中相似性进行度量,不同的键(Key)与查询(Query)的相似性也不同,这里相似性度量的结果就是score,据对应的score值对相应的值(Value)根进行调整从而得到注意力机制对应的输出。关于Attention核心机制需要对以下几点进行说明:
(1) 查询(Query)、键(Key)、值(Value)是张量,不是向量,它们相互之间的运算属于张量的运算,这里的Query、Key和Value是可学习的,也就是可以通过训练过程动态调整,使得最后的结果满足某种最优;
(2) 注意力的第一个核心操作就是度量Key中包含多少Query,用专业的术语表达就是度量Key与Query的相似性;
score=similarity measure (Query, Key)
这里的相似性度量只是一个泛指,并不是具体的操作,数学当中有多个关于相似性度量的运算,这里可以根据实际的需求进行变换,不同的相似性度量运算也产生了不同类型的注意力机制,相似性度量的结果,在注意力机制中有了一个明确的名称,叫做注意力分数(score)。
(3) 得到注意力score之后需要进行softmax操作,softmax操作的作用是归一化,将注意力分数经过softmax归一化后的结果称为注意力权重。softmax操作实质上是在量化地衡量各个词的信息贡献度。
(4) 注意力的第二个核心操作就是将相应的Value与对应的softmax的结果作为attention的输出
Attention机制与卷积的对比

Attention机制本质作用是特征提取,而卷积也是深度学习中一种特征提取方法,这两者有一定相似之处,但是又有一定不同,下面将两者进行对比分析:
(1) Attention机制与卷积在本质上相类似。Attention机制中的Query相当于卷积操作中的卷积核,Key相当于CNN中的图片矩阵,Query与Key相似性度量的过程与CNN中卷积操作相对应。卷积核与图片中相应的区域进行卷积的过程实际上就是使用卷积核与图片中相应区域相似性进行度量,这与Attention机制中进行Query与Key的相似性度量在思路上是一致的。
(2) Attention机制与卷积虽然都是在进行相似性度量,但Attention机制在相似性度量实现的方式上却比卷积先进。CNN中的卷积核是以高斯核为基础,在不同的卷积操作中,只是高斯核σ数值的变化和卷积核尺寸大小的改变,执行卷积运算的运算法则是固定的。而Attention机制中的Query和Key的构成则是没有限制的,而且是可训练的,是一个动态优化的过程。Query和Key进行的相似性度量方式也是可以选择的,可以根据所要提取的信息选取不同的相似性度量计算方法。这两点上可以显示出Attention机制要比CNN中的卷积具有更大的灵活性。
Attention的变种
在Attention机制框架下,不断演化,产生了多种Attention机制,如下图所示。

2. Transformer中的self-Attention和MultiHead Attention
Attention机制是一种特征提取框架,在这当中有多种具体的实现方式,在Transformer模型中使用的是self-attention和Multi-Head Attention这2种方法,下面具体介绍这2种Attention机制。
self-Attention
self-Attention的基本原理可以用下图所示

从原理图中可以Q,K,V都是源自输入的X,这也就是为什么叫做self-attention的原因,用数学关系式可以表示为

最低0.47元/天 解锁文章
1401

被折叠的 条评论
为什么被折叠?



