技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 谈谈SVD和LSA

谈谈SVD和LSA

浏览:4275次  出处信息

首先SVD和LSA是什么呢,SVD全称是singular value decomposition,就是俗称的奇异值分解,SVD的用处有很多,比如可以做PCA(主成分分析),做图形压缩,做LSA,那LSA是什么呢,LSA全称Latent semantic analysis,中文的意思是隐含语义分析,LSA算是topic model的一种,对于LSA的直观认识就是文章里有词语,而词语是由不同的主题生成的,比如一篇文章包含词语计算机,另一篇文章包含词语电脑,在一般的向量空间来看,这两篇文章不相关,但是在LSA看来,这两个词属于同一个主题,所以两篇文章也是相关的。

特征值特征向量

要谈到SVD,特征值和特征向量是需要首先交代的。具体内容可以在wiki上看,这里我做个简单的介绍。对于方阵M如果有

Mv=λv

v是个向量,λ是个数,那么我们称v是M的特征向量,λ是M的特征向量,并且我们可以对M进行特征分解得到

M=QΛQ1

其中Q是特征向量组成的矩阵,Λ是对角阵,对角线上的元素就是特征值。对于特征的几何理解就是矩阵M其实是一种线性变换,而线性变换对于向量的影响有两种,旋转和拉伸,而特征向量就是在这种线性变换下方向保持不变的向量,但是长度还是会作相应的拉伸,特征值就是拉伸的程度。

从另一个角度说如果我们取特征值比较大的几项,那么就是对原矩阵做了一种近似。

MQ1..kΛ1..kQ11..k

这样我们就可以用更少的元素去近似的表示原矩阵,但是特征分解的限制比较多,比如要求矩阵必须是方阵

奇异值分解

wiki是个好东西,你要想深入了解的话,建议还是去看wiki。奇异值分解是将矩阵变成了这样的形式

M=UΣVT

其中Σ依旧是对角阵,而U和V是正交矩阵正交矩阵是说UUT=I

我们还是先回到矩阵是线性变换这个思路上。

如果我们用M去作用空间里的一组基,那么我们就会得到另一组基,如上图那样。那么我们旋转一下最初的一组基。

这样我们经过M的变换由一组正交基变换到了另一组正交基上面。也是也就是下面这样。

也就是我们有

Mv1=σ1u1
Mv2=σ2u2

并且对于任意一个向量x,我们有

x=v1(vT1x)+v2(vT2x)

于是我们可以得到

Mx=Mv1(vT1x)+Mv2(

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1