前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLP系列学习:潜在语义牵引

NLP系列学习:潜在语义牵引

作者头像
云时之间
发布2018-12-06 10:42:33
5300
发布2018-12-06 10:42:33
举报
文章被收录于专栏:云时之间

关于主题模型这一块是比较特殊的,这期间也给我带来了一些困惑,因为其中的一些算法和我们在机器学习中使用的算法还是很不同的,在这篇文章里,我想简单介绍下LSI(潜在语义牵引)

这个模型的作用是通过海量的文献找出词汇的关系.就跟警察抓嫌疑人一样,犯罪事件在这个区域里出现的多了,这片区域越有可能成为犯罪的重点辖区. 词汇也是这样,当一些词汇大量出现在一篇文章里时,我们可以认为这篇文章会倾向去成为某一种类型,而这些词之间也存在着语义相关性.

一:主题模型算法

我们使用的主题模型算法跟聚类差不多,但是细究起来还是有一些差距:

1:聚类模型计算的是数据样本之间的欧拉距离等.

2:主题模型是通过对文本隐含主题的建模,词特性聚类很难找出主题相关度.

找出主题的方法有一些是基于统计的方法,还有一些不是基于统计的方法,比如LSI

二:潜在语义索引概述

LSI是基于奇异值分解(SVD)的方法来得到文本的主题的。关于其中的数学知识,我就不再赘述了,这里说一说她的降维过程:

1:把文档库表示为

的词-文档矩阵,词作为行,文档作为列.(m表示词向量在不同文档中出现的次数,n表示不同文档的个数),A表示为A = [α ij ],在此矩阵中,α ij为非负值 , 表示第 i 个词在第j 个文档中出现的频度。显然,A是稀疏矩阵.

2:利用SVD求A的正交因子的降秩矩阵,这其实就是关键所在,降维,SVD在我看来,最主要的作用在这里是将词和文档映射到一个语义空间,然后把文档和词表示为因子形式,这样既可以保留主要信息,又可以减少运算复杂度.

这当中K的取值挺关键,我看前人给出的经验是,K过小,则丢失信息就越多;K过大,信息虽然多,但可能有冗余且计算消耗大。K的选择也是值得研究的,不过一般取值为100-300,不绝对。

三:LSI的应用性

LSI在我看来最关键的还是设计K的取值,如果K取的很合适,可以把联系较为紧密的词语提出来,其实就是用降维做相关性计算.但是LSI现在并不是那么流行,也是有一些原因:

1:太慢

SVD计算太费劲了,特别是我们几十万的文本数据一块来,这样高维矩阵SVD分解基本是机器吃不消,然后现在用的TF-IDF只需要通过两个整数相乘就能计算出不同单词的重要性,岂不是更有效?尽管在某些程度上LSI有一些优势,但是在工业界似乎没多少人用.

2:K值选取

K值的选取太过于影响计算结果,直接使用LSI做单词相关度计算的并不多,一方面在于现在有一些灰常好用的同义词词典,另外相对无监督的学习大家还是更信任有监督的学习(分类)得到的结果。

3:LSI不能聚类

因为LSI 得到的不是一个概率模型,缺乏统计基础,结果难以直观的解释。所以聚类不行,但是该算法后续额变种包括LDA聚类是很有效的,因为LSI找的是特征子空间,聚类找的则是实例分组,

LSI 虽然能得到看起来貌似是聚类的结果,但其意义不见得是聚类所想得到的。

四:实验

代码整理ing~

后续附加

五:总结

对于LSI,我们在一些规模较小的问题上,使用LSI是很划算的,但是你想实打实的做主题模型,因为数据量太多了,还是老老实实用LDA这样的模型吧.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.11.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档