大模型基础--Transformer自注意力机制

举报
剑指南天 发表于 2026/04/23 22:27:21 2026/04/23
【摘要】 You shall know a word by the company it keeps.

1. Transformer注意力的哲学前提

 “You shall know a word by the company it keeps.” —— J.R. Firth (1957)

“分布假设”——即一个词的含义由它周围的词决定不需要看定义:不需要查字典知道“苹果”是什么,只需要看它经常和“吃、水果、手机、乔布斯”一起出现,就能推断它的语义范畴。数学化表达:词的语义表示就是该词上下文概率分布的统计量。

Transformer的自注意机制学习词和语句的关系。词的含义随句子不同而动态变化,句子随着词的变化也动态变化。通过建模句子中词的权重,调节词含义在句子中的贡献,准确学习句子语义。通过大规模学习句子语义的过程,掌握语言统计规律。

2. 自注意力机制

自注意力机制(Self-Attention)是 Transformer核心结构之一,它的作用是在序列内部建立各位置之间的语义关系,使模型能够为每个位置生成融合全局信息的表示。之所以被称为“自”注意力,是因为模型在计算每个位置的表示时,所参考的信息全部来自同一个输入序列本身。

1)自注意力计算过程

(1)生成Query、Key、Value向量

自注意力机制的第一步,是将输入序列中的每个位置表示映射为三个不同的向量,分别是 查询(Query,绿色)、键(Key,深红色) 和 值(Value,黄色)。

Query:表示当前词的用于发起注意力匹配的向量;Wq是可学习的矩阵,学习的方向是词尽可能反应词自身语义

Key:表示序列中每个位置的内容标识,用于与 Query 进行匹配;Wk是可学习的矩阵,学习的方向是词尽可能反应序列整体语义

Value:表示该位置携带的信息,用于加权汇总得到新的表示。Wv是可学习的矩阵,学习的方向是均匀的通过词反应序列整体语义(每个词对语义的贡献相同)

(2)计算位置间相关性

使用每个位置的 Query 向量与所有位置的 Key 向量进行相关性评分。

评分函数采用向量点积形式。由于在高维空间中,点积的数值可能过大,会影响 softmax 的稳定性,因此在实际计算中对结果进行了缩放。最终的评分函数为:

dk是key向量的维度,用于缩放点积的幅度.这个分数越大,表示第 i 个位置越应该关注第 j 个位置的信息。

点积评分是注意力机制中最简单、最直接的一种相关性评分方法。其含义可以理解为:如果两个向量方向越一致(即越接近),它们的点积就越大,表示相关性越强,模型应当给予更多注意力。

数学理论基础来源于

假设向量A中的Ai符合标准正态分布均值为 0、方差为 1和向量B中的Bi符合标准正态分布均值为 0、方差为 1:

第一步Ai2的分布就趋向于自由度为dk的卡方分布,所以Ai2均值为dkBi2的分布就趋向于自由度为dk的卡方分布,所以Bi2均值为dk。

第二步等于dk2dk为常量,矩阵中的所有向量的维度必然相同

从上面得出只要Query和Key内的各个向量里面的元素在向量内部的分布符合标准正态分布,不仅可以表示相似性,并且相似性已经量化,具有可比性。

假设Query矩阵中向量q,q中的qi符合标准正态分布均值为 0、方差为 1和Key矩阵中向量k,向量k中的kj符合标准正态分布均值为 0、方差为 1:

第一步得到的新向量s,s内的元素的分布服从于自由度为dk的正态分布,所以向量s分布的特点是均值为0,方差为dk.

第二步随着dk的增长,就会出现比较大的值Vmax考虑到下一步模型会使用 softmax 函数进行归一化,参看下面的公式,eVmax值比例会接近于1,向量内的其他元素几乎贡献梯度为0。

第三步为了解决上面问题,将向量s的分布标准化,只需要将s各个元素除以(s的标准差)。新的s分布服从标准正态分布。

从上面得出只要Query和Key内的各个向量里面的元素在向量内部的分布符合标准正态分布,解决了softmax 函数的梯度问题,score也服从标准正态分布。

上面的结论都是基于Query矩阵中向量q,q中的qi服从标准正态分布和Key矩阵中向量k,向量k中的kj服从标准正态分布。所以这就是X的归一化和W的初始化之后的分布,就需要特别的设计.

第一步X进行标准归一化:

第二步W的初始化方式选择正态分布,均值为0,方差未知.假设方差是1,则W服从标准正态分布。则xi.wj符合正态分布,均值为0,方差为dk。为了使xi.wj服从标准正态分布,所以wj。所以得出W的初始化方式选择正态分布,均值为0,标准差为(1/)。Xavier正态分布初始化:均值为0,标准差为。He正态分布初始化:均值为0,标准差为的正态分布(Kaiming方法通过设置标准差  来补偿GELU等激活函数对信号方差的减半效应)。

可以从GPT-2的重大架构创新之一Pre-LayerNorm得到验证。

(3)计算注意力权重

在得到每个位置与所有位置之间的相关性评分后,模型会使用 softmax 函数进行归一化,确保每个位置对所有位置的关注程度之和为 1,从而形成一个有效的加权分布。

(4)加权汇总生成输出

模型会根据注意力权重对所有位置的 Value 向量进行加权求和,得到每个位置融合全局信息后的新表示

综上所述整个自注意力机制的完整的计算公式如下:

2)多头自注意力计算过程

自然语言本身具有高度的语义复杂性,一个句子往往同时包含多种类型的语义关系。为此,Transformer 引入了多头注意力机制(Multi-Head Attention)。其核心思想是通过不同注意力头分别专注于不同的语义关系,最后将各头的输出拼接融合。

多头注意力的计算过程如下:

(1)分别计算各头注意力

每个 Self-Attention Head 独立计算一套注意力输出:

多个输出矩阵按维度拼接,再乘以Wo得到最终多头注意力的输出:

3. 从模型的训练过程可以知道模型到底学习到了什么。

GPT仅使用Transformer解码器,解码器的核心就是Masked 自注意力。模型预训练任务是基于前文,预测当前位置应出现的词。

BERT仅适用Transformer编码器。模型预训练核心任务之一就是掩码语言模型(Masked Language Modeling, MLM)。

T5在完整的 Transformer 编码器-解码器结构。模型的预训练目标被称为Corrupted span prediction,具体过程如下:1)随机遮盖输入文本中的若干连续片段(span);2)将每个被遮盖的连续片段替换为一个个特殊token;3)令模型学习生成这些遮盖片段的内容,作为输出序列。

可以得出的结论:预训练就是在践行一个词的含义由它周围的词决定。而注意力机制就是在建模一个词和其他周围词关系的过程。自注意机制从输入的语料学习语言规律,随着输入增多,就学习到丰富的语言规律。






【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。