论文原文 (Paper):https://arxiv.org/abs/2312.08874
官方代码 (Code):https://github.com/LeapLabTHU/Agent-Attention
1. 核心思想
本文提出了一种名为**'代理注意力'(Agent Attention)的新型注意力范式,旨在解决标准 Softmax 注意力(表达能力强但计算量 O(N^2) 过高)与线性注意力(计算高效 O(N) 但表达能力不足)之间的矛盾。其核心思想是引入一组'代理 Token'(Agent Tokens, A),作为原始查询(Query, Q)和键/值(Key/Value, K, V)之间的'中间商'。该机制通过两步 Softmax 操作实现:1) 代理聚合:少数 A Token 从所有的 K, V 中聚合全局信息;2) 代理广播:所有的 Q Token 仅从 A Token 处获取信息。作者从数学上证明了这种双重 Softmax 操作等价于一种'广义线性注意力'**,从而在保持线性计算复杂度的同时,实现了媲美 Softmax 注意力的强大表达能力。
2. 背景与动机
Transformer 模型的成功依赖于自注意力机制,但标准 Softmax 注意力的计算复杂度与 Token 数量(即图像分辨率)呈平方关系 (O(N^2))。这导致其在处理高分辨率视觉任务(如检测、分割、生成)时,计算开销高到难以承受。
为了解决这个问题,现有的工作分为两条路径,但都存在缺陷:
- 限制感受野(如 Swin Transformer): 通过将注意力计算限制在局部窗口内来降低成本。但这牺牲了 Transformer 最核心的全局长程依赖建模能力。
- 线性注意力(如 Linear Attention): 通过改变计算顺序或使用矩阵分解,将复杂度降至线性 (O(N))。但这种近似通常会导致模型表达能力严重下降,性能弱于 Softmax 注意力。
本文的动机是:是否存在一种机制,能同时拥有 Softmax 的高表达能力和 Linear 的高效率?
- 动机图解分析(Figure 1 & 2):
- 图表 A (Figure 1):揭示'查询冗余'问题
- '看图说话': Figure 1a (Softmax Attention) 展示了每一个查询(Query,用不同颜色的星星表示)都需要与图像中的所有键/值(Key/Value)进行一一对比,导致 O(N^2) 的复杂度。
- 分析: 论文的核心洞察是,这种计算是高度冗余的。例如,图 1a 中多个代表'天空'的查询(如图中紫色和蓝色的星星),它们需要聚合的上下文信息(例如'鸟'和'树枝'的特征)是高度相似的。
- 解决方案 (Figure 1b): Agent Attention 引入了少数几个'代理 Token'(Agent Tokens,深灰色方块)作为'信息中转站'。
- Step 1 (代理聚合): 少数 n 个代理 Token 先去访问所有的 K/V,聚合回 n 份'全局信息摘要'。
- Step 2 (代理广播): 所有的 N 个查询 Token 不再访问 N 个 K/V,而是只访问这 n 个代理 Token 来获取摘要信息。
- 结论: 由于代理 n 远小于 N (n ≪ N),两步操作的复杂度约为 O(Nnd),从'平方'降低到了'线性'。
- 图表 B (Figure 2):定位 Agent Attention
- '看图说话': 这张图对比了三种注意力的计算流。
- 分析:
- (a) Softmax Attention:在 Q 和 K 之间计算 N × N 的相似度矩阵,是 O(N^2) 的瓶颈。
- 图表 A (Figure 1):揭示'查询冗余'问题


