线性注意力的线性代数前置知识

线性注意力的线性代数前置知识

线性注意力这一路的推导,卡人的地方几乎都不是注意力,而是线性代数。DeltaNet 的状态更新写成 St=St1(Iβtktkt)+βtvtkt\mathbf{S}_t = \mathbf{S}_{t-1}(\mathbf{I} - \beta_t \bm{k}_t \bm{k}_t^{\intercal}) + \beta_t \bm{v}_t \bm{k}_t^{\intercal},右乘的那个 Iβtktkt\mathbf{I} - \beta_t\bm{k}_t\bm{k}_t^{\intercal} 被称为广义 Householder 变换;chunkwise 形式里的 UT 变换、WY 表示、T\mathbf{T} 矩阵,全都是这个秩一修正在一个 chunk 内累乘之后的产物。不先把 I2uu\mathbf{I} - 2\bm{u}\bm{u}^{\intercal} 这个原型搞透,后面每一步都只能靠记公式。

本系列按「用到什么补什么」的顺序拆前置知识,第一部分是 Householder 矩阵:定义、对称性、正交性、单位向量条件为什么不能省、几何意义、以及完整的特征值计算。全部结论都给证明,并给一段可复跑的数值验证。


1. Householder 矩阵

1.1 定义

uRn\bm{u} \in \mathbb{R}^nuu=1\bm{u}^{\intercal}\bm{u} = 1(即 u2=1\|\bm{u}\|_2 = 1),定义

H=I2uuRn×n\mathbf{H} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal} \in \mathbb{R}^{n \times n}

这里 uu\bm{u}\bm{u}^{\intercal}秩一n×nn \times n 矩阵(外积),H\mathbf{H} 是单位矩阵的秩一修正。

两点必须一开始就说清楚:

  • H\mathbf{H} 只依赖 u\bm{u} 的方向,不依赖朝向:把 u\bm{u} 换成 u-\bm{u}(u)(u)=uu(-\bm{u})(-\bm{u})^{\intercal} = \bm{u}\bm{u}^{\intercal}H\mathbf{H} 不变。所以一条过原点的直线(u\bm{u} 的张成空间)唯一确定一个 H\mathbf{H}
  • u\bm{u} 是反射超平面的法向量H\mathbf{H} 实现的是关于超平面 {x:ux=0}\{\bm{x} : \bm{u}^{\intercal}\bm{x} = 0\} 的镜面反射,u\bm{u} 垂直于这张镜子而不是躺在镜子里。这一点在 §1.5 会被几何证明。

一个立即可用的展开式(后面反复用到):

Hx=x2u(ux)=x2(ux)u\mathbf{H}\bm{x} = \bm{x} - 2\bm{u}(\bm{u}^{\intercal}\bm{x}) = \bm{x} - 2(\bm{u}^{\intercal}\bm{x})\,\bm{u}

注意 ux\bm{u}^{\intercal}\bm{x} 是标量。这说明实现上永远不要显式构造 H\mathbf{H}:一次内积加一次 axpy,O(n)O(n) 就能算完 Hx\mathbf{H}\bm{x},而显式矩阵乘是 O(n2)O(n^2)。DeltaNet kernel 里对 Iβkk\mathbf{I} - \beta\bm{k}\bm{k}^{\intercal} 的处理沿用同一思路。

1.1.1 一个数字算例:矩阵形式是怎么被「提」出来的

定义式 H=I2uu\mathbf{H} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal} 常被当成天降公式,其实它只是把「反射两步走」这句话提取公因子的结果。取 n=2n = 2u=e1=[1,0]\bm{u} = \bm{e}_1 = [1, 0]^{\intercal}x=[3,2]\bm{x} = [3, 2]^{\intercal} 走一遍:

图分三层,对应三个视角:

  • (a) 几何u=e1\bm{u} = \bm{e}_1 时镜面就是 x2x_2 轴。从 x\bm{x} 出发沿 u-\bm{u} 方向走一步 (ux)u-(\bm{u}^{\intercal}\bm{x})\bm{u} 落到镜面上(此时第一坐标归零),再走同样的一步就到 x\bm{x}'。两步等长,这正是系数 2 的来源。
  • (b) 数字验证ux=13+02=3\bm{u}^{\intercal}\bm{x} = 1 \cdot 3 + 0 \cdot 2 = 3,于是 x2(ux)u=[3,2][6,0]=[3,2]\bm{x} - 2(\bm{u}^{\intercal}\bm{x})\bm{u} = [3,2]^{\intercal} - [6,0]^{\intercal} = [-3,2]^{\intercal};另一条路先建矩阵 H=I2e1e1=diag(1,1)\mathbf{H} = \mathbf{I} - 2\bm{e}_1\bm{e}_1^{\intercal} = \operatorname{diag}(-1, 1),再算 Hx=[3,2]\mathbf{H}\bm{x} = [-3,2]^{\intercal}。两条路结果相同。
  • © 推导:唯一需要的一步是 ux\bm{u}^{\intercal}\bm{x}标量,标量与向量相乘可换序,所以 (ux)u=u(ux)(\bm{u}^{\intercal}\bm{x})\bm{u} = \bm{u}(\bm{u}^{\intercal}\bm{x})。换序之后 x\bm{x} 变成右端公因子,反着用分配律提出来:

x=x2(ux)u=x2u(ux)=(I2uu)x=Hx\bm{x}' = \bm{x} - 2(\bm{u}^{\intercal}\bm{x})\bm{u} = \bm{x} - 2\bm{u}(\bm{u}^{\intercal}\bm{x}) = \big(\mathbf{I} - 2\bm{u}\bm{u}^{\intercal}\big)\bm{x} = \mathbf{H}\bm{x}

换序是全部的技巧所在(ux)u(\bm{u}^{\intercal}\bm{x})\bm{u}x\bm{x} 被夹在中间提不出来,写成 u(ux)\bm{u}(\bm{u}^{\intercal}\bm{x})uu\bm{u}\bm{u}^{\intercal} 自然聚成一个矩阵。这个算例里 H=diag(1,1)\mathbf{H} = \operatorname{diag}(-1, 1) 顺带把 §1.6 的结论提前摆了出来:谱为 {1,+1}\{-1, +1\}det=1\det = -1tr=0=n2\operatorname{tr} = 0 = n - 2。一般的 u\bm{u} 只是把这个对角矩阵旋转到 u\bm{u} 指向的坐标系里而已。

1.2 对称性证明

H=(I2uu)=I2(uu)=I2uu=H\mathbf{H}^{\intercal} = (\mathbf{I} - 2\bm{u}\bm{u}^{\intercal})^{\intercal} = \mathbf{I}^{\intercal} - 2(\bm{u}\bm{u}^{\intercal})^{\intercal} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal} = \mathbf{H} \qquad \blacksquare

关键一步是 (uu)=(u)u=uu(\bm{u}\bm{u}^{\intercal})^{\intercal} = (\bm{u}^{\intercal})^{\intercal}\bm{u}^{\intercal} = \bm{u}\bm{u}^{\intercal}:外积矩阵天然对称。这一步完全没有用到 uu=1\bm{u}^{\intercal}\bm{u} = 1,所以对称性对任意 v\bm{v}I2vv\mathbf{I} - 2\bm{v}\bm{v}^{\intercal} 都成立——这是 §1.4 反例仍然对称、但不再正交的原因。

1.3 正交性证明

由 §1.2 有 HH=H2\mathbf{H}^{\intercal}\mathbf{H} = \mathbf{H}^2,直接展开:

HH=H2=(I2uu)(I2uu)=I4uu+4uuuu=I4uu+4u(uu)u=I4uu+4uu=I\begin{aligned} \mathbf{H}^{\intercal}\mathbf{H} = \mathbf{H}^2 &= (\mathbf{I} - 2\bm{u}\bm{u}^{\intercal})(\mathbf{I} - 2\bm{u}\bm{u}^{\intercal}) \\ &= \mathbf{I} - 4\bm{u}\bm{u}^{\intercal} + 4\,\bm{u}\bm{u}^{\intercal}\bm{u}\bm{u}^{\intercal} \\ &= \mathbf{I} - 4\bm{u}\bm{u}^{\intercal} + 4\,\bm{u}(\bm{u}^{\intercal}\bm{u})\bm{u}^{\intercal} \\ &= \mathbf{I} - 4\bm{u}\bm{u}^{\intercal} + 4\bm{u}\bm{u}^{\intercal} \\ &= \mathbf{I} \qquad \blacksquare \end{aligned}

第三行到第四行是唯一用到 uu=1\bm{u}^{\intercal}\bm{u} = 1 的地方:靠结合律把中间的 uu\bm{u}^{\intercal}\bm{u} 抠成标量 1,两个 4uu4\bm{u}\bm{u}^{\intercal} 才恰好抵消。

推论(对合性)H2=I\mathbf{H}^2 = \mathbf{I} 说明 H\mathbf{H}对合(involution),于是

H1=H=H\mathbf{H}^{-1} = \mathbf{H} = \mathbf{H}^{\intercal}

作用两次回到自身——这就是反射的代数签名。对比一下:旋转矩阵也正交,但一般 R1=RR\mathbf{R}^{-1} = \mathbf{R}^{\intercal} \neq \mathbf{R},转两次不回原位。「正交 + 对称」两条同时成立的矩阵,本质上只能是若干方向上取 ±1\pm 1 的对角化形式,Householder 是其中最简单的一类(只有一个 1-1)。

正交性带来两个工程上直接有用的性质:

  • 保长度Hx2=xHHx=xx=x2\|\mathbf{H}\bm{x}\|^2 = \bm{x}^{\intercal}\mathbf{H}^{\intercal}\mathbf{H}\bm{x} = \bm{x}^{\intercal}\bm{x} = \|\bm{x}\|^2
  • 保内积(保角)(Hx)(Hy)=xy(\mathbf{H}\bm{x})^{\intercal}(\mathbf{H}\bm{y}) = \bm{x}^{\intercal}\bm{y}

所以用 Householder 做变换在数值上是完全稳定的:条件数恒为 1,误差不放大。QR 分解选它而不选 Gram-Schmidt,就是这个原因。

1.4 「u\bm{u} 必须是单位向量」不可省

把单位化条件去掉,取任意 vRn\bm{v} \in \mathbb{R}^nvv1\bm{v}^{\intercal}\bm{v} \neq 1,令 H=I2vv\mathbf{H}' = \mathbf{I} - 2\bm{v}\bm{v}^{\intercal}。重做 §1.3 的展开,中间那个 vv=v2\bm{v}^{\intercal}\bm{v} = \|\bm{v}\|^2 不再是 1:

(H)2=I4vv+4v(vv)v=I4vv+4v2vv=I4(1v2)vv    I\begin{aligned} (\mathbf{H}')^2 &= \mathbf{I} - 4\bm{v}\bm{v}^{\intercal} + 4\bm{v}(\bm{v}^{\intercal}\bm{v})\bm{v}^{\intercal} \\ &= \mathbf{I} - 4\bm{v}\bm{v}^{\intercal} + 4\|\bm{v}\|^2\bm{v}\bm{v}^{\intercal} \\ &= \mathbf{I} - 4\big(1 - \|\bm{v}\|^2\big)\bm{v}\bm{v}^{\intercal} \;\neq\; \mathbf{I} \end{aligned}

只要 v0\bm{v} \neq \bm{0}v1\|\bm{v}\| \neq 1,残差项 4(1v2)vv-4(1 - \|\bm{v}\|^2)\bm{v}\bm{v}^{\intercal} 非零,正交性与对合性同时失效。数值上取 v2=4.443\|\bm{v}\|^2 = 4.443n=4n = 4)时,max(H)2I=4.43\max|(\mathbf{H}')^2 - \mathbf{I}| = 4.43,与公式预测一致(见 §1.7 验证代码)。

结论要说准:破坏的是正交性,不是对称性H\mathbf{H}' 依然对称(§1.2 没用到归一化),它在 v\bm{v} 方向上的特征值变成了

Hv=v2v(vv)=(12v2)v\mathbf{H}'\bm{v} = \bm{v} - 2\bm{v}(\bm{v}^{\intercal}\bm{v}) = \big(1 - 2\|\bm{v}\|^2\big)\bm{v}

λ=12v2\lambda = 1 - 2\|\bm{v}\|^2,只有 v2=1\|\bm{v}\|^2 = 1 时它才等于 1-1v<1\|\bm{v}\| < 1λ(1,1)\lambda \in (-1, 1),变换在该方向上压缩v>1\|\bm{v}\| > 1λ>1|\lambda| > 1放大(上例 λ=7.886\lambda = -7.886detH=7.886\det \mathbf{H}' = -7.886)。

v2|\bm{v}|^2 v\bm{v} 方向特征值 12v21 - 2|\bm{v}|^2 (H)2=I(\mathbf{H}')^2 = \mathbf{I} 几何含义
<1/2< 1/2 (0,1)\in (0, 1) 沿 v\bm{v} 压缩,不翻转
=1/2= 1/2 00 退化为投影(丢掉 v\bm{v} 分量,秩 n1n-1
(1/2,1)\in (1/2, 1) (1,0)\in (-1, 0) 翻转 + 压缩
=1= 1 1-1 纯反射(Householder)
>1> 1 <1< -1 翻转 + 放大

这张表就是 DeltaNet 那一族「广义 Householder」的全部动机:Iβkk\mathbf{I} - \beta\bm{k}\bm{k}^{\intercal}k\bm{k} 已 L2 归一化、β(0,1)\beta \in (0, 1),等价于把系数 2 换成 β\betak\bm{k} 方向的特征值是 1β(0,1)1 - \beta \in (0, 1)——故意落在表格第一行:它要的是可学习的部分擦除(partial erasure),而不是把旧信息原封不动翻过来。β=2\beta = 2 才退回严格 Householder,β=1\beta = 1 是完全擦除(投影)。所以「不可省」这句话准确的表述是:要正交/对合就必须归一化;DeltaNet 选择放弃正交,换来一个可控的收缩算子——收缩(λ<1|\lambda| < 1)恰好是状态能长期稳定不爆的原因。

1.5 几何意义

把任意 xRn\bm{x} \in \mathbb{R}^n 沿 u\bm{u} 正交分解:

x=x+x,x=(ux)u,x=xx\bm{x} = \bm{x}_{\parallel} + \bm{x}_{\perp}, \qquad \bm{x}_{\parallel} = (\bm{u}^{\intercal}\bm{x})\,\bm{u}, \qquad \bm{x}_{\perp} = \bm{x} - \bm{x}_{\parallel}

先验证这个分解是正交的:ux=ux(ux)(uu)=uxux=0\bm{u}^{\intercal}\bm{x}_{\perp} = \bm{u}^{\intercal}\bm{x} - (\bm{u}^{\intercal}\bm{x})(\bm{u}^{\intercal}\bm{u}) = \bm{u}^{\intercal}\bm{x} - \bm{u}^{\intercal}\bm{x} = 0,所以 x\bm{x}_{\perp} 落在超平面 ux=0\bm{u}^{\intercal}\bm{x} = 0 内(这里又用了一次 uu=1\bm{u}^{\intercal}\bm{u} = 1)。

分别作用:

Hx=x2u(ux)=x2(ux)u=x2x=x\mathbf{H}\bm{x}_{\parallel} = \bm{x}_{\parallel} - 2\bm{u}\big(\bm{u}^{\intercal}\bm{x}_{\parallel}\big) = \bm{x}_{\parallel} - 2(\bm{u}^{\intercal}\bm{x})\bm{u} = \bm{x}_{\parallel} - 2\bm{x}_{\parallel} = -\bm{x}_{\parallel}

Hx=x2u(ux)=x2u0=x\mathbf{H}\bm{x}_{\perp} = \bm{x}_{\perp} - 2\bm{u}\big(\bm{u}^{\intercal}\bm{x}_{\perp}\big) = \bm{x}_{\perp} - 2\bm{u}\cdot 0 = \bm{x}_{\perp}

由线性性合起来:

Hx=xx\mathbf{H}\bm{x} = \bm{x}_{\perp} - \bm{x}_{\parallel}

Hx\mathbf{H}\bm{x}x\bm{x} 关于「过原点、法向为 u\bm{u} 的超平面」的镜像:垂直于镜面的分量取反,平行于镜面(躺在超平面内)的分量不动。n=2n = 2 时超平面退化为一条过原点的直线,图上就是标准的轴对称:

图里能直接读出三件事:Hx=x\|\mathbf{H}\bm{x}\| = \|\bm{x}\|(等长)、x\bm{x}Hx\mathbf{H}\bm{x} 到虚线超平面等距且连线垂直于超平面(镜像)、以及 xHx\bm{x} \mapsto \mathbf{H}\bm{x} 把定向翻了过来(对应 detH=1\det \mathbf{H} = -1)。

顺带解释「u\bm{u} 是法向量而非镜面内方向」为什么必须如此:如果 u\bm{u} 躺在镜面里,被翻转的就是镜面内的一个方向,那不是反射而是关于某个 n1n-1 维超平面的其他变换。定义式 H=I2uu\mathbf{H} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal}2uu-2\bm{u}\bm{u}^{\intercal} 只作用在 u\bm{u} 方向上,被特殊对待的那个方向就是被翻转的方向,所以它只能是法向。

1.6 特征值完整计算

特征值 1-1:直接代入定义,

Hu=u2u(uu)=u2u=u\mathbf{H}\bm{u} = \bm{u} - 2\bm{u}(\bm{u}^{\intercal}\bm{u}) = \bm{u} - 2\bm{u} = -\bm{u}

λ1=1\lambda_1 = -1,特征向量 u\bm{u},代数重数与几何重数都是 1(其特征空间就是 span{u}\operatorname{span}\{\bm{u}\},一维)。

特征值 +1+1:取任意 xu\bm{x} \perp \bm{u},即 ux=0\bm{u}^{\intercal}\bm{x} = 0

Hx=x2u(ux)=x\mathbf{H}\bm{x} = \bm{x} - 2\bm{u}(\bm{u}^{\intercal}\bm{x}) = \bm{x}

λ=+1\lambda = +1,特征空间为 u\bm{u}^{\perp},维数 n1n - 1,即重数 n1n-1

完整性检查span{u}u=Rn\operatorname{span}\{\bm{u}\} \oplus \bm{u}^{\perp} = \mathbb{R}^n1+(n1)=n1 + (n-1) = n,特征向量已张满全空间,不存在其他特征值。谱写成

λ(H)={1,  +1,,+1n1}\lambda(\mathbf{H}) = \{-1,\; \underbrace{+1, \cdots, +1}_{n-1}\}

也就是说 H\mathbf{H} 在正交基下的对角化是 H=Qdiag(1,1,,1)Q\mathbf{H} = \mathbf{Q}\operatorname{diag}(-1, 1, \dots, 1)\mathbf{Q}^{\intercal}Q\mathbf{Q} 的第一列取 u\bm{u}

两个不变量

detH=iλi=(1)1n1=1\det \mathbf{H} = \prod_i \lambda_i = (-1) \cdot 1^{\,n-1} = -1

trH=iλi=1+(n1)=n2\operatorname{tr} \mathbf{H} = \sum_i \lambda_i = -1 + (n-1) = n - 2

迹也能不经特征值直接验证:tr(I2uu)=n2tr(uu)=n2uu=n2\operatorname{tr}(\mathbf{I} - 2\bm{u}\bm{u}^{\intercal}) = n - 2\operatorname{tr}(\bm{u}\bm{u}^{\intercal}) = n - 2\bm{u}^{\intercal}\bm{u} = n - 2(用了 tr(ab)=ba\operatorname{tr}(\bm{a}\bm{b}^{\intercal}) = \bm{b}^{\intercal}\bm{a})。两条路径对上,说明谱算对了。

detH=1\det \mathbf{H} = -1反射与旋转的分界线

变换 正交? det\det 对合? 定向
旋转 RSO(n)\mathbf{R} \in SO(n) +1+1 ❌(一般) 保持
Householder 反射 H\mathbf{H} 1-1 翻转
一般正交 QO(n)\mathbf{Q} \in O(n) ±1\pm 1 det\det

正交群 O(n)O(n)det\det 分成两个连通分支,det=+1\det = +1 的是旋转(SO(n)SO(n)),det=1\det = -1 的含反射。进一步的事实:任意 QO(n)\mathbf{Q} \in O(n) 最多能被 nn 个 Householder 反射的乘积表示(Cartan–Dieudonné 定理),偶数个反射的乘积是旋转(det\det 相乘为 +1+1),奇数个是反射。这是 Householder QR 的理论基础,也是「反射比旋转更基本」的原因。

一句话总结H=I2uu\mathbf{H} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal} 的一切性质都锁在 uu=1\bm{u}^{\intercal}\bm{u} = 1 这一个条件上——它让 u\bm{u} 方向的特征值精确等于 1-1,于是同时得到正交、对合、det=1\det = -1、保长度四个结论;把 2 换成可学习的 β\beta、把 1-1 松弛为 1β1 - \beta,就从「刚性反射」变成 DeltaNet 需要的「可控擦除」。

1.7 数值验证

n=5n = 5 单位向量与 n=4n = 4 非单位向量各跑一遍,把 §1.2–§1.6 的每条结论对上机器精度:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import numpy as np

np.random.seed(0)
n = 5
u = np.random.randn(n)
u /= np.linalg.norm(u) # 归一化:u^T u = 1
H = np.eye(n) - 2 * np.outer(u, u)

# §1.2 对称 §1.3 正交 + 对合
print(np.abs(H - H.T).max()) # 0.0
print(np.abs(H.T @ H - np.eye(n)).max()) # 2.22e-16
print(np.abs(H @ H - np.eye(n)).max()) # 2.22e-16

# §1.3 保长度
x = np.random.randn(n)
print(np.linalg.norm(x), np.linalg.norm(H @ x)) # 1.4352331940 1.4352331940

# §1.5 分量行为:H x_par = -x_par, H x_perp = x_perp
x_par = (u @ x) * u
x_perp = x - x_par
print(np.abs(H @ x_par + x_par).max()) # 2.22e-16
print(np.abs(H @ x_perp - x_perp).max()) # 2.22e-16

# §1.6 谱 / det / tr
print(np.sort(np.linalg.eigvalsh(H))) # [-1. 1. 1. 1. 1.]
print(np.linalg.det(H), np.trace(H)) # -1.0 3.0 (= n - 2)

# §1.4 反例:v 不归一化
np.random.seed(1)
v = np.random.randn(4) # ||v||^2 = 4.443
G = np.eye(4) - 2 * np.outer(v, v)
print(np.abs(G - G.T).max()) # 0.0 ← 对称性仍成立
resid = np.eye(4) - 4 * (1 - v @ v) * np.outer(v, v)
print(np.abs(G @ G - resid).max()) # 3.55e-15 ← 残差公式吻合
print(1 - 2 * (v @ v), np.linalg.det(G)) # -7.8859 -7.8859 ← 特征值放大

# §1.1.1 算例:u = e1, x = [3, 2]^T 两条路径一致
u2 = np.array([1.0, 0.0]); x2 = np.array([3.0, 2.0])
H2 = np.eye(2) - 2 * np.outer(u2, u2)
print(u2 @ x2) # 3.0
print(x2 - 2 * (u2 @ x2) * u2, H2 @ x2) # [-3. 2.] [-3. 2.] ← 两条路一致
print(H2.tolist(), np.linalg.det(H2), np.trace(H2)) # [[-1,0],[0,1]] -1.0 0.0

实测数字(n=5n = 5,seed 0):对称误差 00,正交误差 2.22×10162.22 \times 10^{-16}det=1.0\det = -1.0tr=3=n2\operatorname{tr} = 3 = n - 2,谱 {1,1,1,1,1}\{-1, 1, 1, 1, 1\};反例(n=4n = 4,seed 1)v2=4.443\|\bm{v}\|^2 = 4.443maxH2I=4.43\max|\mathbf{H}'^2 - \mathbf{I}| = 4.43v\bm{v} 方向特征值 7.886-7.886;§1.1.1 算例(n=2n = 2u=e1\bm{u} = \bm{e}_1)两条路径均得 [3,2][-3, 2]^{\intercal}H=diag(1,1)\mathbf{H} = \operatorname{diag}(-1, 1)tr=0=n2\operatorname{tr} = 0 = n - 2。全部与推导一致。


总结

  1. 定义H=I2uu\mathbf{H} = \mathbf{I} - 2\bm{u}\bm{u}^{\intercal}u=1\|\bm{u}\| = 1;只依赖 u\bm{u} 的方向,u\bm{u} 是反射超平面的法向量;算 Hx\mathbf{H}\bm{x}x2(ux)u\bm{x} - 2(\bm{u}^{\intercal}\bm{x})\bm{u}O(n)O(n) 而非 O(n2)O(n^2)。矩阵形式本质上是把「反射两步走」靠 ux\bm{u}^{\intercal}\bm{x} 是标量、可换序提出公因子 x\bm{x} 得到的(§1.1.1)。
  2. 代数:对称(不依赖归一化)、正交、对合 H1=H=H\mathbf{H}^{-1} = \mathbf{H} = \mathbf{H}^{\intercal}、保长度保内积、条件数为 1。
  3. {1,1n1}\{-1, 1^{n-1}\}det=1\det = -1(翻转定向,与旋转 det=+1\det = +1 分界),tr=n2\operatorname{tr} = n - 2
  4. 归一化条件的作用:唯一支撑正交性的那一步;松掉它变成 I2vv\mathbf{I} - 2\bm{v}\bm{v}^{\intercal}v\bm{v} 方向特征值滑到 12v21 - 2\|\bm{v}\|^2(H)2=I4(1v2)vv(\mathbf{H}')^2 = \mathbf{I} - 4(1 - \|\bm{v}\|^2)\bm{v}\bm{v}^{\intercal}

可迁移的启示:一个矩阵的全部行为往往被一个标量条件锁死。看懂 uu=1\bm{u}^{\intercal}\bm{u} = 1 在证明里出现的位置,就同时看懂了「为什么 Householder 是刚性反射」和「为什么 DeltaNet 要故意放弃这个条件」——把 2 换成 β\beta、把特征值从 1-1 松到 1β(0,1)1 - \beta \in (0,1),刚性反射就变成了可学习的部分擦除,而收缩性正是长序列状态不爆的保证。下一部分接着这条线,讲秩一修正的求逆(Sherman–Morrison)与秩一修正在 chunk 内累乘后如何塌缩成 WY 表示。


参考:Householder, A. S., Unitary Triangularization of a Nonsymmetric Matrix, JACM 1958;Golub & Van Loan, Matrix Computations (4th ed.) §5.1;DeltaNet / Gated DeltaNet(arXiv:2412.06464v3)§2.2、§3.1 与附录 A;本站《TileLang 实战:KDA 从零到一–Gated DeltaNet》。

本文公式均经 NumPy 数值验证,验证代码见 §1.7。