深入理解Transformer——从QKV开始

对于Transformer模型,虽然网上有非常多的分析博客,但本人一直对底层的架构缺乏深入的了解,直到最近看到一些非常好的资料才学习到其中的细节部分,下面以问答的形式将自己的心得分享给大家~

需要在最开头说明的是,这篇笔记是看过了大佬(ID:月来客栈)对Transformer论文的深度分析后结合自己的理解编写的,其中绝大部分的文字内容为原创,但截图均来自于大佬的分享。

1、Transformer是什么?

Transformer是一种由Vaswani等人在2017年提出的一种深度学习模型架构,旨在解决序列数据处理问题,特别是机器翻译和文本生成。其核心创新在于引入了自注意力(self-attention)机制,使得模型能够并行化训练,并且在处理长距离依赖方面表现优异。它摒弃了传统RNN和LSTM等循环神经网络对序列逐元素处理的方式,从而提高了计算效率和性能。

核心概念

  • 动机:为了解决长序列处理中的梯度消失/爆炸问题以及提高训练速度。
  • 核心组件:
    • 自注意力机制:允许模型关注输入序列的不同位置,捕捉全局依赖关系。
    • 多头注意力:通过多个平行的注意力层来捕获不同的特征。
    • 前馈神经网络:每个位置使用相同的线性变换进行处理。
    • 残差连接(Residual Connections):有助于解决深层网络的梯度消失问题。
    • 层归一化(Layer Normalization):用于稳定网络训练过程。
  • 编码器-解码器架构:编码器负责理解输入,解码器负责生成输出。

关键技术与方法

  • 自注意力(Self-Attention):是Transformer的核心,它让每个位置的单词可以关联到句子中的其他单词,从而形成一个权重矩阵,表示不同词之间的相互影响。
  • 位置编码(Positional Encoding):因为自注意力机制本身不包含序列顺序的信息,所以需要添加位置编码来保留词序信息。
  • 多头注意力(Multi-head Attention):允许模型在不同子空间中分别学习不同的注意力分布,增强模型表达能力。

2、什么是QKV?

先上原文链接:

.https://www.zhihu.com/question/362131975/answer/2182682685

在注意力机制中,QKV最开始只是三个平平无奇的矩阵W_Q、W_K、W_V,他们是随机生成的,并不包含任何信息,可以理解为三本空白的本子。

当然,这不是我们在attention机制中理解的那种QKV,我想说的是,这只是三个随机生成的参数矩阵W_Q、W_K、W_V,不带有任何信息。

随后就要开始真正的QKV的初始化过程,我们现在需要做的是,在这三本空白的本子上写下输入的这句话(假设输入是“我是谁”)。怎么做呢,当然是将X1(输入向量)和W_Q、W_K、W_V相乘
即:

Q=X1*W_Q

K=X1*W_K

V=X1*W_V

这就是说,我们初始化了三个“我是谁”,虽然参数是随机生成了不同的三份,但事实上这三个矩阵并没有什么区别。做完这些以后,我们可以思考:
现在有什么? 一个embedding过的输入向量X1(也就是问题),三个已经根据输入初始化过的矩阵Q、K、V(写下一句话的本子)
我们要做什么? 计算注意力,这句话的意思是,计算这句话中不同位置之间的关联性,这个关联性实际上包含的是语义信息。

为什么要叫注意力呢,因为计算注意力是为了编码。编码的作用是为了再次表示输入中的每一个字符,但是这次表示我们会考虑这个字符还和句子中哪个字符有关。怎么做呢,我们会将QK相乘,就像下面这样:
在这里插入图片描述
表面上看,事实上这样操作也没有什么意义,但是我们应该理解,“在点积相乘的情形下,两个越相近的向量乘积越大”,“在embedding过后,语义的相近意味着向量的相近”。
很明显,“我”ד我”是最大的,因为他们是同一个字,“我”ד是”比“我”ד谁”更大,那说明“是”比“谁”离“我”更接近。
当然了,乘完之后,我们可以归一化一下,用softmax,最后就得到了上面这样,这个注意力是相对的,可以很直观的看出谁和谁相似。
现在我们得到了一个“密码本”,上面记录了谁和谁相似的信息,用他再去和自身(V)相乘,就是对输入进行编码(Encoder),最终就能得到一个输入编码后的表示。
可以看到,如果一个向量编码后最终输出“是”,那么他实际上是由于问题文本中的其他向量分别乘以自身的注意力来加权得到的,就像下面这样:
在这里插入图片描述
整个过程,如果使用一个公式来表示,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值