注意力机制相关问题
- 什么是注意力机制?
- 注意力机制的原理是什么?
- 常见的注意力机制都有哪些?
- 自注意力的原理和优势是什么?请结合具体模型及参考文献详细论述他们各自的工作原理及优缺点。
[什么是注意力机制?]
注意力机制,本质上说就是实现信息处理资源的高效分配,是指人类神经系统在面对复杂感知信息时,通过选择性关注和资源分配来优先处理特定刺激的认知过程。该机制使个体能够在大量信息中高效地聚焦于关键刺激、任务或目标。
当一个场景进入人类视野时,往往会先关注场景中的一些重点,如动态的点或者突兀的颜色,剩下的静态场景可能会被暂时性地忽略[1]。例如当人们需要寻找图片中的人物信息时,会更多地注意符合人物特征的图片区域,而忽略那些不符合人物特征的图片区域,这样就是注意力的合理有效分配。注意力是人类大脑中一项不可或缺的复杂认知功能,在日常生活中,人们通过视觉、听觉、触觉等方式接收大量的信息,但是人们在这些外界的信息轰炸中还能有条不紊地工作,是因为人脑可以有意或无意地从这些大量输入信息中选择小部分的有用信息来重点处理,并忽略其他信息,这种能力就是注意力。
[注意力机制的原理是什么?]
在认知科学中,注意力机制被认为是感知、记忆、决策及行为调控的核心基础。它通过优化信息处理效率,直接影响个体的学习能力、任务表现和适应性行为[2]。人类注意力的认知与神经机制,为计算建模提供了深刻的生物学启示。

注意力机制的基本框架图如图1所示,注意力机制通过可学习的权重分配,模拟人脑对关键信息的增强与非关键信息的抑制,以高权重去聚焦重要信息,以低权重去忽略不相关的信息,并且还可以不断调整权重,使得在不同的情况下也可以选取重要的信息,以提升模型对重要特征的敏感度,因此具有更高的可扩展性和鲁棒性。
注意力机制通常以Query(查询)、Key(键)和Value(值)三组向量作为输入,计算出一个加权求和结果作为输出。其中查询Query表示对输入的关注焦点;键Key表示输入中的所有元素,用来计算它们与查询的相关性;值Value表示与每个键相关联的信息,最终根据注意力权重加权求和[3]。
假设当前的查询向量为q∈Rd,键和值向量分别为ki,vi∈Rd,则注意力的输出步骤为计算相似度、归一化和加权求和,公式定义为:
![]()
其中,αi是注意力权重,表示当前查询向量q对于第i个值向量vi的关注程度。权重的计算依赖于查询向量与键向量之间的相似度评分,通常经过softmax函数归一化:
![]()
在计算相似度时,即给定一个Query和若干个Key,计算它们之间的相关性分数,表示Query应该关注哪个Key对应的Value。
|
常用score函数 |
|
|
点积 |
|
|
缩放点积 |
|
|
加性注意力 |
|
通过公式我们可以看出,注意力机制的数学实质是一个带权平均过程。它将输入值向量vi通过权重αi加权组合,重点突出了与查询向量q更匹配的键-值对所携带的信息。
[常见的注意力机制都有哪些?]
随着注意力机制在各类深度学习模型中的广泛应用,研究者针对不同场景与任务需求,发展出多种不同类型的注意力机制。
|
Attention分类 |
||
|
分类依据 |
具体类别 |
介绍 |
|
实现方式 (输出方式可导性) |
Soft Attention |
通过对所有输入位置分配连续权重即注意力分布,并对所有值向量加权求和得到输出。这种机制是完全可导的,因此可以通过反向传播与梯度下降等常规方法进行训练。 代表应用为Transformer。 |
|
Hard Attention |
对输入进行离散选择,即从所有输入位置中仅选择最关键的一个或几个进行处理。由于离散选择操作不可导,因此通常需要借助强化学习方法或近似采样算法进行优化。 虽然Hard Attention更接近人类的认知过程,但在实际训练中不够稳定,应用较少。 |
|
|
信息来源 (Q、K、V的来源) |
Self-Attention |
当Q、K和V都来自同一个输入序列时,称为自注意力。该机制可以建模序列内部各位置之间的依赖关系,适用于语言建模、图像处理等任务。 Transformer编码器中的注意力层即为典型的自注意力机制,其中每个词对其它所有词都施加不同程度的关注。 |
|
Cross-Attention |
当Q来自一个序列,而K和V来自另一个序列时,称为交叉注意力。此机制常用于需要融合两个不同来源信息的任务中,比如在机器翻译中,解码器使用交叉注意力对编码器的输出进行加权,从而生成目标语言。 Transformer 解码器中的第二个注意力层就是典型的 Cross-Attention 实现。 |
|
|
计算结构 (并行度) |
Single-Head Attention |
最基础的注意力形式,直接对输入执行一次注意力计算。虽然结构简单,但其表征能力较为有限,难以捕捉输入中不同维度或语义层次的信息。 |
|
Multi-Head Attention |
为提升模型的表达能力,Transformer中提出了多头注意力机制。它将输入向量分别映射到多个子空间,在每个子空间中并行执行注意力计算,最终将多个头的输出拼接融合。这种机制使得模型能从多个角度理解和关联输入中的不同部分,大幅增强了对复杂模式的建模能力。 |
|
1.加性注意力
Bahdanau等人于2014年提出了第一个应用于神经机器翻译中的注意力机制,通常被称为“Additive Attention”。它的关键思想是通过一个可学习的神经网络将Q和K进行非线性变换,并使用加性方式计算相似度分数,从而获取注意力权重[3]。加性注意力在解码过程中,动态地为输入序列的不同部分分配不同的权重,使模型能够自适应地关注与当前翻译目标最相关的信息。
对于具体的机器翻译任务,工作原理如下:
|
step1 输入序列转换为词向量序列,BiRNN编码得到每个位置的隐藏状态 step2 输入上一时刻解码器状态和输出,生成当前时刻解码器状态 step3 计算注意力分数,其中是解码器当前状态(查询向量),是编码器第j个位置的状态(键向量) step4 归一化注意力权重,通过softmax将分数转换为概率分布 step5 生成上下文向量 step6 拼接解码器状态与上下文向量,通过线性变换和softmax生成目标词概率分布 |
|
加法注意力的优点是可以处理查询向量和键向量之间的尺度差异,通过非线性变换tanh捕捉复杂相关性,对查询和键的维度不敏感,能够更好地捕捉到输入序列中的全局关系,增强模型的可解释性。不过,它的缺点是计算量较大,注意力机制时间复杂度为,需要计算每个目标词与所有源词的相关性,对长序列效率较低。对模型效率有一定影响。
2.点积注意力机制
Luong等人随后提出另一种注意力形式,称为“Dot Product Attention”,相较于Bahdanau的Additive Attention更为简单高效。它直接对查询和键进行内积计算相似度,不再使用额外的非线性变换[4]。
|
step1 计算对齐分数 step2 计算注意力权重 step3 生成上下文向量 |
其中: :目标隐藏状态(解码器状态) :源隐藏状态(编码器状态) :源位置对目标位置的注意力权重 :上下文向量 |
|
|
|
|
两种注意力机制的区别在于,"Global attention model"会考虑query中每个token的影响,而"Local attention model" 只会考虑其中一部分token的影响。
Global attention的缺点在于,它必须关注每个目标词在输入源的所有词,这很昂贵,并且可能使翻译更长的序列(例如段落或文档)不切实际。为了解决这一缺陷,Luong提出了一种局部注意机制,该机制选择只关注每个目标词的源位置的一小部分。"硬注意力"指的是Global attention,即需要注意全局的信息。"软注意力"指的并非Local attention,它指的是只注意全局信息中的某一部分,不参考周围信息(连续性问题),导致不可微分。
3.缩放点积与多头注意力机制
虽然点积注意力在Luong等人的论文中被提出,但它在2017年的Transformer中成为标准注意力机制[5]。Transformer模型中进一步发展了Luong注意力,并引入了“缩放”机制。当维度很大时,点积结果的数量级会变得很大,导致Softmax函数进入梯度极小的区域,引发梯度消失问题。通过除以,可以将点积结果的方差控制在1左右,从而使训练更稳定。该机制不仅高效可并行,而且作为Transformer编码器和解码器的核心单元,展现了强大的建模能力。
Google Brain团队在2017年NIPS会议上发表里程碑式论文,提出了Transformer架构,首次完全摒弃了循环神经网络RNN和卷积神经网络CNN,仅依赖注意力机制实现Seq2Seq建模。缩放点积注意力的标准形式为:
相比加性注意力,点积注意力可以通过高度优化的矩阵乘法实现,速度更快,空间效率更高,且逻辑直观,参数量少。但是单个点积注意力只能学习到一种特定模式的关联,对复杂语义的捕捉能力有限。

为了增强模型捕捉多粒度特征的能力,Transformer引入了“多头注意力”机制。其基本思路是将查询、键和值分别线性投影为个不同的子空间,在每个子空间中独立执行注意力计算,最后将所有头的结果拼接并再次线性变换:
其中每个head表示为,通过这种结构,模型可以并行地学习输入之间不同层级、不同角度的依赖关系,显著提升了表达能力。多头注意力是在缩放点积注意力的基础上进行的并行化扩展。
“多头”允许模型在不同的表示子空间中共同关注来自不同位置的信息。例如:一个head可能关注语法结构,另一个head可能关注代词指代,再一个head可能关注时间/地点。单头注意力往往会将不同位置的特征进行简单的加权平均,而多头注意力能保留多种层面的特征组合。
多头注意力机制显著提升了模型捕捉序列中复杂关系的能力,但在多头的同时,在训练时需要存储多个头的中间状态,对显存有一定要求。Head的数量作为超参数,值的选择会影响效果。
4.自注意力机制与交叉注意力机制

在Transformer中,从QKV来源的角度来看,注意力机制包括Self-Attention和Cross-Attention,在不同的阶段分别有所应用。
Encoder阶段只有Self-Attention,负责对源语言进行深层理解,将每个词都编码成包含上下文信息的向量。
Decoder阶段为双重注意力,首先通过Masked Self-Attention处理已经生成的目标词序列,确保预测时不依赖未来词,接着通过Encoder-Decoder Attention,将解码器的当前状态作为请求,去编码器输出的数据库中检索信息。
|
特性 |
Self-Attention |
Cross-Attention |
|
QKV来源 |
均来自同一序列 |
Q来自目标序列,K,V来自源序列 |
|
应用位置 |
编码器全部、解码器第一子层 |
解码器第二子层(中间层) |
|
核心功能 |
提取序列内部的语义特征和结构 |
实现两个不同序列间的特征映射与对齐 |
|
Mask机制 |
编码器不需要,解码器需要 |
通常不需要 |
Self-Attention拥有全局视野,可以捕捉长距离依赖,但其复杂度为(为序列长度,为维度),当序列极长时,内存和计算开销呈平方级增长。相比CNN,Self-Attention缺乏局部先验知识,需要大量数据来学习空间和位置关系。Cross-Attention实现了源序列和目标序列之间的自动对齐,模型能够自主决定在当前生成阶段应该关注输入信息的哪一部分,有效地从编码器提取的丰富语义中筛选出对当前解码步骤有用的部分。但在推理阶段,解码器是逐词生成的,每一步都需要与编码器的输出进行交叉计算,因此导致推理速度受限。
[自注意力的原理和优势是什么?]
在Transformer模型中,自注意力机制是实现特征提取与语义对齐的核心。
|
step1 将输入序列中的每个元素映射为三个独特的特征向量:查询向量、键向量和值向量。给定输入矩阵,通过三个可学习的权重矩阵进行线性变换: step2 通过衡量Q与K之间的相似度,动态地从V中提取相关信息 |
其中Q用于搜索信息,K存储索引信息,V则承载实际的内容信息,为向量维度。 计算序列内任意两个位置之间的交互强度,捕捉词与词之间的关联;Softmax归一化将评分转化为概率分布,即注意力权重,确保所有权重之和为1。最终输出是值向量的线性组合,使得每个位置的表示都融合了整个序列的上下文信息。 |
在捕捉长程依赖关系方面,自注意力机制通过缩放点积运算,建立起序列中任意两个位置之间的直接连接。不同于RNN需经过步递归传递导致的梯度消失或信息衰减,自注意力机制中位置间的最大路径长度仅为,这确保了模型能够以极低的信号损失捕获远距离的语义关联。
在计算并行化维度上,自注意力打破了传统序列模型的时间依赖性瓶颈。由于每个位置的Q、K、V向量的计算是相互独立的,整个注意力矩阵的构建可转化为高度优化的张量乘法运算,从而充分利用GPU的并发计算能力,极大地缩短了大规模数据集上的训练周期。
自注意力机制自提出以来,已从最初的机器翻译领域扩展至自然语言处理、计算机视觉及多模态学习等多个领域。
BERT利用双向自注意力机制,在处理每一个词(Token)时,自注意力层允许模型同时考虑该词左侧和右侧的所有上下文信息。在完形填空任务中,自注意力机制通过计算所有词对当前被遮掩词的相关性得分,从而根据上下文精确推断出缺失的语义。这种全向的关联能力使得BERT在文本分类、命名实体识别等任务中表现卓越[6]。
GPT采用掩码自注意力机制。在生成文本时,模型是自回归的,即预测下一个词只能依赖于已经生成的历史词汇。自注意力机制通过在计算中加入因果掩码,确保每个位置只能看到其之前的序列。这种应用使得GPT能够捕捉长文本中的逻辑链条,生成连贯且具有深度语义的回答[7]。
ViT彻底改变了图像处理依赖CNN的传统。它将一张图像切分为多个固定大小的Patches,并将每个patch视为一个word。自注意力机制在ViT中用于建模图像内不同区域之间的全局空间关系[8]。
CLIP利用自注意力机制分别构建文本编码器和图像编码器,通过自注意力提取出的高层语义向量,模型可以将视觉特征和文本特征映射到同一个特征空间。这种应用使得模型能够理解文字与对应图像之间的语义一致性,实现了强大的跨模态搜索和零样本学习能力[9]。
总的来说,自注意力机制在全局感受野与长距离建模、高度计算并行性与动态权重分配方面有显著优势,不仅在理论层面解决了序列建模的效能难题,更为后续超大规模预训练语言模型的演进提供了稳固的算法基石。
参考文献
- Chaudhari S , Polatkan G , Ramanath R ,et al.An Attentive Survey of Attention Models[J]. 2019.DOI:10.48550/arXiv.1904.02874.
- PETERSEN S E, POSNER M I. The attention system of the human brain: 20 years after[J]. Annual review of neuroscience, 2012, 35(1): 73-89.
- Bahdanau D , Cho K , Bengio Y .Neural Machine Translation by Jointly Learning to Align and Translate[J].Computer Science,2014.DOI:10.48550/arXiv.1409.0473.
- Luong M T , Pham H , Manning C D .Effective Approaches to Attention-based Neural Machine Translation[J].Computer ence, 2015.DOI:10.18653/v1/D15-1166.
- Vaswani A , Shazeer N , Parmar N ,et al.Attention Is All You Need[J].arXiv, 2017.DOI:10.48550/arXiv.1706.03762.
- Devlin J , Chang M W , Lee K ,et al.BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding[J].ArXiv, 2019,abs/1810.04805.DOI:10.18653/v1/N19-1423.
- RADFORD A, NARASIMHAN K, SALIMANS T, et al. Improving language understanding by generative pre-training [R]. OpenAI Technical Report, 2018.
- DOSOVITSKIY A, BEYER L, KOLESNIKOV A, et al. An image is worth 16x16 words: Transformers for image recognition at scale [J/OL]. arXiv preprint arXiv:2010.11929, 2020. [2024-05-20].
- RADFORD A, KIM J W, HALLACY C, et al. Learning transferable visual models from natural language supervision [C]//International Conference on Machine Learning. PMLR, 2021: 8748-8763.
本文来自博客园,作者:BlnoOo,转载请注明原文链接:https://www.cnblogs.com/Bolan/p/19793577






浙公网安备 33010602011771号