尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

彻底吃透自注意力机制:从原理公式到Transformer核心应用

彻底吃透自注意力机制:从原理公式到Transformer核心应用 一、为什么需要自注意力传统序列模型的痛点在自注意力诞生之前序列建模NLP、时序、语音等任务主要依赖RNN/LSTM/GRU和CNN但这两类模型都存在难以弥补的缺陷直接制约了长序列建模和训练效率1.1 RNN系列的致命短板无法并行计算RNN按时间步串行处理当前时刻输出依赖上一时刻隐藏态训练时算力利用率极低长距离依赖丢失序列过长时反向传播梯度极易消失早期信息无法传递到后期难以捕捉远距离语义关联时序耦合强必须严格按照序列顺序处理灵活性差。1.2 CNN的固有局限感受野有限卷积核只能捕捉局部特征想获取全局依赖需要堆叠多层卷积建模效率低权重固定卷积核参数固定无法根据输入动态调整关注重点适应性弱。1.3 自注意力的革命性突破2017年《Attention Is All You Need》论文提出的自注意力机制彻底打破了上述困境✅全局视野序列每个位置都能直接关联所有位置一步捕捉长距离依赖✅全并行计算所有位置的注意力权重可同步计算训练速度大幅提升✅动态权重根据输入内容自适应分配注意力聚焦关键信息。二、自注意力核心原理通俗理解计算流程2.1 核心思想什么是“自”注意力自注意力的“自”指Query查询、Key键、Value值均来自同一个输入序列。它的本质是让序列中每个元素通过“查询-匹配-聚合”的方式融合全序列的有效信息生成更具上下文感知的新表示。可以类比成信息检索过程QueryQ当前元素的“提问”——我需要什么信息KeyK全序列元素的“标签”——我有什么信息ValueV全序列元素的“内容”——我能提供什么实质信息通过Q和K的相似度匹配得到注意力权重再用权重对V加权求和就是最终的注意力输出。2.2 标准计算流程缩放点积注意力假设输入序列是一个二维特征矩阵行数对应序列长度列数对应单个输入元素的向量维度比如词嵌入维度、特征维度。自注意力计算分为4个核心步骤步骤1线性投影生成Q、K、V对输入X做三次独立线性变换得到查询矩阵Q、键矩阵K、值矩阵V对输入特征矩阵做三次独立的线性变换分别得到查询矩阵Q、键矩阵K、值矩阵V三者的计算逻辑一致查询矩阵由输入矩阵乘以专属可学习权重得到键矩阵由输入矩阵乘以另一组专属可学习权重得到值矩阵同理由输入矩阵乘以第三组可学习权重得到。其中三组可学习权重矩阵的维度分别匹配输入维度和目标投影维度保证矩阵乘法合规查询、键的投影维度保持一致值的投影维度通常和前两者相等简化计算流程。步骤2计算注意力得分相似度通过Q和K的转置做点积衡量每个位置与全序列位置的关联程度用查询矩阵乘以键矩阵的转置得到注意力得分矩阵矩阵的行列数均等于序列长度每个数值代表序列中两个位置的关联相似度。得分矩阵中第i行第j列的数值代表序列第i个位置对第j个位置的关注程度。步骤3缩放Softmax归一化得到注意力权重直接点积会导致数值过大让Softmax进入梯度饱和区因此需要缩放后再归一化直接点积的数值会随投影维度增大而飙升导致Softmax函数进入梯度饱和区因此需要先做缩放将点积结果除以查询/键投影维度的平方根再通过Softmax函数做归一化最终得到注意力权重矩阵行列数同样等于序列长度。缩放原因投影维度越大点积结果的方差波动越剧烈除以对应维度的平方根能把方差稳定在合理范围保证反向传播梯度正常传递。Softmax作用将得分转为0-1之间的概率分布每行权重和为1直观体现注意力分配比例。步骤4加权求和得到最终输出用归一化后的权重对V矩阵加权求和融合全序列信息用归一化后的注意力权重矩阵乘以值矩阵做加权求和把全序列的特征信息按权重融合得到自注意力的最终输出矩阵。最终输出的每一行对应原序列一个位置的特征且已经融合了全局所有位置的上下文信息。2.3 核心公式汇总缩放点积自注意力完整公式缩放点积自注意力完整流程先计算查询矩阵与键矩阵转置的点积做维度平方根缩放通过Softmax得到权重再与值矩阵加权求和即为最终输出。三、多头自注意力提升模型表达能力的关键3.1 单头注意力的缺陷单头自注意力只能从单一视角建模序列关系而语言、图像中的依赖关系复杂多样语法、语义、指代、空间关联等单一视角无法全面捕捉。3.2 多头注意力核心逻辑多头注意力Multi-Head Attention将Q、K、V投影到多个低维子空间并行计算多个独立的自注意力头最后拼接融合输出实现多视角建模。计算流程多头投影把原始的查询、键、值矩阵拆分成多个并行的子矩阵每个子矩阵对应一个独立的注意力头每个头都用专属权重做线性变换再单独执行一遍缩放点积自注意力计算。并行计算h个头独立计算注意力互不干扰拼接线性变换把所有注意力头的输出结果按列拼接再通过一层线性映射做特征整合得到多头自注意力的最终输出。通常会把总特征维度平均分配给每个注意力头保证单个头的计算量和整体参数量处于合理范围提升训练效率。3.3 多头注意力的优势✅多维度关联不同头捕捉不同类型依赖如语法头、语义头、空间关联头✅表达能力更强融合多子空间信息提升模型泛化能力✅鲁棒性更高避免单一注意力头过拟合类似集成学习效果。四、位置编码给自注意力注入序列顺序4.1 自注意力的痛点置换不变性自注意力本身是置换不变的打乱输入序列顺序输出仅跟着打乱内容不变。这意味着模型无法感知“我爱你”和“你爱我”的区别必须额外加入位置信息。4.2 经典位置编码方案Transformer采用正弦余弦位置编码将位置信息融入输入嵌入Transformer采用正弦余弦位置编码核心规则是针对序列每个位置、向量每个维度偶数维度用正弦函数计算位置编码奇数维度用余弦函数计算位置编码通过固定公式生成位置特征无需额外学习参数。位置序号序列中每个元素的先后排位维度序号特征向量内部的每一列索引模型总维度整个Transformer的特征向量总长度。4.3 位置编码的优势无需学习直接计算减少参数量支持长序列外推可处理比训练更长的序列能建模相对位置关系适配序列时序特性。 拓展现代模型常用可学习位置编码、旋转位置编码RoPE等变体效果更优。五、Transformer中的自注意力分类Transformer架构中自注意力分为三种类型适配编码和解码场景1. 编码器自注意力双向每个位置可关注全序列所有位置用于构建双向上下文表示BERT仅用此类注意力。2. 解码器掩码自注意力单向/因果通过掩码机制把序列中当前位置之后的所有注意力得分替换为极小的负数等效负无穷Softmax归一化后这些位置权重会趋近于0保证每个位置只能关注自身及之前的位置适配自回归生成任务GPT专用。3. 编码器-解码器交叉注意力Q来自解码器K、V来自编码器让生成端聚焦输入序列的关键信息常用于翻译、摘要等Seq2Seq任务。六、自注意力的优势与局限6.1 核心优势长距离依赖建模任意位置交互路径为O(1)彻底解决RNN长距离遗忘问题并行计算训练速度远超RNN适配大规模数据可解释性强注意力权重可可视化直观展示模型关注重点通用性极强适配文本、图像、语音、图数据等多领域任务ViT、Swin Transformer均基于此。6.2 主要局限⚠️计算复杂度高标准自注意力的时间和空间开销与序列长度的平方、特征维度成正比长序列场景下内存和算力消耗会急剧飙升。⚠️无局部先验相比CNN缺乏局部性先验小数据集训练效率偏低⚠️依赖位置编码本身无时序感知能力需额外设计位置信息。七、高效自注意力优化方案解决O(n²)痛点针对长序列复杂度问题学术界提出多种优化变体核心思路是降低注意力矩阵的计算量稀疏注意力仅计算局部窗口/全局标记的注意力Longformer、BigBird线性注意力通过核函数近似将复杂度降至O(n)Linear Transformer、Performer低秩近似将n×n注意力矩阵投影到低维空间Linformer分块注意力将序列分块块内全注意力、块间稀疏注意力。
返回列表