您的位置:首页 > 其它

关于LSA(Latent Semantic Analysis)主题模型的个人理解

2015-07-01 11:43 375 查看
LSA是1988年S.T. Dumais等提出的一种新的信息检索模型,它使用统计计算的方法对大量的文本集进行分析,提取出词与词之间潜在的语义结构,并用这种潜在的语义结构表示词和文本,达到消除词之间的相关性和简化文本向量实现降维的目的。

使用LSA可以部分解决一义多词(北京大学vs北大、电影vsmovie),但它是怎么解决一义多词的呢?LSA把高维向量空间模型表示中的文档映射到低维潜在语义空间中,在潜在语义空间计算相似性,这个映射通过对词项-文档矩阵SVD分解来实现。

LSA的基础是:向量空间模型 + 矩阵,介绍LSA之前先简单介绍下向量空间模型和矩阵的相关知识。

1.向量空间

在向量空间模型中,一篇文档可以表示为一个向量,其中每个分量对应一个词项,分量的值是词项在文档中出现的频率或者其它改进后的词项权值。

N篇文档组成的集合可以表示称为一个M*N 的矩阵,称作词项-文档矩阵,的行对应词项,列对应文档。具体如下:



在向量空间模型,通过计算向量间的相似度来衡量两个文档之间的相关性,常用的相似度计算方法为余弦相似度、欧氏距离、杰卡德相似系数、皮尔逊系数等。本文采用余玄相似度,计算公式如下:

如果我们想计算d2和d3的相似度,根据上面公式可得出:

直观上计算出的相似度为0,是否合理呢?答案是不合理,因为ship和boat是近义词(一义多词)。之所以相似度为0,是因为在向量空间计算相似度时都是”词的逐字严格匹配“,而这种“严格匹配”忽视了一义多词,这就是引入LSA的根本原因。

2.相关矩阵知识

线性相关、线性无关:若n个向量是线性相关的,则其中的向量可以写成其它向量的线性组合。如果是线性无关的,则其中的向量不能写成其他向量的线性组合。

正交向量::若两个向量的內积为0,则称这两个向量是正交的
矩阵的秩:矩阵中线性无关的行(列)的数目,有:矩阵的秩 <=min(M,N),M、N分别表示矩阵的行和列。

特征值和特征向量:令T为M × M的矩阵,T为M维非0向量,若有:Tx = kx,则称k是方阵T的特征值,x称作方阵T的特征向量。

令S是实对称矩阵,则其所有特征值均为实数,且不同特征值所对应的特征向量是正交的
矩阵对角化定理: 若S是M × M的实值方阵且拥有M个线性无关的特征向量,则S可分解为:



其中,U的列是S的特征向量,Λ是对角矩阵,其对角线上的元素是S的特征值,且按照对角线降序排列



若特征值均不相同,则这样的分解是唯一的。

对称对角化定理: 若S是M × M的实值对称方阵,且拥有M个线性无关的特征向量,则S可分解为:



其中,Q的列是S的互相正交且归一化的特征向量,Λ是对角矩阵,其对角线上的元素是S的特征值,且按照对角线降序排列。例如:



回到上面的词项-文档矩阵C,显然C不一定是对称矩阵,但

一定是对称矩阵。

是词项相似度,元素含义是两个词项在文档中共同出现的次数。

是文档相似性,元素含义是两个文档共同词项的个数。因此这两个矩阵是可以分解的(对称对角化定理)。

奇异值分解定理 : 若M × N的矩阵C的秩是r,那么可对C进行如下的奇异值分解(SVD):



SVD的图示如下:



上面是M>N,下面是N>M。

学习nlp和ml可能最烦的就是一大堆数学知识,讲了这么多矩阵知识,但是不要烦,因为这些知识都是LSA会用到的,如果想真正理解LSA这些知识是必须的。下面在介绍最后一点相关数学知识——低秩逼近。



SVD可以用来低秩逼近,具体如下:



如果不理解上面介绍,参见下面图示:



3.LSA

讲了那么多铺垫,现在总算到LSA了,是不是很兴奋!

LSA的核心在于将秩r的词项-文档矩阵C进行SVD分解,并寻求词项-文档矩阵的k秩逼近Ck,其中k<=r。维数k 为隐含在文档集合中的话题数量,因此LSA可以被视作一种话题模型。在进行潜在语义分析之前,文档被隐含表示成r维空间中的向量,而在潜在语义分析之后,文档被表示为k维空间中的向量。最终潜在语义空间中,向量的维数缩减为k,这个k值不是随便赋值的也不是计算出来的,而是一个经验值。k的值选择的好效果很好,如果k选值不好会对结果影响很大。

对词项-文档矩阵C进行潜在语义分析:
首先SVD分解,得到的词项矩阵如下:

Cd1d2d3d4d5
ship-0.44-0.300.570.580.25
boat-0.13-0.33-0.590.000.73
ocean-0.48-0.51-0.370.00-0.61
wood-0.700.350.15-0.580.16
tree-0.260.65-0.410.58-0.09
然后可以分析下几个词,分析词的目的是确定主题数目,因为k就是主题数目。通过分析可以发现ship、boat、ocean很可能是一个主题,而wood和tree很可能是一个主题。所以包含的主题数目为2,k = 2。

然后k秩逼近



2维秩逼近后得到在2维话题空间的词项-文档矩阵



不在原始向量空间计算相似度,而是在潜在语义空间计算相似度:



这也验证了本文前面在原始空间计算相似度为0是不合理的。

4.总结

LSA通过SVD和低秩逼近,把原始向量空间映射到潜在语义空间,在潜在语义空间计算文档相似性,它能够解决部分一义多词的问题。从这个层面来讲,LSA优点很明显,此外降维可去除部分噪声,使得特征更具有鲁棒性。但是LSA也是有缺点的:
LSA的缺点:
Ck逼近后的矩阵中元素缺乏直观解释(维度降低的必然结果),甚至矩阵中会出现很多元素为负数的情况,特征向量的方向没有对应的物理解释
k的选取会对结果产生太大影响,且k不是计算出来的而是一个经验值,所以很难选出合理的k值
LSA不是一个统计模型,缺乏统计基础,没有刻画词出现次数的概率模型
SVD计算复杂度高,且当有新的文档时需要重新SVD分解和重新低秩逼近,更甚至k的取值会变化(多加入文档后可能主题数目发生变化)

转载请注明出处,否则责任自负,谢谢合作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: