当前位置: 首页 > news >正文

04 Self-Attention 详解:Q、K、V 到底在做什么?

在上一篇文章中,我们精读了 Transformer 原论文 Attention Is All You Need。Transformer 的核心思想是:不再使用 RNN 或 CNN,而是完全基于 Attention 机制构建序列建模结构。原论文提出的 Transformer 由 Encoder 和 Decoder 组成,其中最关键的模块就是 Scaled Dot-Product Attention 和 Multi-Head Attention。论文摘要中也明确指出,Transformer 是一种完全基于 attention mechanism 的网络结构,去掉了 recurrence 和 convolution,并且更容易并行训练。

一、Self-Attention 要解决什么问题?

在自然语言中,一个词的含义往往不能只看它自己,而要看上下文。

例如下面这句话:苹果发布了新的芯片,性能提升非常明显。这里的“苹果”不是水果,而是公司。

再看另一个句子:我买了一个苹果,吃起来很甜。这里的“苹果”才是水果。

同一个词,在不同上下文中含义不同。

所以语言模型必须解决一个问题:当前 token 应该根据上下文中的哪些 token 来更新自己的表示?Self-Attention 的作用就是让每个 token 都可以主动去“查看”序列中的其他 token,并根据相关程度聚合信息。

简单来说:Self-Attention = 让序列内部的 token 彼此交流信息

假设有一句话:小明 因为 考试 没考好 所以 他 很难过

模型在处理“他”这个 token 时,需要知道“他”指的是“小明”。如果是 RNN,这个信息需要从“小明”一步一步传递到“他”。而 Self-Attention 可以让“他”直接关注“小明”。

这就是 Self-Attention 的直观意义:不再依赖顺序递推,而是让任意 token 之间直接建立联系。

二、从一个句子开始理解 Self-Attention

假设输入句子是:我 喜欢 机器 学习,分词后有 4 个 token:

x1 = 我
x2 = 喜欢
x3 = 机器
x4 = 学习

经过 embedding 层后,每个 token 会变成一个向量:

这些向量可以组成一个矩阵:

假设每个 token 的 embedding 维度是​,序列长度是 n,那么:

其中:

  • n是 token 数量;
  • 是每个 token 向量的维度。

Self-Attention 要做的事情是:根据所有 token 之间的关系,为每个 token 生成一个新的上下文表示。也就是说,原来的 token 表示只包含自身信息,而经过 Self-Attention 后,每个 token 的表示都会融合其他 token 的信息。

三、为什么需要 Q、K、V?

Self-Attention 中最核心的三个概念是:

Q:Query
K:Key
V:Value

中文通常翻译为:

Query:查询
Key:键
Value:值

这三个词看起来有点抽象,可以先用一个生活化例子理解。假设你去图书馆找书。

你的需求是:我想找一本关于深度学习的书。这个需求就像 Query。图书馆中每本书都有一些标签,例如:

机器学习
深度学习
计算机视觉
自然语言处理
数学基础

这些标签就像 Key。每本书的实际内容就是 Value。你找书的过程可以理解为:

用 Query 去匹配每本书的 Key
找到最相关的书
读取这些书的 Value

对应到 Self-Attention 中:

Query:当前 token 想找什么信息
Key:每个 token 能提供什么匹配信号
Value:每个 token 真正携带的内容信息

所以 Q、K、V 的直观含义是:

符号含义直观理解
QQuery我想找什么
KKey我有什么特征可供匹配
VValue我真正要提供什么信息

注意,这只是帮助理解的比喻。在模型中,Q、K、V 并不是人工定义的,而是通过训练自动学出来的向量表示。

四、Q、K、V 是怎么生成的?

输入矩阵为:

Self-Attention 会通过三个不同的线性变换,把 XXX 映射成 Q、K、V:

http://www.jsqmd.com/news/891199/

相关文章:

  • ENVI 5.6 + COSI-Corr 地表形变分析环境搭建保姆级教程(含ENVI.cfg配置详解)
  • 如何用Real-ESRGAN实现专业级图像修复:3种简单方法让模糊照片变清晰
  • 借助taotoken解决ubuntu开发环境中大模型api密钥轮换与管理的麻烦
  • Git stash pop 深度解析:分支切换时的工作区状态精准还原
  • 国电华美车载式高压无局放,把试验室“开”到现场
  • Linux 日志系统入门:/var/log 和 journalctl 怎么排查问题?
  • OkHttp 与 RestTemplate 技术选型对比
  • 2026国内艺术涂料/艺术漆十大优选:瓷砖改色漆厂家+防脱落仿石漆厂家+外墙仿石漆/仿石涂料厂家推荐 - 栗子测评
  • 汕头闲置奢侈品变现指南:需求升温,套路暗藏?5家诚信店铺帮你安全变现 - 小仙贝贝
  • 一次通关结构体、位断、联合体和枚举这四大痛点
  • Taotoken API Key管理与访问控制功能的使用感受
  • TypeScript类型体操构建AI修心智能体生成引擎——从2300+豆包智能体到七境宇宙的类型安全实践
  • 珠海夏令营推荐:军博营地海滨研学 - 19120507004
  • 实现自己的IOC容器——Winter (一)Bean加载
  • 3步解锁ThinkPad黑苹果:让T480笔记本完美运行macOS
  • AIfES:嵌入式AI框架解析与实战,实现MCU端完整训练
  • 英雄联盟智能助手:你的排位赛数据决策专家
  • 2026年国产在线ORP仪品牌TOP10权威排行榜:技术参数、市场表现与实战选型全解析 - 水质仪表品牌排行榜
  • Steam挂刀行情站:24小时自动化交易监控系统的完整技术实现指南
  • Linux 后台任务详解:、nohup、jobs、systemd 的区别
  • 《多智能体系统实战:我用10个智能体搭建了一个自动赚钱的AI公司》
  • 别再手动改时间了!用timedatectl一条命令搞定Linux时区与NTP同步(Ubuntu/CentOS通用)
  • 2026高口碑普拉提培训机构推荐:优质机构选择指南 - 品牌2025
  • JMeter接口测试中Cookie会话保持的七步实战法
  • 记录一次claude配置知乎mcp经历
  • 佛山黄金回收行业综合实力排名TOP5,2026年5月权威测评榜单 - 生活测评君
  • 简单好用!WinRAR的三种密码保护方式
  • av1编码--编码块的预测约束条件
  • 单图扩散模型实战:多尺度与提示学习实现精准图像编辑
  • 物理生物学研究报告【20260018】