在前几篇文章中介绍了: 主成分分析和 矩阵知识,本文介绍矩阵压缩的另一种方法SVD,这个方法相对于主成分分析更灵活,尤其是在推荐系统中非常常见。
实对称矩阵分解
在介绍奇异值分解前,先来复习一下实对称矩阵分解:
在矩阵知识我们知道,对于实对称矩阵 A A A必能找到正交矩阵 Q Q Q,使得 A = Q T Λ Q A=Q^T\Lambda Q A=QTΛQ,其中 Λ \Lambda Λ是对角线上为特征值的对角阵,Q是特征向量组成的正交矩阵。
A = Q T Λ Q = [ x 1 x 2 . . . x n ] [ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . 0 0 . . . λ n ] [ x 1 T x 2 T . . . x n T ] = λ 1 x 1 x 1 T + λ 2 x 2 x 2 T + . . . + λ n x n x n T A=Q^T\Lambda Q=\begin{bmatrix} x_1 & x_2 & ...&x_n \end{bmatrix} \begin{bmatrix} \lambda_1 & 0 & ... & 0 \\ 0 & \lambda_2 & ... & 0\\ & & ...&\\0&0&...&\lambda_n \end{bmatrix} \begin{bmatrix} x_1^T \\ x_2^T \\ ...\\x_n^T \end{bmatrix}=\lambda_1x_1x_1^T+\lambda_2x_2x_2^T+...+\lambda_nx_nx_n^T A=QTΛQ=[x1x2...xn]⎣⎢⎢⎡λ1000λ20............00λn⎦⎥⎥⎤⎣⎢⎢⎡x1Tx2T...xnT⎦⎥⎥⎤=λ1x1x1T+λ2x2x2T+...+λnxnxnT
其中 x i x_i x