一、矩阵分解的核心思想
矩阵分解(Matrix Factorization)是线性代数中的一个核心思想:
将一个复杂的矩阵分解成若干个结构更简单、性质更好的矩阵的乘积。
形式上,给定一个矩阵
(A∈Rm×n)( A \in \mathbb{R}^{m \times n} )(A∈Rm×n),
矩阵分解的目标是找到若干个矩阵 (B,C,... )( B, C, \dots )(B,C,...),使得
A=BC... A = BC \dots A=BC...
这样做的意义在于:
- 理解结构:揭示矩阵所代表的线性变换的几何本质;
- 简化计算:通过分解形式求解方程或逆更方便;
- 降维与压缩:保留主要信息,去掉冗余噪声;
- 特征提取:找到数据中最主要的变化方向。
二、常见的矩阵分解类型
| 分解类型 | 形式 | 主要用途 |
|---|---|---|
| LU分解 | (A=LU)( A = LU )(A=LU) | 解线性方程、求逆 |
| QR分解 | (A=QR)( A = QR )(A=QR) | 最小二乘、正交化 |
| 特征分解 | (A=QΛQ−1)( A = Q \Lambda Q^{-1} )(A=QΛQ−1) | 对称矩阵分析 |
| 奇异值分解(SVD) | (A=UΣVT)( A = U \Sigma V^T )(A=UΣVT) | 降维、压缩、模式提取 |
接下来我们深入讲解 SVD。
三、奇异值分解(Singular Value Decomposition)
1. 定义
对于任意实矩阵 (A∈Rm×n)( A \in \mathbb{R}^{m \times n} )(A∈Rm×n),
总可以分解为:
A=UΣVT A = U \Sigma V^T A=UΣVT
其中:
- (U∈Rm×m)( U \in \mathbb{R}^{m \times m} )(U∈Rm×m):左奇异向量矩阵(列正交);
- (V∈Rn×n)( V \in \mathbb{R}^{n \times n} )(V∈Rn×n):右奇异向量矩阵(列正交);
- (Σ∈Rm×n)( \Sigma \in \mathbb{R}^{m \times n} )(Σ∈Rm×n):对角矩阵,对角线非负,元素为奇异值。
Σ=[σ100⋯ 0σ20⋯ 00⋱ ],σ1≥σ2≥⋯≥0 \Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 & \cdots \ 0 & \sigma_2 & 0 & \cdots \ 0 & 0 & \ddots & \ \end{bmatrix}, \quad \sigma_1 \ge \sigma_2 \ge \dots \ge 0 Σ=[σ100⋯ 0σ20⋯ 00⋱ ],σ1≥σ2≥⋯≥0
2. 几何意义
SVD 可以看作是把矩阵 (A)( A )(A) 的线性变换拆解为三步几何操作:
- 右乘 (VT)( V^T )(VT):对输入空间进行旋转或反射,使坐标轴对齐到主要方向;
- 乘以 (Σ)( \Sigma )(Σ):沿坐标轴方向进行拉伸或压缩;
- 左乘 (U)( U )(U):对输出空间再进行旋转或反射。
所以:
A=UΣVT⟹线性变换=旋转/反射→拉伸→旋转/反射 A = U \Sigma V^T \quad \Longrightarrow \quad \text{线性变换} = \text{旋转/反射} \rightarrow \text{拉伸} \rightarrow \text{旋转/反射} A=UΣVT⟹线性变换=旋转/反射→拉伸→旋转/反射
3. 奇异值与能量
- 每个奇异值 (σi)( \sigma_i )(σi) 表示矩阵在第 (i)( i )(i) 个主方向上的伸缩比例;
- 较大的奇异值对应主要的结构信息;
- 较小的奇异值往往对应噪声或冗余信息;
- 矩阵的"能量"主要集中在前几个奇异值上。
矩阵的 Frobenius 范数有:
∣A∣F2=∑iσi2 |A|_F^2 = \sum_i \sigma_i^2 ∣A∣F2=i∑σi2
4. 降维与最佳近似
只保留前 (k)( k )(k) 个最大的奇异值及对应的奇异向量,可以得到一个低秩近似矩阵:
Ak=UkΣkVkT A_k = U_k \Sigma_k V_k^T Ak=UkΣkVkT
其中:
- (Uk∈Rm×k)( U_k \in \mathbb{R}^{m \times k} )(Uk∈Rm×k)
- (Σk∈Rk×k)( \Sigma_k \in \mathbb{R}^{k \times k} )(Σk∈Rk×k)
- (Vk∈Rn×k)( V_k \in \mathbb{R}^{n \times k} )(Vk∈Rn×k)
这个近似有一个非常重要的最优性:
(Ak)( A_k )(Ak) 是所有秩为 (k)( k )(k) 的矩阵中距离 (A)( A )(A) 最近的一个(在 Frobenius 范数意义下)
Ak=argminrank(B)=k∣A−B∣F A_k = \arg\min_{\text{rank}(B)=k} |A - B|_F Ak=argrank(B)=kmin∣A−B∣F
这正是主成分分析(PCA)的数学基础。
5. 与特征分解的关系
对称矩阵 (ATA)( A^T A )(ATA) 可以被特征分解为:
ATA=VΛVT A^T A = V \Lambda V^T ATA=VΛVT
其中 (Λ)( \Lambda )(Λ) 是特征值矩阵。
那么:
σi=λi,U=AVΣ−1 \sigma_i = \sqrt{\lambda_i}, \quad U = A V \Sigma^{-1} σi=λi ,U=AVΣ−1
因此,SVD 是特征分解在一般(非方阵)矩阵上的推广。
四、应用场景
-
主成分分析(PCA)
- 提取数据的主要方向,实现降维;
-
推荐系统
- 用户--物品评分矩阵分解为潜在因子;
-
图像压缩
- 保留最大的奇异值即可实现高质量压缩;
-
文本语义分析(LSA)
- 对共现矩阵做 SVD,提取语义空间;
-
噪声过滤
- 去掉小奇异值对应的高频噪声。
五、总结
| 概念 | 含义 |
|---|---|
| 分解形式 | (A=UΣVT)( A = U \Sigma V^T )(A=UΣVT) |
| (U,V)(U, V)(U,V) | 正交矩阵(旋转或反射) |
| (Σ)(\Sigma)(Σ) | 奇异值矩阵(拉伸尺度) |
| 几何意义 | 任意线性变换 = 旋转 → 拉伸 → 旋转 |
| 应用 | 降维、压缩、模式识别、特征提取 |