news 2026/5/30 3:51:01

保姆级解析!Attention Weights 和 Attention是啥?到底怎么算?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级解析!Attention Weights 和 Attention是啥?到底怎么算?

开篇碎碎念(大家直接跳过吧……博主只是写这篇文章的时候有点破防了):

哈喽啊大家好,博主这个小菜鸡终于又开始写文章了。博主是AI专业大三的学生,主要是今晚科研开会学长们畅聊Attention相关的很多东西,然后主播听的是一头雾水啊……基础太薄弱了,这学期的神经网络与深度学习也跟白学了一样,脑子里现在一干二净啊……完🥚了……啊……。没事!振奋起来!不会了就慢慢补!主播可以的!你们也可以!

前言

首先了解一下Attention Weights 和 Attention 的概念吧:

  • Attention Weights就是一组 “占比” ,它的作用是告诉模型:为了真正读懂当前这个词,我应该分别从句子里的其他每一个词身上采纳多少信息。
  • Attention就是根据上面算出来的比例去执行 “拿取并融合” 的动作,它的作用是把那些重要的、相关的信息按比例吸取过来,让当前这个词不再孤立,而是变成一个理解了上下文的完整结果。

主播这个真的是保姆级教学,直接从embedding开始讲。可能一些用词不太专业,也欢迎大家在评论区给我指正、提建议!那我们就开始快乐的学习吧!

本文讲解Attention Weights的思路是:

人类可读的文字——>embedding后得到其向量表示——>q、k、v的获取——>Attention Weights和Attention的计算

一、人类可读的文字——>文字的向量表示

首先既然是数学计算,那肯定不能用人类的自然语言去计算对吧,这也没法算。我们需要把“人类可读的文字”转换为计算机可以计算的“向量”,并且这个向量是有意义的(比如可以表示词语之间的相似度),可以表示文字的含义。这个转换过程就叫做“Embedding”

具体的转换过程(以“苹果”🍎这个词为例):

第 1 步:查字典(Tokenization -> ID)

模型里有一个巨大的词表。

  • 比如词表里有 50,000 个词。

  • “苹果”在词表里的 Index 是1024

  • “香蕉”的 Index 是2048

此时,“苹果”被变成了数字1024。但这还只是个整数 ID,不能用来做矩阵乘法。

第 2 步:查表(Lookup Table -> Vector)

这就是Embedding 层干的活。
想象有一个巨大的 Excel 表格(矩阵),名字叫Embedding Matrix

  • 这个表格有 50,000 行(对应 50,000 个词)。

  • 每一行有 512 列(假设向量维度是 512)。

当输入 ID 是1024时,计算机会直接跑到这个表格的第 1024 行,把这一行那 512 个数字复制出来。

Row 1024 = [ 0.1, −0.5, 0.9, ..., 0.2 ]

这一串数字,就是苹果🍎的向量表示

补充,你可能会问:“Embedding 表里的数字是哪来的?”

答:它们不是瞎写的,而是通过大量数据的训练得到的。举个通俗易懂的例子:

  • 一开始,Embedding 表格里全是乱填的数字。

  • 随着模型不断阅读海量文章,它慢慢学会了:为了让预测更准,我应该把“苹果”和“香蕉”的向量调整得比较像(因为它们经常出现在类似的上下文里),而把“苹果”和“卡车”的向量调整得差别很大。

二、文字的向量表示——>q、k、v的获取

有了“苹果🍎”的向量表示(下面写为“X苹果”)之后,我们就可以计算q、k、v了。

在计算之前,让我们先学习一下什么是q、k、v?

  • Q (Query):一个向量,代表“我在寻找什么”

  • K (Key):一组向量,代表“数据库里的标签”。(也就是“键”)

  • V (Value):一组向量,代表“数据库里标签对应的的实际内容”。(也就是键对应的“值”)

那么q、k、v要怎么算呢?(q、k、v的计算过程:

首先,q、k、v都是来源于同一个词,这个词(这里用于计算的是上一步得到的该词Embedding后的向量)要分别乘以三个权重矩阵(“乘法”是“矩阵乘法”):

然后就得到了q、k、v:

补充:你可能又要问了,这三个权重矩阵WQ、WK、WV是怎么来的?

同样的道理,这也是模型通过大量的数据学来的结果。(具体怎么学的,如果感兴趣的话,大家可以查查相关的资料,欢迎把你查到的结果分享在评论区!我们一起学习呀!)

三、q、k、v的获取——>Attention Weights和Attention的计算

好了!终于终于到最后一步了,胜利就在眼前!我们马上就能揭开Attention Weights和Attention的神秘面纱了!激不激动!期不期待!

Self-Attention(自注意力机制)中,它的核心是:大家互相看

也就是:

  • 我的Q,去和你的K、他的K、还有我自己的K进行计算。

  • 算出来的权重,再去乘我对应的V、你对应的V、他对应的V……

以两个词我”、“爱”为例讲解这个计算过程:

根据前两步我们的讲解,现在已经得到这两个词的q、k、v了:

此处借助一下亲爱的神经网络老师课件里的图哈(嘤嘤嘤老师如果侵权的话我会删除的):

这张图里有四个词,我们这里只有两个词,分别是 1 和 2 。

先解释图中4个词的情况(这个懂了,2个词的你也就懂了):可以看到图中是 1 发起查询(因为是1 的 q 与所有人的 k 相乘),分别得到4个 score(这个图中未直接写出),然后经过Softmax归一化之后就得到了图中的a这 4 个 a 其实就是我们想要的 Attention Weights),然后a再分别与各自的v 相乘,求和得到b(这个叫Attention或者Attention Output)。

(一)计算流程示例:

假设我们只用两个词,还是“我”、“爱”。以“我”为例,计算 b1的过程:

1.首先计算scores(分数):

score1,1 = q1 * k1

score1,2 = q1 * k2

2.经过softmax归一化后,得到Attention Weights(注意力权重):

a1,1,a1,2 = Softmax(score1,1,score1,2)

3.最后计算 Attention(注意力):

b1 = a1,1 * v1 + a1,2 * v2 ,计算结束。

(二)有了前面的这个示例,最后看——计算公式:

  • Attention Weights(上面的“a”)计算公式:

  • Attention Output(又称为“Attention”,上面的“b”)计算公式:

,即Weights * V

别被吓到了,我们把它拆解开,每一部分都对应刚才计算的步骤:

恭喜🎉👏看到这里!你已经完成全部内容的学习!!!

欢迎在评论区补充、指正!

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

UE4SS终极指南:从安装到精通Unreal Engine游戏脚本开发

UE4SS终极指南:从安装到精通Unreal Engine游戏脚本开发 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS …

作者头像 李华
网站建设 2026/5/30 20:17:23

校园外卖|基于springboot校园外卖系统(源码+数据库+文档)

校园外卖 目录 基于springboot vue校园外卖系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue校园外卖系统 一、前言 博主介绍:✌️大…

作者头像 李华
网站建设 2026/5/29 2:25:38

【MCP MS-720调试黑科技】:3款必用工具+2个关键日志分析技巧

第一章:MCP MS-720 Agent 调试工具概述MCP MS-720 Agent 是一款专为嵌入式设备远程监控与故障诊断设计的调试代理程序,广泛应用于工业自动化、边缘计算节点及物联网终端设备中。该工具通过轻量级通信协议与主控服务器交互,支持实时日志采集、…

作者头像 李华
网站建设 2026/5/30 7:45:34

【企业级图数据查询优化指南】:基于MCP DP-420的Agent调优实践

第一章:企业级图数据查询优化概述在现代企业级应用中,图数据已成为处理复杂关联关系的核心载体。随着社交网络、金融风控、知识图谱等场景对实时性和可扩展性的要求日益提升,传统查询方式难以满足毫秒级响应与高并发访问的需求。因此&#xf…

作者头像 李华
网站建设 2026/5/28 23:09:08

为什么顶尖团队都在测试MCP PL-600 Agent?:内部评测数据首次公开

第一章:MCP PL-600 Agent 功能测试概述MCP PL-600 Agent 是一款专为工业控制场景设计的通信协议代理模块,支持多通道数据采集与协议转换功能。该模块在实际部署前需经过完整的功能验证,以确保其在复杂网络环境下的稳定性与兼容性。功能测试涵…

作者头像 李华
网站建设 2026/5/29 0:28:42

针对软件外包及人才服务型上市公司的业务特性,资金管理平台的核心模块围绕资金 “收、付、管、投、控” 全流程设计,可划分为 基础支撑层、核心业务层、智能决策层、合规监管层 四大层级

针对软件外包及人才服务型上市公司的业务特性,资金管理平台的核心模块围绕资金 “收、付、管、投、控” 全流程设计,可划分为 基础支撑层、核心业务层、智能决策层、合规监管层 四大层级,各模块相互协同,覆盖资金管理核心需求。一…

作者头像 李华