当注意力学会"做减法":DnA 如何用一对正负查询给 ViT 洗脑
一个注意力机制的"信噪比"困境
想象你在看一张 ImageNet 的图片:一个士兵穿着胸甲(breastplate)。你的视线自然会聚焦在胸甲上——这是"信号"。但画面里还有士兵的脸、头盔、远处的树。标准的 softmax 注意力机制在处理这张图时,会把一部分注意力权重分配给这些"噪声"对象。问题不在于它们完全无关——士兵的脸和胸甲确实属于同一个场景——而在于它们"看起来相关但其实不是"。
这就是 Ron Campos 等人(中佛罗里达大学)在 ECCV 2026 接收的论文 DnA: Denoising Attention for Visual Tasks 试图解决的核心问题。论文的切入点是一个被广泛忽视的 softmax 不对称性:softmax 对正分值的放大和对负分值的压缩是不对称的。
具体来说,对于 δ > 0,e^(a+δ) - e^a = e^a · δ + O(δ²)。这意味着当分值 a 本身就很大时,δ 的增量被指数放大;而当 a 为负时,同样的 δ 增量几乎被吞没。结果是:已经占主导地位的信号被进一步放大,而本应被抑制的噪声只被轻微惩罚。在视觉任务中,这意味着"看起来相关的噪声特征"会持续获得不可忽视的注意力权重,稀释真正的信号。
正负查询:一对互补的探针
DnA 的核心设计可以用一行代码概括:
x = pos_attn @ v_pos - neg_attn @ v_neg
但这一行背后的思路值得拆解。标准注意力只有一套 Query-Key-Value 三元组。DnA 把它拆成两套:
- 正查询 Q⁺:和标准注意力一样,负责识别"属于正确类别的特征"
- 负查询 Q⁻:专门识别"看起来相关但其实属于干扰的特征"
softmax(QK^T),而 DnA 的负分支用 softmax(-Q⁻K^T)。这个负号是整个设计的灵魂:它反转了注意力分布。标准 softmax 会高分的 token,在加了负号后变成低分;原本被忽略的 token 反而被放大。这看起来很奇怪——为什么要用一个"反转"的注意力?答案在于减法操作。最终输出是 pos_attn @ v_pos - neg_attn @ v_neg。负分支不是在"加噪声",而是在"提取噪声的模式",然后从正分支的输出中减掉它。
从代码看,DnA 有两个变体:
1. 双值空间版本(DenoisingAttention):Q⁺ 和 Q⁻ 各自有独立的 V⁺ 和 V⁻,投影到两个不同的子空间。输出 = softmax(Q⁺K^T)·V⁺ - softmax(-Q⁻K^T)·V⁻
2. 共享值空间版本(DenoisingAttentionSharedValues):只有一个 V,先做注意力减法再乘 V。输出 = (softmax(Q⁺K^T) - softmax(-Q⁻K^T))·V
第一个版本更强大——它把正负交互投影到"主角度更大的两个子空间",实现真正的子空间分离。论文的理论分析表明,这种分离让正负分支在接近正交的子空间中操作,使得噪声抑制不会误伤信号。
子空间分离:为什么"减法"比"惩罚"更好
理解 DnA 为什么有效,需要从子空间几何的角度思考。
标准注意力的所有交互——无论信号还是噪声——都被投影到同一个值子空间 V 中。这就像把信号和噪声混在一个一维通道里传输,你没法只减噪声而不伤信号。
差分注意力(Differential Attention,微软 2024 年提出)也用了两套查询和减法,但它把两个分支放在同一个子空间里。结果是两个分支可能同时关注同一个噪声 token,减法把它们一起消掉的同时也消掉了信号。
DnA 的不同之处在于:它用两套独立的 V⁺ 和 V⁻,把正负交互强制投影到两个不同的子空间。论文用 Frobenius 内积测量这两个子空间的相似度 C(V⁺, V⁻),在 ImageNet 验证集上对 720 万条 trace 值的统计显示,C(V⁺, V⁻) 的分布集中在 0 附近——两个子空间接近正交。
正交性意味着什么?当负分支"提取噪声"时,它提取的是和正分支几乎不重叠的方向。减法操作因此可以大胆地减——减掉的是纯噪声方向,不会波及信号方向。论文用"入侵维度"(intruder dimension)的定量分析证实了这一点:DnA 的两个分支很少同时给同一个 token 高权重,而差分注意力的两个分支经常"撞车"。
实验数据:小改进,广适用
DnA 的实验覆盖面很广,从图像分类到视频理解到视频大语言模型:
| 任务 | 模型 | 提升 |
|---|---|---|
| ImageNet-1K 分类 | ViT-B | +0.8% |
| Toyota Smarthome 动作识别 | TimeSformer | +4.0% |
| NTU RGB+D 60 动作识别 | TimeSformer | +1.2% |
| Ego-in-Exo PerceptionsMCQ | VideoLLaMA3 | +0.5% |
代码已开源:https://github.com/rjccv/DnA ,包含 ViT、TimeSformer 和 VideoLLaMA3 三个版本的实现。
从"加法"到"减法"的范式转变
DnA 的深层贡献不在于 0.8% 的提升,而在于它代表了一种注意力设计的范式转变。
标准注意力是纯加法的——所有 token 都贡献正权重,只是大小不同。差分注意力引入了减法,但减法发生在同一个子空间里。DnA 把减法搬到了不同的子空间——正分支和负分支各自有独立的值投影矩阵,减法发生在两个正交子空间之间。
这让我想到信号处理中的 ICA(独立成分分析)。ICA 的核心假设是:混合信号可以分解为统计独立的成分。DnA 的正负查询做的事情类似——它假设注意力模式可以分解为"信号方向"和"噪声方向",而且这两个方向在值空间中是接近正交的。论文的实证分析(720 万条 C(V⁺, V⁻) 测量值集中在 0 附近)支持了这个假设。
更深一层:DnA 的设计暗示了一个关于注意力机制本身的事实。标准 softmax 注意力把"关注"和"表示"耦合在一起——同一个 softmax 分布既决定关注哪些 token,又决定如何聚合它们的值。DnA 把这两者解耦:正查询决定"关注什么",负查询决定"忽略什么",而值子空间的分离保证这两者不会互相干扰。
这是"判断-闸门解耦"谱系在注意力机制层的又一个实例。正查询是"放行闸门",负查询是"拦截闸门",两个闸门在不同的子空间操作,互不干扰。和 onPanda 的 locate-correct-continue 循环、Hindsight 的 retain-recall-reflect 三动词一样,DnA 把一个看似不可分割的操作(softmax 归一化)拆成了两个互补的子操作。
限制与展望
论文诚实地承认了局限:DnA 引入了额外的投影矩阵(5 个而不是 3 个线性映射),参数量增加约 40%。虽然通过共享值空间版本可以降到 4 个,但仍然比标准注意力重。在推理效率敏感的场景(如实时视频理解),这个代价需要权衡。
从更广的视角看,DnA 的工作提出了一个值得追问的问题:softmax 的不对称性是 bug 还是 feature? 在语言模型中,这种不对称性可能帮助模型放大长尾分布中的关键 token;但在视觉任务中,同一场景中的多个物体竞争注意力时,不对称性反而成了负担。DnA 的实验局限于视觉,如果把正负查询的思路搬到 LLM 的注意力中——特别是在长上下文中存在大量"看起来相关但其实是噪声"的 token 时——会不会有类似的效果?这是一个值得探索的方向。
---
*论文:arXiv:2606.27372,Accepted at ECCV 2026* *代码:https://github.com/rjccv/DnA* *项目页:https://rjccv.github.io/DnA*