LSI理解

文章介绍流程:基本思想、结构图、例子讲解、优缺点、算法流程、具体分解矩阵含义分析。

基本思想

LSA(Latent Semantic Analysis,潜在语义分析)和LSI(Latent Semantic Index, 潜在语义索引)是1988年,美国贝尔通讯实验室的S.T.Dumais等人为解决传统向量空间模型对文本的语义信息利用能力匮乏而提出。

原理:LSA潜在语义分析的目的,就是要找出词(terms)在文档和查询中真正的含义,也就是潜在语义,从而解决上节所描述的问题。具体说来就是对一个大型的文档集合使用一个合理的维度建模,并将词和文档都表示到该空间,比如有2000个文档,包含7000个索引词,LSA使用一个维度为100的向量空间将文档和词表示到该空间,进而在该空间进行信息检索。而将文档表示到此空间的过程就是SVD奇异值分解和降维的过程。降维是LSA分析中最重要的一步,通过降维,去除了文档中的“噪音”,也就是无关信息(比如词的误用或不相关的词偶尔出现在一起),语义结构逐渐呈现。相比传统向量空间,潜在语义空间的维度更小,语义关系更明确。其中LSA 的核心思想是将词和文档映射到潜在语义空间,再比较其相似性;SVD最终是为了得到低秩近似矩阵,也就是corpus语料矩阵。

结构图:

在这里插入图片描述

下面举两个简单的例子:

例1:(用于直观理解如何在低维潜在语义空间,找词或文档的相似性)

对一个 Term-Document 矩阵做SVD分解,并将左奇异向量和右奇异向量都取后2维,投影到一个平面上(潜在语义空间),可以得到:

在这里插入图片描述

在图上,每一个红色的点,都表示一个词,每一个蓝色的点,都表示一篇文档,这样我们可以对这些词和文档进行聚类,比如说 stock 和 market 可以放在一类。按这样聚类出现的效果,可以提取文档集合中的近义词,这样当用户检索文档的时候,是用语义级别(近义词集合)去检索了,而不是之前的词的级别。

例2:(用于了解LSA如何发掘潜在语义信息)

假设文档集合如下:

c1: Human machine interface for Lab
ABC computer applications

c2: A survey of user opinion of computer system response time

c3: The EPS user interface management system

c4: System and human system engineering testing of EPS

c5: Relation of user-perceived response time to error measurement

m1: The generation of random, binary, unordered trees

m2: The intersection graph of paths in trees

m3: Graph minors IV: Widths of trees and well-quasi-ordering

m4: Graph minors: A survey

下面将其转化为Term-Document矩阵如下:

在这里插入图片描述

下面对{X}进行奇异值分解:

在这里插入图片描述
在这里插入图片描述

下面对其降维,只选取最大的两个奇异值,得到降维之后近似的Term-Document矩阵,如下:

在这里插入图片描述
在这里插入图片描述

LSA的效果显示:{X}中human-C2值为0,因为C2中并不包含human单词,但是{}中human-C2为0.40,表明human和C2有一定的关系,为什么呢?因为C2:”A survey of user opinion of computer
system response time”中包含user单词,和human是近似词,因此human-C2的值被提高了。以上分析方法清晰的把LSA的效果显示出来了,也就是在{}中呈现出了潜在语义,然后希望能创建潜在语义空间,并在该空间中检索信息。

优缺点

LSA的优点

1)低维空间表示可以刻画同义词,同义词会对应着相同或相似的主题;

2)降维可去除部分噪声,是特征更鲁棒;

3)充分利用冗余数据;

4)无监督/完全自动化;

5)与语言无关。

LSA的缺点

1)LSA可以处理向量空间模型无法解决的一义多词(synonymy)问题,但不能解决一词多义(polysemy)问题。因为LSA将每一个词映射为潜在语义空间中的一个点,也就是说一个词的多个意思在空间中对于的是同一个点,并没有被区分;

2)SVD的优化目标基于L-2
norm 或者 Frobenius Norm 的,这相当于隐含了对数据的高斯分布假设。而 term 出现的次数是非负的,这明显不符合 Gaussian 假设,而更接近 Multi-nomial 分布;

3)特征向量的方向没有对应的物理解释;

4)SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练;

5)没有刻画term出现次数的概率模型;

6)对于count vectors 而言,欧式距离表达是不合适的(重建时会产生负数);

7)维数的选择是自己选择的。

LSA的实现步骤:

  1. 使用BOW模型将每个文档表示成向量(可以是频数,也可以是tf-idf值);

  2. 将所有文档向量拼接,建立Term-Document矩阵(m*n);

  3. 对Term-Document矩阵进行奇异值分解 [(mr)(rr)(r*n)];

  4. 对SVD分解后的矩阵进行降维,[(mk)(kk)(k*n),0<k<r],每个词和文档都可以表示成k个主题构成空间中的一点;

  5. 使用降维后的矩阵构建潜在语义空间,或重建Term-Document矩阵。

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值