码迷,mamicode.com
首页 > 其他好文 > 详细

文本建模系列之二:pLSA

时间:2016-05-07 10:12:31      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

“庙小妖风大,水浅王八多”。还是这句话,这是业余研究生的文本建模系列之二:关于pLSA。前述就到此。

 

pLSA:Probabilistic Latent Senmantic Indexing.是Hoffman在1999年提出的基于概率的隐语义分析【1】。之所以说是probabilistic,是因为这个模型中还加入了一个隐变量:主题Z ,也正因为此,它被称之为主题模型。

 

在pLSA中,一片文档可能有多个主题,而一个主题对应着多个单词的分布,以【2】LDA数学八卦一文中的描述为例,可以比较生动的阐述在pLSA模型中,一篇文档是如何生成的。


技术分享
 因此,对于文档d中的一个单词w,其概率可以描述为:

 

 
技术分享
 

 

 对于整个语料,那么其似然函数是:

 
技术分享

当然,其对数的似然函数如下:


技术分享
 其中
 n(d,w)表示在文档d中,单词w出现的次数

 

 带入第一式可以得到对数的似然函数是:


技术分享
 

 然后现在的问题是:如何求取P(w|z)和P(z|d).

 

这种隐变量的求法和之前的高斯混合分布的求法其实是一样的,很显然的需要EM算法来进行求导。回顾之前的EM算法,我们首先需要求取Q函数的分布的期望,然后另该期望最大化。

 

根据Jessen不等式:

 
技术分享
 变成求右边下界的问题,需要等号成立的话,需要:


技术分享
 因此我们得出:


技术分享

于是E步就是:


技术分享

有两个约束条件:


技术分享
 
 
 下面进行M步,也就是求期望最大:

使用拉格朗日乘法求:



技术分享
 
 

使偏导为零可以得出结果:


技术分享
 这就求出了我们需要的参数。

 

然后就是重复迭代的过程,直至收敛。

 

 好了,模型已经建立完毕,现在的问题是给出一篇新的文档,如何求取其文档的主题分布呢。当然最直接的想法就是,将该文档丢到语料库中重新爬一遍,然后得出结果,当然这种耗时大一般不建议采用,论文【1】在给出了几种方法,我觉的主要是fold-in方法比较重要:

将训练出来的p(w|z)固定不变,在EM算法中,只有一个文档q,通过迭代跑p(z|d),之后计算相似度?

 

OK,这就是pLSA.

求偏导可以参考【3】

 

参考文献:

[1]Probabilitic Latent Semantic Indexing.Thomas Hofmann .

[2]LDA数学八卦.靳志辉

[3]基于PLSA主题模型的文本聚类

文本建模系列之二:pLSA

标签:

原文地址:http://blog.csdn.net/u010223750/article/details/51334584

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!