主题模型(3)——PLSA模型及其EM算法求解

之前整理过两篇关于主题模型的博客《文本建模之Unigram Model,PLSA与LDA》和《再看LDA主题模型》,主要是整理了主题模型的由来和推导过程,关于模型参数怎么计算没有过多涉及,因此接下来将分两篇博客,分别整理PLSA模型和EM算法求解,LDA模型和Gibbs Sample求解。

PLSA

首先回顾下PLSA,作为生成模型,其在文本生成过程中,引入主题的概念,即先从 K K K个主题中选定一个主题,然后在该主题下生成对应的单词。这里,我们将文档 d i d_i di下每个主题 z k z_k zk的生成概率表示为 p ( z k ∣ d i ) p(z_k|d_i) p(zkdi),每个主题 z k z_k zk下单词(这里的单词是只词汇表 V V V所对应的每个不同单词) w j w_j wj的生成概率表示为 p ( w j ∣ z k ) p(w_j|z_k) p(wjzk)。因此文档 d i d_i di中单词 w j w_j wj的生成概率可以表示为
p ( d i , w j ) = p ( d i ) p ( w j ∣ d i ) p(d_i,w_j)=p(d_i)p(w_j|d_i) p(di,wj)=p(di)p(wjdi)

根据概率论公式:边缘分布等于联合分布的和有:
p ( d i , w j ) = p ( d i ) ∑ k = 1 K p ( w j , z k ∣ d i ) = p ( d i ) ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \begin{aligned} p(d_i,w_j)&=p(d_i)\sum_{k=1}^Kp(w_j,z_k|d_i)\\ &=p(d_i)\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i) \end{aligned} p(di,wj)=p(di)k=1Kp(wj,zkdi)=p(di)k=1Kp(wjzk)p(zkdi)

单词之间相互独立,因此文档 d i d_i di中所有单词的生成概率为
p ( d i , w ⃗ ) = ∏ j = 1 N p ( d i , w j ) n ( d i , w j ) p(d_i,\vec{w})=\prod_{j=1}^Np(d_i,w_j)^{n(d_i,w_j)} p(di,w )=j=1Np(di,wj)n(di,wj)

其中, w ⃗ \vec{w} w 是一个 N N N维向量 ( n ( d i , w 1 ) , n ( d i , w 2 ) , ⋯   , n ( d i , w N ) ) \Big(n(d_i,w_1),n(d_i,w_2),\cdots,n(d_i,w_N)\Big ) (n(di,w1),n(di,w2),,n(di,wN)),每个分量是单词 w j w_j wj在文档 d i d_i di中的出现次数, N N N是词汇表 V V V的大小。
文档之间同样相互独立,因此语料的生成概率为
p ( D ) = ∏ i = 1 M p ( d i , w ⃗ ) = ∏ i = 1 M ∏ j = 1 N p ( d i , w j ) n ( d i , w j ) \begin{aligned} p(D)&=\prod_{i=1}^Mp(d_i,\vec{w})\\ &=\prod_{i=1}^M\prod_{j=1}^Np(d_i,w_j)^{n(d_i,w_j)} \end{aligned} p(D)=i=1Mp(di,w )=i=1Mj=1Np(di,wj)n(di,wj)

采用最大似然估计,最大化 log ⁡ p ( D ) \log p(D) logp(D),对应的 p ( z k ∣ d i ) p(z_k|d_i) p(zkdi) p ( w j ∣ z k ) p(w_j|z_k) p(wjzk)就是我们要找的最优参数。
L = log ⁡ p ( D ) = log ⁡ ∏ i = 1 M ∏ j = 1 N p ( d i , w j ) n ( d i , w j ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ p ( d i , w j ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ [ p ( d i ) ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ] = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) [ log ⁡ p ( d i ) + log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ] = ∑ i = 1 M ( ∑ j = 1 N n ( d i , w j ) log ⁡ p ( d i ) + ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ) = ∑ i = 1 M ( n ( d i ) log ⁡ p ( d i ) + ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ) = ∑ i = 1 M n ( d i ) [ log ⁡ p ( d i ) + ∑ j = 1 N n ( d i , w j ) n ( d i ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ] \begin{aligned} \mathcal{L}=\log p(D)&=\log \prod_{i=1}^M\prod_{j=1}^Np(d_i,w_j)^{n(d_i,w_j)}\\ &=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\log p(d_i,w_j)\\ &=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\log [p(d_i)\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)]\\ &=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\Big[\log p(d_i)+\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)\Big ]\\ &=\sum_{i=1}^M\Big(\sum_{j=1}^Nn(d_i,w_j)\log p(d_i)+\sum_{j=1}^Nn(d_i,w_j)\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)\Big)\\ &=\sum_{i=1}^M\Big(n(d_i)\log p(d_i)+\sum_{j=1}^Nn(d_i,w_j)\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)\Big)\\ &=\sum_{i=1}^Mn(d_i)\Big[\log p(d_i)+\sum_{j=1}^N\frac{n(d_i,w_j)}{n(d_i)}\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)\Big] \end{aligned} L=logp(D)=logi=1Mj=1Np(di,wj)n(di,wj)=i=1Mj=1Nn(di,wj)logp(di,wj)=i=1Mj=1Nn(di,wj)log[p(di)k=1Kp(wjzk)p(zkdi)]=i=1Mj=1Nn(di,wj)[logp(di)+logk=1Kp(wjzk)p(zkdi)]=i=1M(j=1Nn(di,wj)logp(di)+j=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi))=i=1M(n(di)logp(di)+j=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi))=i=1Mn(di)[logp(di)+j=1Nn(di)n(di,wj)logk=1Kp(wjzk)p(zkdi)]

因为文档长度 n ( d i ) n(d_i) n(di)和文档概率p(d_i)可以单独计算,将其去掉不会影响似然函数的最优化。所以在后面部分,我们统一将 L \mathcal{L} L写成如下形式
L = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \mathcal{L}=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i) L=i=1Mj=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi)

可以看到上式对数函数中包含参数的和,进行求导时将非常的复杂,即直接找到对数似然函数的最大值将不那么容易。庆幸的是,EM(Expectation-Maximization,简称EM)算法能够帮助我们解决这个问题。

EM算法

EM算法是一种启发式迭代算法,每次迭代分为两步:E步,求期望(expectation);M步,极大化对数似然(maximization),这也是算法名称的由来。回到我们的问题,我们将对数函数包含参数和的情况进行一般化,首先目标函数可以写成下式:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ p ( x ( i ) ; θ ) \theta = \arg \max_{\theta}\sum_{i=1}^m\log p(x^{(i)};\theta) θ=argθmaxi=1mlogp(x(i);θ)

p ( x ( i ) ; θ ) p(x^{(i)};\theta) p(x(i);θ)是在给定参数 θ \theta θ下第 i i i个样本的产生概率,有些情况下这个概率值受到一些隐含因素的影响,如主题模型中文档生成过程中的主题,将其用 z ( i ) z^{(i)} z(i)表示,此时 p ( x ( i ) ; θ ) p(x^{(i)};\theta) p(x(i);θ)需要累加所有的 p ( x ( i ) , z ( i ) ; θ ) p(x^{(i)},z^{(i)};\theta) p(x(i),z(i);θ),而优化目标也变成:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ p ( x ( i ) ; θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) \theta=\arg\max_\theta\sum_{i=1}^m\log p(x^{(i)};\theta)=\arg\max_\theta\sum_{i=1}^m\log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta) θ=argθmaxi=1mlogp(x(i);θ)=argθmaxi=1mlogz(i)p(x(i),z(i);θ)

上式的难办之处就在于对数函数中出现了和的形式,那有没有一个办法将求和符号提到 log ⁡ \log log外面吗?答案是有的。

Jensen不等式

f f f是定义在实数域上的函数,如果对于任意的实数 x x x,都有
f ′ ′ ≥ 0 f''\geq0 f0

那么 f f f是凸函数,此时对于随机变量 x x x,有
E [ f ( x ) ] ≥ f ( E ( x ) ) E[f(x)]\geq f(E(x)) E[f(x)]f(E(x))

等号成立的条件是随机变量 x x x是常量。Jensen不等式用语言描述或许方便记忆:对于凸函数,函数的期望大于等于期望的函数。 证明如下:
在这里插入图片描述
如上图所示,对于 ( x , f ( x ) ) (x,f(x)) (x,f(x)) ( y , f ( y ) ) (y,f(y)) (y,f(y))线段内的任意一点,其横纵坐标可以分别表示为 t x + ( 1 − t ) y tx+(1-t)y tx+(1t)y t f ( x ) + ( 1 − t ) f ( y ) tf(x)+(1-t)f(y) tf(x)+(1t)f(y),而函数 f ( x ) f(x) f(x) t x + ( 1 − t ) y tx+(1-t)y tx+(1t)y对应的纵坐标为 f ( t f ( x ) + ( 1 − t ) f ( y ) ) f(tf(x)+(1-t)f(y)) f(tf(x)+(1t)f(y)),因为函数 f ( x ) f(x) f(x)是凸函数,有
t f ( x ) + ( 1 − t ) f ( y ) ≥ f ( t x + ( 1 − t ) y ) tf(x)+(1-t)f(y)\geq f(tx+(1-t)y) tf(x)+(1t)f(y)f(tx+(1t)y)

因为 t + ( 1 − t ) = 1 t+(1-t)=1 t+(1t)=1,所以我们可以将 t t t 1 − t 1-t 1t看作随机变量 x , y x,y x,y对应的概率,即上式表达的是
E [ f ( x ) ] ≥ f ( E ( x ) ) E[f(x)]\geq f(E(x)) E[f(x)]f(E(x))

若函数 f f f是凹函数,上述不等式符号相反。

EM算法推导

有了Jensen不等式,我们可以对上面的对数似然函数进行缩放如下:
(1) ∑ i = 1 m log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) Q ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q ( z ( i ) ) \begin{aligned} \sum_{i=1}^m\log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)&=\sum_{i=1}^m\log\sum_{z^{(i)}}Q(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q(z^{(i)})} \tag{1} \end{aligned} i=1mlogz(i)p(x(i),z(i);θ)=i=1mlogz(i)Q(z(i))Q(z(i))p(x(i),z(i);θ)(1) (2) ≥ ∑ i = 1 m ∑ z ( i ) Q ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q ( z ( i ) ) \quad\quad\qquad\qquad\qquad\qquad\quad\geq\sum_{i=1}^m\sum_{z^{(i)}}Q(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q(z^{(i)})}\tag2 i=1mz(i)Q(z(i))logQ(z(i))p(x(i),z(i);θ)(2)

其中 ∑ z ( i ) Q ( z ( i ) ) = 1 \sum_{z^{(i)}}Q(z^{(i)})=1 z(i)Q(z(i))=1,即隐变量 z ( i ) z^{(i)} z(i)的概率分布。在上式中,将 Q ( z ( i ) ) Q(z^{(i)}) Q(z(i))看作随机变量 p ( x ( i ) , z ( i ) ; θ ) Q ( z ( i ) ) \frac{p(x^{(i)},z^{(i)};\theta)}{Q(z^{(i)})} Q(z(i))p(x(i),z(i);θ)的概率,函数 f f f对应 log ⁡ \log log函数,根据Jensen不等式就能得到上面不等式。
OK,到这里我们就成功的将求和符号提到了对数函数外面,因而式 ( 2 ) (2) (2)将容易求导。但是式 ( 2 ) (2) (2)和式 ( 1 ) (1) (1)是不等号关系,式 ( 2 ) (2) (2)的最大值不一定是式 ( 1 ) (1) (1)的最大值,那怎么才能得到式 ( 1 ) (1) (1)的最大值呢?我们知道,当给定参数 θ \theta θ时,对数似然函数 L \mathcal{L} L的值就确定了,也就是式 ( 2 ) (2) (2)的上界就确定了,同时 p ( x ( i ) , z ( i ) ) p(x^{(i)},z^{(i)}) p(x(i),z(i))的值就确定了,这时我们修改 Q ( z ( i ) ) Q(z^{(i)}) Q(z(i))的值,使下界等于上界。

如果要满足Jensen不等式的等号,需要:
p ( x ( i ) , z ( i ) ; θ ) Q ( z ( i ) ) = c , c 为 常 量 ⇒ p ( x ( i ) , z ( i ) ; θ ) = c Q ( z ( i ) ) ⇒ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = c ∑ z ( i ) Q ( z ( i ) ) ⇒ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = c \begin{aligned} &\quad \frac{p(x^{(i)},z^{(i)};\theta)}{Q(z^{(i)})}=c,\quad c为常量\\ &\rArr p(x^{(i)},z^{(i)};\theta)=cQ(z^{(i)})\\ &\rArr \sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)=c\sum_{z^{(i)}}Q(z^{(i)}) \\ &\rArr \sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)=c \end{aligned} Q(z(i))p(x(i),z(i);θ)=c,cp(x(i),z(i);θ)=cQ(z(i))z(i)p(x(i),z(i);θ)=cz(i)Q(z(i))z(i)p(x(i),z(i);θ)=c

所以,我们可以得到,等号成立需要满足的条件是
Q ( z ( i ) ) = p ( x ( i ) , z ( i ) ; θ ) ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = p ( z ( i ) ∣ x ( i ) ; θ ) Q(z^{(i)})=\frac{p(x^{(i)},z^{(i)};\theta)}{\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)}=p(z^{(i)}|x^{(i)};\theta) Q(z(i))=z(i)p(x(i),z(i);θ)p(x(i),z(i);θ)=p(z(i)x(i);θ)

即隐变量的后验概率。知道了 Q ( z ( i ) ) Q(z^{(i)}) Q(z(i)),将其带入式 ( 2 ) (2) (2),然后找出使其最大的 θ \theta θ,这时我们就确定了在该 θ \theta θ值处的一个下界,同样我们调整 Q ( z ( i ) ) Q(z^{(i)}) Q(z(i))使这个下界最大化,同时也在尝试提升我们的对数似然函数,即我们需要最大化下式:
arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q ( z ( i ) ) ⇒ arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) p ( z ( i ) ∣ x ( i ) ; θ ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) \begin{aligned} &\quad\enspace\arg\max_{\theta}\sum_{i=1}^m\sum_{z^{(i)}}Q(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q(z^{(i)})}\\ &\rArr\arg\max_{\theta}\sum_{i=1}^m\sum_{z^{(i)}}Q(z^{(i)})\log p(x^{(i)},z^{(i)};\theta)\\ &=\arg\max_{\theta}\sum_{i=1}^m\sum_{z^{(i)}}p(z^{(i)}|x^{(i)};\theta)\log p(x^{(i)},z^{(i)};\theta) \end{aligned} argθmaxi=1mz(i)Q(z(i))logQ(z(i))p(x(i),z(i);θ)argθmaxi=1mz(i)Q(z(i))logp(x(i),z(i);θ)=argθmaxi=1mz(i)p(z(i)x(i);θ)logp(x(i),z(i);θ)

上式可以理解为对数似然函数 log ⁡ p ( x ( i ) , z ( i ) ; θ ) \log p(x^{(i)},z^{(i)};\theta) logp(x(i),z(i);θ)基于条件概率 p ( z ( i ) ∣ x ( i ) ; θ ) p(z^{(i)}|x^{(i)};\theta) p(z(i)x(i);θ)的期望,正好对应EM算法的E步,而最大化过程,正好对应M步。重复上述过程,直到收敛到对数似然函数 L \mathcal{L} L的最大处 θ ∗ \theta^* θ,至于为什么会收敛?证明可以参考李航《统计学习方法》等。注意,与所有迭代算法一样,EM算法不能保证得到全局最优解。

EM算法的形象过程如下图:
在这里插入图片描述
总结EM算法的流程如下:
输入:观测数据 x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) ) x=(x^{(1)},x^{(2)},\cdots,x^{(m)}) x=(x(1),x(2),,x(m)),联合分布 p ( x ( i ) , z ( i ) ; θ ) p(x^{(i)},z^{(i)};\theta) p(x(i),z(i);θ),条件概率 p ( z ( i ) ∣ x ( i ) ; θ ) p(z^{(i)}|x^{(i)};\theta) p(z(i)x(i);θ),最大迭代次数 J J J

  1. 随机初始化模型参数 θ 0 \theta^0 θ0;
  2. E步:计算联合分布的条件概率期望:
    Q j ( z ( i ) ) = p ( z ( i ) ∣ x ( i ) ; θ j ) Q_j(z^{(i)})=p(z^{(i)}|x^{(i)};\theta^j) Qj(z(i))=p(z(i)x(i);θj) E = ∑ i = 1 m ∑ z ( i ) Q j ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) E=\sum_{i=1}^m\sum_{z^{(i)}}Q_j(z^{(i)})\log p(x^{(i)},z^{(i)};\theta) E=i=1mz(i)Qj(z(i))logp(x(i),z(i);θ)
  3. M步:最大化期望,得到 θ j + 1 \theta^{j+1} θj+1
    θ j + 1 = arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q j ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) \theta^{j+1}=\arg\max_{\theta}\sum_{i=1}^m\sum_{z^{(i)}}Q_j(z^{(i)})\log p(x^{(i)},z^{(i)};\theta) θj+1=argθmaxi=1mz(i)Qj(z(i))logp(x(i),z(i);θ)
  4. 重复第(2)步和第(3)步,直至收敛或达到最大迭代次数 J J J

PLSA模型的EM算法步骤

L = log ⁡ p ( D ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) ≥ ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) ∑ k = 1 K Q ( z k ) log ⁡ p ( w j ∣ z k ) p ( z k ∣ d i ) Q ( z k ) \begin{aligned} \mathcal{L}&=\log p(D)=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\log\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)\\ &\geq\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\sum_{k=1}^KQ(z_k)\log\frac{p(w_j|z_k)p(z_k|d_i)}{Q(z_k)} \end{aligned} L=logp(D)=i=1Mj=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi)i=1Mj=1Nn(di,wj)k=1KQ(zk)logQ(zk)p(wjzk)p(zkdi)

根据上面的推导得
Q ( z k ) = p ( z k ∣ d i , w j ) Q(z_k)=p(z_k|d_i,w_j) Q(zk)=p(zkdi,wj)

然后开始EM算法迭代过程。
E步:计算联合分布的条件概率期望
(1)计算隐变量的后验概率
p ( z k ∣ d i , w j ) = p ( z k , d i , w j ) ∑ k = 1 K p ( z k , d i , w j ) = p ( w j ∣ z k ) p ( z k ∣ d i ) ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \begin{aligned} p(z_k|d_i,w_j)&=\frac{p(z_k,d_i,w_j)}{\sum_{k=1}^Kp(z_k,d_i,w_j)}\\ &=\frac{p(w_j|z_k)p(z_k|d_i)}{\sum_{k=1}^Kp(w_j|z_k)p(z_k|d_i)} \end{aligned} p(zkdi,wj)=k=1Kp(zk,di,wj)p(zk,di,wj)=k=1Kp(wjzk)p(zkdi)p(wjzk)p(zkdi)

(2)将隐变量的后验概率带入,得到期望函数
L c = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) ∑ k = 1 K p ( z k ∣ d i , w j ) log ⁡ p ( z k , d i , w j ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) ∑ k = 1 K p ( z k ∣ d i , w j ) log ⁡ p ( w j ∣ z k ) p ( z k ∣ d i ) \begin{aligned} \mathcal{L}^c&=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\sum_{k=1}^Kp(z_k|d_i,w_j)\log p(z_k,d_i,w_j)\\ &=\sum_{i=1}^M\sum_{j=1}^Nn(d_i,w_j)\sum_{k=1}^Kp(z_k|d_i,w_j)\log p(w_j|z_k)p(z_k|d_i) \end{aligned} Lc=i=1Mj=1Nn(di,wj)k=1Kp(zkdi,wj)logp(zk,di,wj)=i=1Mj=1Nn(di,wj)k=1Kp(zkdi,wj)logp(wjzk)p(zkdi)

M步:最大化期望函数,这是一个带约束的最优化问题:
∑ j = 1 N p ( w j ∣ z k ) = 1 ∑ k = 1 K p ( z k ∣ d i ) = 1 \sum_{j=1}^Np(w_j|z_k)=1\\ \sum_{k=1}^Kp(z_k|d_i)=1 j=1Np(wjzk)=1k=1Kp(zkdi)=1

可以采用拉格朗日乘子法求解,拉格朗日函数如下:
H = L c + ∑ k = 1 K τ k ( 1 − ∑ j = 1 N p ( w j ∣ z k ) ) + ∑ i = 1 M ρ ( 1 − ∑ k = 1 K p ( z k ∣ d i ) ) \mathcal{H}=\mathcal{L}^c+\sum_{k=1}^K\tau_k\Big(1-\sum_{j=1}^Np(w_j|z_k)\Big)+\sum_{i=1}^M\rho\Big(1-\sum_{k=1}^Kp(z_k|d_i)\Big) H=Lc+k=1Kτk(1j=1Np(wjzk))+i=1Mρ(1k=1Kp(zkdi))

分别求偏导,令其结果等于0,最终可以估计出参数 p ( w j ∣ z k ) p(w_j|z_k) p(wjzk) p ( z k ∣ d i ) p(z_k|d_i) p(zkdi)
p ( w j ∣ z k ) = ∑ i = 1 M n ( d i , w j ) p ( z k ∣ d i , w j ) ∑ j = 1 N ∑ i = 1 M n ( d i , w j ) p ( z k ∣ d i , w j ) p(w_j|z_k)=\frac{\sum_{i=1}^Mn(d_i,w_j)p(z_k|d_i,w_j)}{\sum_{j=1}^N\sum_{i=1}^Mn(d_i,w_j)p(z_k|d_i,w_j)} p(wjzk)=j=1Ni=1Mn(di,wj)p(zkdi,wj)i=1Mn(di,wj)p(zkdi,wj) p ( z k ∣ d i ) = ∑ j = 1 N n ( d i , w j ) p ( z k ∣ d i , w j ) n ( d i ) p(z_k|d_i)=\frac{\sum_{j=1}^Nn(d_i,w_j)p(z_k|d_i,w_j)}{n(d_i)} p(zkdi)=n(di)j=1Nn(di,wj)p(zkdi,wj)

参考文献

EM算法原理总结
从最大似然到EM算法浅解

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值