Probabilistic Latent Semantic Analysis(PLSA)

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

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

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


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

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

继续推导:

接下来开始EM推导!

,

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


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


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

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


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


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


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

最终的结果为:

接下来就是开始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)符合这一定的限制条件,有:

                 

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



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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值