news 2026/6/26 2:50:06

输入序列如何到达注意力模块的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
输入序列如何到达注意力模块的?

注意力模块存在于编码器栈和码器栈的每个编码器中。我们首先来详细了解一下编码器的注意力机制。

以英译西举例,源序列示例是 "The ball is blue.",目标序列是 "La bola es azul"。

源序列首先经过嵌入和位置编码层,每个词被生成嵌入向量。嵌入向量随后被传递到编码器,编码器首先会经过注意力模块。

在注意力机制中,嵌入的序列会经过三个线性层,生成三个独立的矩阵:查询矩阵、键矩阵和值矩阵,用于计算注意力得分。

需要注意的是,这些矩阵的每一行都对应于源序列中的一个单词。

输入的每一行都是序列中的一个单词

要理解注意力机制的运作方式,需要从源序列中的各个词语入手,追踪它们在 Transformer 模型中的处理路径,,即注意力模块内部的运作机制。

这将有助于理解源序列和目标序列中的每个词是如何与其他词相互作用的。

因此,在下面的解释中,请集中注意力关注每个词所执行的操作,以及每个向量如何映射到原始输入词。如果矩阵形状、算术运算的具体细节、多个注意力头等与每个词的去向没有直接关系,直接忽略这些细节。

为了简化解释和可视化,我们忽略嵌入维度,只跟踪每个单词的行。

每个词都经过一系列「可学习的」变换

上面说的每一行,都是由它对应的源词,经过一系列变换生成的:嵌入、位置编码、线性层。

所有这些转换都是可训练的操作。这意味着这些操作中使用的权重并非预先设定,而是由模型学习,从而产生所需的输出预测。

关键问题是,Transformer 如何确定哪组权重能带来最佳结果?我们稍后会再讨论。

注意力分数:Query 词和 Key 词之间的点积

注意力机制执行多个步骤,我们只关注线性层和注意力分数。

从公式可以看出,注意力机制的第一步是对查询矩阵(Q)和键矩阵(K)的转置进行矩阵乘法(即点积)。观察每个词的变化。

我们生成一个中间矩阵(我们称之为「因子矩阵」),其中每个单元格都是两个单词之间的矩阵乘法

例如,第四行的每一列对应于第四个查询词与每个关键词的点积。

注意力得分:查询词和值词之间的点积

下一步是将中间「因子矩阵」与值 (V) 矩阵相乘,得出注意力模块输出的注意力分数。可以看到,第四行对应于第四个查询词矩阵与所有其他键值对的乘积。

这样就产生了注意力模块输出的注意力得分向量(Z)。

理解输出得分的方法是:对于每个词,它是「值矩阵」中所有词的编码值乘以「因子矩阵」的权重。「因子矩阵」是该特定词的查询值与所有词的键值的点积。

查询词、键和值的作用

  • Query 词:可以理解为 "我正在为它计算注意力" 的那个词。

  • Key 和 Value 词:是 "我正在关注"的那个词,换句话说,就是"这个词跟我的 Query 词有多相关"。

举个例子。对于 "The ball is blue" 这个句子,"blue" 那一行里,包含了 "blue" 与其他每个词的注意力分数。在这个例子里, "blue" 就是 Query 词,而其他词就是 Key / Value。

注意力计算里还有别的操作,比如除法和 Softmax。暂时忽略它们。这些操作只是改变矩阵里的数值,但不会影响每个词所在的行在矩阵中的位置,也不会引入任何词与词之间的交互。

点积,揭示词与词之间的相似度

我们已经看到,注意力分数通过计算点积并将结果相加,捕捉到特定词语与句子中其他所有词语之间的某种交互作用。但是,矩阵乘法是如何帮助 Transformer 确定两个词语之间的相关性的呢?

为了理解这一点,请记住,查询行、键行和值行实际上是具有嵌入维度的向量。让我们深入了解一下这些向量之间的矩阵乘法是如何计算的。

当我们对两个向量进行点积运算时,我们将成对的数字相乘,然后将它们相加。

  • 如果两对数字(例如上面的 a 和 d)均为正数或均为负数,则它们的乘积为正数。乘积会增加最终的总和。

  • 如果一个数是正数,另一个数是负数,那么它们的乘积将为负数。乘积会减少最终的总和。

  • 如果乘积为正数,则两个数越大,它们对最终总和的贡献就越大。

这意味着,如果两个向量中对应数字的符号一致,则最终的总和会更大。

不同词之间的相关性

点积的这个特性,同样适用于注意力分数。如果两个词的向量更对齐(也就是符号一致的部分更多),那么注意力分数就更高。

那么,我们希望 Transformer 表现出什么样的行为呢?

  • 对于句子里彼此相关的两个词,希望注意力分数高。

  • 对于不相关的两个词,希望注意力分数低。

举个例子。对于 "The black cat drank the milk" 这个句子:

  • "milk"(牛奶)和 "drank"(喝)非常相关。

  • "milk" 和 "cat"(猫)可能稍微有点相关(但没那么强)。

  • "milk" 和 "black"(黑色的)则基本不相关。

我们希望模型学到的输出是这样的:

  • "milk" 和 "drank" 产生高注意力分数。

  • "milk" 和 "cat" 产生一个稍低的分数。

  • "milk" 和 "black" 产生一个可以忽略不计的低分。

为了达到这个效果,"milk" 和 "drank" 的词向量必须对齐;"milk" 和 "cat" 的词向量会有些分歧;而 "milk" 和 "black" 的词向量则会相当不同。

现在,回到前来遗留的问题:Transformer 是怎么知道哪一组权重能给它带来最佳结果的?

这些词向量,是基于词嵌入和线性层的权重生成的。因此,Transformer 可以去学

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 2:48:52

读写分离导致批量删除逻辑问题

原始代码实现Override public void clearExpireOrder(LocalDate expireDate) {log.info("开始清理过期订单, 过期日期: {}", expireDate);int batchSize 200;long totalDeletedCount 0;while (true) {List<ExposureOrder> expireOrders this.list(Wrappers.…

作者头像 李华
网站建设 2026/6/26 2:47:47

突破窗口限制:用Window Resizer打造完美工作空间

突破窗口限制&#xff1a;用Window Resizer打造完美工作空间 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否遇到过这样的烦恼&#xff1f;某个应用程序的窗口死活无法调整到…

作者头像 李华
网站建设 2026/6/26 2:46:37

反激flyback电路

一、反激的三种模式CCM模式&#xff0c;变压器每个周期的能量没有完全释放完&#xff0c;下一个周期的驱动信号就来了&#xff0c;在此阶段初期&#xff0c;开关管关断时&#xff0c;漏感尖峰迅速冲高&#xff0c;随后被吸收电路&#xff08;如 RCD 吸收回路&#xff09;压制&a…

作者头像 李华
网站建设 2026/6/26 2:43:46

YOLO26涨点改进| TGRS 2026 | 卷积创新改进篇| 引入ARFC自适应感受野卷积,根据不同区域小目标的尺度动态选择合适感受野,助力遥感小目标检测、旋转目标检测、小目标检测,有效涨点

一、本文介绍 🔥本文给大家介绍使用ARFC自适应感受野卷积改进YOLO26网络模型,ARFC 通过 网格级路由器 将局部特征分配给不同的 多感受野专家 MFE,小尺度目标倾向于使用小感受野专家以保留细节、减少背景干扰,较大目标则使用大感受野专家以获取更充分的上下文;同时结合 长…

作者头像 李华
网站建设 2026/6/26 2:43:30

Abode AE安装包

本软件资源仅可用于个人技术研究、学习交流与非盈利性实验场景。严禁将本程序及其衍生内容用于各类商业经营、盈利项目、对公业务等商业行为。若有商业化使用需求&#xff0c;请联系著作权方获取正式授权并采购正版授权版本&#xff0c;严格遵守软件著作权相关法律法规。分享文…

作者头像 李华
网站建设 2026/6/26 2:40:33

3dsmax更换背景的详细操作

第一步&#xff1a;载入图片到环境槽&#xff0c;快捷键8在“公用参数”面板下&#xff0c;看到那块写着 “无” (None) 的灰色长条按钮吗&#xff1f;点击那个“无”字按钮。此时会弹出一个“材质/贴图浏览器”窗口&#xff1a;在左侧的搜索框里输入 “位图” 或者 “Bitmap”…

作者头像 李华