EM推导PLSA模型

EM推导PLSA模型

回归EM算法

EM推导PLSA模型

以上是EM算法的框架,基本思想是:

  • E步骤:求当隐变量给定后当前估计的参数条件下的后验概率
  • M步骤:最大化complete data对数似然函数的期望,把E步当做是已知值,得到新的参数值
  • 不断迭代以上步骤直到收敛。

plsa模型简介

PLSA应用于信息检索、过滤、自然语言处理等领域,考虑到词分布和主题分布,可以看做概率化的矩阵分解,采用EM算法来学习参数。

模型示意图如下:
EM推导PLSA模型

其中包括的概率有:

  1. p(di)的概率选中文档di
  2. p(zk|di)的概率选中主题zk
  3. p(wj|zk)的概率产生一个词wj

在plsa中, p(di)可以事先计算求出, 而p(wj|zk),p(zk|di)就是我们需要计算的参数。

根据EM算法:
E步: 求隐变量的后验概率

p(zk|di,wj)=p(wj|zk)p(zk|di)l=1Kp(wj|zl)p(zk|di)

M步 完整数据的似然函数的期望

l=ijn(di,wj)logp(di,wj)
=ijn(di,wj)logp(wj|di)p(di)
=ijn(di,wj)logp(wj|di)+ijn(di,wj)logp(di)
后项是一个常数,因此可得
E(l)=ijn(di,wj)kp(zk|di,wj)log(p(wj,zk|di))

=ijn(di,wj)kp(zk|di,wj)log(p(zk|di)p(wj|zk))

其中 n(di,wj) 表示wjdi中出现的次数, 同时因为概率隐藏着两个约束条件:
j=1Mp(wj|zk)=1
k=1Kp(zk|di)=1

由此可以看出,这是一个带等式约束的问题,可以采用拉格朗日乘子法来解决。

Lag=ijn(di,wj)kp(zk|di,wj)log(p(zk|di)p(wj|zk))+k=1Kτk(1j=1Mp(wj|zk))+i=1Nρi(1k=1Kp(zk|di))

分别对带求解参数p(wj|zk),p(zk|di)求偏导数可得
Lagp(wj|zk)=in(di,wj)p(zk|di,wj)p(wj|zk)τk=0
in(di,wj)p(zk|di,wj)=τkp(wj|zk)
m=1Min(di,wj)p(zk|di,wj)=m=1Mτkp(wj|zk)

m=1Min(di,wj)p(zk|di,wj)=τkm=1Mp(wj|zk)=τk

τk代人可得

in(di,wj)p(zk|di,wj)=m=1Min(di,wj)p(zk|di,wj)p(wj|zk)

p(wj|zk)=in(di,wj)p(zk|di,wj)m=1Min(di,wj)p(zk|di,wj)

同理可得
Lagp(zk|di)=jn(di,wj)p(zk|di,wj)p(zk|di)ρi=0

jn(di,wj)p(zk|di,wj)=ρip(zk|di)
k=1Kjn(di,wj)p(zk|di,wj)=k=1Kρip(zk|di)
k=1Kjn(di,wj)p(zk|di,wj)=ρik=1Kp(zk|di)=ρi

ρi代入
jn(di,wj)p(zk|di,wj)=k=1Kjn(di,wj)p(zk|di,wj)p(zk|di)

可得
p(zk|di)=jn(di,wj)p(zk|di,wj)k=1Kjn(di,wj)p(zk|di,wj)

M步更新这两个参数