陈千语自注意力机制通俗详解
时间:2026-07-25 | 作者:318050 | 阅读:01. 注意力机制 Attention
先说说帝江号最近新来的干员汤汤吧。她的能力值怎么算?
原本团队里已经有不少干员。能力值根据力量属性来定,和力量值有明确的对应关系。
现在汤汤的力量是207。那她的能力值该怎么算?
塔卫二的守护者、巴别塔恶灵意志的传承者——管理员自有办法。既然汤汤的力量是207,管理员就把她的力量和已有干员的力量做相关度系数计算。然后,把每个干员的能力值乘以对应的系数,再加起来,就得到了汤汤的能力值。
但干员不止有力量,还有智力。光靠力量评估能力值,干员们可不服气。于是管理员重新基于力量和智力,给所有干员评了新的能力值。
已知汤汤力量207、智力289。重新算相关度系数,加权求和,又得到一个新的能力值。
后来游戏版本更新到3.0,干员属性扩展到12288个。这时候要算汤汤的能力值,就得参考所有干员的情况。哪个干员的属性和汤汤最像,参考的比重就越大。
把更多注意力放在属性相似的干员身上,这就是注意力机制的核心。
2. 自注意力机制 Self-Attention
团队交流与属性更新
现在管理员手下有50个干员,每个干员都有12288个属性。这50个干员的属性可以排成一个矩阵。
管理员觉得,既然大家是一个Team,得多交流切磋。每个干员都要从自己的角度判断,对其他干员该投入多少注意力。注意力越高的干员,就越该从对方身上学点属性。
陈千语问怎么判断注意力高低?管理员说,当然是跟属性更相似的干员多学点。
当每个干员都按这个规则更新属性后,所有干员的属性都会发生变化。下图展示了汤汤的变化过程。
三个核心矩阵
按这个流程,50个干员都能得到更新后的属性。但问题来了:终末地里有不同副本,干员的属性在不同副本里应该不一样。所以,干员间的注意力需要和他们在不同副本里的属性相似度关联。于是管理员通过神经网络学习了三个矩阵。
- 第一个矩阵 W:把干员的12288维属性线性变换到“影拓丰碑副本”里的12288维属性,这叫q属性。
- 第二个矩阵 W:把干员属性变换到“协议空间副本”里的属性,这叫k属性。
- 第三个矩阵 W:把干员属性变换到“密境行者副本”里的属性,这叫v属性。
现在重新看看汤汤的属性变化过程。
按这个流程,50个干员都能得到更新后的属性。
把50个干员的q属性(查询向量)拼起来,得到一个50×12288的Q矩阵。把k属性(键向量)拼起来得到K矩阵。把v属性(值向量)拼起来得到V矩阵。
自注意力机制,就是组内每个干员用自己在不同副本里的属性,去和组内其他干员的对应属性算相关度系数。系数越高,注意力越集中,学习到的属性也越多。
3. 多头自注意力机制 Multi-head Self Attention
引入多组矩阵
版本更新多次后,管理员觉得之前的W、W、W不够用了。每个版本都有不同的副本,干员的属性应该根据版本变化灵活调整。
聪明的管理员想到了办法:准备多组W、W、W。现在更新了96个版本,所以管理员通过神经网络学习了96组这样的矩阵。
而且,他还把矩阵的维度从12288×12288降到了12288×128。这样计算相关度系数时,能大大减少计算量。
计算过程与优势
引入96组12288×128的矩阵后,再看看汤汤的属性变化过程。
因为矩阵维度变成了12288×128,每个版本得到的属性向量只有128维。但有96个版本,把96个版本的结果拼起来,就能还原回12288维。
最后再通过一个12288×12288的W矩阵做线性变换,就得到汤汤更新后的12288维属性。
这就是多头自注意力机制:在自注意力的基础上,把一组W、W、W扩展成多组。让干员的属性在不同版本的不同副本里都能计算相关度,最终的属性里包含了其他干员在多种副本环境下的信息。
4. 公式补充
自注意力机制的基本原理
自注意力机制常用于自然语言处理,用来计算一段文字中一个词对另一个词的依赖关系,让每个词聚合上下文信息。
假设一段文字经过Tokenization、Embedding和Positional Encoding后,每个Token都表示成一个向量 x。所有Token的向量集合为 {x ∈ },其中 t 是Token个数,d 是向量维度。
自注意力机制中有三个元素:查询 q、键 k、值 v。它们通过输入向量 x 与三个矩阵 W、W、W 的线性变换得到:
- x W = q
- x W = k
- x W = v
其中 W ∈ ×, W ∈ ×, W ∈ ×,得到的 q ∈ , k ∈ , v ∈ 。
计算匹配分数与相关系数
要计算第 i 个Token聚合上下文后的结果,先让 q 与所有 k 做点积得到匹配分数:
- q · k
- q · k
- ...
- q · k
然后缩放:
- q · k / √d
- q · k / √d
- ...
- q · k / √d
接着做Softmax得到相关系数:
- e^(q·k/√d) / Σ e^(q·k/√d)
- e^(q·k/√d) / Σ e^(q·k/√d)
- ...
- e^(q·k/√d) / Σ e^(q·k/√d)
加权求和与最终公式
最后将相关系数与对应的 v 加权求和,得到第 i 个Token聚合上下文后的向量 z:
z = (e^(q·k/√d) / Σ e^(q·k/√d)) v + (e^(q·k/√d) / Σ e^(q·k/√d)) v + ... + (e^(q·k/√d) / Σ e^(q·k/√d)) v
上面的计算过程对应一个简洁的公式:
Z = Attention(Q, K, V) = Softmax(QK / √d) V
多头自注意力机制的公式
引入多头自注意力机制后,第 i 个Token的向量 x 需要经过 N 组 W、W、W 线性变换到 N 个不同的表示子空间。然后分别计算得到 N 组 Z = {z ∈ }。
将这 N 组 Z 首尾拼接,得到 {z ∈ ^(N)}。最后再通过一个 W ∈ ^(N×) 做线性变换,得到最终输出。这样,每个位置的Token就聚合了不同表示子空间中的上下文信息。
来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 平板专用Windows10系统最新版下载地址与安装教程
- 时间:2026-07-25
-
- U盘重装系统详细步骤教程
- 时间:2026-07-25
-
- Windows 7纯净版原版官方免费下载
- 时间:2026-07-25
-
- 解决99%AirPods问题,快速重置方法
- 时间:2026-07-25
-
- 万能省电王隐私协议查看步骤
- 时间:2026-07-25
-
- 显卡DirectDraw不兼容导致图像系统初始化失败的解决方法
- 时间:2026-07-25
-
- LangChain框架入门18:十分钟带你搞定LLM工具调用完全教程
- 时间:2026-07-25
-
- iPhone出厂日期查询方法
- 时间:2026-07-25
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- iOS 13.5.1电池续航差是电池耗电问题吗
- 时间:2026-07-25
-
- 苹果教育优惠开启 附购买攻略
- 时间:2026-07-25
-
- 苹果iOS 14 beta 2 测试版主要更新内容:除细节变化外修复多项Bug
- 时间:2026-07-25
-
- iOS 14 beta 2 是否解决内存占用过多问题?
- 时间:2026-07-25
-
- 受欢迎的奥特曼游戏有哪些
- 时间:2026-07-25
-
- iOS 14信息应用5大更新变化
- 时间:2026-07-25
-
- iOS 14正式版上线时间公布 官方全新介绍
- 时间:2026-07-25
-
- 最新苹果iOS 14 Beta 2版本更新内容全解析与升级教程
- 时间:2026-07-25