Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读)

目录

一.什么是Q、K、V

二.Mutil-Head Self-Attention


Transformer大行其道,在众多领域取得了不可忽视的成就。如今大火的语言大模型LLM也都是基于Transformer,但是Transformer中的Q、K、V和多头注意力到底是什么呢?这里简单做个学习记录,进行再一次认识和掌握。

一.什么是Q、K、V

Transformer中的Q、K和V是指在自注意力机制(self-attention mechanism)中使用的三个输入表示向量。

Q表示查询向量,K表示关键向量,V表示数值向量。这三个向量是通过线性变换从原始输入向量(通常是词嵌入表示)得到的。

在自注意力机制中,以查询向量Q为基础,通过计算查询向量与所有关键向量K之间的相似度,得到一个权重分布,用于加权求和关联的数值向量V。

Q、K、V概念来源于检索系统,其中Q为Query、K为Key、V为Value。可以简单理解为Q与K进行相似度匹配,匹配后取得的结果就是V。举个例子我们在某宝上搜索东西,输入的搜索关键词就是Q,商品对应的描述就是K,Q与K匹配成功后搜索出来的商品就是V。

Transformer中,注意力的核心公式是

图片

,那Q、K、V是怎么来的呢?这里其实是通过对输入矩阵X进行线性变换得到的,用公式可以简单写成以下:

图片

用图片直观表示为:

图片

其中是三个可训练的参数矩阵,输入矩阵X分别与三个矩阵参数进行相乘,相当于进行一次线性变换,得到了Q、K、V。

然后使用Q、K、V计算注意力矩阵,公式如下:

图片

论文中给出的图如下:

图片

Q和经过MatMul,生成了相似度矩阵。对相似度矩阵每个元素除以的维度大小。这个除法被称为Scale。当很大时,的乘法结果方差变大,进行Scale可以使方差变小,训练时梯度更新更稳定。然后经过SoftMax,最后与V做一个MatMul操作得到结果。

二.Mutil-Head Self-Attention

上文理解了Q、K、V及其它们的由来,那多头注意力是什么呢?

Transformer论文中给出的多头注意力公式如下:

图片

从公式可以看出,多头注意力就是将多个head进行Concat然后与

相乘。其中每个head是由

图片

与Q、K、V做Attention操作得到。论文给出的图如下:

图片

Q、K、V经过Linear然后经过h个Self-Attention,得到h个输出,其中h指的是注意力的头数。h个输出进行Concat然后过Linear得到最终结果。

图片

那么就得到了多组Q、K、V,每一组就是一个head。


下面引用B站作者霹雳吧啦Wz的内容进行讲解。

先做个铺垫如下图

图片

图片

图片

同理也会得到不同输入的2个head中的head2。如下图

图片

左侧是x1、x2输入的head1,右侧是x1、x2输入的head2,b是偏置。

致此,就得到了每个

图片

对应的

图片

参数。接下来针对每个head使用和Self-Attention中相同的方法即可得到对应的结果。

图片

 接着将每个head得到的结果进行concat拼接,接着将拼接后的结果通过

图片

(可学习的参数)进行融合。

从上可以看出,每个head关注的子空间不一定是一样的,那么这个多头的机制能够联合来自不同head部分学习到的信息,这就使得模型具有更强的认识能力。

更多的头数意味着更强大的模型能力,比如LLM大模型Baichuan-13B中的head数目是40,而Baichuan-7B中的head数目是32。

  • 23
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈子迩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值