CHAPTER 01
注意力机制
早期编码器—解码器常让整段源序列通过一个固定宽度的信息接口。 注意力改变了这条通路:生成每个目标词时,模型都能按当前需要重新读取源端表示。
本章地图
先建立一条不会迷路的主线
本章不从公式起步。先看旧方法为什么受限,再理解注意力增加了哪条信息通路,最后才进入计算流程和论文历史。
先限定“注意力”的范围
本章主角是 Bahdanau 式循环编码器—解码器注意力;缩放点积只作为通往 Transformer 的桥。
| 名称 | Query 来自 | Key / Value 来自 | 本章角色 |
|---|---|---|---|
| 经典编码器—解码器注意力 | 解码器状态 | 编码器的源端状态 | 本章主线 |
| Transformer 交叉注意力 | 解码器侧表示 | 编码器输出 | 后续架构桥接 |
| 自注意力(Self-Attention) | 当前序列 | 同一序列 | 本章只辨析,不展开 |
编码器把输入汇总成表示
长句细节在固定向量中竞争
每个解码步重新读取输入
权重显示本次读取的分配
通俗地说
传统Seq2Seq像让翻译员听完整段话后合上笔记本再翻译;注意力允许他每说一句,都重新查看原文的相关位置。
类比的边界
模型不是人,也没有主动“回看”的意识。所谓查找,是一组可微分的向量打分、归一化与加权求和。
1.1 背景知识
Seq2Seq:先把变长序列变成另一个变长序列
经典Seq2Seq由编码器和解码器组成。编码器读取源序列并产生状态,解码器根据这些信息逐步生成目标序列。
1.1.1 Seq2Seq · 从英文到中文的数据流
箭头不是装饰:它们表示信息实际需要经过的路径。
Seq2Seq不是某一种网络
它是一种任务框架:把一个序列映射为另一个序列。早期常用RNN/LSTM实现编码器和解码器,后来也可以用CNN或Transformer。
编码器—解码器是职责分工
编码器负责形成源端表示;解码器在已有输出前缀的条件下,预测下一个目标符号。架构职责和具体神经网络实现要分开理解。
FROM FLOW TO FORMULA
现在再把刚才的数据流正式写下来
前面的图先回答“信息怎么走”。下面的数学只是在给这条路径命名:序列概率怎样拆开、编码器怎样更新、固定上下文怎样进入解码器,以及训练损失最终优化什么。
先定义任务:不是把整句一次性分类,而是逐步建模条件概率
对源序列 和目标序列,自回归解码器用概率链式法则把整句概率拆成一连串“下一个Token”预测:
这不是神经网络特有技巧,而是概率论的链式分解。网络的职责,是为每一个条件分布 给出可学习的参数化。
编码器把前缀信息递推到隐藏状态
在循环编码器中, 同时接收当前输入和前一状态。它不是“第 i 个词本身”,而是截至当前位置的连续表示。使用双向RNN时,常把两个方向拼接为 annotation:
固定上下文方案把全部源端信息收束到一个接口
“固定”指同一条源句在所有解码步骤共享同一个 ,并且 的宽度不会随句长增加;并不是说向量里的数值在训练过程中不变。
Sutskever 等人的 2014 模型用一个 LSTM 产生固定维度向量,再用第二个 LSTM 生成输出。 具体实现可以通过初始化状态、持续条件输入或其他接口承载条件;上式是通用抽象,不是唯一历史实现。
训练目标把正确译文的概率推高
训练时常把真实的前一个目标Token 输入解码器,这叫 Teacher Forcing;推理时真实后缀不存在,只能把模型自己的上一步输出喂回去。因此,训练和生成使用的是同一组参数,却处在不同的输入分布中。
1.2 技术挑战
真正的问题不只是“句子太长”
固定压缩、对齐、依赖路径和计算方式相互牵连。下面把书中的五个小节放进同一张因果图里。
生成“猫”时,源句哪个位置提供主要信息?
相关词相隔很远时,信息要走多长的路径?
扩大感受野,换来更多层或更宽卷积。
通过状态接力保留顺序,但路径随距离增长。
一个固定向量难以同时保留全部细节。
交互演示一:两个位置相隔多远,结构路径有多长?
这是依赖路径的结构示意,不是实际运行时间基准。
像接力传话:一步一步把状态传下去
- 并行性
- 单序列时间轴串行;batch 可并行
- 优势
- 天然表达顺序,适合流式序列
- 代价
- 距离越远,信息与梯度要经过越多次状态变换
CNN不是“看不到远处”,而是要扩展感受野
对步长为1、无膨胀、卷积核宽度为 的一维卷积,堆叠 层后的理论感受野为:
若第 层的膨胀率是 ,则。让膨胀率按 增长,可以用较少层覆盖很长范围,但具体信息仍要经过多层变换。
一个具体数值
当 、:
四层普通卷积只能让一个位置理论上接触9个连续位置;这解释了为什么卷积方案需要更深、膨胀或更宽的核。
深入:为什么“距离远”会成为优化问题?
早期位置 若要影响最终摘要 ,梯度必须穿过后续每一次状态更新。按链式法则:
梯度消失
若每个雅可比矩阵的算子范数大致不超过 ,则有上界。 距离指数增加时,早期位置收到的学习信号会迅速变弱。
梯度爆炸
若多个方向持续放大,矩阵乘积可能快速增长,导致训练不稳定。梯度裁剪能限制数值,LSTM门控能建立更平滑的记忆通路,但都没有把两个远位置间的计算图路径变成一步。
固定压缩与梯度问题不是同一个概念
梯度问题描述“训练信号怎样传播”;固定瓶颈描述“所有源信息必须通过哪个接口”。即使优化完全稳定,一个固定宽度的 仍要同时服务所有目标步骤。注意力首先改变的是第二件事:让解码器直接访问整组。
1.3 原理、结构、流程与效果
注意力增加了一条“按当前需要读取源端”的通路
模型每生成一个目标词,都重新询问一次:“源句中哪些位置对我现在最有用?”先观察这种动态读取怎样变化,再进入它的数学实现。
每个输出步骤按当前需要,动态选择源端信息。
需求表示、可匹配索引与实际内容共同完成读取。
打分 → Softmax → 加权求和 → 生成。
缓解固定压缩瓶颈,并提供更短的信息访问路径。
交互演示二:目标词改变时,读取权重怎样移动?
教学合成数据:人工分数只用于观察 Softmax 和动态读取,不是模型实测。
| 源位置 i | 对齐分数 eₜᵢ | exp(e − max) | 权重 αₜᵢ | 在context中的角色 |
|---|---|---|---|---|
| The | 0.3 | 0.030 | 0.026 | αₜᵢ · hᵢ |
| black | 1.0 | 0.061 | 0.053 | αₜᵢ · hᵢ |
| cat | 3.8 | 1.000 | 0.867 | αₜᵢ · hᵢ |
| sat | 0.3 | 0.030 | 0.026 | αₜᵢ · hᵢ |
| on | -0.8 | 0.010 | 0.009 | αₜᵢ · hᵢ |
| the | -0.5 | 0.014 | 0.012 | αₜᵢ · hᵢ |
| mat | -0.9 | 0.009 | 0.008 | αₜᵢ · hᵢ |
教学合成数据 · 人工设定分数,不是论文实验或线上模型输出;权重在舍入误差内和为 1。
FROM OBSERVATION TO MECHANISM
现在解释:这些连线究竟怎样被算出来
刚才看到的变化不是预先写好的词典对齐,而是由当前解码状态和每个源端表示共同计算。下面才引入变量、形状和四步公式,并让每一个符号对应刚才图中的对象。
把解码需求和源端表示投影到同一个“匹配空间”
下面采用常见的含偏置实现写法。Bahdanau 原论文展示式未显式包含偏置 ;加入它是常见实现扩展,不改变“投影相加—非线性—压成标量”的结构。
| 对象 | 形状 | 作用 |
|---|---|---|
| 当前解码需求 | ||
| 第 i 个源位置表示 | ||
| 把解码状态投影到匹配空间 | ||
| 把源端状态投影到匹配空间 | ||
| 常见实现中的匹配空间偏置 | ||
| 非线性前的联合匹配表示 | ||
| 把匹配表示压成标量 | ||
| 未归一化对齐分数 | ||
| 在有效源位置上归一化的权重 | ||
| 源端Value的加权和 |
和 可能维度不同,不能直接逐元素比较。 与 把它们映射到共同的 维空间; 允许非线性交互; 再把匹配表示压成一个标量分数。
分数 可以为负,也不要求总和为1。它只是可比较的logit,还不是“读取比例”。
Softmax把相对分差变成读取分配
所有分数同时减去同一个常数不会改变Softmax,因为分子分母会约掉同一倍数;选择最大值只是为了避免 溢出。Softmax真正保留的是分数差,而不是绝对大小。
对 padding 位置先加入 mask,再只沿有效源位置集合 归一化;这些无效位置最终权重为 0。
上下文向量是Value的加权混合
当Value就是 时, 与每个 维度相同。由于权重非负且和为1,它是这些表示的凸组合:通常位于源端表示张成的凸包内,而不是把最高权重位置原样复制出来。
解码器把本次读取结果用于状态更新和输出
不同实现会在更新状态之前或之后计算注意力,也可能改变拼接位置。阅读源码时,不应只搜索类名 Attention,而应沿张量流确认 。
从单步公式走到真实批量张量原理深挖 · 广播、mask、Softmax 轴与 bmm
设 batch、目标长度、源长度分别为 ,匹配空间维度为 。先分别投影目标状态和源端状态:
加性 mask 在数学上让有效位置取 0、padding 位置取 ; 必须先加 mask,再沿源轴做 Softmax:
| 张量 | 形状 | 含义 |
|---|---|---|
| 按顺序产生的目标状态的记号堆叠 | ||
| 编码器源端状态 | ||
| 目标状态投影 | ||
| 源端状态投影 | ||
| 广播后的匹配表示 | ||
| 未归一化分数 | ||
| 源端 padding mask,可广播 | ||
| 沿源轴归一化的权重 | ||
| 每个目标位置的上下文 |
这里的 只是把依次得到的 堆叠起来方便写形状; 它不表示经典 RNN 解码器能沿目标轴 并行。实现也可以逐目标步算,并避免显式物化完整四维 。
完整数值算例:从状态一直算到输出概率
为了能手工追踪,下面故意使用两个源位置、二维向量和单位投影;真实模型维度更高,但计算顺序相同。
给定解码状态、源端表示和参数
计算两个源位置的加性注意力分数
第二个位置分数更高,不是因为它永久“更重要”,而是当前状态 与它经过共同投影后的匹配结果更大。
Softmax得到读取比例
Softmax依赖分差 。较低分位置仍保留31.8%的贡献,所以这是软读取,不是二选一。
对Value加权求和
观察Context怎样改变输出分布
这个玩具输出头故意只使用 ,以隔离注意力的影响;真实解码器通常同时使用、上一Token表示和 。因此,注意力权重不能单独等同于最终词概率。
为什么软对齐能端到端学出来?
关键不是权重“看起来像概率”,而是从损失到分数的每一步都可导。Softmax的雅可比元素为:
当 时,导数为 ;当 时为 。提高一个位置的权重会相对压低其他位置,这正符合“总和保持为1”的约束。
指出目标词概率偏低
把误差信号分到各Value
调整下次的匹配与权重
梯度有两条主要路径
- Value路径:损失通过 直接影响被加权的编码器表示。
- Score路径:损失通过 调整投影矩阵和打分向量。
如果Softmax极度饱和,很多权重接近0或1,上式中的部分导数也会很小。这说明注意力“可导”不等于任何初始化和数据条件下都容易训练。
完整数值反传:损失怎样改动权重、参数与源状态原理深挖 · 默认展开损失到 score 的主链
沿用上面的玩具例子。Softmax 与交叉熵合并后,输出 logit 梯度可直接写成:
因为 ,先把误差信号投向两个权重:
。这与 Softmax 对全部 logits 同时平移不变相一致; 第二项为负,表示梯度下降会提高 。
继续查看打分参数的全部梯度
查看每个源端状态的两条梯度路径
Value 直接路径:
Score 间接路径:
“可微”只说明梯度能沿计算图传播;Softmax 高度饱和时,许多导数仍可能接近零,训练还受初始化、表示质量、数据和优化器影响。
并行性与复杂度:先说清是哪一种注意力原理深挖 · 展开可查完整符号和工程代价
经典加性注意力为 个目标步骤和 个源位置形成 个分数。只计匹配空间核心逐元素操作,粗略计算量和分数存储分别为:
同一个目标步骤内,源轴 的打分可并行;但循环状态 依赖 ,所以目标轴仍串行。 Transformer 自注意力才在单个长度 的序列中形成 分数矩阵:
- 投影矩阵乘法另有成本,是否预计算源投影会影响实际开销。
- padding 必须在 Softmax 前屏蔽,否则无效位置会分走概率质量。
- 混合精度下要注意极大负 mask、Softmax 溢出和 dtype 转换。
- 交叉注意力不自动消除自回归生成的目标侧串行性。
它直接改变了什么
- 每个目标步骤都有不同的上下文,不再只共享一个永久固定摘要。
- 解码器获得到任一源表示的直接读取边。
- 软对齐可由翻译损失端到端共同训练。
- 权重矩阵留下本次信息汇总的可观察记录。
它没有自动解决什么
- 不提供无限记忆,也不保证长关系一定学对。
- Bahdanau 注意力没有取消循环解码器的串行性。
- 全局比较仍有随序列长度增长的计算和存储成本。
- 高权重不等于复制该 token,更不等于完整因果解释。
图书馆类比
Query像检索需求,Key像目录索引,Value像书中内容。相关性决定“借阅比例”,加权结果形成context。
类比的边界
早期Bahdanau注意力并不使用后来Transformer中标准化的Q/K/V线性投影。这里借用检索角色帮助建立直觉,不混同具体公式。
常见误解:注意力权重不自动等于完整解释
权重准确描述这次加权读取的归一化系数,但最终预测还取决于隐藏表示、Value内容、解码器状态和后续变换。 它可以作为诊断证据;若要提出解释性结论,还必须说明比较基线、干预方法、层/头聚合方式和预测稳定性。Jain 与 Wallace(2019)和 Wiegreffe 与 Pinter(2019)应成对阅读,不能把争议压成新的绝对结论。
1.4 限定时间线
从神经机器翻译注意力到 Transformer
技术演进不是突然出现一个万能公式,而是信息通路一步步改变。
编码器最后状态承担整句摘要;证明端到端序列映射可行。
解码器每一步动态计算源位置权重,缓解固定向量瓶颈。
统一讨论global/local attention及dot、general、concat等打分。
用自注意力与交叉注意力替代循环主干,注意力从辅助模块变成架构中心。
从加性注意力走向缩放点积
| 方法 | 打分 | 结构含义 |
|---|---|---|
| Bahdanau Additive | 先投影、非线性交互,再压成标量 | |
| Luong Dot | 维度相同后直接内积,计算简单 | |
| Luong General | 在点积前学习一个线性变换 | |
| Scaled Dot Product | 控制高维点积的数值尺度 |
为什么Transformer要除以 ?
这是近似尺度分析:假设 Query 与 Key 各维零均值、单位方差,并且乘积项之间近似独立或至少不相关。点积是 个乘积之和:
因而点积的标准差约为 。维度越高,未缩放logit越容易幅度过大,使Softmax接近one-hot并进入低梯度区域。除以 后,方差重新约为1,训练尺度更稳定。这不是为了让权重和为1——Softmax本来就负责归一化。
历史叙述提醒
“为了解决某问题,所以研究者设计了某结构”常常是便于理解的事后重构。除非论文或作者材料明确说明,我们会把设计动机标记为教学推导,而不是历史事实。
论文与源码地图
读原始证据,不把链接堆成收藏夹
首要论文按“支持什么结论、应该读哪里、出版记录是什么”组织;源码固定到提交和核心文件,避免主分支漂移。
Sequence to Sequence Learning with Neural Networks
- 支持结论
- 固定维度向量连接两个 LSTM;源句反转缩短部分依赖。
- 建议阅读
- Abstract、Figure 1、Section 2 与源句反转说明。
- DOI 口径
- 会议出版页未提供 DOI;arXiv 记录 DOI 不是会议 DOI
Neural Machine Translation by Jointly Learning to Align and Translate
- 支持结论
- 固定长度向量的潜在瓶颈;可微软搜索、上下文和双向 annotation。
- 建议阅读
- Sections 2、3.1,Figures 1、3,Appendix A。
- DOI 口径
- ICLR 归档未提供会议 DOI;arXiv 记录 DOI 单列
Effective Approaches to Attention-based Neural Machine Translation
- 支持结论
- global/local attention 与 dot、general、concat 等打分函数。
- 建议阅读
- Figure 2、Sections 3.1—3.3 与 score function 表。
- DOI 口径
- 10.18653/v1/D15-1166
Attention Is All You Need
- 支持结论
- 缩放点积、自注意力/交叉注意力与 Table 1 的路径、并行和复杂度比较。
- 建议阅读
- Sections 2—3,尤其 3.2;Table 1。
- DOI 口径
- 会议出版页未提供 DOI;arXiv 记录 DOI 不是会议 DOI
扩展论文 · 6 篇参考资料 · 长路径、卷积与解释性争议
源码证据地图 · 7 组固定提交、核心文件、许可证与身份边界
核查日期:2026-09-01。本站只链接、摘要和重绘机制图;源码许可证不等于论文插图可直接复制。
知识回顾与阅读笔记
把整章收束成一条可回查的脉络
这里不设置题目、评分或打卡;保留可检索的判断、术语、误解边界,以及继续核对纸书与论文时的个人记录。
五个常见误解参考资料 · 用边界替代口号
权重相对于特定 Query、层、头、参数和 mask 定义,描述的是本次加权汇总。
上下文通常混合多个 Value,最终输出还依赖解码状态和后续变换。
短访问路径不保证关系一定学对,长序列仍有计算、显存、优化和数据难题。
Seq2Seq 是条件建模框架;固定最后状态只是某些早期实现的接口。
二者共享相关性加权读取,但打分、参数化、并行轴和架构角色不同。
本章术语表参考资料 · 中文、英文与严格含义
从一个序列条件建模另一个序列的任务或框架
供解码器读取的源位置连续表示,不是原始 token
Query 与某源位置的未归一化匹配标量
分数经有效源位置 Softmax 后的读取系数
Value 按注意力权重形成的加权和
连续、可微的多位置权重分配
Query 与 Key / Value 来自不同表示集合
Query、Key、Value 来自同一序列表示
固定压缩让全句信息竞争同一接口;循环网络的长路径还会带来雅可比矩阵连续相乘。
解码状态和源端表示先投影到共同匹配空间,再得到每个源位置的对齐logit。
Softmax保留相对分差并产生和为1的权重,Context是Value表示的凸组合。
预测损失同时通过Value直接路径和Score间接路径更新编码器与对齐参数。
加性、点积和缩放点积共享相关性读取思想,但参数化和数值尺度不同。
短访问路径不等于无限记忆;注意力权重也不能单独代表最终决策因果。
与后续章节的接口
自注意力、交叉注意力、残差与 FFN 怎样组合
两侧状态来源与信息接口
teacher forcing、自回归和损失归约
Q/K/V、mask 与多头形状
中间分数矩阵为何成为显存瓶颈
原书核对状态
当前只确认公开目录中的 1.1—1.4 及子项。原书对 Seq2Seq、CNN/RNN 路径、公式次序、历史节点和术语的具体表述仍待纸书到手后逐页核对。本站内容依据公开论文和源码独立编写,不是原书正文复刻。
我的第1章笔记
只保存在当前设备,适合记录自己的类比、疑问和纸书页码。