一、引言:从CNN到自注意力

在学习完卷积神经网络(CNN)后,我们进入另一个重要的深度学习架构——自注意力机制(Self-Attention Mechanism)。与CNN主要处理固定尺寸的图像不同,自注意力模型擅长处理变长的向量序列输入,这使其在自然语言处理(NLP)、语音识别、图神经网络等领域大放异彩。


二、输入为向量序列的三大任务类型

自注意力适用于以下三类典型任务:

1. 类型1:输入与输出数量相同(序列标注)

  • 每个输入向量对应一个输出标签。
  • 应用示例:
    • 词性标注(POS Tagging):判断每个词是名词、动词等。
    • 音素识别:每帧语音对应一个音标。
    • 社交网络节点分类:预测每个用户是否会购买某商品。

⚠️ 全连接网络无法解决上下文歧义问题(如 “I saw a saw” 中两个 “saw” 词性不同)。

2. 类型2:整个序列 → 单个标签(分类任务)

  • 整个序列只输出一个结果。
  • 应用示例:
    • 情感分析:判断一段话是正面还是负面。
    • 说话人识别:判断语音是谁说的。
    • 分子性质预测:如亲水性。

3. 类型3:序列到序列(Seq2Seq)

  • 输入长度 N,输出长度 N′(由模型决定)。
  • 应用示例:
    • 机器翻译
    • 语音识别(ASR)

本章重点讲解类型1,因其最能体现自注意力的核心思想。


三、自注意力机制原理

核心思想

让每个位置的输出都“看到”整个输入序列,并根据相关性加权聚合信息。

运作流程(以生成 b₁ 为例)

  1. Query-Key-Value(QKV)映射
    对每个输入向量 ( a_i ):

    • ( q_i = W_q a_i ) (查询 Query)
    • ( k_i = W_k a_i ) (键 Key)
    • ( v_i = W_v a_i ) (值 Value)
  2. 计算注意力分数(Attention Scores)
    用点积衡量相关性:[ \alpha_{1,j} = q_1^\top k_j ]

  3. Softmax 归一化
    [ \alpha'{1,j} = \frac{\exp(\alpha{1,j})}{\sum_k \exp(\alpha_{1,k})} ]

    注:Softmax 非必需,ReLU 等也可尝试。

  4. 加权求和得到输出
    [ b_1 = \sum_j \alpha'_{1,j} v_j ]

矩阵视角(高效实现)

  • 输入矩阵 ( I = [a_1, a_2, ..., a_n] )
  • 计算:
    • ( Q = I W_q ), ( K = I W_k ), ( V = I W_v )
    • 注意力矩阵:( A = Q K^\top )
    • 归一化:( A' = \text{softmax}(A) )
    • 输出:( O = A' V )

可学习参数仅三个矩阵:( W_q, W_k, W_v )


四、多头自注意力(Multi-Head Self-Attention)

动机

单一注意力头可能只能捕捉一种相关性(如语法关系),但语言中存在多种关系(语义、指代、时序等)。

实现

  • 将 Q、K、V 分别投影到多个“头”:
    • ( q_i^{(h)} = W_q^{(h)} a_i )(第 h 个头)
  • 每个头独立计算注意力 → 得到( b_i^{(h)} )
  • 拼接所有头的输出并线性变换:[ b_i = W_o [b_i^{(1)}; b_i^{(2)}; ...; b_i^{(H)}] ]

🌟 Transformer 默认使用 8 或 16 个头。


五、位置编码(Positional Encoding)

问题

自注意力本身不具备顺序感知能力——交换输入顺序,输出不变。

解决方案

  • 为每个位置 ( i ) 添加位置向量 ( e_i )[ \tilde{a}_i = a_i + e_i ]

经典方法(Transformer 原始设计)

使用正弦/余弦函数生成:[ e_i^{(2k)} = \sin\left(\frac{i}{10000^{2k/d}}\right), \quad e_i^{(2k+1)} = \cos\left(\frac{i}{10000^{2k/d}}\right) ]

🔍 位置编码也可学习(如 ALiBi、RoPE 等新方法)。


六、截断自注意力(Truncated Self-Attention)

背景

语音等任务中序列极长(如 1 秒 = 100 帧),标准自注意力复杂度 ( O(L^2) ) 难以承受。

改进

  • 限制注意力范围:只计算局部窗口内的注意力(如前后 50 帧)。
  • 降低计算量和内存占用,适合实时系统。

七、与其他模型对比

1. vs 卷积神经网络(CNN)

特性CNN自注意力
感受野固定(人工设定)动态(数据驱动)
全局依赖弱(需堆叠多层)强(单层即可)
数据效率高(适合小数据)低(需大数据防过拟合)

📌 CNN 是自注意力的特例(当注意力只关注局部且权重共享时)。

2. vs 循环神经网络(RNN)

特性RNN自注意力
并行性❌ 串行计算✅ 完全并行
长程依赖易遗忘(梯度消失)直接建模(“天涯若比邻”)
双向处理需 Bi-RNN天然双向

💡 现代架构(如 Conformer)常结合 CNN + 自注意力,兼顾局部与全局。


当然可以!以下是将你提供的关于 MAE 与多头自注意力结合 的内容,以“思考章节”的形式,自然融入前文学习笔记后的完整版本。新增部分位于“八、应用场景扩展”之后、“九、总结与思考”之前,标题为:


八、思考:掩码自编码器(MAE)中的多头自注意力实现

在理解了多头自注意力的基本原理后,我们不妨深入一个前沿应用——掩码自编码器(Masked Autoencoders, MAE),来具体看看 MHSA 是如何在实际模型中高效运作的。

MAE 的核心思想回顾

MAE 是一种高效的视觉自监督学习方法,其流程简洁而强大:

  1. 高比例掩码:将图像划分为若干 patch 后,随机遮盖掉高达 75% 的 patch。
  2. 编码器仅处理可见 patch:这是 MAE 高效的关键——编码器“看不见”被遮盖的部分,只对剩余 25% 的可见 token 进行编码。
  3. 解码器重建全图:将编码结果与可学习的 mask tokens 拼接,由轻量级解码器尝试重建原始像素。

这种设计不仅大幅降低计算开销,还迫使模型学习更强的上下文推理能力。

多头自注意力在 MAE 编码器中的具体实现

MAE 的编码器本质上是一个 Vision Transformer(ViT),其核心正是多头自注意力机制。但与标准 ViT 不同,MHSA 在 MAE 中作用于一个被“压缩”的输入序列上

1. 输入准备:稀疏但有序的 token 序列
  • 假设原图有 (N) 个 patch,掩码后仅剩 (M = N/4) 个可见 patch。
  • 每个可见 patch 经线性嵌入并加上对应的位置编码,形成输入序列 (z_{\text{input}} \in \mathbb{R}^{M \times D})。
  • 关键点:该序列长度仅为原长的 1/4,且保留了空间位置信息。
2. 多头自注意力的执行流程(完全标准)

尽管输入变短,但 MHSA 的内部计算逻辑不变:

  • QKV 投影(Q, K, V = z_{\text{input}} W_Q, z_{\text{input}} W_K, z_{\text{input}} W_V)
  • 多头拆分:将 Q、K、V 拆分为 (h) 个头,每头维度 (d = D/h)
  • 并行注意力计算(对每个头 (i)):[ \text{head}_i = \text{Softmax}\left(\frac{Q_i K_i^\top}{\sqrt{d}}\right) V_i ] 此处的注意力矩阵大小为 (M \times M),远小于标准 ViT 的 (N \times N)。
  • 头合并与输出投影:拼接所有头并乘以 (W_O),得到最终输出。
3. MAE 中 MHSA 的独特优势
特性说明
计算高效复杂度从 (O(N^2)) 降至 (O((0.25N)^2) = O(N^2/16)),提速显著。
上下文推理挑战每个可见 token 只能与其他可见 token 交互,必须通过稀疏线索推断全局结构,从而学到更鲁棒的表征。
位置编码不可或缺由于输入是无序集合,位置编码为 MHSA 提供了空间拓扑信息,对重建至关重要。

启示:模块不变,范式革新

值得注意的是,MAE 并未修改 MHSA 的内部结构,而是通过改变其输入方式(高比例掩码 + 仅编码可见部分),创造出一种强大的自监督学习范式。这体现了深度学习中一个深刻思想:

优秀的架构(如 MHSA)具有极强的通用性,而创新往往来自于如何巧妙地使用它,而非一味地修改它。

多头自注意力在此扮演了“上下文推理引擎”的角色:多个注意力头从不同语义角度(如局部纹理、全局布局、边缘连续性等)协同工作,使得模型能够仅凭 25% 的碎片信息,“脑补”出完整的视觉世界。这种能力正是 MAE 能在下游任务中取得优异性能的根本原因。


九、总结

  • 自注意力优势:灵活建模长程依赖、完全并行、统一架构。
  • 挑战:计算复杂度高、小数据易过拟合、位置信息需额外处理。

📘 正如《Attention Is All You Need》所启示:注意力机制,或许真是AI理解世界的关键火种。

更多推荐