注意力塌缩:关于“秩”的误会与真相

话题听上去冷僻,却关乎大模型的命脉。

进入技术话题之前,熟悉一下基本概念

什么是矩阵的秩(Rank)?

你可以把一个矩阵想象成一堆向量排成的表格。秩 (rank) 就是这个表格里真正「独立信息」的数量。举个例子:

    • 矩阵 

里面两行完全不同,能提供两条独立信息 → 秩 = 2。

    • 矩阵
      第二行就是第一行的 2 倍 → 实际只提供了一条独立信息 → 秩 = 1。

所以 秩 = 矩阵中真正独立的「信息通道」数


什么叫「满秩」?

如果一个矩阵是 N×N,它最多可以有 N 个独立的信息通道。满秩 就是说它真的把这 N 个通道都用满了,没有浪费。如果没用满,比如一个 1000×1000 的矩阵秩只有 50,就好比虽然它装了 1000 个“麦克风”,但只有 50 个真在工作。

什么是奇异值?

数学家用「奇异值分解(SVD)」把矩阵拆解成一组「主通道」,每个通道有一个强度,叫做 奇异值

非零奇异值的个数,就是秩。直觉上:奇异值大 → 这个方向的信息被好好利用;奇异值小 → 这个方向几乎被忽略。如果大部分奇异值接近零,那么矩阵虽然表面上“很大”,但真正有效的信息维度其实很少。


为什么这对注意力机制很重要?

注意力矩阵本质上就是在「分配信息通道」,决定每个 token 看谁、看多少。理论上,它是满秩的 → 可以用尽所有维度,全局看遍上下文。实际上,实验发现有效秩远低于理论值,大部分通道白白闲置。

这意味着:长上下文的利用效率很低,即使模型号称能看 100k token,真正用到的也就几十个有效维度。理解这个差别,对我们认识大模型的局限性(比如上下文竞争、长程依赖的遗忘),非常关键。


回到技术正题

“自回归的注意力矩阵,不就是下三角吗?对角线上全是正数,这当然是满秩的。”

不少人会这么认为。逻辑看似无懈可击:数学定义如此,矩阵的秩就是非零奇异值的个数啊。还有一个漂亮的例子:如果注意力只看自己,矩阵就是单位阵,满秩无误。

具体的说法,纯解码器架构在自回归时掩码注意力矩阵是个下三角矩阵,由于softmax存在,对角线上一定是正数,因此一定满秩。

注意:1. 掩码矩阵还不是最终的注意力权重。2. 对于对角矩阵,对角线非零意味着满秩;而在一般注意力矩阵中,这只能保证严格秩≥1,但不能保证真正的信息通道都被利用。

先点明结论:从线性代数的角度看,自回归掩码注意力矩阵确实是满秩的,因为对角线上永远有正数。但学界在说‘低秩瓶颈’时,指的不是这个严格意义的满秩,而是‘有效秩’——也就是奇异值谱里真正起作用的信息维度。实测显示,有效秩远低于token长度 L,随着层数加深还会塌缩。这就是为什么论文和工程都在想办法对抗 rank collapse。

数学上的满分答卷

从代数的角度看,这完全正确。
严格秩(algebraic rank)定义:矩阵中非零奇异值的数量。按照线性代数定义,只要对角线上都不为零,注意力矩阵就是满秩的。这就像一张考卷上每道题都有答案,不管答案好坏,空白题数是零,感觉就是满。也像我们有 100 个麦克风,哪怕每个都开着一丝声音,严格秩就是 100。

因果 mask 是什么?因果掩码(causal mask)只是个“谁能看谁”的开关矩阵:对未来位置填上 ,保证 softmax 后注意力概率为 0。它的形状确实是一个下三角(未来都被屏蔽)。但这只是个结构性约束矩阵,并不是最终的注意力权重。

所以没错:作为自回归解码器,GPT注意力矩阵结构上看是一个下三角矩阵,对角线上全是正数,在严格意义上,怎么会不是满秩呢?

工程里的骨感现实

然而,真正matter的“秩”,是信息论视角的有效秩 (effective rank):奇异值谱中,真正撑得起信息的维度数。我们关心的不是它在代数教科书上的定义,而是它在智能实践中的利用率。是考虑奇异值的衰减分布后,真正“起作用的维度”。如果大部分奇异值极小,虽然矩阵严格满秩,但有效秩会低得多。

有效秩有多种定义:能量阈值、熵式秩,但直觉一样:奇异值衰减越快,有效秩就越小,注意力难以有效捕捉信息。

这就像会议室里摆了一百个麦克风,真正有声音的只有 3 个,其余的不是耳语,就是底噪。严格秩依旧是 100,但有效秩≈3。

两边的分歧,正是“数学定义”与“工程语义”的错位。满秩,提醒我们Transformer在理论上可以透过超长距离看遍全局,然而,当序列长度 L 远大于dₖ时,注意力真正被利用的信息通道(自由度),其实只剩下可怜的几十个。

于是,理论上的“全局交互”,在实践中往往萎缩成几个狭窄的主成分。

理论的预言:秩瓶颈

为什么会这样?数学早就埋下伏笔。

在自回归 Transformer 中,注意力权重矩阵 P 是:

其中序列长 L,注意力头维度dₖ。掩码只是把一部分 logits 置零或置 −∞,而最终的权重是由 QKᵀ 的谱性质决定的softmax 保证了每行和为 1,对角线元素通常 >0:注意力权重矩阵经过 softmax 之后,确实每行对角元必然 >0(因为自己至少关注自己)。因为是下三角掩码,矩阵是稀疏的,但只要对角线上全是正数,这个矩阵就是满秩:。所以说,“满秩”在代数意义上可以成立。

但实际有意义的注意力权重矩阵 ≠ 掩码矩阵。掩码只是个下三角布尔模板,决定“能不能看”。权重来自 QKᵀ+mask 再 softmax,秩上限是dₖ,而不是 L。所以才会出现“有效秩塌缩”的现象。

Multi-Head Attention 中的 head size 构成了表示能力的秩瓶颈,head size 小于序列长度将限制表达能力。文献有证明:注意力矩阵QKᵀ 的秩,上限就是键/查询隐层维度 dₖ

当序列长度 L远远大于 dₖ(L≫ dₖ,自由度就被卡死了。换句话说,哪怕窗口允许你输入十万 token,投影到 dₖ=64 的子空间里,最多只剩 64 个独立方向。

就像一条拥挤的马路。QKᵀ 是马路宽度。规则可能允许所有人上路(满秩),但如果马路只有两车道(dₖ),最后能跑的车队规模就被限死了。

秩塌缩(rank collapse)的现象

严格满秩的幻象之下,是有效秩的塌缩现实:注意力矩阵几何上是满秩的,但在有效维度上几乎“塌缩”成一条窄缝。打个比方,掩码就像一张“考场规则表”,写明“你不能看前面同学的答卷,但可以看后面的同学”。真正的注意力权重矩阵是每个人实际“抄到”的信息。规则表可能是满秩的(理论上允许你看所有过去的同学),但抄到的有效信息受限于你大脑能处理的维度dₖ,最后能传递的内容远比规则表允许的范围小。

实测结果表明:大模型注意力的奇异值谱极度尖锐,90%以上的能量集中在少数几个主成分上。在工程实践中,很多开发者报告在 GPT-2 的不同模型中,attention 矩阵的有效秩显著低于序列长度(比如 “几十 vs 数千” 的对比),但这些数字通常来自实际测算而非公开文献,可能因实验设定不同而存在波动。此外,有报告指出在如 LLaMA-65B 等大模型中,当上下文长度为 4k 时,有效秩占比可能低于 3%,这也反映了一种开发者经验,尚未在公开论文中正式量化。

为什么注意力不是单位矩阵?

或曰:单位矩阵的有效秩是N,比如一个注意力矩阵只关注自己,对当前位置权重是1,那这个矩阵就是满秩的。

单位矩阵是一个“有效秩 = N”的特例,例如用熵式秩(公式略过)计算有效秩有:严格秩 = 有效秩 = N。

单位矩阵例子没错,它是严格满秩,同时有效秩也等于 N。但这只是一个极端特例。如果注意力真的学成单位阵(只看自己),模型就完全没有信息交互了,每个 token 都在自说自话。现实中测到的注意力矩阵并不是这样,而是只有少数几个强奇异值,其余迅速衰减到近 0。虽然严格秩依然等于 N,但有效秩远小于 N。论文里说的‘rank collapse’指的是这种普遍现象,而不是特例。

softmax的影响

或问:softmax 不会“救活”维度吗?

答案是否定的。实验显示 softmax 的行归一化倾向让注意力权重更集中,增强“赢者通吃”效应,从而间接加剧有效秩的塌缩。所以很多研究说:softmax 是 Rank Collapse 的推手,而不是解药。表面上看,注意力依然下三角,严格满秩;实际上,它的信息维度塌得更快。

多头注意力:分工扩展“有效秩”的设计

如果单个注意力头的隐层维度是 dₖ,那么它能支撑的有效秩上限也就这么大。一个头就像一支探照灯,能照亮的方向有限。

多头注意力应运而生:多个小秩的子空间并行工作,再把结果拼起来。这样做有两个好处:

    1. 强制多样化:每个头被迫去关注不同的子模式或主方向。比如一个头专注于句法,一个头盯住长程依赖,另一个可能偏向稀有词。

    2. 提升有效秩:单个头的秩受限,但多个头叠加起来,相当于拓展了可用的维度,使整体的信息通道数增加。

所以,从 rank 的角度看,多头机制就是在“扩容”:它并没有改变每个头自身的瓶颈,但通过并行分工,让模型在有限算力下尽量逼近更大的有效秩。

然而,多头也不是银弹:

    • 头数增加有成本:每多一个头,都会增加计算和参数开销,头太多推理时就成了负担。

    • 信息冗余:实验发现很多头其实学了相似的模式,并没有真正带来新的独立方向。

    • 秩扩展有限:哪怕有几十个头,总秩的上限依然受限于总体隐藏维度 h*dₖ

多头注意力只能缓解不能根治。每个头仍然受制于dₖ,叠起来能增加维度,但头数有限,且常常冗余。

超长 context 的幻象

理解了这一点,就能看清如今“超长上下文”的热闹背后。厂商争相宣布支持 128k、甚至百万级 token。但低秩瓶颈注定让它们事倍功半。

长文档里,理论上每个 token 可以看见全局,但实际上,模型能“真用”的只有极少数主成分。于是我们看到,模型总是“遗忘开头”、细节定位不准;推理时,它常常只抓住几个突出的片段,余下的信息像雾一样散去。数字上的“长”,掩盖不了利用率的“短”。此非偶然,而是 rank collapse 的必然产物。

智能的秘密,往往就藏在这潜力与现实之间的落差里。正是在这落差之中,我们才意识到:要么换架构(SSM、MoE),要么加外挂(RAG、记忆模块),否则,继续堆 context 更多是在数字上逞强,在营销中忽悠。

在当下,超长 context(百万级 token)往往更多是宣传数字,而非有效注意。

低秩 ≠ 天生坏事

在这里要澄清一个常见的误会:低秩并不等于坏事

在高维空间里,大量特征本来就高度相关,强行维持“满秩”反而意味着保留了无数冗余。就像把同一首歌录了 100 遍,结果硬说“我有 100 路独立音轨”,其实有 95 路是重复的噪声。这种“假繁荣”的满秩,并不会提升模型的智能。

有人可能会问:是不是语言信号本来就低秩?总体而言,自然语言确实充满冗余,信息熵远低于 token 总数,因此有效维度天然比 L 小。事实上,低秩常常是有益的压缩与泛化机制

    • 这和 主成分分析 (PCA) 的道理一样:把几十维数据压缩到前几个主方向,反而更能抓住核心规律,去掉噪音,泛化性能更好。
    • 自然语言的有效维度本来就比 token 长度小得多。你不可能指望一句话的 1000 个词提供 1000 条独立的信息,大多数词都在互相复述或修饰。

问题不在于“低秩”,而在于 塌得太快

    • 合理的低秩:就像把 100 路麦克风混音成 5 路立体声,音乐依然丰满,而且更清晰。
    • 过度塌缩:如果最后只剩下一路耳语,无论舞台上有多少人唱歌,观众也只听见单调的嗡嗡声。

这也是为什么 Rank Collapse 会成为工程界的隐忧:我们需要的是“有效压缩”,而不是“过度萎缩”,导致信息通道丢失。真正的挑战,是如何在保留核心规律的同时,仍能利用更长程的上下文和更多的独立方向。


结语与启示

“满秩”与“塌缩”的争论,不是对与错,而是两个视角的交错。理解这点,我们就能看清:

    1. 超长上下文的幻象:光拉长序列,没解决瓶颈,性能很快边际递减。
    2. 架构创新的动力:正则化、MoE、SSM、检索增强,本质上都是在绕过 rank collapse,让信息能更高效地流动。

 

参考文献

Bhojanapalli, Srinadh, et al. Low-Rank Bottleneck in Multi-Head Attention Models. Proceedings of the 37th International Conference on Machine Learning (ICML), 2020. (https://arxiv.org/abs/2002.07028

Sanyal, S., Shwartz-Ziv, R., Dimakis, A.G., Sanghavi, S. (2024). When Attention Collapses: How Degenerate Layers in LLMs Enable Smaller, Stronger Models. arXiv:2404.08634 [cs.CL].

苏剑林注意力机制真的可以“集中注意力”吗?


 


 

【附录:side notes 卡片】


滑窗/下三角掩码 ≠ 权重矩阵本身

    • 滑窗注意力或因果注意力的 mask 确实是满秩:比如一个 L×L 的严格下三角(或带状矩阵),只要不全零,它的秩可以达到 L。
    • 但那只是 掩码矩阵(布尔结构),还没有进入 softmax 之前的真正权重计算。

 QKᵀ 的秩上界由 dₖ 限定

    • 当 L ≫ dₖ 时,矩阵 L×L 看似很大,但其代数秩最多就是 dₖ

“每个位置关注的不一样”仍受限于 dₖ

    • 每个 token 的注意力分布可以不一样,这是 softmax 行归一化的结果。
    • 但是,所有这些分布都来自同一个低秩核 QKᵀ。换句话说,token 的个性差异是被低维投影“滤过”的。
    • 所以叠起来的矩阵不是“满秩的 L×L”,而是“被 dₖ 限定秩的近似矩阵”。

为什么直观上会误解成满秩?

    • 看 mask → 下三角/滑窗是满秩;
    • 看可视化的注意力热力图 → 每行都五颜六色,好像“自由度很大”。
    • 但数学上,背后的 QKᵀ 本质上是“在 dₖ 维潜在空间里做相似度对比”,全局自由度有限。

结论

    • 掩码矩阵(下三角/滑窗)是满秩的几何骨架。
    • 真正的注意力权重由 QKᵀ+mask 决定,秩受限于 dₖ,所以叠起来也不会是“满秩自由度”。
    • 所谓“rank collapse”指的就是这种有效秩随层数衰减,而不是掩码本身秩不足。

 


 

发布者

立委

立委博士,多模态大模型应用咨询师。出门问问大模型团队前工程副总裁,聚焦大模型及其AIGC应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理