LSA和 PLSA学习笔记

转自http://blog.csdn.net/bbswawa/article/details/6205948

1. 引子

Bag-of-Words 模型是NLP和IR领域中的一个基本假设。在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语法或者词序的部分。BOW在传统NLP领域取得了巨大的成功,在计算机视觉领域(Computer Vision)也开始崭露头角,但在实际应用过程中,它却有一些不可避免的缺陷,比如:

  1. 稀疏性(Sparseness): 对于大词典,尤其是包括了生僻字的词典,文档稀疏性不可避免;
  2. 多义词(Polysem): 一词多义在文档中是常见的现象,BOW模型只统计单词出现的次数,而忽略了他们之间的区别;
  3. 同义词(Synonym): 同样的,在不同的文档中,或者在相同的文档中,可以有多个单词表示同一个意思;

从同义词和多义词问题我们可以看到,单词也许不是文档的最基本组成元素,在单词与文档之间还有一层隐含的关系,我们称之为主题(Topic)。我们在写文章时,首先想到的是文章的主题,然后才根据主题选择合适的单词来表达自己的观点。在BOW模型中引入Topic的因素,成为了大家研究的方向,这就是我们要讲的Latent Semantic Analysis (LSA) 和 probabilitistic Latent Semantic Analysis (pLSA),至于更复杂的LDA和众多其他的Topic Models,以后再详细研究。

2. LSA简介

已知一个文档数据集及相应的词典,采用BOW模型假设,我们可以将数据集表示为一个的共生矩阵,,其中,表示词典中的第j个单词在第i个文档中出现的次数。

LSA的基本思想就是,将document从稀疏的高维Vocabulary空间映射到一个低维的向量空间,我们称之为隐含语义空间(Latent Semantic Space).

如何得到这个低维空间呢,和PCA采用特征值分解的思想类似,作者采用了奇异值分解(Singular Value Decomposition)的方式来求解Latent Semantic Space。标准的SVD可以写为:


其中, 均为正交矩阵,有 是包含 所有奇异值的对角矩阵。LSA降维的方式就是只取 中最大的K个奇异值,而其他置为0,得到 的近似矩阵 ,于是得到了共生矩阵的近似: 

注意到如果我们利用内积来计算文档与文档之间的的相似度,即 的自相关矩阵,可以得到: 。于是,我们可以把 解释为文档样本在Latent Space上的坐标,而 则是两个空间之间的变换矩阵。下图形象的展示了LSA的过程:

由LSA在训练集合上得到的参数,当一个新的文档向量到来时,我们可以利用下式将其原始term space映射到latent space:

LSA的优点

  1. 低维空间表示可以刻画同义词,同义词会对应着相同或相似的主题;
  2. 降维可去除部分噪声,是特征更鲁棒;
  3. 充分利用冗余数据;
  4. 无监督/完全自动化;
  5. 与语言无关;

LSA的不足

  1. 没有刻画term出现次数的概率模型;
  2. 无法解决多义词的问题;
  3. SVD的优化目标基于L-2 norm 或者是 Frobenius Norm的,这相当于隐含了对数据的高斯噪声假设。而term出现的次数是非负的,这明显不符合Gaussian假设,而更接近Multi-nomial分布;
  4. 对于count vectors 而言,欧式距离表达是不合适的(重建时会产生负数);
  5. 特征向量的方向没有对应的物理解释;
  6. SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练;
  7. 维数的选择是ad-hoc的;

3. pLSA

类似于LSA的思想,在pLSA中也引入了一个Latent class,但这次要用概率模型的方式来表达LSA的问题,如下图:

在这个probabilitistic模型中,我们引入一个Latent variable ,这对应着一个潜在的语义层。于是,完整的模型为:代表文档在数据集中出现的概率;代表当确定了语义时,相关的term(word)出现的机会分别是多少; 表示一个文档中语义分布的情况。利用以上这些定义,我们就可以一个生成式模型(generative model),利用它产生新的数据:

  1. 首先根据分布随机抽样选择一个文档;
  2. 选定文档后,根据抽样选择文档表达的语义
  3. 选定语义后,根据选择文档的用词;

这样,我们得到了一个观测对,多次重复这一过程我们就得到了一个类似N的共生矩阵,而潜在的语义在观测值中并没有表现出来。为了刻画的联合分布,我们可得到以下公式:


用图模型来表示以上公式如Figure3中的(a),而(b)是pLSA模型的另外一种等价形式,公式可写作: 

模型确定好了,已知的数据集N,我们可以利用Maximum Likelihood准则来确定模型的参数,目标函数可写作: 

此目标函数也可以解释为使 两个分布之间的K-L Divergence最小,即 更好的刻画共生矩阵的实际分布。

EM求解

在似然值的表达式中存在对数内部的加运算,所以球pLSA最大似然解的问题没有闭式解,我们只能求助于EM算法,下面我们从最简单的启发式的角度推导出pLSA的求解过程。

既然似然值无法直接求解最大值,那么我们转而优化其下界,并通过迭代不断的将此下界提高,那么最终得到的解即为近似最大解, 当然,此过程中寻求的下界要求尽量紧确。利用琴生不等式和概率小于1的性质,我们可以得到如下推导:

                  
这样,我们就把 拿到了 外面来,接下来我们就可以对 直接求解了。注意这个最大化问题的约束条件是: 

利用拉格朗日法,我们可以得到优化目标: 
            
对此目标函数求导,我们可以得到EM算法中的M-step: 
                                           而EM算法中的E-step也就是求已知 时隐含变量 的后验概率: 

观察可以得到,E-step与M-step互相依赖,可以证明每一步都使得下界 的期望值提高,通过不断的迭代求解即可最后求得原问题的近似最大似然解。

pLSA与LSA的关系

由Figure4可以看到pLSA与LSA之间的对应关系。其中刻画了Latent Space也即topic space的信息;刻画了topic space与term space之间的关系,对应着LSA中的正交基;在文档分类是,这两部分也就是我们在模型训练结束需要保存的信息,当一个新的文档的到来时, 我们可以再次利用EM算法得到新的文档与主题的对应关系,并由此得到文档在topic空间上的表示

pLSA的优势

  1. 定义了概率模型,而且每个变量以及相应的概率分布和条件概率分布都有明确的物理解释;
  2. 相比于LSA隐含了高斯分布假设,pLSA隐含的Multi-nomial分布假设更符合文本特性;
  3. pLSA的优化目标是是KL-divergence最小,而不是依赖于最小均方误差等准则;
  4. 可以利用各种model selection和complexity control准则来确定topic的维数;

pLSA的不足

  1. 概率模型不够完备:在document层面上没有提供合适的概率模型,使得pLSA并不是完备的生成式模型,而必须在确定document i的情况下才能对模型进行随机抽样;
  2. 随着document和term 个数的增加,pLSA模型也线性增加,变得越来越庞大;
  3. 当一个新的document来到时,没有一个好的方式得到$p(d_i)$;
  4. EM算法需要反复的迭代,需要很大计算量;

针对pLSA的不足,研究者们又提出了各种各样的topic based model, 其中包括大名鼎鼎的Latent Dirichlet Allocation (LDA),在此就不再多说了。

4. 参考文献

  1. Thomas Hofmann, “Unsupervised Learning by Probabilistic Latent Semantic Analysis,” Machine Learning 42, no. 1 (January 1, 2001): 177-196.

LSA和 PLSA学习笔记相关推荐

  1. 《统计学习方法第二版》学习笔记1——概论

    第1章 统计学习及监督学习概率论 目录 第1章 统计学习及监督学习概率论 前言 1 理论部分 1.1 统计学习 1.2 统计学习的分类 1.3 统计学习方法三要素 1.4 模型评估与模型选择 1.5 ...

  2. CCNA第十一章学习笔记OSPF简介

    CCNA非常不错的学习笔记,我总结如下: 开放最短路径优先 (OSPF) 协议是一种链路状态路由协议,旨在替代距离矢量路由协议 RIP.OSPF 是一种无类路由协议,它使用区域概念实现可扩展性.RFC ...

  3. Linux学习笔记(二)|常用命令

    Linux学习笔记(二)常用命令 1.文件处理命令 1.1命令格式与目录处理 -ls 功能描述:显示目录文件 原意:list 所在路径:/bin/ls 语法: ls-a 显示所有文件,包括隐藏文件 l ...

  4. redhat6.x_linux学习笔记

    ULE 学习笔记 ls -l install.log -:rw-r--r--: 1 :root: root :39410 :2012-12-03 :install.log 文件类型 : 权限位 : 硬 ...

  5. LINUX学习笔记共五部分

    LINUX学习笔记1--LINUX系统命令 1.         界面切换: a)         进入字符界面:按住ctrl+alt+F1: 1.         首先需要进入用户登入,输入用户名和 ...

  6. 熬秃了头整理的网络工程师学习笔记和心得:传闻中的OSPF到底是什么

    目录 OSPF是什么? 关于ODPF的基本术语: Router ID选举规则如下 ospf支持的网络类型: OSPF报文类型: ![在这里插入图片描述](https://img-blog.csdnim ...

  7. HCNP学习笔记之OSPF邻接关系的建立和LSDB同步

    HCNP学习笔记之OSPF协议原理及配置4-邻接关系的建立和LSDB同步 本文转自:https://blog.51cto.com/4625416/1678913 进入ExStart状态后,广播和NBM ...

  8. cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)

    在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...

  9. 词向量学习笔记(一)Word2vec

    词向量学习笔记(一)Word2vec 文章目录 词向量学习笔记(一)Word2vec 一.概述 二.词向量 2.1词的独热表示one-hot 2.2 词的分布式表示 三.原理--Skip-gram和C ...

  10. 文本表示模型(1):主题模型LSA、pLSA、LDA

    目录 文本表示模型 主题模型 LSA pLSA LDA 文本表示模型 文本表示模型可分为以下几种: 基于one-hot, tf-idf, textrank等的bag-of-words: 基于计数的,主 ...

最新文章

  1. [DM] 都是套路: 从上帝视角看透时间序列和数据挖掘
  2. 皮一皮:论智能酒店的高等级提示...
  3. mysql root远程访问权限_mysql8.0 Server在Windows平台中的安装、初始化和远程访问设置...
  4. SpringBoot 配置错误页
  5. 虚拟化服务器类型,虚拟化服务器类型
  6. java猜数游戏有次数限制_“去小学化”之后,可以这样开展数学游戏,让孩子玩中学,学中乐!...
  7. call 在mysql,在MYSQL上选择CASE和CALL程序
  8. jQuery 文本编辑器插件 HtmlBox 使用
  9. 计算机函数公式法计算出总分的式子,excel计算百分比公式的用法
  10. matlab信道编码程序,信道编码作业matlab.doc
  11. 整理41个Python不同方面的练习题,希望对你有帮助
  12. 需求跟踪系列 I - 入门篇
  13. 【word2vec】算法原理 公式推导
  14. 天龙单机服务器维护,天龙八部怀旧版如梦令单机版,天龙八部一键端无情网络版服务端...
  15. flowable流程实例管理接口
  16. 谷歌正在教AI人类如何拥抱,做菜,和打架
  17. 12【C语言 趣味算法】存钱问题(四层for循环,if判断)
  18. Matlab三维矩阵变换行列
  19. Go web开发初探
  20. 用PDF阅读器实现PDF合并及PDF拆分技巧

热门文章

  1. 【板栗糖GIS】DOS—如何在当前文件夹内部批量建子文件夹
  2. 量化信噪比 非均匀量化_非均匀量化-Read.PPT
  3. 川大高分子为什么不学c语言,四川大学软件工程考研难吗
  4. 各大编辑器的常用快捷键
  5. RIdeogram 染色体图谱可视化R包
  6. c语言程序设计对称数,对称数 问题
  7. Data Matrix二维码在医疗器械UDI中的应用
  8. 解决Server returned HTTP response code: 403 for URL报错
  9. hdu 2502月之数
  10. Image-Guided Navigation of a Robotic Ultrasound Probe for Autonomous Spinal Sonography Using a