关于LSA(Latent Semantic Analysis)主题模型的个人理解
来源:互联网 发布:等一个人咖啡知乎 编辑:程序博客网 时间:2024/05/24 01:55
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的取值会变化(多加入文档后可能主题数目发生变化)
转载请注明出处,否则责任自负,谢谢合作
0 0
- 关于LSA(Latent Semantic Analysis)主题模型的个人理解
- Latent Semantic Analysis(LSA)
- Latent Semantic Analysis(LSA)
- Latent Semantic Analysis (LSA) 模型 学习笔记
- Latent semantic analysis (LSA)
- Latent Semantic Analysis(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- Latent semantic analysis note(LSA)
- LSA (Latent Semantic Analysis) & PLSA (Probability Latent Semantic Analysis)
- Latent Semantic Analysis(LSA/ LSI)算法介绍(转)
- python内嵌C代码使用(pyinline)
- DELPHI RES操作
- SAT数学专业词汇整理
- nodejs 操作mysql数据库(最新版本)
- 第三次作业GUI文本编辑器
- 关于LSA(Latent Semantic Analysis)主题模型的个人理解
- 简单文本除重小工具源码
- IIS配置:自定义错误页面&不允许访问目录 访问不存在目录、访问目录、访问不存在页面自动跳转
- 舆情项目总结
- 自定义tabbar
- 文件读写——fopen
- [华为机试练习题]28.报数
- Lock
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)