注意力的进化:从"看哪里"到"理解一切"

从Nadaraya-Watson核回归到Native Sparse Attention —— 工业AI视角的技术全景

SAM课题组组会分享 | 2026年5月

目录

  1. Attention之前的世界:RNN与CNN各自的困局
  2. 数学本源:从Nadaraya-Watson核回归到注意力机制
  3. Self-Attention与Transformer:架构革命
  4. 稀疏注意力:打破O(n²)的根本性突破
  5. 注意力机制的工程优化与架构变体
  6. 工业AI中的注意力:从理论到落地
01

Attention之前的世界:RNN与CNN各自的困局

在注意力机制统治一切之前,2010年代的深度学习有两条主要的序列建模路线:循环网络(RNN家族)和卷积网络(1D-CNN家族)。它们各有优势,但也各有致命缺陷。理解这些缺陷,才能真正理解注意力机制为什么是"必然"而非"偶然"的发明。

1.1 RNN家族:优雅的递归与残酷的现实

基本思想

RNN的核心假设极其自然:序列有先后顺序,当前时刻的状态应该由"过去所有信息的总结"和"当前输入"共同决定。数学上:

ht = f(Wh ht-1 + Wx xt + b)
RNN的核心递推公式 —— ht是t时刻的隐状态,承载了"对过去所有信息的记忆"

三重困境

困境一:梯度消失/爆炸。反向传播时,梯度需要沿时间步逐步回传。对于长度为T的序列,梯度中会出现连乘项 ∏t Wh,当Wh的最大特征值<1时梯度指数衰减(消失),>1时指数增长(爆炸)。LSTM (1997) 通过门控机制和cell state的加法路径缓解了消失问题,但并没有从根本上解决——当序列长度达到数百步时,LSTM的记忆能力依然会显著下降。

困境二:信息瓶颈。在经典的Seq2Seq架构(Sutskever et al., 2014)中,Encoder将整个源序列压缩为一个固定长度的向量(最后一个隐状态),Decoder从这个单一向量出发生成目标序列。当源序列很长时,这个固定向量根本无法承载所有信息——这就是后来Bahdanau引入注意力的直接动机。

Seq2Seq的信息瓶颈:所有源信息被压缩到一个向量中
h₁ h₂ h₃ ... hT context = hT s₁ s₂ s₃ Encoder Decoder 瓶颈! 无论源序列多长 都压成同一维度的向量

困境三:无法并行。ht的计算依赖ht-1,这意味着T个时间步必须严格串行计算。在GPU时代,这直接限制了训练速度和可扩展性。一个长度为1000的序列,RNN需要1000步串行计算;而后来的Transformer只需要1步矩阵乘法(当然代价是O(n²)的内存)。

深入:为什么LSTM没有根本解决问题?

LSTM引入了cell state ct,通过遗忘门和输入门控制信息的保留与写入。cell state的更新是加法形式(ct = ft ⊙ ct-1 + it ⊙ gt),这使得梯度可以沿cell state"高速公路"传播,不再受连乘的影响。但问题在于:(1)遗忘门ft通常不会恒为1,信息仍然会随时间衰减;(2)cell state的维度是固定的,长序列中早期信息在"带宽"竞争中必然被挤出;(3)串行依赖没有解决。实验表明LSTM在序列长度超过200-500时性能明显下降。

1.2 CNN家族:并行的代价是局部性

用卷积处理序列的尝试

2015-2017年间,为了解决RNN的并行性问题,研究者尝试用一维卷积来处理序列任务。代表工作包括:

CNN的根本限制

限制一:感受野受限于深度。卷积核大小为k的单层卷积只能看到k个相邻位置。要捕获距离为d的依赖关系,需要至少 d/k 层(普通卷积)或 log2(d) 层(膨胀卷积)。WaveNet为了覆盖足够的感受野,需要堆叠30+层膨胀卷积。层数增加意味着参数量、内存占用和优化难度的增加。

限制二:权重与位置无关。卷积核对窗口内所有位置使用相同的权重,不能根据内容动态调整。在语言中,"bank"这个词在不同上下文中含义不同(银行 vs 河岸),CNN无法根据上下文动态改变对周围词的关注方式。

限制三:全局信息获取效率低。即使叠加了足够多的层使感受野覆盖全序列,底层的局部特征需要逐层传递才能到达顶层。信息传递路径长,导致远距离位置之间的信息交互低效且有损。

三种架构的信息传递路径对比
RNN: O(n)串行路径 位置1到位置6: 需经过5步 CNN: O(log n)层级路径 需多层堆叠才能 让远距离位置交互 Attention: O(1)直连 任意两个位置直接连接 路径长度恒为1

1.3 对比总结:三种架构的本质差异

维度 RNN/LSTM/GRU 1D-CNN (TCN/WaveNet) Self-Attention
最大路径长度 O(n) — 串行传递 O(log n) — 层级传递 O(1) — 直接连接
每层计算复杂度 O(n · d²) O(k · n · d²) O(n² · d)
并行度 O(1) — 完全串行 O(n) — 层内并行 O(n²) — 完全并行
权重是否内容相关 部分(门控依赖输入) 否(核权重固定) 完全内容相关
归纳偏置 时间局部性 + 马尔可夫 空间局部性 无(完全数据驱动)
长序列瓶颈 梯度消失 + 信息遗忘 感受野有限 + 层数爆炸 O(n²)内存/计算

最后一行尤为关键——Self-Attention解决了前两者的问题,但引入了新的问题:二次复杂度。这正是第四节稀疏注意力要解决的核心挑战。

💡 工业类比:监控一条100米产线

RNN:一位巡检员从头走到尾,每走一步在脑中更新对产线状态的记忆。走到第80米时,对第5米的记忆已经模糊不清。
CNN:每隔5米安装一个只能看前后3米的摄像头。要判断"第5米的异常是否影响了第80米的产品",信号需要经过多层中继站逐级传递。
Attention:一个全局指挥中心,可以同时调取任意位置的实时画面,并且根据当前的判断需求,动态决定重点观察哪些位置。代价是:需要同时维护所有位置对之间的关联信息。

注意力机制不是偶然的灵感,而是对RNN和CNN两条路线深层局限性的必然回应:它用O(1)的信息路径替代了O(n)和O(log n),用内容依赖的动态权重替代了固定的递推/卷积规则。代价是O(n²)的计算量——如何解决这个代价,构成了此后十年研究的主线。
02

数学本源:从Nadaraya-Watson核回归到注意力机制

注意力机制不是2014年凭空冒出的工程技巧。它的数学形式在1964年的非参数统计中就已经存在——Nadaraya-Watson核回归。理解这个数学源头,是理解所有注意力变体的钥匙。

2.1 Nadaraya-Watson核回归 (1964)

问题设定

给定一组观测数据 {(x1, y1), (x2, y2), ..., (xn, yn)},对于一个新的查询点x,如何估计其对应的函数值f(x)?

最朴素的想法:对所有已知y值取平均。但这忽略了"距离"信息——直觉上,离x近的数据点应该有更大的话语权。Nadaraya和Watson在1964年独立提出了核加权平均

f(x) = ∑i=1n   K(x, xi)j=1n K(x, xj)   ·   yi   =   ∑i=1n α(x, xi) · yi
Nadaraya-Watson估计 —— 其中 α(x, xi) = softmax(K(x, xi)) 就是"注意力权重"

核函数的选择

核函数K衡量两个点之间的"相似度"。经典选择包括:

关键洞察:核回归 = 注意力

仔细看NW估计的结构:对所有数据点的值(yi)做加权求和,权重由查询点(x)与各数据点位置(xi)的相似度决定,且权重归一化为概率分布。这在形式上完全等价于现代注意力机制。

2.2 NW核回归与现代注意力的严格对应

NW核回归 (1964) 直觉含义 现代注意力 (2014-) 具体实现
查询点 x 我想知道这个位置的信息 Query (Q) Q = WQ · h
数据点位置 xi 已知数据的"标签/索引" Key (K) K = WK · hi
数据点的值 yi 已知数据的实际内容 Value (V) V = WV · hi
核函数 K(x, xi) "相似度"的衡量方式 注意力打分函数 QKT/√d(点积)或 vTtanh(W[q;k])(加性)
归一化 K/∑K 权重和为1,构成概率分布 Softmax归一化 softmax(score)
加权求和 ∑αiyi 根据相关性聚合信息 加权聚合 ∑ attention_weight · V
核函数固定(人为选择) 先验假设决定相似度 参数可学习 WQ, WK, WV通过反向传播学习

从这个对应关系可以看出,现代注意力相对于NW核回归的本质进步只有两点:

  1. 核函数可学习:不再需要人为选择高斯核还是其他核,而是通过WQ和WK的学习让模型自动确定"什么算相似"
  2. Key和Value解耦:NW核回归中,xi既是"索引"也是"内容"的载体(Key=Value)。现代注意力将二者分离为独立的线性变换,使得"用什么来匹配"和"匹配后取什么"可以独立优化

2.3 从核回归到深度学习中的注意力

1964
Nadaraya-Watson核回归
非参数统计中的核加权平均。核函数固定(高斯核等),数据是标量或低维向量。在数学形式上已经完备——只缺"可学习"这个要素。
2014
Bahdanau Attention — 首次引入深度学习

论文:"Neural Machine Translation by Jointly Learning to Align and Translate"。核心创新:用可学习的神经网络替代固定核函数。具体地,使用加性注意力(additive attention)作为打分函数:

score(st, hi) = vT tanh(Wsst + Whhi)

其中st是Decoder当前隐状态(Query),hi是Encoder第i步隐状态(Key),最终对Encoder隐状态(同时作为Value)加权求和。

2015
Luong Attention — 打分函数的系统比较
Luong et al. 对比了三种打分方式:
Dot: score = stT hi(最简单,要求维度相同)
General: score = stT W hi(允许不同维度)
Concat: score = vT tanh(W[st; hi])(同Bahdanau)
结论:在维度对齐的情况下,简单的点积打分效果不逊于复杂的加性注意力,且计算效率更高。这为后续Transformer中采用dot-product attention奠定了基础。
2015-2016
Attention的扩散:从NLP到CV
注意力思想迅速扩散到其他领域:
- Show, Attend and Tell (2015):图像描述中,Decoder在生成每个词时关注图像的不同区域(soft attention vs hard attention)
- Spatial Transformer Network (2015):学习对输入图像做空间变换,一种隐式的空间注意力
- Squeeze-and-Excitation Networks (2017):通道注意力——学习不同通道的重要性权重
2017
"Attention Is All You Need" — Self-Attention诞生
关键飞跃:不再是Decoder关注Encoder(跨序列注意力),而是序列关注自身(自注意力)。从"辅助模块"升级为"核心架构"。采用缩放点积注意力(Scaled Dot-Product),并引入Multi-Head机制。详见第三节。

2.4 Soft Attention vs Hard Attention

一个经常被忽略但很重要的分支:2015年Xu et al.在图像描述任务中区分了两种注意力:

Soft Attention(软注意力)

对所有位置计算连续的权重值(概率分布),输出是Value的加权平均。可微分,可以用标准反向传播训练。这是我们今天使用的主流形式。

Hard Attention(硬注意力)

选择性地只关注一个或少数几个位置(采样)。不可微分,需要用强化学习(REINFORCE)训练。方差大,训练不稳定。但推理时更高效——这其实是稀疏注意力的早期雏形。

有趣的是,Hard Attention的思想在2020年代以"稀疏注意力"的形式重新回归——只是现在我们有了更好的方法让它可微分(如Gumbel-Softmax、Top-k选择等)。

2.5 注意力的信息论视角

从信息论角度看,注意力机制在做什么?它是一个信息路由(information routing)机制:

这个视角解释了为什么注意力在长序列上如此有效:它提供了一个O(1)的信息路由通道,任何位置的信息都可以一步到达需要它的位置,不需要经过层层传递的衰减。

本节核心

注意力机制的数学本质是带可学习核函数的加权平均,根源在1964年的Nadaraya-Watson核回归。从NW到Bahdanau再到Transformer,数学形式一脉相承,不同的是:核函数从固定变为可学习,Key和Value从绑定变为解耦,应用场景从标量回归扩展到高维序列建模。理解了这个本质,后续所有变体都是在这个框架下的不同"核函数设计"。

03

Self-Attention与Transformer:架构革命

2017年的"Attention Is All You Need"不仅提出了Self-Attention,更重要的是证明了一件事:我们不需要递归,不需要卷积,仅靠注意力就能构建强大的序列模型。这不是一个增量改进,而是范式转换。

3.1 从Cross-Attention到Self-Attention的飞跃

Bahdanau Attention是Cross-Attention(跨序列注意力):Decoder的Query去查询Encoder的Key/Value。两个不同的序列之间交互。

Self-Attention的关键创新:Query、Key、Value全部来自同一个序列。序列中的每个位置都与所有其他位置(包括自己)计算注意力。这意味着:

💡 工业直觉

一条工业时序信号,在第t个时间步出现了异常峰值。Self-Attention让这个时间步可以直接"询问":过去有哪些时间步和我的模式类似?有哪些时间步的变化可能是我的因果前驱?这种任意距离、内容驱动的关联建模,是RNN的逐步传递和CNN的固定窗口都做不到的。

3.2 Scaled Dot-Product Attention:核心公式深解

Attention(Q, K, V) = softmax(QKT / √dk) · V
缩放点积注意力 —— 所有现代Transformer的基础计算单元

逐步拆解

Step 1: 线性投影。输入X经过三个不同的线性变换得到Q、K、V:

Q = XWQ,   K = XWK,   V = XWV
WQ ∈ Rd×dk, WK ∈ Rd×dk, WV ∈ Rd×dv

为什么需要三个独立的投影?因为"用什么来匹配"(Q/K的空间)和"匹配后传递什么信息"(V的空间)是不同的任务。如果Q=K=V=X,就退化为简单的相似度加权平均,表达能力受限。

Step 2: 注意力分数计算。QKT计算所有Query-Key对的点积相似度,得到n×n的注意力分数矩阵。

Step 3: 缩放(Scale)。除以√dk。为什么?当dk很大时,Q和K的点积的方差约为dk,导致softmax输入值很大,梯度集中在极值附近(接近one-hot),学习信号极弱。缩放后方差回到1,softmax输出更"平滑",梯度更健康。

数学推导:为什么是√dk

假设Q和K的每个分量独立且均值为0、方差为1。则它们点积 q·k = ∑i=1dk qiki 的期望为0,方差为dk(dk个独立随机变量之和的方差)。除以√dk后,方差回到1。这是一个简单但关键的数值稳定性技巧。

Step 4: Softmax归一化。将分数转换为概率分布(每行和为1)。这确保输出是Value的凸组合。

Step 5: 加权聚合。用注意力权重对V做加权求和,得到最终输出。

3.3 Multi-Head Attention:多视角的关注

单个注意力头只能学习一种"关注模式"。但一个位置可能与其他位置有多种不同类型的关联:

MultiHead(Q, K, V) = Concat(head1, ..., headh) WO

where headi = Attention(QWiQ, KWiK, VWiV)
每个头独立投影到dk=d/h维子空间,各自计算注意力,最后拼接并投影回d维

关键理解:多头不仅仅是"重复多次"。每个头使用不同的WQ、WK、WV投影矩阵,相当于在不同的子空间中捕获不同类型的依赖关系。最终通过WO投影将所有头的信息融合。

实践中的一些观察:

3.4 Transformer的完整架构

Transformer不仅仅是Multi-Head Self-Attention。它是一个精心设计的架构,关键组件包括:

位置编码 (Positional Encoding)

Self-Attention是排列不变的(permutation invariant)——打乱输入序列的顺序,输出也只是相应打乱,不会改变各位置间的注意力权重。但序列是有顺序的!所以必须显式注入位置信息。

原始Transformer使用正弦/余弦位置编码:

PE(pos, 2i) = sin(pos / 100002i/d),    PE(pos, 2i+1) = cos(pos / 100002i/d)
不同频率的正弦波编码不同的位置,使模型能通过线性变换学习相对位置关系

后续发展了多种替代方案:可学习位置编码(BERT)、相对位置编码(Shaw et al., 2018; T5)、旋转位置编码RoPE(Su et al., 2021,LLaMA系列的标配)、ALiBi(Press et al., 2022)。位置编码的选择直接影响模型能否外推到训练时未见过的序列长度——这在工业应用中尤为关键。

残差连接 + Layer Normalization

每个子层(Self-Attention或FFN)都有残差连接和LayerNorm:

output = LayerNorm(x + SubLayer(x))
Pre-Norm变体:output = x + SubLayer(LayerNorm(x)),训练更稳定,现代大模型多采用此形式

残差连接保证梯度可以直接回传,LayerNorm稳定训练过程中的内部协变量偏移。没有这两个组件,深层Transformer几乎无法训练。

前馈网络 (Feed-Forward Network, FFN)

每层Transformer中,Self-Attention之后紧跟一个两层的FFN:

FFN(x) = max(0, xW1 + b1)W2 + b2
中间维度通常是模型维度的4倍(dff = 4d),提供非线性变换能力。现代模型多用SwiGLU替代ReLU

FFN的作用常被忽视,但它至关重要:Self-Attention负责信息聚合(让不同位置的信息交互),FFN负责信息变换(对聚合后的表示做非线性处理)。有研究表明FFN实际上充当了一种"key-value memory"(Geva et al., 2021)。

3.5 为什么Transformer能scaling?

Transformer相对RNN/CNN的真正革命性优势不仅是"能看到全局",更在于它的可扩展性

⚡ 关键理解

Transformer的成功不是因为它在某个benchmark上比LSTM高了几个点。它的成功是因为它是第一个被证明可以无限scale up的序列架构——给它更多参数、更多数据、更多计算,性能就稳定提升。这使得"用规模换性能"的策略第一次变得可行,开启了大模型时代。

3.6 Transformer的代价:O(n²)问题的严峻性

每一层Self-Attention需要计算n×n的注意力矩阵(n为序列长度),带来:

当n=512时这不是问题。但当n增长到32K、128K甚至1M时——这在工业多传感器长时序场景中很常见——标准Transformer完全无法承受。这就是第四节的核心动机。

04

稀疏注意力:打破O(n²)的根本性突破

这是全文的核心章节。当我们需要处理工业级的长序列(数万到数十万时间步),O(n²)不是可以"忍忍就过去"的问题——它是一堵物理墙。稀疏注意力不是"锦上添花"的优化,而是让Transformer在工业场景中可用的基础性突破

4.1 问题的严峻性:一组数字

序列长度 n 注意力矩阵元素数 显存 (FP16, 单层单头) FLOPs (单层) 典型工业场景
512 262K ~0.5 MB ~0.5 GFLOPs 短文本/单传感器片段
4,096 16.8M ~32 MB ~34 GFLOPs 中等时序窗口
32,768 1.07B ~2 GB ~2.2 TFLOPs 多传感器联合监控
131,072 17.2B ~32 GB ~35 TFLOPs 全厂设备24h数据
1,048,576 (1M) 1.1T ~2 TB ~2.3 PFLOPs 大规模工业数字孪生
核心矛盾

工业场景的特点是高采样率 × 多传感器 × 长时间窗口——恰恰产生最长的序列。一台设备以1kHz采样10个通道运行1小时,序列长度就是3600万。标准Transformer对此完全无能为力。但同时,长程依赖(如设备预热期的微弱异常在数小时后引发故障)又恰恰需要注意力机制来建模。这就是稀疏注意力研究的根本驱动力。

4.2 一个关键观察:注意力矩阵天然是稀疏的

为什么我们有信心认为"不需要计算所有n²个注意力值"?因为大量实证研究表明:

这个观察的推论:如果我们能只计算那些"注意力值不为零"的位置对,就能在不损失精度的情况下大幅减少计算量。这就是所有稀疏注意力方法的出发点。

4.3 路线一:结构化稀疏 —— 基于先验的固定模式

核心思想:根据人类对数据结构的先验知识,预定义哪些位置对需要计算注意力,其余一律跳过。

Sparse Transformer (OpenAI, 2019)

第一篇系统性研究稀疏注意力的工作。提出了两种稀疏模式:

证明了在图像生成和文本生成任务上,稀疏注意力可以匹配Full Attention的质量。

Longformer (AllenAI, 2020)

为长文档理解设计的注意力模式,组合了三种机制:

关键参数选择:窗口大小w在底层用较小值(捕获局部)、高层用较大值(捕获全局),形成金字塔结构。

BigBird (Google, 2020)

理论上证明了稀疏注意力的图灵完备性。其注意力模式是三者的组合:

BigBird的随机性赋予了重要的理论保证:即使稀疏,任意两个位置之间的信息传递路径也不会太长(图的直径有界)。

Full Attention
O(n²) — 所有位置互相关注
Longformer (局部+全局)
全局token   滑动窗口
BigBird (随机+局部+全局)
全局 局部 随机

4.4 路线二:近似稀疏 —— 数学上逼近Full Attention

核心思想:不是真的"跳过"某些位置对,而是通过数学技巧在线性时间内近似完整注意力矩阵的效果。

Linformer (Wang et al., 2020)

核心观察:尽管注意力矩阵是n×n的,但它的有效秩通常远小于n。因此可以用低秩投影压缩K和V:

K̂ = EK · K ∈ Rk×d,    V̂ = EV · V ∈ Rk×d    (k << n)
将n个Key/Value投影到k个"代表"上(k固定),注意力计算变为O(n·k) = O(n)

直觉:n个Key可以用k个"代表性Key"来概括(类似PCA降维)。缺点是投影矩阵E是固定的,不随内容变化。

Performer (Choromanski et al., 2020)

最优雅的线性注意力方案之一。核心思想:softmax(QKT)可以通过随机特征映射(random feature map)来近似:

softmax(QKT) ≈ φ(Q) · φ(K)T
FAVOR+ 机制:φ是随机特征映射,使得注意力可以先算φ(K)TV(O(n·d²)),再左乘φ(Q)(O(n·d²))

通过改变计算顺序(结合律):原来是 (QKT)V = n×n × n×d,现在是 Q(KTV) = n×d × d×d,跳过了n×n矩阵的显式计算。复杂度从O(n²d)降为O(nd²)。当d << n时(通常成立),这是巨大的加速。

Reformer (Kitaev et al., 2020)

另一条路径:用局部敏感哈希(LSH)来近似最近邻搜索。核心思想:注意力权重最大的Key-Value对,通常也是与Query最相似的。如果能快速找到"最相似的K",就可以只对这些K计算注意力。

缺点:LSH有hash collision的噪声,需要多轮hash取并集来降低遗漏概率,实际工程复杂度较高。

路线一 vs 路线二的本质区别

结构化稀疏:预先决定"看哪里",不管内容是什么。好处是实现简单、硬件友好;坏处是可能错过内容相关的重要位置。
近似稀疏:保持"看所有地方"的语义,但用数学近似降低计算代价。好处是理论上无信息损失;坏处是近似误差不可控,且某些方法(如Performer)在实践中存在精度下降问题。

4.5 路线三:学习稀疏 —— 让模型自己决定看哪里

前两条路线的共同缺陷:稀疏模式要么是人为预设的(路线一),要么是通过固定数学变换得到的(路线二),都不能根据具体输入内容动态调整。路线三的目标是:让模型自己学习对于每个输入应该关注哪些位置。

Routing Transformer (Roy et al., 2020)

用在线k-means对token进行聚类,只在同一聚类簇内计算注意力。聚类中心通过EMA更新。直觉:语义相似的token分到同一组,组内交互比组间交互更有价值。

Sinkhorn Attention (Tay et al., 2020)

通过可微排序(Sinkhorn算子)学习token的最优分块,然后在块内做注意力。排序操作保证了端到端可训练。

NSA — Native Sparse Attention (DeepSeek, 2025)

NSA是目前稀疏注意力方向的最前沿工作,代表了"学习稀疏"这条路线的成熟形态。它有几个关键区别于前人的设计理念:

1. 训练时就稀疏(Native)。之前的很多方案(如H2O、StreamingLLM、Scissorhands)是"训练时Full Attention + 推理时剪枝"——模型以Full Attention方式学到表示,推理时丢弃部分注意力来加速。这导致训练和推理行为不一致。NSA从训练开始就只计算稀疏的注意力,模型在训练过程中学会如何在有限的注意力预算内最优地分配关注力。

2. 三层注意力混合(粗粒度 + 细粒度 + 局部)。

NSA 的三层注意力架构
输入 Token 序列 (长度 n) 压缩块注意力 (Compressed) 将连续l个token通过MLP压缩 为单个块级表示(block token) 对n/l个块做Full Attention 作用: 粗粒度全局扫描 复杂度: O(n/l) per query 选择性块注意力 (Selected) 根据压缩注意力的分数 Top-k选出最相关的块 对选中块内的原始token 做精细的Full Attention 复杂度: O(k · l) per query 滑动窗口注意力 (Sliding) 对当前位置附近w个token 做标准Full Attention 保持局部上下文的连续性 作用: 局部细节保持 复杂度: O(w) per query 注意力分数 指导 Top-k 选择 可学习门控融合 (MLP Gate)

3. 硬件感知设计。NSA不仅追求理论复杂度的降低,还深度考虑了GPU实际执行效率:

4. 门控融合机制。三种注意力的输出通过一个可学习的门控网络动态融合。门控权重是输入依赖的——不同的输入可能更依赖不同类型的注意力。例如,在时序信号的平稳段,滑动窗口注意力权重可能很高(局部信息就够了);在异常突变点,选择性块注意力权重上升(需要关联历史中的类似事件)。

NSA的实验结果(论文数据)

4.6 全景对比:稀疏注意力方法谱

方法 路线 复杂度 稀疏模式 可学习? 训练/推理一致? 硬件效率
Full Attention O(n²) 密集 基准
Sparse Transformer 结构化 O(n√n) Strided + Local
Longformer 结构化 O(n·w) Window + Global
BigBird 结构化 O(n·(w+r+g)) Random + Window + Global
Linformer 近似 O(n·k) 低秩投影 投影可学习
Performer 近似 O(n·d) 核近似(FAVOR+)
Reformer 近似 O(n log n) LSH分桶 低(工程复杂)
H2O / StreamingLLM 剪枝 O(n·b) 保留重要token 高(仅推理)
NSA 学习 O(n·(k·l+w)) Compress + Select + Slide 完全可学习 极高

4.7 开放问题与前沿方向

本节核心论点

稀疏注意力是让Transformer真正能处理工业级长序列的根本性突破,不是可有可无的优化。从结构化固定模式到数学近似再到端到端学习,这个方向经历了三代演进。NSA代表了当前的最高水平:训练时就稀疏、三层注意力混合、硬件感知设计、门控融合——它证明了"少看但看对"可以不输甚至优于"全部都看"。

05

注意力机制的工程优化与架构变体

稀疏注意力改变的是"计算什么",而本节的优化改变的是"怎么计算"以及"怎么组织Q/K/V"。在实际工业部署中,两类优化往往需要叠加使用。

5.1 Flash Attention:不改数学,只改IO

Flash Attention (Dao et al., 2022) 可能是过去三年对Transformer工程实践影响最大的单篇论文。它的核心洞察:

标准注意力的瓶颈不是计算量,而是内存读写(IO)。

GPU有两级内存层次:高速但极小的SRAM(片上,如A100有20MB)和大容量但慢速的HBM(显存,如A100有80GB)。标准实现中,注意力矩阵(n×n)需要在HBM和SRAM之间来回搬运多次:

  1. 从HBM读取Q、K,在SRAM中计算S=QKT,写回HBM
  2. 从HBM读取S,在SRAM中计算P=softmax(S),写回HBM
  3. 从HBM读取P和V,在SRAM中计算O=PV,写回HBM

对于n×n的注意力矩阵,总IO量为O(n²)次HBM读写。当n很大时,HBM带宽成为瓶颈(compute-bound变成memory-bound)。

Flash Attention的解法:Tiling + 在线Softmax

核心idea:将Q、K、V分成小块(tile),每个块完全在SRAM中完成注意力计算,不将中间的n×n矩阵写回HBM

技术难点:softmax需要全局归一化(需要所有分数的指数和),如何分块计算?Flash Attention使用了在线softmax算法(Milakov & Gimelshein, 2018)——在处理每个块时维护一个running maximum和running sum,最终结果数学上与标准softmax完全一致。

效果

# Flash Attention 在 PyTorch 2.0+ 中的使用 —— 只需一行代码 import torch from torch.nn.functional import scaled_dot_product_attention # PyTorch会自动选择最优后端 (FlashAttention / Memory-Efficient / Math) output = scaled_dot_product_attention( query, # (batch, heads, seq_len, head_dim) key, # (batch, heads, seq_len, head_dim) value, # (batch, heads, seq_len, head_dim) attn_mask=None, dropout_p=0.0, is_causal=True ) # 也可以显式使用Flash Attention后端: with torch.backends.cuda.sdp_kernel( enable_flash=True, enable_math=False, enable_mem_efficient=False ): output = scaled_dot_product_attention(query, key, value, is_causal=True)
工程启示

Flash Attention告诉我们:算法复杂度不等于实际运行时间。标准注意力和Flash Attention的算术复杂度相同(都是O(n²d)),但实际速度差2-4倍。在工业部署中,理解硬件特性(内存层级、带宽瓶颈、SM利用率)与理解算法本身同等重要。

5.2 KV Cache与推理优化

问题:自回归推理的冗余计算

在生成式模型(GPT系列)中,每生成一个新token,需要对所有之前的token重新计算K和V。但之前token的K和V不会变——因为它们只取决于之前的输入。所以可以缓存已计算的K和V,每步只计算新token的K和V并追加到缓存中。

KV Cache使推理从O(n²)降为O(n)(每步只增量计算),但代价是显存占用:对于一个batch_size=B、序列长度n、层数L、头数h、头维度d的模型,KV Cache需要 2 × B × L × h × n × d 字节。对于LLaMA-70B处理32K序列,KV Cache需要约160GB显存,远超模型参数本身。

解决方案:GQA, MQA, MLA

方法 核心思想 KV Cache压缩率 精度影响 代表模型
MHA (Multi-Head) 每个Q头有独立的K/V头 1x (基准) 基准 GPT-3, BERT
MQA (Multi-Query) 所有Q头共享一组K/V 1/h (极致压缩) 有一定损失 PaLM, Falcon
GQA (Grouped Query) 每g个Q头共享一组K/V 1/g (可调) 接近MHA LLaMA-2/3, Mistral
MLA (Multi-head Latent) 将K/V压缩到低维潜在空间,推理时解压 dc/d (通常1/4~1/8) 无损或极低 DeepSeek-V2/V3

MLA (Multi-head Latent Attention) 是DeepSeek的另一项重要创新:不是减少K/V头数,而是将K/V通过一个低秩投影压缩到低维空间存储,推理时再通过另一个投影恢复。由于注意力矩阵本身是低秩的(上文Linformer已证明),这种压缩几乎不损失信息。

5.3 位置编码:RoPE与长度外推

为什么位置编码如此重要?

Self-Attention是排列不变的——它不区分"第1个token"和"第100个token"。但序列是有序的,特别是在工业时序数据中,时间顺序就是因果顺序。位置编码将"位置信息"注入到模型中。

RoPE (Rotary Position Embedding, Su et al. 2021)

目前大模型的标配位置编码。核心思想:将位置信息编码为向量的旋转角度。具体地,将Q和K的每对相邻维度视为一个2D平面上的点,按位置相关的角度旋转:

RoPE(x, pos) = x · cos(pos · θ) + rotate(x) · sin(pos · θ)
其中 θi = 10000-2i/d,不同维度对应不同频率的旋转

RoPE的优雅之处:两个位置的Q和K做点积时,结果只取决于它们的相对距离(旋转角的差),而非绝对位置。这自然地编码了相对位置关系。

长度外推问题

模型训练时用4K序列长度,推理时能否处理32K甚至128K?直接外推通常会失败(注意力模式崩塌)。解决方案包括:

在工业场景中,长度外推能力极为关键——设备监控的时间窗口可能需要动态调整,不可能为每种窗口长度都重新训练模型。

5.4 Cross-Attention:多模态融合的桥梁

Cross-Attention让一个序列的Query去查询另一个序列的Key/Value,是多模态融合的核心机制:

5.5 Mamba与线性注意力:注意力的替代者?

2023-2024年,状态空间模型(SSM)作为注意力的替代方案引起了极大关注:

Mamba (Gu & Dao, 2023)

核心创新:选择性状态空间模型(Selective SSM)——状态转移矩阵随输入动态变化(类似门控),使SSM具备了内容相关性(类似注意力的效果),同时保持O(n)的计算复杂度和可并行训练。

但2024-2025年的实践表明:

Attention vs SSM:不是替代,而是互补

从信息论角度:Attention是O(n²)存储 + O(1)检索(存了所有KV对,查的时候一步到位)。SSM是O(d)存储 + O(1)更新(将信息压缩进固定大小的状态,但可能有压缩损失)。两者在"记忆容量 vs 计算代价"的trade-off空间上处于不同的位置。未来的最优架构很可能是两者的混合。

06

工业AI中的注意力:从理论到落地

理论和方法最终需要落地。本节讨论注意力机制在工业AI中的具体应用模式,以及选择合适的注意力变体的决策框架。

6.1 工业时序预测

PatchTST (Nie et al., 2023) — 把时序数据"图像化"

核心思想:将连续的时间步分成固定长度的Patch(如16个时间步为一个Patch),每个Patch作为一个token输入Transformer。这同时解决了两个问题:

在工业预测任务上,PatchTST显著优于之前的DLinear等简单方法,证明了Transformer在时序领域的价值——前提是正确处理输入格式。

iTransformer (Liu et al., 2024) — 反转注意力的维度

一个反直觉但有效的设计:对变量(传感器通道)而非时间步做注意力。

这在工业场景中极其自然:设备的温度、振动、电流等传感器之间存在物理上的因果/相关关系(如温升导致振动加剧)。iTransformer让模型直接建模这种跨传感器的依赖,而时序维度内部用简单的MLP处理即可。

TimesFM / Chronos — 时序基础模型

2024年的新趋势:用大量多领域时序数据预训练一个通用的时序Transformer(类似NLP中的GPT)。工业场景可以在此基础上fine-tune,大幅减少标注数据需求。这些模型的backbone都是Transformer with attention。

6.2 工业缺陷检测与异常检测

Vision Transformer (ViT) 在工业质检中的应用

ViT将图像分成16×16的patch,每个patch作为token,通过Self-Attention建模patch间的全局关系。在工业缺陷检测中的独特优势:

时序异常检测中的注意力

6.3 大模型 + 工业知识

RAG在工业场景的应用

Retrieval-Augmented Generation将大模型的通用能力与工业领域知识结合。Cross-Attention在其中扮演核心角色:

6.4 实践决策框架:如何选择注意力变体?

你的场景 推荐方案 理由
序列 < 4K,实时性要求不高 标准 MHA + Flash Attention O(n²)可接受,Flash Attention消除IO瓶颈
序列 4K-32K,单卡部署 GQA + Flash Attention 2 GQA降低KV Cache,FA2加速计算
序列 32K-128K 稀疏注意力 (Longformer模式 或 NSA) O(n²)不再可行,需要稀疏化
序列 > 128K NSA + MLA + Ring Attention(多卡) 需要算法+系统+架构三重优化
多传感器变量间关系建模 iTransformer (变量维度注意力) 直接建模传感器间物理关联
多模态融合 (图像+时序+文本) Cross-Attention 不同模态的Q/KV分别处理后交叉关注
边缘设备部署,算力极有限 Mamba / SSM + 少量Attention层 O(n)推理,极低的KV Cache需求

工业AI中的注意力:技术三角

稀疏注意力让长序列可行,Cross-Attention让多源信息融合,注意力可视化让模型可解释可信赖。三者共同构成了工业智能化的技术基础。选择哪种注意力变体,取决于你的序列长度、部署约束和可解释性需求。

总结与展望

注意力机制的进化主线

从统计学到工业AI的技术演进
NW核回归 1964 固定核加权平均 Bahdanau 2014 可学习的核函数 Transformer 2017 Self-Attn取代RNN Sparse Attn 2019-24 打破O(n²)限制 NSA 2025 训练时学习稀疏 Next? SSM混合?

留给大家的开放问题

当工业场景的传感器数量从几百增长到几万,序列长度从数千增长到数百万——现有的稀疏注意力方案是否足够?还是我们需要全新的范式(如SSM、或者我们尚未想到的架构)?这个问题,或许正在等着我们课题组去回答。

关键术语表

NW核回归 Q / K / V Self-Attention Cross-Attention Multi-Head Transformer O(n²)瓶颈 稀疏注意力 Longformer Performer NSA Flash Attention RoPE GQA / MLA KV Cache PatchTST iTransformer Mamba / SSM

参考文献

  1. Nadaraya. "On Estimating Regression" (1964) / Watson. "Smooth Regression Analysis" (1964)
  2. Hochreiter & Schmidhuber. "Long Short-Term Memory" (1997)
  3. Sutskever et al. "Sequence to Sequence Learning with Neural Networks" (2014)
  4. Bahdanau et al. "Neural Machine Translation by Jointly Learning to Align and Translate" (2014)
  5. Luong et al. "Effective Approaches to Attention-based Neural Machine Translation" (2015)
  6. Xu et al. "Show, Attend and Tell: Neural Image Caption Generation with Visual Attention" (2015)
  7. van den Oord et al. "WaveNet: A Generative Model for Raw Audio" (2016)
  8. Gehring et al. "Convolutional Sequence to Sequence Learning" (2017)
  9. Vaswani et al. "Attention Is All You Need" (2017)
  10. Hu et al. "Squeeze-and-Excitation Networks" (2017)
  11. Bai et al. "An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling" (TCN, 2018)
  12. Child et al. "Generating Long Sequences with Sparse Transformers" (2019)
  13. Beltagy et al. "Longformer: The Long-Document Transformer" (2020)
  14. Zaheer et al. "Big Bird: Transformers for Longer Sequences" (2020)
  15. Wang et al. "Linformer: Self-Attention with Linear Complexity" (2020)
  16. Choromanski et al. "Rethinking Attention with Performers" (2020)
  17. Kitaev et al. "Reformer: The Efficient Transformer" (2020)
  18. Kaplan et al. "Scaling Laws for Neural Language Models" (2020)
  19. Su et al. "RoFormer: Enhanced Transformer with Rotary Position Embedding" (2021)
  20. Dao et al. "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness" (2022)
  21. Xu et al. "Anomaly Transformer: Time Series Anomaly Detection with Association Discrepancy" (2022)
  22. Ainslie et al. "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints" (2023)
  23. Gu & Dao. "Mamba: Linear-Time Sequence Modeling with Selective State Spaces" (2023)
  24. Nie et al. "A Time Series is Worth 64 Words: Long-term Forecasting with Transformers" (PatchTST, 2023)
  25. Liu et al. "iTransformer: Inverted Transformers Are Effective for Time Series Forecasting" (2024)
  26. DeepSeek-AI. "DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model" (MLA, 2024)
  27. DeepSeek-AI. "NSA: Native Sparse Attention for Long-Context Training and Inference" (2025)