奇异值分解

截断 SVD / 低秩逼近

截断 SVD 就是带着有意切割的 SVD:你只保留前 k 个奇异三元组 (sigma_i, u_i, v_i),丢弃较小的那些。结果 A_k = sum_{i=1}^{k} sigma_i u_i v_i^T 是 A 的一个秩 k 替身。由埃卡特-杨定理,它是现有最佳的这种替身——没有任何秩 k 矩阵比它更靠近 A。

它之所以如此有用,在于它所达成的划算交易。存储 A_k 只需 k(m + n + 1) 个数,而非 m*n 个;当 k 小而 m, n 大时,这是巨大的压缩。又因为被丢弃的是最小的奇异值,你在大幅缩小矩阵的同时几乎保留了它的全部能量——这份节省几乎是白来的。

三个经典用途。压缩:奇异值快速衰减的图像或数据矩阵可由低秩 A_k 捕获。去噪:随机噪声往往把能量铺洒在小奇异值上,因此砍掉尾部就在保留结构的同时去除了噪声。隐因子:在文本与推荐数据中,靠前的奇异三元组揭示隐藏的主题——这正是隐语义分析,也是矩阵分解推荐器的支柱。

如何选 k 才是真正的门道。看奇异值谱:一个值骤降的“肘部”告诉你有效秩。保留足够多的三元组,以留住所选的总能量比例(sigma^2 之和)。k 太小会模糊真实结构;k 太大又会把噪声拽回来。截断 SVD 把这一权衡变成了一个单一、透明的旋钮。

A_k = sigma_1 u_1 v_1^T + ... + sigma_k u_k v_k^T (storage k(m+n+1) vs m*n)

保留前 k 个秩一层;存储量从 m*n 降到 k(m+n+1)。

截断 SVD 是动作;埃卡特-杨是这个动作最优的保证。在超大问题中,你很少先求出完整 SVD——随机化 SVD 直接计算截断结果。

又称
rank-k SVDA_k