特征值与特征向量:矩阵的谱、几何直觉与 LLM 推理中的身影

8132 字
41 分钟
特征值与特征向量:矩阵的谱、几何直觉与 LLM 推理中的身影

背景:线性代数里最「抽象」的一章#

你学过的线性代数里,矩阵乘法、行列式、逆矩阵都有一套清晰的操作流程:会算就行。但特征值(eigenvalue)特征向量(eigenvector)不一样——它不是又一个”会算”的运算,而是对”矩阵到底是什么”的一次追问。课程里它常被教成”解一个多项式方程”的机械步骤,导致很多人在学完线代之后,对特征值仍然只有”求 det(A−λI)=0”这一个印象,完全不知道它为什么是线性代数里最重要的概念。

这份”没学透”的代价,会在你读推理优化的论文时反复冒出来。举几个你已经遇到过的例子:

  • RoPE 旋转位置编码用二维旋转矩阵给位置编码,为什么旋转一定跟 cos\cossin\sin 绑在一起?为什么最小旋转块必须是 2×22 \times 2
  • 条件数 κ=σmax/σmin\kappa = \sigma_{\max}/\sigma_{\min} 在上一篇《数值线性代数(一)》里用来度量误差放大倍数,它跟特征值有什么关系?
  • MLA 低秩压缩(见《MLA 完全拆解》)凭什么能用一个小矩阵近似 KV 缓存?“近似得多好”由什么决定?
  • 奇异值到底在衡量矩阵的什么特性?为什么说奇异值快速衰减的矩阵”可压缩”?

这四个问题背后是同一个数学对象。这篇文章把特征值从零讲透:先是几何直觉(矩阵 = 线性变换,特征向量 = 不变的方向),再是计算(特征多项式与对角化),然后是对称矩阵的谱定理——这是通往奇异值、二次型、条件数的枢纽,最后落到你方向上的具体技术(RoPE、MLA、SVD-LLM 量化、Mamba)。

矩阵 = 线性变换:先补齐几何视角#

你的数学档案里记着一条:线代课程理解停留在代数运算层面,缺线性变换的几何视角。上一篇《数值线性代数(一)》已经补过一次:矩阵就是一个把向量送到另一个向量的线性变换,几何效果只有五种基本形态——拉伸、压缩、旋转、反射、剪切。这里不再重复那张图,直接复用它的结论:AA 作用于向量 xx,本质是对 xx 做一次”变形”。

现在做一个小小的思想实验,它直接引出特征值。考虑对角矩阵

A=(2001/3)A = \begin{pmatrix} 2 & 0 \\ 0 & 1/3 \end{pmatrix}

它把 xx 轴的向量拉伸 2 倍,把 yy 轴的向量压缩到 1/31/3。注意这个矩阵对不同方向的向量做了不同的事:沿 xx 轴方向的向量 (1,0)T(1, 0)^T 被拉长,沿 yy 轴方向的 (0,1)T(0, 1)^T 被压扁,而沿方向 (1,1)T(1, 1)^T 的向量被”斜着拉”——既有 xx 分量倍增,又有 yy 分量缩减,方向发生了改变

于是自然产生一个问题:哪些方向的向量,经过 AA 之后方向不变(最多被拉长/缩短)? 对上面的对角矩阵,答案是 xx 轴和 yy 轴两个方向。而一个一般的矩阵,比如把平面整体旋转 30° 的矩阵,答案是:没有——每个向量都被转走了方向。

“找不变的方向”就是特征值问题的全部内容。为什么这个问题如此重要?因为不变方向是理解一个变换的”骨架”:只要你把注意力放在这些方向上,复杂的变形就退化成了简单的”乘一个数”。人类分析任何反复迭代、长期演化的系统(人口增长、网页排名、扩散、动力系统),最终都要靠找出这些不变方向。

特征值与特征向量:不变的方向#

定义与几何含义#

正式定义如下:设 AAn×nn \times n 矩阵。如果存在非零向量 vv 和标量 λ\lambda,使得

Av=λvAv = \lambda v

λ\lambda 称为 AA特征值(eigenvalue)vv 称为对应 λ\lambda特征向量(eigenvector)。德语前缀 eigen 意为”本征的、自身的”,所以也叫本征值/本征向量。

几何含义逐字翻译:AvAv 是”vv 经过变换后得到的新向量”,λv\lambda v 是”vv 自身被缩放 λ\lambda 倍”。等式说:vv 经过变换后仍然落在原来的直线上,只是被拉长(λ>1|\lambda| > 1)或缩短(λ<1|\lambda| < 1)或反向(λ<0\lambda < 0。方向没变,幅度变了。这就是”不变方向”。

几个立即成立的性质:

  • 特征向量不唯一:如果 vv 是特征向量,那么 cvcvc0c \neq 0)也是——它们在同一条直线上。所以通常说”特征向量张成的直线(span)“是特征方向。
  • 每个特征值至少有一个特征向量,不同特征值对应不同的特征方向(后面证明)。
  • λ=0\lambda = 0 意味着 Av=0Av = 0 有非零解,即 AA 奇异(不可逆)。所以”AA 可逆 ⟺ 00 不是特征值”——这是特征值与行列式、可逆性之间的第一个连接点。

一个立刻有用的例子:三维旋转。绕某个轴转 90°,哪个方向不变?旋转轴方向。轴上向量 vv 满足 Av=vAv = v,所以特征值 λ=1\lambda = 1,特征向量就是旋转轴。3Blue1Brown 的《Essence of Linear Algebra》第 14 章(Eigenvectors and eigenvalues)用这个例子开场:在 3D 旋转里找到特征向量,等于直接找到了旋转轴——几何上如此显眼的东西,数学上就是特征值问题。

特征多项式:怎么算出特征值#

定义式 Av=λvAv = \lambda v 移项:

(AλI)v=0(A - \lambda I)v = 0

这里 II 是单位矩阵(II 必须出现:λ\lambda 是标量,不能直接跟矩阵相减)。这是一个齐次线性方程组。它存在非零解 vv 当且仅当系数矩阵 AλIA - \lambda I奇异的(秩亏),也就是行列式为零:

det(AλI)=0\det(A - \lambda I) = 0

这个方程叫特征方程(characteristic equation)det(AλI)\det(A - \lambda I) 展开后是 λ\lambdann 次多项式,叫特征多项式。为什么行列式为 0 等价于有非零解?因为方阵奇异 ⟺ 列向量线性相关 ⟺ 存在非零线性组合为零向量——这正是”非零 vv 使得 (AλI)v=0(A-\lambda I)v = 0”。

2×22 \times 2 例子完整走一遍。取

A=(2112)A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}

特征多项式:

det(AλI)=det(2λ112λ)=(2λ)21=λ24λ+3=(λ1)(λ3)\det(A - \lambda I) = \det \begin{pmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{pmatrix} = (2-\lambda)^2 - 1 = \lambda^2 - 4\lambda + 3 = (\lambda - 1)(\lambda - 3)

两个特征值 λ1=3\lambda_1 = 3λ2=1\lambda_2 = 1。分别求特征向量:对 λ1=3\lambda_1 = 3,解 (A3I)v=0(A - 3I)v = 0,即

(1111)v=0v=(11)\begin{pmatrix} -1 & 1 \\ 1 & -1 \end{pmatrix} v = 0 \quad \Longrightarrow \quad v = \begin{pmatrix} 1 \\ 1 \end{pmatrix}

验证:Av=(3,3)T=3vAv = (3, 3)^T = 3v ✓。对 λ2=1\lambda_2 = 1(AI)v=0(A - I)v = 0 给出 v=(1,1)Tv = (1, -1)^T,验证 Av=(1,1)T=vAv = (1, -1)^T = v ✓。

顺带两个恒等式,考试和生产里都常用:特征值之和等于矩阵的迹(对角线元素之和),特征值之积等于行列式

iλi=tr(A),iλi=det(A)\sum_i \lambda_i = \operatorname{tr}(A), \qquad \prod_i \lambda_i = \det(A)

例子里 tr(A)=4=3+1\operatorname{tr}(A) = 4 = 3 + 1det(A)=3=3×1\det(A) = 3 = 3 \times 1 ✓。这两个恒等式来自特征多项式展开的系数(λn1\lambda^{n-1} 项的系数是 tr(A)-\operatorname{tr}(A),常数项是 (1)ndet(A)(-1)^n \det(A)),以后判断”算出来的特征值对不对”非常方便。

一个重要的数值警告先埋在这里:用特征多项式求特征值在数值上非常不稳定。著名的 Wilkinson 多项式 i=120(xi)\prod_{i=1}^{20}(x - i)(根是 1,2,,201, 2, \dots, 20),把 x19x^{19} 项的系数扰动 2232^{-23},根会剧烈漂移甚至变成复数。所以工程上没人真的展开特征多项式,而是用后面的幂迭代、QR 算法等迭代方法直接逼近特征值。教科书教你解多项式,机器教你迭代。

旋转矩阵与复数特征值:RoPE 的数学根源#

现在看本文开头的问题:旋转矩阵的特征值是什么?考虑二维旋转矩阵(逆时针转 θ\theta 角):

R(θ)=(cosθsinθsinθcosθ)R(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix}

它的特征多项式:

det(R(θ)λI)=(cosθλ)2+sin2θ=λ22cosθλ+1\det(R(\theta) - \lambda I) = (\cos\theta - \lambda)^2 + \sin^2\theta = \lambda^2 - 2\cos\theta \cdot \lambda + 1

判别式 Δ=4cos2θ4=4sin2θ\Delta = 4\cos^2\theta - 4 = -4\sin^2\theta。只要 θ\theta 不是 00π\pi,判别式就是负数——在实数范围内没有解。也就是说:旋转矩阵没有实特征值,没有哪个向量方向保持不变。这完全符合直觉:旋转就是转,当然没有不变方向。

但特征多项式作为实系数二次方程,在复数范围内必有解:

λ=cosθ±isinθ=e±iθ\lambda = \cos\theta \pm i\sin\theta = e^{\pm i\theta}

两个特征值是模长为 1 的复数(单位圆上的点),且互为共轭。这条线索链接着几个重要事实:

  1. 实矩阵的复特征值必成共轭对出现。原因在代数层面:实系数多项式的复根成对共轭(如果 zz 是根,zˉ\bar z 也是)。
  2. 旋转不改变向量长度λ=eiθ=1|\lambda| = |e^{i\theta}| = 1,所以旋转矩阵的谱范数(最大奇异值)也是 1——这与”正交矩阵不放大误差”(上一篇讲 L2 范数时提到的酉不变性)互为印证。
  3. 复数成对出现决定了最小旋转块是 2×22 \times 2:一个实数 1×11 \times 1 的”旋转”只能乘 ±1\pm 1(转 0°180°180°),要想表达”转任意角度”,最少需要把两个共轭特征值装进一个 2×22 \times 2 实矩阵里。

第三点直接对应 RoPE(Rotary Position Embedding,旋转位置编码)。苏剑林等人在 2021 年的论文 RoFormer: Enhanced Transformer with Rotary Position Embedding(arXiv:2104.09864)中,把位置信息编码成块对角旋转矩阵:第 mm 个 token 的查询向量 qmq_m 被旋转 mθ1,mθ2,m\theta_1, m\theta_2, \dots 多个角度(不同频率 θi\theta_i 对应不同维度对),knk_n 被旋转 nθin\theta_i,然后做点积。旋转不变的几何性质(内积在共同旋转下不变)使得 qmknq_m \cdot k_n 自动只依赖相对位置 mnm - n——这正是 RoPE 名字里 “Rotary” 的来源,也是为什么 RoPE 的维度要两两一组:每一组就是一个 2×22 \times 2 旋转块,承载一对共轭复特征值 e±imθie^{\pm im\theta_i}。下图是 RoPE 论文的 Figure 1,画的就是查询/键向量被旋转后,点积只与相对角度有关的几何:

RoPE 论文 Figure 1:查询向量与键向量各自旋转位置角度后做内积,内积只依赖相对位置(旋转角度差),这是旋转位置编码的几何直觉
RoPE 论文 Figure 1:查询向量与键向量各自旋转位置角度后做内积,内积只依赖相对位置(旋转角度差),这是旋转位置编码的几何直觉

本站《答疑特辑:秩与 SVD、RoPE 旋转矩阵…》已经从正交矩阵角度讲过 RoPE 的旋转,这里补上的是它的特征值视角:RoPE 每个旋转块的特征值是单位圆上的复数 e±imθie^{\pm im\theta_i},模长为 1,所以位置旋转永不改变向量的模——位置编码因此不会干扰注意力分数的量级(注意力分数的方差由 d\sqrt{d} 缩放控制,与位置无关)。如果你今后看到”RoPE 的频谱”这类说法,指的就是这些复数特征值在单位圆上的分布。

对角化:换一个坐标系,矩阵就变简单#

特征向量最强大的用途是换基。假设 n×nn \times n 矩阵 AAnn 个线性无关的特征向量 v1,,vnv_1, \dots, v_n(对应特征值 λ1,,λn\lambda_1, \dots, \lambda_n)。把它们排成矩阵 P=(v1  vn)P = (v_1 \ \cdots \ v_n),注意 Avi=λiviAv_i = \lambda_i v_i,所以

AP=(Av1  Avn)=(λ1v1  λnvn)=PΛAP = (Av_1 \ \cdots \ Av_n) = (\lambda_1 v_1 \ \cdots \ \lambda_n v_n) = P \Lambda

其中 Λ=diag(λ1,,λn)\Lambda = \operatorname{diag}(\lambda_1, \dots, \lambda_n) 是对角矩阵。PP 可逆(列线性无关),于是

A=PΛP1,Λ=P1APA = P \Lambda P^{-1}, \qquad \Lambda = P^{-1} A P

这个过程叫对角化(diagonalization)。几何含义非常清晰:P1P^{-1} 把坐标从标准基换成”特征基”,在特征基下 AA 的作用就是沿每个轴单独拉伸 λi\lambda_i 倍,再换回标准基。一个复杂的线性变换,在恰当坐标系里就是”逐轴缩放”——这就是特征向量作为”变换骨架”的意义。

对角化的第一个直接好处是幂运算:因为 A2=PΛP1PΛP1=PΛ2P1A^2 = P\Lambda P^{-1} P \Lambda P^{-1} = P\Lambda^2 P^{-1},归纳得

Ak=PΛkP1,Λk=diag(λ1k,,λnk)A^k = P \Lambda^k P^{-1}, \qquad \Lambda^k = \operatorname{diag}(\lambda_1^k, \dots, \lambda_n^k)

矩阵的幂变成对角矩阵的标量幂。这解释了一类现象:一个系统反复施加 AA 之后,行为由特征值的模长决定——λi>1|\lambda_i| > 1 的方向指数增长,λi<1|\lambda_i| < 1 的方向指数衰减,λi=1|\lambda_i| = 1 的方向保持不变。后面讲幂迭代收敛时这个观察会直接复用。

更一般地,任何能写成幂级数的函数都能”作用”在矩阵上:

f(A)=kckAk=P(f(λ1)f(λn))P1f(A) = \sum_k c_k A^k = P \begin{pmatrix} f(\lambda_1) & & \\ & \ddots & \\ & & f(\lambda_n) \end{pmatrix} P^{-1}

f(A)f(A) 的特征值就是 f(λi)f(\lambda_i)。最重要的一例是矩阵指数 eA=kAk/k!e^{A} = \sum_k A^k / k!:常微分方程组 ddtx(t)=Ax(t)\frac{d}{dt}x(t) = Ax(t) 的解是 x(t)=eAtx0x(t) = e^{At}x_0,而对角化之后每个分量独立演化 eλite^{\lambda_i t}——耦合系统被解耦成独立通道

这条性质直接通向状态空间模型(SSM):Mamba 论文(Gu 与 Dao 等人,2023,Mamba: Linear-Time Sequence Modeling with Selective State Spaces)里的连续系统 h˙(t)=Ah(t)+Bx(t)\dot h(t) = Ah(t) + Bx(t) 经零阶保持离散化后得到

ht=Aˉht1+Bˉxt,Aˉ=eAΔth_t = \bar A h_{t-1} + \bar B x_t, \qquad \bar A = e^{A\Delta t}

S4/Mamba 的关键设计之一就是把 Aˉ\bar A 取为(复)对角矩阵。回想对角化的意义:这等于让状态空间的各个通道彻底解耦,每个通道变成独立的标量递归 ht(i)=aˉiiht1(i)+h_t^{(i)} = \bar a_{ii} h_{t-1}^{(i)} + \dots,而标量递归可以沿序列维做并行前缀和(parallel scan)——这正是这类架构在 GPU 上能高效并行推理的数学根源之一(对比注意力需要一次性看到整段 KV)。一个”换坐标使矩阵变简单”的绝佳例证。

不是所有矩阵都能对角化。条件是”nn 个线性无关的特征向量”,缺失时矩阵只能化成 Jordan 标准形。典型反例是剪切矩阵:

S=(1101)S = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}

特征值只有 λ=1\lambda = 1(二重),但 (SI)v=0(S - I)v = 0 解出的特征向量只有 (1,0)T(1, 0)^T 这一个方向——几何上,剪切把 yy 轴”铲”到一边,只有一个方向不动。特征值的代数重数(特征多项式中的重数,这里是 2)与几何重数(对应特征空间的维数,这里是 1)不相等,就不存在足够多的特征向量。这类”退化”矩阵在推理技术里最著名的例子是 RoPE 旋转块退化到 θ=0\theta = 0 的情况(对应频率为 0 的维度),不过那是另一个话题。

对称矩阵:谱定理#

对角化对一般矩阵要求苛刻,但对一类最重要的矩阵——对称矩阵AT=AA^T = A)——永远成立,而且性质好得多。这是整个线性代数里最漂亮、也最常用的定理,叫谱定理(spectral theorem)

实对称矩阵 AA 的特征值全部是实数,且存在正交矩阵 QQQT=Q1Q^T = Q^{-1})使得 A=QΛQTA = Q\Lambda Q^T。即:对称矩阵可以被正交对角化

两个结论分别证明,都只需要一步关键论证。

(1)特征值是实数。Av=λvAv = \lambda vv0v \neq 0。考察标量 vTAvv^T Av:一方面它是实数(1×11 \times 1 矩阵,且 (vTAv)T=vTATv=vTAv(v^T Av)^T = v^T A^T v = v^T Av,等于自己的转置所以是实数);另一方面 vTAv=vT(λv)=λv2v^T Av = v^T (\lambda v) = \lambda \|v\|^2v2>0\|v\|^2 > 0,于是 λ\lambda 必须是实数。

(2)不同特征值的特征向量正交。Av=λvAv = \lambda vAw=μwAw = \mu wλμ\lambda \neq \mu。两边作用内积并利用对称性 AT=AA^T = A

λv,w=Av,w=v,ATw=v,Aw=μv,w\lambda \langle v, w \rangle = \langle Av, w \rangle = \langle v, A^T w \rangle = \langle v, Aw \rangle = \mu \langle v, w \rangle

(λμ)v,w=0(\lambda - \mu)\langle v, w \rangle = 0,而 λμ\lambda \neq \mu,所以 v,w=0\langle v, w \rangle = 0——特征向量互相垂直。把重数也处理掉(对每个特征空间取正交基)就得到完整的正交对角化 A=QΛQTA = Q\Lambda Q^T

为什么对称矩阵在工程里无处不在?因为协方差矩阵、Gram 矩阵、ATAA^T A、Hessian 矩阵、拉普拉斯矩阵全都是对称的——任何”度量向量之间关系”的矩阵几乎天然对称。谱定理保证它们有扎实的谱理论可用。

谱定理最漂亮的几何应用是二次型(quadratic form)。对称矩阵 AA 定义二次型 xTAxx^T Ax,集合 {x:xTAx=1}\{x : x^T Ax = 1\} 是一个超椭球:特征向量方向是椭球的主轴,主轴半轴长是 1/λi1/\sqrt{\lambda_i}。用 A=QΛQTA = Q\Lambda Q^T 代入即可看出:令 y=QTxy = Q^T x(旋转坐标系),则 xTAx=yTΛy=iλiyi2x^T A x = y^T \Lambda y = \sum_i \lambda_i y_i^2——椭球方程在主轴坐标系下就是”每轴独立缩放”。特征值就是”各方向弯曲/拉伸的强度”

半正定与正定的定义也在这里:对称矩阵 AA 半正定(xTAx0x^T Ax \ge 0 对所有 xx)当且仅当所有特征值 λi0\lambda_i \ge 0;正定(>0> 0)当且仅当所有特征值 >0> 0。这是因为 xTAx=iλi(yi)2x^T A x = \sum_i \lambda_i (y_i)^2,椭球的每个半轴都要”非负”。这串起两件你见过的东西:协方差矩阵半正定(方差非负),ATAA^T A 半正定(Ax20\|Ax\|^2 \ge 0)。

最后是条件数的新视角。上一篇定义条件数 κ=σmax/σmin\kappa = \sigma_{\max}/\sigma_{\min}。对对称正定矩阵,奇异值恰好等于特征值(σi=λi\sigma_i = |\lambda_i|),于是

κ2(A)=λmaxλmin\kappa_2(A) = \frac{\lambda_{\max}}{\lambda_{\min}}

误差放大倍数 = 最大拉伸与最小拉伸之比。条件数巨大的矩阵意味着”各方向拉伸极不均匀”——椭球有一根很长的轴和一根极短的轴,从几何上直接看到病态性。这回答了开头的第二个问题:上一篇的条件数公式和”特征值”是同一枚硬币的两面,对称时二者重合。

从特征值到奇异值:ATAA^T A 的谱#

奇异值分解(SVD)A=UΣVTA = U\Sigma V^T 你已经会用(《数值线性代数(一)》给了它”先旋转、再拉伸、再旋转”的几何解读),但奇异值为什么等于拉伸倍数大小意味着什么,答案藏在特征值里。

关键事实:ATAA^T A 是对称半正定矩阵,所以它可正交对角化,特征值非负。定义

σi=λi(ATA)(i=1,,n)\sigma_i = \sqrt{\lambda_i(A^T A)} \quad (i = 1, \dots, n)

AA奇异值VV 的列(ATAA^T A 的特征向量)叫右奇异向量,AATAA^T 的特征向量(对应同样特征值)叫左奇异向量。推导只需要一行:Av22=vTATAv=λvTv=λ\|Av\|_2^2 = v^T A^T A v = \lambda v^T v = \lambda,所以当 vvATAA^T A 的特征向量时,AvAv 的长度恰好是 λ=σ\sqrt{\lambda} = \sigma奇异值 = AA 沿对应方向的拉伸倍数,谱范数 = 最大奇异值——上一篇给过的两个结论现在都有了出处。

SVD 的构造过程值得再直观地看一眼。Shlens 的经典教程 A Tutorial on Principal Component Analysis(arXiv:1404.1100)的 Figure 4 展示了 SVD 如何从标量形式构造出矩阵形式。标量形式把 AA 写成 rank-1 项的累加:

A=iσiuiviTA = \sum_{i} \sigma_i \, u_i v_i^T

每一项 σiuiviT\sigma_i u_i v_i^T 的几何效果是:沿 viv_i 方向取出分量 → 放大 σi\sigma_i 倍 → 放到 uiu_i 方向(一个”方向到方向的搬运”)。把全部 nn 项叠加起来,就得到矩阵形式 A=UΣVTA = U\Sigma V^T——“先旋转(VTV^T)、再沿坐标轴拉伸(Σ\Sigma)、最后再旋转(UU)“三步缝合。下图是该图的左右两个面板:

SVD 的构造(PCA 教程 Figure 4 面板一):从标量形式 A = Σσᵢuᵢvᵢᵀ 出发的构造示意(图源:Shlens 的 PCA 教程,arXiv:1404.1100)
SVD 的构造(PCA 教程 Figure 4 面板一):从标量形式 A = Σσᵢuᵢvᵢᵀ 出发的构造示意(图源:Shlens 的 PCA 教程,arXiv:1404.1100)

SVD 的构造(PCA 教程 Figure 4 面板二):把各 rank-1 项叠加为矩阵形式 UΣVᵀ,「旋转-拉伸-旋转」的几何结构就藏在这组等式里(图源:Shlens 的 PCA 教程,arXiv:1404.1100)
SVD 的构造(PCA 教程 Figure 4 面板二):把各 rank-1 项叠加为矩阵形式 UΣVᵀ,「旋转-拉伸-旋转」的几何结构就藏在这组等式里(图源:Shlens 的 PCA 教程,arXiv:1404.1100)

于是第一个疑问有了答案:“奇异值大小对应矩阵的什么特性?” 奇异值从大到小排列 σ1σ2σn\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_n,就是”矩阵最强的拉伸方向、次强、……最弱的拉伸方向”的强度列表。如果一个矩阵的奇异值快速衰减(比如 σ1\sigma_1σk\sigma_k 大好几个数量级),说明它的作用主要集中在少数几个方向上——绝大多数方向几乎不被触碰。这样的矩阵就是”近似低秩”的,可以用很少的信息近似。

低秩近似能近似到多好,有精确的理论回答,这就是 Eckart–Young 定理(Eckart 与 Young,1936)。设 AA 的奇异值分解为 A=UΣVTA = U\Sigma V^TAkA_k 表示只保留前 kk 个奇异值的截断 SVDAk=UkΣkVkTA_k = U_k \Sigma_k V_k^T。在所有秩不超过 kk 的矩阵中,AkA_k 是最优近似,且误差有封闭表达式:

minrank(A^)kAA^F2=AAkF2=i=k+1nσi2\min_{\operatorname{rank}(\hat A) \le k} \|A - \hat A\|_F^2 = \|A - A_k\|_F^2 = \sum_{i = k+1}^{n} \sigma_i^2

误差等于被砍掉的奇异值的平方和(Frobenius 范数下;谱范数下最优误差是 σk+1\sigma_{k+1})。定理的证明思路值得体会:对任意 rank-kkA^\hat A,利用正交不变性(旋转不改变 Frobenius 范数)做 UT(AA^)VU^T(A - \hat A)V 的变换,对角结构迫使 AA^F2\|A - \hat A\|_F^2 至少包含 nkn - k 个奇异值平方的贡献,而截断 SVD 恰好取到等号。

这个定理是低秩压缩技术的数学地基,直接回答开头的第三个问题——MLA 为什么有效:

  • MLA(Multi-head Latent Attention,DeepSeek 于 2024 年在 DeepSeek-V2 中提出,本站有完整拆解)把 KV 缓存压缩进低维 latent cKVc_{KV},推理时用上投影矩阵 WUKW^{UK} 把它映射回 KKVV 参与注意力。它有效的前提是:注意力里实际用到的 KV 信息在低维子空间中就能承载,即”KV 表示矩阵的奇异值快速衰减”。Eckart–Young 定理保证:只要奇异值谱衰减得够快,截断低秩近似的误差 i>kσi2\sum_{i>k}\sigma_i^2 就足够小。
  • 反过来,如果某个矩阵奇异值衰减慢(谱”平坦”),低秩压缩必然损失大——测量一个矩阵是否可压缩,看它的奇异值谱就够了。这也是为什么论文里讨论低秩分解时总是画奇异值衰减曲线。

低秩+量化结合的方向也值得提一句:SVD-LLM(Wang 等人,2024,SVD-LLM: Truncation-aware Singular Value Decomposition for Large Language Model Compression)把权重矩阵做 SVD 截断后再量化剩余部分。它的一个关键设计是”截断感知的数据白化”:直接用权重做 SVD 时,“砍掉小奇异值”并不严格对应”压缩损失小”(因为输入分布会把不同方向放大),于是它用校准数据的协方差做白化(Cholesky 分解,就是《数值线性代数(一)》预告过的那个分解),使得截断误差与奇异值严格对齐——小奇异值 = 小损失,截断才有理论保证。下图是论文的 Figure 1,完整管线是”数据白化 → SVD → 按奇异值截断 → 合并回权重 → (高压缩率下)逐层参数更新”:

SVD-LLM 论文 Figure 1 的整体管线:对权重做截断感知的白化后执行 SVD 与奇异值截断,实现低秩压缩与量化的结合(图源:SVD-LLM, arXiv:2403.07378)
SVD-LLM 论文 Figure 1 的整体管线:对权重做截断感知的白化后执行 SVD 与奇异值截断,实现低秩压缩与量化的结合(图源:SVD-LLM, arXiv:2403.07378)

下面用一段可复现的 Python 把本节的两个结论做实:随机矩阵的奇异值谱与 Eckart–Young 误差(结果依赖随机种子,但”误差随 k 单调下降、且等于被砍奇异值平方和”这个关系每次成立):

import numpy as np
rng = np.random.default_rng(0)
A = rng.normal(size=(32, 32)) # 随机稠密矩阵,奇异值衰减缓慢
U, s, Vt = np.linalg.svd(A) # s 是奇异值(降序)
for k in (2, 4, 8, 16):
Ak = U[:, :k] @ np.diag(s[:k]) @ Vt[:k, :]
err2 = np.linalg.norm(A - Ak, ord="fro") ** 2
pred = np.sum(s[k:] ** 2) # Eckart-Young:被砍奇异值的平方和
print(f"k={k:2d} 实测误差^2={err2:.3f} 理论值={pred:.3f} 一致={np.isclose(err2, pred)}")

输出示例:

k= 2 实测误差^2=35.475 理论值=35.475 一致=True
k= 4 实测误差^2=33.365 理论值=33.365 一致=True
k= 8 实测误差^2=27.868 理论值=27.868 一致=True
k=16 实测误差^2=17.534 理论值=17.534 一致=True

注意随机矩阵的奇异值衰减很慢(σk\sigma_kkk 缓慢下降),所以 k=2k=2 时误差仍然很大——这正是”谱平坦的矩阵不可压缩”的直观演示。真实的 LLM 权重与 KV 表示往往表现出更快的衰减(部分源于训练中的隐式正则与低秩结构),这正是低秩压缩技术有效的原因。

幂迭代与瑞利商:数值上怎么算最大特征值#

前面埋的伏笔在这里兑现:工程上不用特征多项式,而是用迭代法。最基础也最直观的算法是幂迭代(power iteration),计算的是模长最大的特征值及其特征向量(称为主特征对):

v ← 任意非零向量(如随机向量)
重复:
w ← A v
v ← w / ‖w‖ # 归一化,防止溢出
直到 v 收敛

为什么收敛?把初始向量按特征向量展开 v(0)=c1v1+c2v2++cnvnv^{(0)} = c_1 v_1 + c_2 v_2 + \dots + c_n v_n(假设可对角化,λ1>λ2|\lambda_1| > |\lambda_2| \ge \dots)。迭代 kk 次后

Akv(0)=c1λ1kv1+c2λ2kv2+=λ1k(c1v1+c2(λ2λ1)kv2+)A^k v^{(0)} = c_1 \lambda_1^k v_1 + c_2 \lambda_2^k v_2 + \dots = \lambda_1^k \left( c_1 v_1 + c_2 \left(\frac{\lambda_2}{\lambda_1}\right)^k v_2 + \dots \right)

归一化只改变整体长度,不改变各方向的占比。括号里第一项固定,其余项按 (λ2/λ1)k(\lambda_2/\lambda_1)^k 指数衰减——主特征方向占比每轮乘以 λ2/λ1|\lambda_2/\lambda_1|。所以收敛速度由谱隙(spectral gap) γ=λ1λ2\gamma = |\lambda_1| - |\lambda_2| 决定:谱隙越大收敛越快。

幂迭代最著名的应用是 PageRank。Brin 与 Page 在 1998 年的论文 The Anatomy of a Large-Scale Hypertextual Web Search Engine 中把网页排名建模为马尔可夫链的平稳分布:每个网页是状态,链接转移构成行随机矩阵 GG(每行元素和为 1,所以 G1=1G\mathbf{1} = \mathbf{1}——全 1 向量是特征值 λ=1\lambda = 1 的特征向量)。行随机矩阵的谱半径恰好是 1:一方面 λ=1\lambda = 1 真实存在,另一方面由 Gershgorin 圆盘定理,特征值都落在以对角元为圆心、半径不超过 1aii1 - a_{ii} 的圆盘内,模长不可能超过 1。PageRank 向量就是主特征向量(平稳分布),用幂迭代在数千万维的矩阵上求解——这也是”幂迭代实际支撑了谷歌早期搜索”的经典故事。推理侧同样有它的身影:分析某些系统的长期行为(比如缓存命中率的稳态、注意力在长序列上的退化趋势)时,主特征值与谱隙是核心量。

瑞利商(Rayleigh quotient) 是配套工具。对实对称矩阵 AA,定义

R(x)=xTAxxTx,x0R(x) = \frac{x^T A x}{x^T x}, \qquad x \neq 0

xx 按正交特征基展开 x=icivix = \sum_i c_i v_i,代入得

R(x)=iλici2ici2R(x) = \frac{\sum_i \lambda_i c_i^2}{\sum_i c_i^2}

这是特征值的加权平均(权重是各方向分量的能量占比),所以 R(x)[λmin,λmax]R(x) \in [\lambda_{\min}, \lambda_{\max}],且 R(vi)=λiR(v_i) = \lambda_i。用途有二:一是把幂迭代每轮的估计值 λR(v(k))\lambda \approx R(v^{(k)}),收敛更快更稳(这叫瑞利商迭代);二是作为”试探向量 xx 逼近特征向量程度”的度量——R(x)R(x) 越接近某个特征值,xx 越接近对应特征向量。量化论文里分析”权重主方向”时经常隐式用到这类思想(判断某个方向是否主导,就看它在能量占比上的集中度)。

工程上要算全部特征值,用的是 QR 算法(对称情形下退化为更快的 Jacobi 算法)、Lanczos/Arnoldi 迭代等,都建立在”迭代+正交化”思想上;GPU 上的 cuSOLVER 的 syevd/gesvd 系列例程就是这些算法的实现。这里不展开,记住一句话即可:特征值问题是迭代问题,不是多项式求根问题

数值的坑:特征值问题也会病态#

特征值问题同样有”问题病态”与”算法不稳”的区分(呼应上一篇的框架)。对称矩阵是幸运儿:Weyl 定理(1912)说,对称矩阵 AA 被小扰动 EE 扰动后,特征值的移动有界:

λi(A+E)λi(A)E2|\lambda_i(A + E) - \lambda_i(A)| \le \|E\|_2

扰动被特征值直接吸收,不放大——对称特征值问题是良态的。

非对称矩阵可以非常病态。Wilkinson 在 1965 年的经典例子:nn 阶上三角矩阵,主对角元全为 0(特征值全是 0),但副对角元取正值——它对角元是 0 所以特征多项式是 λn\lambda^n,特征值全 0;然而只要在某个元素上加一个机器精度量级的扰动 ε\varepsilon,特征值就会跳到 ε1/n\varepsilon^{1/n} 的量级。n=20n = 20 时,ε1020\varepsilon \approx 10^{-20} 的扰动(双精度能表示的最小相对量附近)就能让特征值蹦到 0.10.1 量级。换句话说,这个矩阵的特征值在浮点世界里根本不可信

工程启示有三条:

  1. 尽量把问题对称化:能处理 ATAA^T AA+ATA + A^T 就不直接处理非对称 AA(代价是要小心条件数平方,见下文);
  2. 看到非对称矩阵的特征值结论,先问”这个矩阵结构上有什么保证”;
  3. 奇异值分解永远良态(AA 的奇异值对 AA 的扰动同样满足类 Weyl 界,无论 AA 是否对称)——这也是工程上偏爱 SVD 而非非对称特征分解的原因之一。你会在量化误差分析(如 FP8 缩放因子的选择)里反复遇到”哪个分解更稳”的取舍。

小结:一张表看完全部关系#

把本文的所有概念放进一张关系表:

概念定义几何含义你方向上的落点
特征值/特征向量Av=λvAv = \lambda v不变方向与拉伸倍数旋转轴、稳态、谱隙
特征多项式det(AλI)=0\det(A - \lambda I) = 0求解特征值(数值上不用它)理解”为什么”的推导工具
复数特征值旋转矩阵 λ=e±iθ\lambda = e^{\pm i\theta}无实不变方向的旋转RoPE 旋转块、单位圆频谱
对角化A=PΛP1A = P\Lambda P^{-1}换到特征基,逐轴缩放幂运算、矩阵函数、Mamba 对角 Aˉ\bar A
谱定理A=QΛQTA = Q\Lambda Q^T(对称)椭球主轴 = 特征向量二次型、协方差、条件数 λmax/λmin\lambda_{\max}/\lambda_{\min}
奇异值σi=λi(ATA)\sigma_i = \sqrt{\lambda_i(A^T A)}各方向拉伸强度谱范数、Eckart–Young、低秩压缩(MLA、SVD-LLM)
幂迭代/瑞利商vAv/Avv \leftarrow Av/\|Av\|主特征方向占优PageRank、最大特征值估计

回到开头四个问题,现在都能给出答案:

  • RoPE 为什么跟 cos/sin\cos/\sin 绑定:旋转矩阵的特征值是单位圆上的复数 e±iθe^{\pm i\theta},复共轭成对要求最小旋转块是 2×22 \times 2,而 2×22 \times 2 旋转的矩阵元就是 cos/sin\cos/\sin
  • 条件数为什么是 σmax/σmin\sigma_{\max}/\sigma_{\min}:因为矩阵范数的误差放大倍数就是”最大拉伸/最小拉伸”,对称正定时恰为 λmax/λmin\lambda_{\max}/\lambda_{\min}
  • MLA 为什么能低秩压缩:Eckart–Young 定理给出截断误差 = 被砍奇异值平方和,KV 表示谱衰减快是压缩有效的前提;
  • 奇异值衡量什么:各方向的拉伸强度;谱越陡峭,矩阵越接近低秩、越可压缩。

特征值把”矩阵”从一串数变成一幅几何图画:先找到不变的方向,再在不变的方向上看世界。这套视角在你后面读量化、稀疏注意力、状态空间模型的论文时会不断被调用。

参考资料#

  1. RoFormer: Enhanced Transformer with Rotary Position Embedding(RoPE 论文,arXiv:2104.09864)
  2. SVD-LLM: Truncation-aware Singular Value Decomposition for Large Language Model Compression(arXiv:2403.07378)
  3. SVD-LLM 官方代码仓库(GitHub: tuidan/SVD-LLM)
  4. Mamba: Linear-Time Sequence Modeling with Selective State Spaces(arXiv:2312.00752)
  5. A Tutorial on Principal Component Analysis(Shlens,arXiv:1404.1100)
  6. Eigenvectors from Eigenvalues: A Survey of a Basic Identity in Linear Algebra(Denton–Parke–Tao–Zhang,arXiv:1908.03795)
  7. Eigenvectors and eigenvalues | Essence of Linear Algebra, Chapter 14(3Blue1Brown)
  8. Linear Algebra(MIT OCW 18.06,Gilbert Strang)
  9. The Anatomy of a Large-Scale Hypertextual Web Search Engine(Brin & Page,1998)
  10. Eigenvalues and eigenvectors(Wikipedia)
  11. Low-rank approximation(Eckart–Young 定理,Wikipedia)
  12. Power iteration(Wikipedia)
  13. 本站:《数值线性代数(一):高斯消元、LU 分解与「不要显式求逆」》《MLA 完全拆解》《答疑特辑:秩与 SVD、RoPE 旋转矩阵…》

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

特征值与特征向量:矩阵的谱、几何直觉与 LLM 推理中的身影
https://pinghaoyang.com.cn/aigc/posts/eigenvalues-eigenvectors/
作者
平昊阳
发布于
2026-08-29
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
平昊阳
乘长风,破巨浪, 展鸿图于未央!
--
总访问量
--
访客数
公告
欢迎来到我的个人博客!欢迎关注交流吖!
更多相关公告,见
社交-留言」。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
站点统计
文章
88
分类
18
标签
114
总字数
748,494
运行时长
0
最后活动
0 天前

文章目录