1. 奇异值分解(SVD)的数学本质
奇异值分解(Singular Value Decomposition)是线性代数中一种强大的矩阵分解技术。它能够将任意实数或复数矩阵分解为三个特定矩阵的乘积形式。具体来说,对于任意m×n的矩阵A,其SVD可以表示为:
A = UΣVᵀ
其中:
- U是一个m×m的正交矩阵(列向量称为左奇异向量)
- Σ是一个m×n的对角矩阵(对角线元素称为奇异值,按降序排列)
- V是一个n×n的正交矩阵(列向量称为右奇异向量)
这个分解的数学意义在于,它将原始矩阵A的线性变换分解为三个基本操作的组合:一个旋转(Vᵀ)、一个缩放(Σ)和另一个旋转(U)。这种分解方式揭示了矩阵的内在结构特性。
注意:在实际计算中,奇异值通常按从大到小排列,这使得我们可以通过截断较小的奇异值来实现矩阵的低秩近似。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. SVD的四种基本计算步骤
2.1 计算AᵀA的特征值和特征向量
首先计算矩阵A的转置与自身的乘积AᵀA,这是一个n×n的对称矩阵。然后求解这个矩阵的特征值和对应的特征向量:
- 解特征方程:det(AᵀA - λI) = 0
- 对每个特征值λᵢ,解方程组(AᵀA - λᵢI)vᵢ = 0得到特征向量vᵢ
这些特征向量将构成V矩阵的列向量。
2.2 确定奇异值和Σ矩阵
AᵀA的特征值λᵢ与奇异值σᵢ的关系为σᵢ = √λᵢ。将这些奇异值按降序排列在对角线上,构成Σ矩阵:
Σ = diag(σ₁, σ₂, ..., σᵣ), 其中r是矩阵A的秩
2.3 计算U矩阵的左奇异向量
对于每个非零奇异值σᵢ,对应的左奇异向量uᵢ可以通过下式计算:
uᵢ = (1/σᵢ)Avᵢ
对于剩余的标准正交向量(如果m > r),可以通过Gram-Schmidt正交化过程补充完整。
2.4 验证和重构
最后验证UΣVᵀ是否等于原始矩阵A,确保分解的正确性。在实际应用中,由于浮点运算的精度限制,重构矩阵可能会有微小误差。
3. SVD在机器学习中的应用场景
3.1 降维与特征提取
SVD在降维中扮演着核心角色,特别是在主成分分析(PCA)中。通过保留前k个最大的奇异值及其对应的奇异向量,我们可以实现:
- 数据压缩:将高维数据投影到低维空间
- 噪声过滤:舍弃小的奇异值往往能去除数据中的噪声
- 特征选择:识别数据中最具信息量的方向
3.2 推荐系统
在协同过滤推荐系统中,SVD被广泛用于矩阵补全问题。用户-物品评分矩阵通常是稀疏的,通过SVD可以:
- 分解评分矩阵R ≈ UΣVᵀ
- 选择前k个奇异值进行低秩近似
- 用重构后的密集矩阵预测缺失的评分
这种方法在Netflix Prize竞赛中证明了其有效性。
3.3 自然语言处理
在潜在语义分析
