ESC
输入关键词搜索文章
目录

深度注意力模型

高级机器学习 · L08
当序列太长,靠注意力重写信息流的组织方式
6核心组件
3完整推导
9课件引用
5参考来源
Part 0 · 学习目标
本节在课程中的位置

理解注意力机制为什么出现、Self-Attention 怎样工作、Transformer 如何组织信息流,以及它为什么成为大模型时代的主架构。本讲是课程从经典机器学习通向现代深度学习的最后一公里。

前置知识回顾

  • 序列模型 (RNN):知道 RNN 的基本结构和长距离依赖问题。作用:理解注意力机制要解决的核心痛点。去哪里补:L07 神经网络。
  • 线性代数:矩阵乘法、softmax。作用:Self-Attention 的计算核心就是矩阵运算。去哪里补:L02 线性模型。
  • 编码-解码架构:Seq2Seq 的基本思想。作用:Transformer 最初就是为了改进 Seq2Seq 而提出的。
Part 1 · 背景问题
RNN 的瓶颈与注意力的诞生

RNN 处理序列信息的方式是"一步一步读、一步一步记"。问题在于:信息必须经过每一步的隐状态传递才能到达远处,梯度在长路径上不断衰减。Seq2Seq 模型用一个固定长度的上下文向量 $\mathbf{c}$ 压缩整个输入序列,不管输入多长,都挤进同一个 $\mathbf{c}$ 里——这是信息瓶颈。

注意力机制的核心想法:不再压缩,而是让解码器在每一步主动选择应该看输入序列中的哪些位置。

PDFTransformer 引入p.6

机器学习/25C08_深度注意力模型.pdf · p.6

打开原文

PDFRNN 结构缺陷p.11

机器学习/25C08_深度注意力模型.pdf · p.11

打开原文

注意力的本质:不是"更聪明",而是它重写了序列中远距离信息的通信路径。从"逐级传递"变成"按内容直接寻址"。
Part 2 · 概念定义
Self-Attention 的计算步骤

Scaled Dot-Product Attention

输入序列 $\mathbf{X} \in \mathbb{R}^{n \times d}$$n$ 个 token,每个 $d$ 维)。三个线性变换:

$$Q = XW^Q, \quad K = XW^K, \quad V = XW^V$$

注意力输出:

$$\mathrm{Attention}(Q,K,V) = \mathrm{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
  • Query $Q$:当前位置在"问"什么。
  • Key $K$:每个位置的"标签"或"关键词"。
  • Value $V$:每个位置实际携带的信息。
  • $QK^T$:计算 query 与所有 key 的相似度(注意力得分)。
  • $\sqrt{d_k}$:缩放因子,防止点积过大导致 softmax 梯度消失。

Multi-Head Attention:并行运行 $h$ 组独立的 Self-Attention(各有 $Q,K,V$),拼接后线性投影。多头让模型同时关注不同类型的关系(语法、语义、位置关系等)。

PDFSelf-Attention 计算步骤p.18

机器学习/25C08_深度注意力模型.pdf · p.18

打开原文

Part 2 续 · 输入表示
词元嵌入与位置编码

Transformer 的输入需要解决两个问题:把离散 token 变成连续向量,以及告诉模型每个 token 的位置。

Token Embedding

词表 $\mathcal{V}$ 中的每个 token 映射为 $d$ 维向量。可以通过 one-hot + 矩阵乘法,或直接查表实现。嵌入矩阵在训练中与模型一起学习。

位置编码 (Positional Encoding)

Self-Attention 本身是排列不变的——打乱 token 顺序,输出只是对应重排,不影响语义。为了让模型区分位置,必须注入位置信息。Transformer 用正弦/余弦位置编码:

$$PE_{(pos, 2i)} = \sin\!\left(\frac{pos}{10000^{2i/d}}\right), \quad PE_{(pos, 2i+1)} = \cos\!\left(\frac{pos}{10000^{2i/d}}\right)$$

每个维度对应不同频率的正弦波。低维度变化快(捕捉局部位置差异),高维度变化慢(捕捉全局顺序)。

最终输入 = Token Embedding + Positional Encoding。

PDFTokenization 与 Embeddingp.15

机器学习/25C08_深度注意力模型.pdf · p.15

打开原文

PDF位置编码p.18

机器学习/25C08_深度注意力模型.pdf · p.18

打开原文

PDF位置编码公式p.18
正在渲染 PDF 第 18 页…
位置编码公式(PDF 第 18 页) · 打开原文
Part 3 · 推导与结构
Transformer 的完整架构

Transformer 由编码器和解码器堆叠而成(原始论文 6 层)。编码器每层包含:

  1. Multi-Head Self-Attention
  2. 残差连接 + Layer Normalization
  3. Feed-Forward Network(两层全连接 + ReLU)
  4. 残差连接 + Layer Normalization

解码器额外增加一个交叉注意力层:Query 来自解码器,Key/Value 来自编码器输出。这让解码器在生成每个 token 时可以参考编码器的表示。

残差连接 + LayerNorm:残差连接让梯度可以直接跳过整层传播,缓解深层网络的退化问题;LayerNorm 稳定训练,加速收敛。这两项是 Transformer 能堆到很深的关键工程组件。
PDFTransformer 整体架构p.13

机器学习/25C08_深度注意力模型.pdf · p.13

打开原文

PDF编码器结构p.14

机器学习/25C08_深度注意力模型.pdf · p.14

打开原文

Part 3 续 · 发展脉络
从 Transformer 到大模型

Transformer 提出后的发展方向:

阶段代表工作核心变化
编码器路线BERT (2018)双向注意力,预训练 + 微调
解码器路线GPT 系列 (2018–)自回归生成,规模化
编码器-解码器T5, BART文本到文本统一框架
规模化GPT-3/4, LLaMA参数量 + 数据量 + 计算量
PDFTransformer 与大模型发展p.8

机器学习/25C08_深度注意力模型.pdf · p.8

打开原文

Part 4 · 性质与比较
RNN vs Transformer
维度RNNTransformer
信息传递方式逐级传递(链式)全序列直接连接(注意力矩阵)
长距离依赖差(梯度消失)好(一步直达)
并行性差(必须串行处理)好(注意力可并行计算)
计算复杂度$O(n)$(序列长度)$O(n^2)$(序列长度的平方)
位置信息隐式(通过时间步)显式(位置编码)
Transformer 的代价$O(n^2)$ 的注意力复杂度意味着序列越长,内存和计算需求增长越快。这也是后续工作(稀疏注意力、线性注意力、Flash Attention)要解决的核心问题。
Part 5 · 例题与应用
例 1:为什么需要位置编码

例题:排列不变性的验证

题目:如果只有 Self-Attention 而没有位置编码,把输入序列 [A, B, C] 重排为 [C, A, B],输出会怎样?

  1. Self-Attention 计算 $QK^T$ 得到的是 token 之间的相似度矩阵,与顺序无关。
  2. 重排输入等价于对 $Q,K,V$ 矩阵做行置换,输出也只是对应行置换。
  3. 模型无法区分"A 在第 1 位"和"A 在第 3 位"——所有位置的信息都等价。

答案:没有位置编码,Transformer 是排列不变的。位置编码给每个位置打上唯一"坐标",让模型恢复序列结构。

易错点:别把注意力理解成只在"关键词"上加权。它本质上是一个全连接的、内容驱动的信息路由机制——每个 token 都在看所有其他 token。
Part 5 续 · 例题与应用
例 2:缩放因子的作用

例题:为什么 Attention 要除以 $\sqrt{d_k}$

题目:$d_k$ 很大时,$QK^T$ 的点积值会很大,导致 softmax 输出接近 one-hot。为什么?

  1. 点积的方差:假设 $q_i, k_i$ 独立零均值、方差 1,则点积 $s = \sum_{i=1}^{d_k} q_i k_i$ 的方差为 $d_k$
  2. $d_k = 64$:点积的典型量级为 $\sqrt{64} = 8$。softmax 输入为 $[8, -3, 5, \ldots]$ 时,输出接近 one-hot。
  3. 梯度消失:softmax 在输入极端时梯度趋近零,训练几乎停滞。
  4. 除以 $\sqrt{d_k}$:把方差拉回 1,softmax 输入保持在合理范围,梯度稳定。

答案:缩放因子 $\sqrt{d_k}$ 是对点积方差增长的补偿,防止高维空间中 softmax 饱和。

易错点:缩放因子不是超参数——它有明确的数学推导,等于 $\sqrt{d_k}$ 是因为点积方差为 $d_k$
Part 6 · 后续章节
这一讲会把后面哪些内容撑起来

后续用途 / 连接

  • 预训练与微调:BERT(编码器路线)和 GPT(解码器路线)都基于 Transformer 架构,通过大规模无监督预训练获得通用语言表示。
  • 多模态扩展:Vision Transformer (ViT) 把图像切成 patch 当作 token 序列处理,直接复用 Transformer 架构。
  • 稀疏注意力与 MoE$O(n^2)$ 复杂度的瓶颈催生了稀疏注意力(只看部分 token)和混合专家(MoE,只激活部分参数)等方向。
  • 课程主线收束:从 L01 的"什么是学习"到 L08 的"Transformer",这门课的主线从经典统计学习走到了现代深度表示学习的最前沿。

复习速查

  • Self-Attention$Q=XW^Q, K=XW^K, V=XW^V$,输出 $=\mathrm{softmax}(QK^T/\sqrt{d_k})V$
  • 多头注意力:并行 $h$ 组独立注意力,让模型同时关注不同关系类型。
  • 位置编码:正弦/余弦函数,给每个位置打上唯一"坐标"。
  • Transformer 层:Multi-Head Attention + 残差 + LayerNorm + FFN + 残差 + LayerNorm。
  • 缩放因子 $\sqrt{d_k}$:补偿点积方差增长,防止 softmax 饱和。
  • RNN → Transformer:从"逐级传递"到"全序列直接连接"。

参考来源

  • 课程课件:25C08 第 6–8 页(Transformer 引入与发展)
  • 课程课件:25C08 第 11–14 页(Seq2Seq 缺陷与 Transformer 架构)
  • 课程课件:25C08 第 15–18 页(Embedding、位置编码、Self-Attention)
  • Vaswani et al., Attention Is All You Need (2017)
  • D2L Ch. 11(http://www.d2l.ai/chapter_attention-mechanisms-and-transformers/index.html)
  • IIT Kanpur CS771 Lecture 25(https://www.cse.iitk.ac.in/users/piyush/courses/ml-autumn23/slides/Lecture-25.pdf)