机器学习-奇异值分解(SVD)

1. 矩阵奇异值的含义

矩阵奇异值的含义是从方阵的特征值概念中延伸出来的
对于任意形状的矩阵 A m n A_{mn} Amn A T A A^TA ATA表示一个 n n n阶的对称方阵,假设 v i v_i vi A T A A^TA ATA的单位正交特征向量, λ i \lambda _i λi A T A A^TA ATA对应的特征值 ( λ i > 0 ) (\lambda _i>0) (λi>0)
∣ A v i ∣ 2 = ( A v i ) T A v i = v i T ( A T A v i ) = v i T λ i v i = λ i |Av_i|^2=(Av_i)^TAv_i=v_i^T(A^TAv_i)=v_i^T\lambda _iv_i=\lambda _i Avi2=(Avi)TAvi=viT(ATAvi)=viTλivi=λi

将向量 A v i Av_i Avi的模长 λ i \sqrt{\lambda _i} λi 定义为矩阵A的奇异值, 记为 σ i \sigma_i σi

2. 奇异值分解(SVD)

矩阵的奇异值分解涉及到一个类似对角的矩阵 Σ m ∗ n = [ D 0 0 0 ] \Sigma_{m*n}=\begin{bmatrix} D & 0 \\ 0 & 0 \end{bmatrix} Σmn=[D000],其中D是 r ∗ r r*r rr的对角矩阵, Σ \Sigma Σ的其余元素均为0。

定义:假设A是一个秩为 r r r的的 m ∗ n m*n mn的矩阵, Σ \Sigma Σ是一个 m ∗ n m*n mn阶类对角矩阵, Σ 中 的 D 分 量 的 对 角 线 元 素 是 A 的 前 r 的 奇 异 值 , 并 且 σ 1 ≥ σ 2 ≥ …   g e q σ r ≥ 0 , 那 么 存 在 一 个 \Sigma 中的D分量的对角线元素是A的前r的奇异值,并且\sigma _1 \geq \sigma _2 \geq \dots\ geq \sigma _r \geq 0,那么存在一个 ΣD线Ar,σ1σ2 geqσr0m*m 的 正 交 矩 阵 U 与 n ∗ n 的 正 交 矩 阵 V , 使 得 A = U Σ V T 的正交矩阵U与n*n的正交矩阵V,使得A=U\Sigma V^T UnnV使A=UΣVT

证明:

(1)令 u i = A v i ∣ A v i ∣ = A v i σ i , 则 [ u 1 u 2 … u r ] u_i=\frac{Av_i}{|Av_i|}=\frac{Av_i}{\sigma _i},则\begin{bmatrix} u_1 & u_2 & \dots & u_r \end{bmatrix} ui=AviAvi=σiAvi,[u1u2ur] C o l ( A ) Col(A) Col(A)的标准正交基。
A v i = u i σ i ( 1 ≤ i ≤ r ) Av_i=u_i\sigma _i(1\leq i\leq r) Avi=uiσi(1ir)

(2)将 U U U扩展为 R m ∗ m R^{m*m} Rmm空间的正交向量,即
U = [ u 1 u 2 … u r u r + 1 … u n ] U=\begin{bmatrix}u_1 & u_2 & \dots & u_r & u_{r+1}& \dots & u_n \end{bmatrix} U=[u1u2urur+1un]

(3)当 1 ≤ i ≤ n 1\leq i\leq n 1in时, A V = U Σ , V = [ v 1 … v r v r + 1 … v n ] AV=U\Sigma ,V=\begin{bmatrix} v_1 & \dots & v_r & v_{r+1} & \dots & v_n \end{bmatrix} AV=UΣ,V=[v1vrvr+1vn]
Σ = [ σ 1 . . . . . σ 2 . . . . . σ r . . . . . 0 . . . . . 0 ] = [ D 0 0 0 ] \Sigma =\begin{bmatrix} \sigma _1 & . & . & . & . \\ . & \sigma _2 & . & . & . \\ . & . & \sigma _r & . & . \\ . & . & . & 0 & . \\ . & . & . & . & 0 \\ \end{bmatrix} =\begin{bmatrix} D & 0 \\ 0 & 0 \end{bmatrix} Σ=σ1.....σ2.....σr.....0.....0=[D000]

(4)由上可知 A V = U Σ = > A = U Σ V − I AV=U\Sigma =>A=U\Sigma V^{-I} AV=UΣ=>A=UΣVI,由于 V V V是正交矩阵,因此 V − I = V T V^{-I}=V^T VI=VT,所以 A = U Σ V T A=U\Sigma V^T A=UΣVT
注意其中 U U U A A T AA^T AAT(对称方阵)的特征矩阵, V V V A T A A^TA ATA的特征矩阵,两矩阵都满足 U T U = I , V T V = I U^TU=I, V^TV=I UTU=I,VTV=I

3. 奇异值分解的应用

奇异值分解主要有三方面的应用:
(1)信息检索,包括隐性语义索引(LSI)、隐性语义分析(LSA)
(2)推荐系统
(3)图像压缩

3.1 信息检索的应用

在LSI中,一个矩阵是由文档和词语组成的。当我们在该矩阵上应用SVD时,就会构建出多个奇异值。这些奇异值代表了文档中的概念或主题, 这一特点可以用于更高效的文档搜索。在词语拼写错误时,只基于词语存在与否的简单搜索方法会遇到问题。简单搜索的另一个问题就是同义词的使用。这就是说,当我们查找一个词时,其同义词所在的文档可能并不会匹配上。如果我们从上千篇相似的文档中抽取出概念,那么同义词就会映射为同一概念。

如下所示,矩阵A中每一行代表一篇文章,每一列代表词汇表单词索引,小矩阵B表示共有100个主题,左矩阵X中每一个值表示每一篇文章与各个主题之间的相关性,右矩阵Y中每一个值表示每一个单词索引与主题的相关性。
机器学习-奇异值分解(SVD)_第1张图片

具体可参考《数学之美》第15章

3.2 推荐系统的应用

简单理解的话,推荐系统就是根据用户已经消费过的商品,给用户推荐相似的新商品。
根据参考的对象来分,推荐系统可分为两种:
(1)属性,泛化性较差,对于用户比较少的情况下使用
(2)用户评价,泛化性强
相似性的比较方式也有两种:
(1)比较商品之间的相似性,将最相似的前几个商品推荐给目标用户
(2)比较用户之间的相似性,将与目标用户消费习惯最相似的那个用户的使用的商品推荐给目标用户
相似性的计算方式一般有三种:
(1) r = 1 1 + 距 离 r = \frac{1}{1+距离} r=1+1,距离一般采用欧式距离,结果在(0, 1)之间
(2)皮尔逊相关系数 r = c o v ( x , y ) σ x σ y r=\frac{cov(x,y)}{\sqrt{\sigma _x\sigma _y}} r=σxσy cov(x,y),结果在(-1, 1)之间
(3)余弦相关系数 r = cos ⁡ θ = x T y ∣ ∣ x ∣ ∣ . ∣ ∣ y ∣ ∣ r=\cos\theta=\frac{x^Ty}{||x||.||y||} r=cosθ=x.yxTy,结果也在(-1, 1)之间
SVD在推荐系统的作用主要是用商品的主题代替商品的评分来比较相似度,这样做的目的有四个:
(1)去除冗余特征
(2)降低噪声干扰
(3)提高推荐的精确度
(4)降低计算量

3.3 图像压缩方面的应用

这一点主要利用分解降低存储元素的个数,比如上面例子中,原始矩阵A需要存储 100 万 ∗ 50 万 100万*50万 10050个元素,通过分解得到三个小矩阵后,总共需要存储的元素个数变为 100 万 ∗ 100 + 100 ∗ 100 + 100 ∗ 50 万 100万*100+100*100+100*50万 100100+100100+10050,数量远远小于原来的数目。

你可能感兴趣的:(每日总结,人工智能)