Transformer中的核心概念III-Attention

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的原因,用数学关系式可以表示为

### Transformer 架构中的 Self-Attention 和 Connector-Attention #### 自注意力机制(Self-Attention) 自注意力机制允许模型在不同位置关注输入序列的不同部分,从而更好地捕捉上下文关系。具体来说,在Transformer架构中,每个token会生成三个向量:查询(Query)、键(Key)和值(Value)。这些向量用于计算加权平均值来表示当前token与其他tokens之间的关联强度。 权重矩阵QK^T/√d_k决定了各个位置间的重要性程度,并通过softmax函数规范化得到最终的概率分布。此概率乘以V即为该位置的新特征表达[^1]。 ```python import torch.nn.functional as F def scaled_dot_product_attention(q, k, v): d_k = q.size(-1) scores = torch.matmul(q, k.transpose(-2, -1)) / (d_k ** 0.5) attn_weights = F.softmax(scores, dim=-1) output = torch.matmul(attn_weights, v) return output ``` #### 连接器注意力建模(Connector-Attention) 连接器注意力通常指的是跨模块或层之间传递信息的一种方法。不同于标准的自注意力仅限于同一层次内部的操作,这种类型的注意力可以促进更广泛的信息交流。例如,在某些复杂的神经网络设计里,较低级别的视觉特征可能被用来指导高级别的语义理解过程;反之亦然——高层次的概念也可以影响低级感知决策。 然而,“connector-attention”并不是像self-attention那样普遍接受的标准术语。上述描述更多是一种概念性的解释而非严格定义的技术细节。对于特定应用场景下的实现方式可能会有所不同,取决于具体的任务需求和技术背景[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值