文本处理中经典的LSA与PLSA 对比,EM算法,EM算法求解PLSA

主要参考:

1. 引子

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

稀疏性(Sparseness): 对于大词典,尤其是包括了生僻字的词典,文档稀疏性不可避免;

多义词(Polysem): 一词多义在文档中是常见的现象,BOW模型只统计单词出现的次数,而忽略了他们之间的区别;

同义词(Synonym): 同样的,在不同的文档中,或者在相同的文档中,可以有多个单词表示同一个意思;

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

2. LSA简介

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

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

LSA的优点

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

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

充分利用冗余数据;

无监督/完全自动化;

与语言无关;

LSA的不足

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

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

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

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

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

维数的选择是ad-hoc的;

3. pLSA

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

用图模型表示如上图所示,d和w表示观测变量,z是隐藏变量,M,N表示重复次数。

我们可以观察到的数据就是

对,而

是隐含变量。

的联合分布为

分布对应了两组 Multinomial 分布, 我们需要估计这两组分布的参数。由于词和词之间是互相独立的,于是可以得到整篇文档的词的分布;并且文档和文档也是互相独立的,于是我们可以得到整个样本的词的分布:

其中

是term

出现在文档

中的次数

直接用MLE来估计参数,就会得到似然函数

其中

可以认为是每个文档都一样,是常数,则

是要求的参数,一共有N*K + M*K个自变量,如果直接对这些自变量求偏导数,我们会发现由于自变量包含在对数和中,这个方程的求解很困难。因此我们采用EM算法。

下面给出用EM算法估计PLSA参数的详细推导过程。

(1) EM算法

EM算法主要解决的问题是:

我们有model:

,但是我们只观察到x,z是隐变量,

是参数, 想要极大化似然函数

  即

其中

是关于z的后验概率分布,Q的求解见Andrew NG 机器学习EM算法讲解。

根据Jensen不等式

EM算法具体步骤:

(1)E-step:

Set

(2)M-step:

此步中,Q是已知的

EM算法本质是通过构造原问题的一个紧的下界,

然后采用Co-ordinate assent算法不断优化下界,

E-step: fix

,  Max J respect to Q

M-step: fix Q, Max J respect to

达到最终收敛的目的。

E-step找到跟L(

)(黑色弧线)交于

(t)的J(蓝色弧线),M-step得到J取最大值时的

(t+1),这样下去直到收敛。(此图源于Andrew)

(2) EM算法,求解PLSA

EM算法框架是固定的,直接套用到PLSA中

记得PLSA中似然函数

常数,所以

约束条件

拉格朗日乘子法:

(1)构造Q

(2)max J respect to

  和

注意到

  是已知的 ,分别对

求偏导数,我们可以得到

我们就可以解出M步骤中通过最大化期望估计出的新的参数值

如此不断迭代,直到满足终止条件。

4.pLSA与LSA的关系

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

pLSA的优势

定义了概率模型,而且每个变量以及相应的概率分布和条件概率分布都有明确的物理解释;

相比于LSA隐含了高斯分布假设,pLSA隐含的Multi-nomial分布假设更符合文本特性;

pLSA的优化目标是是KL-divergence最小,而不是依赖于最小均方误差等准则;

可以利用各种model selection和complexity control准则来确定topic的维数;

pLSA的不足

概率模型不够完备:在document层面上没有提供合适的概率模型,使得pLSA并不是完备的生成式模型,而必须在确定document i的情况下才能对模型进行随机抽样;

随着document和term 个数的增加,pLSA模型也线性增加,变得越来越庞大;

当一个新的document来到时,没有一个好的方式得到$p(d_i)$;

EM算法需要反复的迭代,需要很大计算量;

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

5. 参考文献

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

欢迎加入我爱机器学习QQ14群:336582044

微信扫一扫,关注我爱机器学习公众号

plsa java_LSA vs PLSA及EM求解相关推荐

  1. 贝叶斯分层回归模型的推理、EM求解和Java编程

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com . 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 模型 如下为模型: 这个模型中,参数和协方差服从正太 ...

  2. plsa java_LDA和PLSA的区别

    http://hi.baidu.com/flyer_hit/blog/item/2ec12d251dd9dd6835a80f55.html http://blog.csdn.net/feixiangc ...

  3. 概率语言模型及其变形系列-PLSA及EM算法

    转载自:http://blog.csdn.net/yangliuy/article/details/8330640 本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA.LDA及LDA的变形模 ...

  4. EM推导PLSA模型

    EM推导PLSA模型 回归EM算法 以上是EM算法的框架,基本思想是: E步骤:求当隐变量给定后当前估计的参数条件下的后验概率 M步骤:最大化complete data对数似然函数的期望,把E步当做是 ...

  5. NLP --- 文本分类(基于概率的隐语意分析(PLSA)详解)

    上一节我们详细的讲解了SVD的隐语意分析,一旦提到这个,大家脑海里应该立刻有如下的矩阵形式: 我们通过矩阵的分解对文本数据进行压缩,压缩量很可观,尤其是原始的矩阵的维度很高时压缩的更可观,因为k通常要 ...

  6. 主题模型TopicModel:Unigram、LSA、PLSA模型

    http://blog.csdn.net/pipisorry/article/details/42560693 主题模型历史 Papadimitriou.Raghavan.Tamaki和Vempala ...

  7. 让机器读懂文章: pLSA模型推导及实现

    让机器读懂文章: pLSA模型推导及实现 概述 pLSA模型 pLSA的EM算法推导 pLSA的实现 总结 参考文献 概述 人类读懂文章是一个很自然的行为,当我们读完一篇<背影>的时候,我 ...

  8. plsa java_PLSA

    PLSA模型 PLSA和LDA很像,都属于主题模型,即它们都认为上帝在写文章时先以一定概率选择了一个主题,然后在这主题下以一定概率选择了一个词,重复这个过程就完成了一篇文章,即$p(d_i,w_j)= ...

  9. plsa java_PLSA算法(转)

    文章分类:综合技术 1. 引子 Bag-of-Words 模型是NLP和IR领域中的一个基本假设.在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语 ...

最新文章

  1. 【Android】最近做的一个Android平台下时间统计工具
  2. [日常折腾之码上归一]多种编程语言打印当前系统时间
  3. Linux学习之系统编程篇:编写一个守护进程
  4. mysql怎么多表备份_学习MySQL多表操作和备份处理
  5. JavaScript事件函数监视
  6. c ++异常处理_C ++中的异常处理
  7. 剑指offer——面试题64:数据流中的中位数
  8. win10下驱动级套节字通信(ksocket)
  9. 在Linux环境下select函数的初体验
  10. window多台服务器文件同步,SyncToy 两台Windows电脑文件同步
  11. 【YOLOV5-5.x 源码解读】yolo.py
  12. Preface Numbering序言页码
  13. python 使用pandas简单地把excel里面的数据存储到矩阵里面
  14. Android双屏异显另辟蹊径---minui的移植
  15. 计算机维修工实操,计算机维修工(三级)操作技能练习题.pdf
  16. 【SLF4j】使用日志组件SLF4j写系统日志
  17. excel数据透视表_Excel数据透视表可轻松实现总计
  18. Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible
  19. ibatis mysql 函数_Ibatis+MySql范例(转)
  20. 在网页中插入一个透明背景的PNG图片

热门文章

  1. Android端调起企业微信提示【没有此权限】
  2. c语言点餐对话系统,智能点餐系统的设计与实现.pdf
  3. 【设计模式】软件设计七大原则 ( 迪米特原则 | 代码示例 )
  4. 印度医务工作者正努力打击WhatsApp上传播的虚假信息
  5. 小散量化炒股记|搭建本地化的股票量化数据库这么几步就够了
  6. 转:IBM ThinkPad笔记本电脑问题集
  7. SIFT 和 SURF
  8. Atlassian Data Center 如何优化企业中新员工的远程入职流程
  9. 只能对数值操作的TextBox
  10. 数组转集合的方法(注意事项)