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

PLSA(Probabilistic Latent Semantic Analysis)模型

时间:2014-12-13 21:55:00      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:机器学习   em   

对于上次说的LSA模型,它能解决多个单词一个意义,但是不能解决多个意义一个单词,就是多义词的问题,而PLSA模型能较好的解决这个问题,首先说下,这个模型的假设:

1 假设生成一个单词的过程是这样的:首先选择一篇文章di,然后再次基础上选择一个潜变量zk(可以理解为主题),最后在此基础上再在生成一个单词。如果p(di,wj)表示第i个文本中有第j个单词的概率,根据假设有:

bubuko.com,布布扣

2 另外一个非常重要的假设是,单词wj和文本di是基于潜变量条件独立的,即:

bubuko.com,布布扣

与LSA模型相似,我们首先得到了一个加权词频矩阵(如TF/IDF),接下来可以写出似然函数如下:

bubuko.com,布布扣

其中n(di,wj)表示这个词频矩阵(i,j)的元素值,且对于p(di)这一部分,求和后为常数,可以将其省去(省去后我还是写成L),不影响求最大值。

继续推导:

bubuko.com,布布扣

接下来开始EM推导!

bubuko.com,布布扣,

这里Pij(zk)表示第j个单词是由第i篇文档通过zk这个潜在变量生成的概率,根据上一篇文章所说的性质,有:

bubuko.com,布布扣

然后根据等号取到的条件,有:

bubuko.com,布布扣

我觉得有必要说明的一点是,对于任意的i,j,k这个式子的结果都是一个常数c,但是并不是说对于任意i,j,k,这个c是相同的,所以这里不能提取出常数c,但是无论c是多少,下面的步骤都是可以的。

并且分子分母都按照sigma zk求和,有:

bubuko.com,布布扣

和之前一样有分子等于1,那么分母等于c,将分母代回上面那个式子,得到:

bubuko.com,布布扣

这里说下我遇到的一个困惑,我当初看的那篇论文中,并没有按照EM推导的步骤,而是不知道通过什么途径(我没看懂)得到了Pij(zk)=P(zk/wi,dj),然后利用贝叶斯公式和条件独立的假设,得到:

bubuko.com,布布扣

分子分母约掉p(di)就得到了和Pij(zk)相同的结果,这里略为困惑,不过好在结果是一样的。

最终的结果为:

bubuko.com,布布扣

接下来就是开始EM算法的迭代了:

E步:随机选取(初始情况下)或者由上一步M得到参数p(zk/di)(总共K*N个),p(wj/zk)(总共K*M个),计算出p(zk/wi,dj)。

M步: p(zk/wi,dj)由p(zk/di)和p(wj/zk)替代后,求L的最大值,它是以p(zk/di),p(wj/zk)为参数的,且p(zk/di),p(wj/zk)符合这一定的限制条件,有:

bubuko.com,布布扣                 bubuko.com,布布扣

这个问题可以用拉格朗日乘子法求解,求解过程非常复杂,结果如下:

bubuko.com,布布扣

bubuko.com,布布扣

E步和M步交替执行,直到收敛。

收敛后我们可以用得到的两个概率矩阵进行一些比如文本聚类,单词聚类等处理。

PLSA(Probabilistic Latent Semantic Analysis)模型

标签:机器学习   em   

原文地址:http://blog.csdn.net/u012303532/article/details/41909915

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