SVD分解与PCA的内在联系是什么?
奇异值分解(SVD)和主成分分析(PCA)有密切的数学联系。请解释SVD的数学形式、SVD如何高效计算PCA,以及SVD在矩阵近似和推荐系统中的应用。
回答
苦行僧
SVD的数学形式:
任意m×n矩阵A可分解为:
A = UΣVᵀ
- U:m×m正交矩阵(左奇异向量)
- Σ:m×n对角矩阵,对角元素σ₁≥σ₂≥...≥σ_r>0(奇异值)
- V:n×n正交矩阵(右奇异向量)
SVD与PCA的联系:
-
协方差矩阵与SVD:
- 数据矩阵X(中心化后),协方差矩阵 = (1/n)XᵀX
- XᵀX的特征分解:XᵀX = VΛVᵀ(Λ=Σ²/(n-1))
- 特征向量V即为PCA主成分方向
-
高效计算:
- 传统PCA需计算协方差矩阵(O(d²n)),SVD直接对X分解更高效
- 特别是当n≪d时(样本少特征多),用SVD避开了大矩阵求逆
-
截断SVD用于降维:
- 保留前k个最大奇异值:A ≈ U_k Σ_k V_kᵀ
- 相当于PCA保留前k个主成分
推荐系统应用:
- 用户-物品评分矩阵的SVD分解,得到用户和物品的隐因子向量
- 预测评分 = uᵢᵀ · vⱼ(用户i和物品j的隐向量内积)