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

这篇具有很好参考价值的文章主要介绍了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中,注意力的核心公式是

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

用图片直观表示为:

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

其中Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能是三个可训练的参数矩阵,输入矩阵X分别与三个矩阵参数进行相乘,相当于进行一次线性变换,得到了Q、K、V。

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

论文中给出的图如下:

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Q和Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能经过MatMul,生成了相似度矩阵。对相似度矩阵每个元素除以Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能的维度大小。这个除法被称为Scale。当Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能很大时,Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能的乘法结果方差变大,进行Scale可以使方差变小,训练时梯度更新更稳定。然后经过SoftMax,最后与V做一个MatMul操作得到结果。

二.Mutil-Head Self-Attention

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

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

从公式可以看出,多头注意力就是将多个head进行Concat然后与Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

相乘。其中每个head是由

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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


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

先做个铺垫如下图

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

致此,就得到了每个

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

对应的

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读),前沿论文解读,transformer,深度学习,人工智能

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

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

更多的头数意味着更强大的模型能力,比如LLM大模型Baichuan-13B中的head数目是40,而Baichuan-7B中的head数目是32。文章来源地址https://www.toymoban.com/news/detail-740589.html

到了这里,关于Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 学习Transformer前言(Self Attention Multi head self attention)

    学习Transformer前言(Self Attention Multi head self attention)

    一直在做项目,也比较懒没有挤出时间去学习新的东西,感觉停滞很久了,好长一段时间都没有新的知识输入,早就需要就去学习transformer了,因此先来学习注意力机制,本文为个人的一个笔记总结。主要是基于李宏毅老师的一个课程视频笔记,论文原文,加上B站UP主的霹雳

    2024年02月02日
    浏览(7)
  • NLP入门:word2vec & self-attention & transformer & diffusion的技术演变

    NLP入门:word2vec & self-attention & transformer & diffusion的技术演变

    这一段时间大模型的相关进展如火如荼,吸引了很多人的目光;本文从nlp领域入门的角度来总结相关的技术路线演变路线。 1、introduction 自然语言处理(Natural Language Processing),简称NLP,是通过统计学、数学模型、机器学习等相关技术研究人类语言的特征,对其进行数学的表

    2024年02月11日
    浏览(8)
  • Self-Attention && Cross-Attention

    Self-Attention && Cross-Attention

    transformer的细节到底是怎么样的?Transformer 连环18问! 4.1  从功能角度,Transformer Encoder的核心作用是提取特征,也有使用Transformer Decoder来提取特征。例如,一个人学习跳舞,Encoder是看别人是如何跳舞的,Decoder是将学习到的经验和记忆,展现出来 4.2  从结构角度,如图5所示

    2024年02月16日
    浏览(9)
  • Self-Attention机制的计算详解

    Self-Attention机制的计算详解

    ​ Attention注意力的核心目标就是从众多信息中选择出对当前任务目标更关键的信息,将注意力放在上面。 ​ 本质思想就是【从大量信息中】【有选择的筛选出】【少量重要信息】并【聚焦到这些重要信息上】,【忽略大多不重要的信息】。聚焦的过程体现在【权重系数】的

    2024年02月10日
    浏览(12)
  • self-attention为什么要除以根号d_k

    self-attention的公式为 a t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K d k ) V attention(Q,K,V)=Softmax( frac{QK}{sqrt{d_{k}}})V a tt e n t i o n ( Q , K , V ) = S o f t ma x ( d k ​ ​ Q K ​ ) V 个人理解,除以 d k sqrt{d_{k}} d k ​ ​ 的原因有两点: d k d_{k} d k ​ 是词向量/隐藏层的维度 1、首先要除以一个数

    2023年04月10日
    浏览(8)
  • 层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

    层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

    本文基于李宏毅老师对 Self-Attention 的讲解,进行理解和补充,并结合Pytorch代码,最终目的是使得自己和各位读者更好的理解 Self-Attention 李宏毅Self-Attention链接: https://www.youtube.com/watch?v=hYdO9CscNes PPT链接见视频下方 通过本文的阅读,你可以获得以下知识: 什么是Self-Attention,为

    2024年02月02日
    浏览(10)
  • 相对位置编码之RPR式:《Self-Attention with Relative Position Representations》论文笔记

    相对位置编码之RPR式:《Self-Attention with Relative Position Representations》论文笔记

    😄 额,本想学学XLNet的,然后XLNet又是以transformer-XL为主要结构,然后transformer-XL做了两个改进:一个是结构上做了segment-level的循环机制,一个是在attention机制里引入了相对位置编码信息来避免不同segment的同一位置采用相同的绝对位置编码的不合理。但无奈看到相对位置编码

    2024年02月17日
    浏览(10)
  • 【读点论文】Separable Self-attention for Mobile Vision Transformers,通过引入隐变量将Q矩阵和K矩阵的算数复杂度降低成线性复杂度,分步计算注意力。

    【读点论文】Separable Self-attention for Mobile Vision Transformers,通过引入隐变量将Q矩阵和K矩阵的算数复杂度降低成线性复杂度,分步计算注意力。

    移动视觉transformer(MobileViT)可以在多个移动视觉任务中实现最先进的性能,包括分类和检测。虽然这些模型的参数较少, 但与基于卷积神经网络的模型相比,它们具有较高的延迟 。MobileViT的主要效率瓶颈是transformer中的多头自我注意(MHA),相对于令牌(或补丁)的数量k,它需要

    2023年04月16日
    浏览(7)
  • transfomer中Multi-Head Attention的源码实现

    transfomer中Multi-Head Attention的源码实现

    本专栏主要是深度学习/自动驾驶相关的源码实现,获取全套代码请参考 Multi-Head Attention是一种注意力机制,是transfomer的核心机制,就是图中黄色框内的部分. Multi-Head Attention的原理是通过将模型分为多个头,形成多个子空间,让模型关注不同方面的信息。每个头独立进行注意力运

    2024年01月17日
    浏览(6)
  • multi-head_seft-attention(多头自注意力)

    multi-head_seft-attention(多头自注意力)

    相比于single-head,multi-head就是将 q i q^i q i 分成了 h h h 份 将 q i q^i q i 分成了 h h h 份 计算过程 对于每个Head,我们可以提取出他的 b 11 b_{11} b 11 ​ 到 b m 1 b_{m1} b m 1 ​ ,以 H e a d 1 Head_1 He a d 1 ​ 举例 将输入序列进行embedding后,变为向量 a 1 a_1 a 1 ​ , a 2 a_2 a 2 ​ , a 3 a_3 a 3 ​

    2024年02月13日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包