潜在语意索引(LSI)

目录

1. LSI概述

2. LSI简单实例

3. LSI 用于文本相似度计算

4. LSI模型总结


1. LSI概述

潜在语义索引(Latent Semantic Indexing, LSI),有的文章也叫Latent Semantic  Analysis(LSA)。其实是一个东西,后面我们统称LSI,它是一种简单实用的主题模型。LSI是基于奇异值分解(SVD)的方法来得到文本的主题的。而SVD及其应用我们在前面的文章也多次讲到,比如:奇异值分解(SVD)原理与在降维中的应用和矩阵分解在协同过滤推荐算法中的应用。

这里我们简要回顾下SVD:对于一个𝑚×𝑛的矩阵𝐴,可以分解为下面三个矩阵:

有时为了降低矩阵的维度到k,SVD的分解可以近似的写为:

如果把上式用到我们的主题模型,则SVD可以这样解释:我们输入的有m个文本,每个文本有n个词。而𝐴𝑖𝑗则对应第i个文本的第j个词的特征值,这里最常用的是基于预处理后的标准化TF-IDF值。k是我们假设的主题数,一般要比文本数少。SVD分解后,𝑈𝑖𝑙对应第i个文本和第l个主题的相关度。𝑉𝑗𝑚对应第j个词和第m个词义的相关度。Σ𝑙𝑚对应第l个主题和第m个词义的相关度。

也可以反过来解释:我们输入的有m个词,对应n个文本。而𝐴𝑖𝑗则对应第i个词档的第j个文本的特征值,这里最常用的是基于预处理后的标准化TF-IDF值。k是我们假设的主题数,一般要比文本数少。SVD分解后,𝑈𝑖𝑙对应第i个词和第l个词义的相关度。𝑉𝑗𝑚对应第j个文本和第m个主题的相关度。Σ𝑙𝑚对应第l个词义和第m个主题的相关度。

这样我们通过一次SVD,就可以得到文档和主题的相关度,词和词义的相关度以及词义和主题的相关度。

2. LSI简单实例

这里举一个简单的LSI实例,假设我们有下面这个有11个词三个文本的词频TF对应矩阵如下:

 

这里我们没有使用预处理,也没有使用TF-IDF,在实际应用中最好使用预处理后的TF-IDF值矩阵作为输入。

我们假定对应的主题数为2,则通过SVD降维后得到的三矩阵为:

 

     从矩阵𝑈𝑘我们可以看到词和词义之间的相关性。而从𝑉𝑘可以看到3个文本和两个主题的相关性。大家可以看到里面有负数,所以这样得到的相关度比较难解释。

3. LSI 用于文本相似度计算

在上面我们通过LSI得到的文本主题矩阵可以用于文本相似度计算。而计算方法一般是通过余弦相似度。比如对于上面的三文档两主题的例子。我们可以计算第一个文本和第二个文本的余弦相似度如下 :

4. LSI模型总结

LSI是最早出现的主题模型了,它的算法原理很简单,一次奇异值分解就可以得到主题模型,同时解决词义的问题,非常漂亮。但是LSI有很多不足,导致它在当前实际的主题模型中已基本不再使用。

主要的问题有:

1) SVD计算非常的耗时,尤其是我们的文本处理,词和文本数都是非常大的,对于这样的高维度矩阵做奇异值分解是非常难的。

2) 主题值的选取对结果的影响非常大,很难选择合适的k值。

3) LSI得到的不是一个概率模型,缺乏统计基础,结果难以直观的解释。

  对于问题1),主题模型非负矩阵分解(NMF)可以解决矩阵分解的速度问题。对于问题2),这是老大难了,大部分主题模型的主题的个数选取一般都是凭经验的,较新的层次狄利克雷过程(HDP)可以自动选择主题个数。对于问题3),牛人们整出了pLSI(也叫pLSA)和隐含狄利克雷分布(LDA)这类基于概率分布的主题模型来替代基于矩阵分解的主题模型。

回到LSI本身,对于一些规模较小的问题,如果想快速粗粒度的找出一些主题分布的关系,则LSI是比较好的一个选择,其他时候,如果你需要使用主题模型,推荐使用LDA和HDP。

参考链接:https://www.cnblogs.com/pinard/p/6805861.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值