码迷,mamicode.com
首页 > 其他好文 > 详细

SVD神秘值分解

时间:2014-08-23 15:14:31      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   io   for   ar   

SVD分解

SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是由于SVD能够说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。

基础知识

1. 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数

2. 对角矩阵:对角矩阵是除对角线外全部元素都为零的方阵

3. 单位矩阵:假设对角矩阵中全部对角线上的元素都为零,该矩阵称为单位矩阵

4. 特征值:对一个M x M矩阵C和向量X,假设存在λ使得下式成立

bubuko.com,布布扣 

则称λ为矩阵C的特征值,X称为矩阵的特征向量。非零特征值的个数小于等于矩阵的秩。

5. 特征值和矩阵的关系:考虑下面矩阵

bubuko.com,布布扣

该矩阵特征值λ1 = 30,λ2 = 20,λ3 = 1。相应的特征向量

bubuko.com,布布扣

如果VT=(2,4,6) 计算S x VT

bubuko.com,布布扣

bubuko.com,布布扣

有上面计算结果能够看出,矩阵与向量相乘的结果与特征值,特征向量有关。观察三个特征值λ1 = 30,λ2 = 20,λ3 = 1,λ3值最小,对计算结果的影响也最小,假设忽略λ3,那么运算结果就相当于从(60,80,6)转变为(60,80,0),这两个向量十分相近。这也表示了数值小的特征值对矩阵-向量相乘的结果贡献小,影响小。这也是后面谈到的低阶近似的数学基础。

矩阵分解

1. 方阵的分解

1) 设S是M x M方阵,则存在下面矩阵分解

bubuko.com,布布扣

当中U 的列为S的特征向量,bubuko.com,布布扣为对角矩阵,当中对角线上的值为S的特征值,按从大到小排列:

bubuko.com,布布扣

2) 设S是M x M 方阵,而且是对称矩阵,有M个特征向量。则存在下面分解

bubuko.com,布布扣

当中Q的列为矩阵S的单位正交特征向量,bubuko.com,布布扣仍表示对角矩阵,当中对角线上的值为S的特征值,按从大到小排列。最后,QT=Q-1,由于正交矩阵的逆等于其转置。

2. 神秘值分解

上面讨论了方阵的分解,可是在LSA中,我们是要对Term-Document矩阵进行分解,非常显然这个矩阵不是方阵。这时须要神秘值分解对Term-Document进行分解。神秘值分解的推理使用到了上面所讲的方阵的分解。

如果C是M x N矩阵,U是M x M矩阵,当中U的列为CCT的正交特征向量,V为N x N矩阵,当中V的列为CTC的正交特征向量,再如果r为C矩阵的秩,则存在神秘值分解:

bubuko.com,布布扣

当中CCT和CTC的特征值同样,为bubuko.com,布布扣

Σ为M X N,当中bubuko.com,布布扣bubuko.com,布布扣,其余位置数值为0,bubuko.com,布布扣的值按大小降序排列。下面是Σ的完整数学定义:

bubuko.com,布布扣

σi称为矩阵C的神秘值。

用C乘以其转置矩阵CT得:

bubuko.com,布布扣

上式正是在上节中讨论过的对称矩阵的分解。

神秘值分解的图形表示:

bubuko.com,布布扣

从图中能够看到Σ尽管为M x N矩阵,但从第N+1行到M行全为零,因此能够表示成N x N矩阵,又因为右式为矩阵相乘,因此U能够表示为M x N矩阵,VT能够表示为N x N矩阵

3. 低阶近似

LSA潜在语义分析中,低阶近似是为了使用低维的矩阵来表示一个高维的矩阵,并使两者之差尽可能的小。本节主要讨论低阶近似和F-范数。

给定一个M x N矩阵C(其秩为r)和正整数k,我们希望找到一个M x N矩阵Ck,其秩不大于K。设X为C与Ck之间的差,X=C – Ck,X的F-范数为

bubuko.com,布布扣

当k远小于r时,称Ck为C的低阶近似,当中X也就是两矩阵之差的F范数要尽可能的小。

SVD能够被用与求低阶近似问题,过程例如以下:

1. 给定一个矩阵C,对其神秘值分解:bubuko.com,布布扣

2. 构造bubuko.com,布布扣,它是将bubuko.com,布布扣的第k+1行至M行设为零,也就是把bubuko.com,布布扣的最小的r-k个(the r-k smallest)神秘值设为零。

3. 计算Ckbubuko.com,布布扣

回顾在基础知识一节里以前讲过,特征值数值的大小对矩阵-向量相乘影响的大小成正比,而神秘值和特征值也是正比关系,因此这里选取数值最小的r-k个特征值设为零合乎情理,即我们所希望的C-Ck尽可能的小。完整的证明能够在Introduction to Information Retrieval[2]中找到。

我们如今也清楚了LSA的基本思路:LSA希望通过减少传统向量空间的维度来去除空间中的“噪音”,而降维能够通过SVD实现,因此首先对Term-Document矩阵进行SVD分解,然后降维并构造语义空间。


SVD神秘值分解

标签:style   blog   http   color   os   使用   io   for   ar   

原文地址:http://www.cnblogs.com/mfrbuaa/p/3931090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!