奇异值分解及应用(PCA&LSA)

这里我省去了很多的数学知识,建议数学比较薄弱的读者可以先看看<信息检索导论>第18章。主要的数学知识包括方阵的特征值、特征向量;方阵的对角化;一般矩阵的奇异值分解及低秩逼近矩阵。这里主要讲解奇异值分解的两个应用PCA(降维)和LSA(潜在语义结构分析)。

PCA:

之前有详细讲过PCA,见:http://blog.csdn.net/lu597203933/article/details/41544547。这里主要想讲解从SVD的角度去解决PCA.

PCA主要是为了寻找数据随之变化的主轴,我们都知道主轴的方向即为样本通过zscore归一化(即归一化后的均值为0,方差为1)的数据协方差矩阵所对应的最大特征值所对应的特征向量。而我们知道svd的定义如下公式:

A = UDVT,这里假设A是m*n的矩阵,m是样本的数目,n为特征的数目。那么U为m*m的方阵且每一列都为A*AT单位正交化的特征向量,V为n*n的方阵且每一列都为AT*A单位正交化的特征向量,D为A*AT(或AT*A)的特征值的算术平方根构成的对角阵且为降序。

因此通过对数据进行归一化处理,AT*A即为n维特征多对应的协方差矩阵,因此V的topK列就是我们需要寻找的PCA降维的前K个主轴.我们将其标注为[u1,u2,u3,…uk]其中ui都是向量。那么对于样本数据x(i)(n维),[x(i)T*u1,
x(i)T*u2,….x(i)T*uk]即为降维后的数据(k维)。

LSA:

LSA(latent semanticanalysis,潜在语义分析),也可以写成LSI(latent semantic indexing,潜在语义索引)。它主要用来解决向量模型空间的一词多义与一义多词问题。给出几个基础概念:

向量模型空间:向量空间模型是信息检索中最常用的检索方法,其检索过程是,将文档集D中的所有文档和查询都表示成以单词为特征的向量,特征值为每个单词的TF-IDF值,然后使用向量空间模型(亦即计算查询q的向量和每个文档di的向量之间的相似度)来衡量文档和查询之间的相似度(余弦距离),从而得到和给定查询最相关的文档。

TF-IDF:词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(term
count)的归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)对于在某一特定文件里的词语来说,它的重要性可表示为:

其中ni,j表示文档j中词i出现的次数

逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

其中

·    |D|:语料库中的文件总数

·    :分母包含词语的文件数目(即的文件数目)如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用作为分母。

然后再计算TF与IDF的乘积。

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

布尔模型:

这也被称为布尔模型。

言归正传,千变万化的各种词的组合下隐藏着潜在语义结构空间(也被称为概念空间),可以通过某种方式估计这中结构并去除噪音。

例如:两个样本x(1)和x(2),一个包含了study,一个包含了learn,那么用余弦计算它们的相似度,结果为0;但是我们将他们投影到某一方向向量上,如y=x的方向上,那么它们就变成正相关了,如下图。

目前,概念空间是通过奇异值分解的统计方法来估计的。具体为什么能通过奇异值分解进行估计我也没理解清楚,至少说没能像PCA那样从数学上推导出来,只能写一点算一点。(如果有更深入的理解,请评论指教,谢谢!)

假定给我们的是一个词项-文档矩阵A,词项有100w个,而文档有50w个,这样原始矩阵就是100w*50w(词在文档中出现用1表示,不在用0表示)。那么此时我们对其进行奇异值分解,得到的就是U(100w*100w),D(100w*50w),
V(50w*50w);奇异值最多可以有50w个。而LSA的思想就是我们一般保留上百个topK的奇异值(比如100个),那么我们用U100w*100*D100*100*V100*50w的结果即为其潜在语义结构空间的表示,此时词项-文档矩阵仍然为100w*50w,它会将数据的语义信息考虑在内了,从而解决了一义多词的问题,这样我们就可以重新计算各个文档的相似性了。下面给出其算法具体步骤.

我们该如何去理解它呢,我们首要理解的是A*AT,它的第i行第j列表示的是第i个词和第j个词项共同出现在文档的数目,而AT*A的第i行第j表示的是第i个文档和第j个文档共同出现共同词的个数。而他们对应的特征向量U和V分别表示什么呢?

我们可以把这里的100看做是潜在的主题(或者概念),那么U的第i行第j列就可以看做是第i个词在第j个主题中的重要性,而V中的第i行第j列表示第i个主题在第j个文档中的重要性.而D中奇异值第i个奇异值就表示第i个主题的重要性。下面给出具体的数字。

其对应的奇异值分解矩阵为(这里给出top3的奇异值):

新的数据空间表示为:如计算Anew(1,1)

Anew(1,1) =0.15*3.19*0.35+(-0.27)*2.61*(-0.32)+0.04*2.0*(-0.41)表示的意思就是第i个主题在1个文档中重要性*第i个主题重要性*第1个词项在第i个主题中的重要性之和(i=
1,2..k)。这里摒弃了后面主题的重要性(如果保留所有的主题,就是原矩阵了),就是一种去除噪音的做法,也就是无关信息(比如词的误用或不相关的词偶尔出现在一起),语义结构逐渐呈现;此外不为0奇异值的个数即为矩阵的秩,也可以看做是矩阵中线性无关向量的个数,而矩阵等同于坐标轴。原来矩阵的秩为9,那么现在矩阵的秩就是3,通过lsa就将数据有原来的9维空间变成了3维空间,相比传统向量空间,潜在语义空间的维度更小,语义关系更明确;类比于pca过程,降维是找到数据变化的主轴,就可以将文档在高维向量空间模型中的表示投影到低维的潜在语义空间中了。

参考文献:

1:书籍:信息检索导论

2: http://blog.csdn.net/abcjennifer/article/details/8131087数学之美

3:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

4:http://www.cnblogs.com/kemaswill/archive/2013/04/17/3022100.html

5:http://read.pudn.com/downloads126/sourcecode/graph/texture_mapping/536657/pLSA/pLSA.pdf

时间: 2024-08-08 01:56:21

奇异值分解及应用(PCA&LSA)的相关文章

【转载】--主成分分析PCA

降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%. 3.过多的变量会妨碍查找规律的建立. 4.仅在变量层面上分析可能会忽略变量之间的潜在联系.例如几个预测变量可能落入仅反映数据某一方面特征的一个组内. 降维的目的: 1.减少预测变量的个数 2.确保这些变量是相互独立的 3.提供一个框架来解释结果 降维的方法有:主成分分析.因子分析.

【简化数据】奇异值分解(SVD)

[简化数据]奇异值分解(SVD) @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/42214205 1.简介 奇异值分解(singular Value Decomposition),简称SVD,线性代数中矩阵分解的方法.假如有一个矩阵A,对它进行奇异值分解,可以得到三个矩阵: 这三个矩阵的大小: 矩阵sigma(即上图U和V中间的矩阵)除了对角元素不为0,其他元素都为0,并且对角元素是从大到小排列的,前面的元

预处理方法

数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.当我们开始处理数据时,首先要做的事是观察数据并获知其特性.本部分将介绍一些通用的技术,在实际中应该针对具体数据选择合适的预处理技术.例如一种标准的预处理方法是对每一个数据点都减去它的均值(也被称为移除直流分量,局部均值消减,消减归一化),这一方法对诸如自然图像这类数据是有效的,但对非平稳的数据则不然. 数据归一化 简单缩放 在简单缩放中,我们的目的是通过对数据的每一个维度的值进行重新调

数据挖掘学习清单(转载)

基础篇 矩阵背后的现实意义 概率分布 无约束最优化方法 拉格朗日乘子法和KKT条件 推荐 相关性检验 协同过滤推荐算法 分类 朴素贝叶斯 LR SVM 聚类 KMeans DBScan CHAMELEON GMM 决策树 ID3 C4.5 Adaboost GBDT 关联规则挖掘 Apriori FP-Tree 序列标记 HMM1 HMM2 MEMM CRF 主题模型 PCA LSA pLSA LDA 神经网络 BP SOFM CNN

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的

SVD 奇异值分解

强大的矩阵奇异值分解(SVD)及其应用 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected].也可以加我的微博: @leftnoteasy 前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释.特征值和奇异值在大部分人的印象中,往

【cs229-Lecture14】奇异值分解

PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的. 内容: PCA  (主成份分析)是一种直接的降维方法,通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果: PCA 的一个应用--LSI(Latent Semantic Indexing,  隐含语义索引): PCA 的一个实现--SVD(Singular Value Decomposition,奇异值分解): ICA(独立成份分析) 隐含语义索引(LSI) 什么叫LSI? 所谓隐性语义索引指

(转)机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释.特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中.而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有

机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释.特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计