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

PLSA

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

根据概率论公式:边缘分布等于联合分布的和有:
p(di,wj)=p(di)∑k=1Kp(wj,zk∣di)=p(di)∑k=1Kp(wj∣zk)p(zk∣di)\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=1∑K​p(wj​,zk​∣di​)=p(di​)k=1∑K​p(wj​∣zk​)p(zk​∣di​)​

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

其中,w⃗\vec{w}w是一个NNN维向量(n(di,w1),n(di,w2),⋯ ,n(di,wN))\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​)),每个分量是单词wjw_jwj​在文档did_idi​中的出现次数,NNN是词汇表VVV的大小。
文档之间同样相互独立,因此语料的生成概率为
p(D)=∏i=1Mp(di,w⃗)=∏i=1M∏j=1Np(di,wj)n(di,wj)\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=1∏M​p(di​,w)=i=1∏M​j=1∏N​p(di​,wj​)n(di​,wj​)​

采用最大似然估计,最大化log⁡p(D)\log p(D)logp(D),对应的p(zk∣di)p(z_k|d_i)p(zk​∣di​)和p(wj∣zk)p(w_j|z_k)p(wj​∣zk​)就是我们要找的最优参数。
L=log⁡p(D)=log⁡∏i=1M∏j=1Np(di,wj)n(di,wj)=∑i=1M∑j=1Nn(di,wj)log⁡p(di,wj)=∑i=1M∑j=1Nn(di,wj)log⁡[p(di)∑k=1Kp(wj∣zk)p(zk∣di)]=∑i=1M∑j=1Nn(di,wj)[log⁡p(di)+log⁡∑k=1Kp(wj∣zk)p(zk∣di)]=∑i=1M(∑j=1Nn(di,wj)log⁡p(di)+∑j=1Nn(di,wj)log⁡∑k=1Kp(wj∣zk)p(zk∣di))=∑i=1M(n(di)log⁡p(di)+∑j=1Nn(di,wj)log⁡∑k=1Kp(wj∣zk)p(zk∣di))=∑i=1Mn(di)[log⁡p(di)+∑j=1Nn(di,wj)n(di)log⁡∑k=1Kp(wj∣zk)p(zk∣di)]\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=1∏M​j=1∏N​p(di​,wj​)n(di​,wj​)=i=1∑M​j=1∑N​n(di​,wj​)logp(di​,wj​)=i=1∑M​j=1∑N​n(di​,wj​)log[p(di​)k=1∑K​p(wj​∣zk​)p(zk​∣di​)]=i=1∑M​j=1∑N​n(di​,wj​)[logp(di​)+logk=1∑K​p(wj​∣zk​)p(zk​∣di​)]=i=1∑M​(j=1∑N​n(di​,wj​)logp(di​)+j=1∑N​n(di​,wj​)logk=1∑K​p(wj​∣zk​)p(zk​∣di​))=i=1∑M​(n(di​)logp(di​)+j=1∑N​n(di​,wj​)logk=1∑K​p(wj​∣zk​)p(zk​∣di​))=i=1∑M​n(di​)[logp(di​)+j=1∑N​n(di​)n(di​,wj​)​logk=1∑K​p(wj​∣zk​)p(zk​∣di​)]​

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

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

EM算法

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

p(x(i);θ)p(x^{(i)};\theta)p(x(i);θ)是在给定参数θ\thetaθ下第iii个样本的产生概率,有些情况下这个概率值受到一些隐含因素的影响,如主题模型中文档生成过程中的主题,将其用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=1mlog⁡p(x(i);θ)=arg⁡max⁡θ∑i=1mlog⁡∑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θmax​i=1∑m​logp(x(i);θ)=argθmax​i=1∑m​logz(i)∑​p(x(i),z(i);θ)

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

Jensen不等式

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

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

等号成立的条件是随机变量xxx是常量。Jensen不等式用语言描述或许方便记忆:对于凸函数,函数的期望大于等于期望的函数。 证明如下:

如上图所示,对于(x,f(x))(x,f(x))(x,f(x)),(y,f(y))(y,f(y))(y,f(y))线段内的任意一点,其横纵坐标可以分别表示为tx+(1−t)ytx+(1-t)ytx+(1−t)y,tf(x)+(1−t)f(y)tf(x)+(1-t)f(y)tf(x)+(1−t)f(y),而函数f(x)f(x)f(x)在tx+(1−t)ytx+(1-t)ytx+(1−t)y对应的纵坐标为f(tf(x)+(1−t)f(y))f(tf(x)+(1-t)f(y))f(tf(x)+(1−t)f(y)),因为函数f(x)f(x)f(x)是凸函数,有
tf(x)+(1−t)f(y)≥f(tx+(1−t)y)tf(x)+(1-t)f(y)\geq f(tx+(1-t)y) tf(x)+(1−t)f(y)≥f(tx+(1−t)y)

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

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

EM算法推导

有了Jensen不等式,我们可以对上面的对数似然函数进行缩放如下:
(1)∑i=1mlog⁡∑z(i)p(x(i),z(i);θ)=∑i=1mlog⁡∑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=1∑m​logz(i)∑​p(x(i),z(i);θ)​=i=1∑m​logz(i)∑​Q(z(i))Q(z(i))p(x(i),z(i);θ)​​(1)(2)≥∑i=1m∑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=1∑m​z(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);θ)​的概率,函数fff对应log⁡\loglog函数,根据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);θ)=cQ(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,c为常量⇒p(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=1m∑z(i)Q(z(i))log⁡p(x(i),z(i);θ)Q(z(i))⇒arg⁡max⁡θ∑i=1m∑z(i)Q(z(i))log⁡p(x(i),z(i);θ)=arg⁡max⁡θ∑i=1m∑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θmax​i=1∑m​z(i)∑​Q(z(i))logQ(z(i))p(x(i),z(i);θ)​⇒argθmax​i=1∑m​z(i)∑​Q(z(i))logp(x(i),z(i);θ)=argθmax​i=1∑m​z(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);θ),最大迭代次数JJJ。

  1. 随机初始化模型参数θ0\theta^0θ0;
  2. E步:计算联合分布的条件概率期望:
    Qj(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=1m∑z(i)Qj(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=1∑m​z(i)∑​Qj​(z(i))logp(x(i),z(i);θ)
  3. M步:最大化期望,得到θj+1\theta^{j+1}θj+1
    θj+1=arg⁡max⁡θ∑i=1m∑z(i)Qj(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θmax​i=1∑m​z(i)∑​Qj​(z(i))logp(x(i),z(i);θ)
  4. 重复第(2)步和第(3)步,直至收敛或达到最大迭代次数JJJ。

PLSA模型的EM算法步骤

L=log⁡p(D)=∑i=1M∑j=1Nn(di,wj)log⁡∑k=1Kp(wj∣zk)p(zk∣di)≥∑i=1M∑j=1Nn(di,wj)∑k=1KQ(zk)log⁡p(wj∣zk)p(zk∣di)Q(zk)\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=1∑M​j=1∑N​n(di​,wj​)logk=1∑K​p(wj​∣zk​)p(zk​∣di​)≥i=1∑M​j=1∑N​n(di​,wj​)k=1∑K​Q(zk​)logQ(zk​)p(wj​∣zk​)p(zk​∣di​)​​

根据上面的推导得
Q(zk)=p(zk∣di,wj)Q(z_k)=p(z_k|d_i,w_j) Q(zk​)=p(zk​∣di​,wj​)

然后开始EM算法迭代过程。
E步:计算联合分布的条件概率期望
(1)计算隐变量的后验概率
p(zk∣di,wj)=p(zk,di,wj)∑k=1Kp(zk,di,wj)=p(wj∣zk)p(zk∣di)∑k=1Kp(wj∣zk)p(zk∣di)\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(zk​∣di​,wj​)​=∑k=1K​p(zk​,di​,wj​)p(zk​,di​,wj​)​=∑k=1K​p(wj​∣zk​)p(zk​∣di​)p(wj​∣zk​)p(zk​∣di​)​​

(2)将隐变量的后验概率带入,得到期望函数
Lc=∑i=1M∑j=1Nn(di,wj)∑k=1Kp(zk∣di,wj)log⁡p(zk,di,wj)=∑i=1M∑j=1Nn(di,wj)∑k=1Kp(zk∣di,wj)log⁡p(wj∣zk)p(zk∣di)\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=1∑M​j=1∑N​n(di​,wj​)k=1∑K​p(zk​∣di​,wj​)logp(zk​,di​,wj​)=i=1∑M​j=1∑N​n(di​,wj​)k=1∑K​p(zk​∣di​,wj​)logp(wj​∣zk​)p(zk​∣di​)​

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

可以采用拉格朗日乘子法求解,拉格朗日函数如下:
H=Lc+∑k=1Kτk(1−∑j=1Np(wj∣zk))+∑i=1Mρ(1−∑k=1Kp(zk∣di))\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=1∑K​τk​(1−j=1∑N​p(wj​∣zk​))+i=1∑M​ρ(1−k=1∑K​p(zk​∣di​))

分别求偏导,令其结果等于0,最终可以估计出参数p(wj∣zk)p(w_j|z_k)p(wj​∣zk​)和p(zk∣di)p(z_k|d_i)p(zk​∣di​)
p(wj∣zk)=∑i=1Mn(di,wj)p(zk∣di,wj)∑j=1N∑i=1Mn(di,wj)p(zk∣di,wj)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(wj​∣zk​)=∑j=1N​∑i=1M​n(di​,wj​)p(zk​∣di​,wj​)∑i=1M​n(di​,wj​)p(zk​∣di​,wj​)​p(zk∣di)=∑j=1Nn(di,wj)p(zk∣di,wj)n(di)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(zk​∣di​)=n(di​)∑j=1N​n(di​,wj​)p(zk​∣di​,wj​)​

参考文献

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

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

  1. EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的

    EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联 ...

  2. em模型补缺失值_基于EM算法数据单变量缺失处理方法研究

    龙源期刊网 http://www.qikan.com.cn 基于 EM 算法数据单变量缺失处理方法研究 作者:黄铉 来源:<科技传播> 2015 年第 20 期 摘 要 数据分析方法大都针 ...

  3. GMM 模型与EM算法求解详细推导

    1. 高斯模型与高维高斯模型介绍 高斯模型也就是正态分布模型,该模型最早可见于我们的高中数学教材中.闻其名知其意,正态分布是自然界中普遍存在的一种分布.比如,考试成绩,人的智力水平等等.都是大致呈现为 ...

  4. GMM高斯混合模型学习笔记(EM算法求解)

    提出混合模型主要是为了能更好地近似一些较复杂的样本分布,通过不断添加component个数,能够随意地逼近不论什么连续的概率分布.所以我们觉得不论什么样本分布都能够用混合模型来建模.由于高斯函数具有一 ...

  5. 高斯混合模型与EM算法求解

    高斯混合模型 文章目录 高斯混合模型 EM算法 高斯混合模型参数估计 1.样本分类已知情况下的GMM 2.样本分类未知的情况下的GMM 混合模型是一个用来表示在总体分布中含有K个子分布的概率模型,也就 ...

  6. python 变化检测使用EM算法求解差异图像最优灰度阈值问题实现

    参考论文: 1.基于快速EM算法和模糊融合的 多波段遥感影像变化检测 王桂婷‚ 王幼亮‚ 焦李成 红外与毫米波学报2010 2.基于PCA与EM算法的多光谱遥感影像变化检测研究 吴 柯1 牛瑞卿1 王 ...

  7. EM算法推导pLSA

    简介   概率潜在语义分析(Probabilistic Latent Semantic Analysis)模型简称pLSA.可以使用EM算法来估计pLSA的参数. 已知   有文档集合D={d1,.. ...

  8. 似然函数代码c语言,从似然函数到EM算法(附代码实现)

    1. 什么是EM算法 最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型 ...

  9. EM算法学习笔记与三硬币模型推导

    最近接触了pLSA模型,由于该模型中引入了主题作为隐变量,所以需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导 ...

最新文章

  1. Kettle使用_13 表输入并发运行与复制数量
  2. 体验 Orbeon form PE 版本提供的 JavaScript Embedding API
  3. 第46课 精益求精 《小学生C++趣味编程》
  4. python爬虫实战教程分享 或许你可以看一下这篇文章
  5. Linux下源码编译安装Redis及如何后台启动Redis
  6. 测试音频质量的软件,音频质量PESQ得分评估原理与步骤
  7. 将循环结果写入到新建的dataframe中
  8. 【设计模式】Iterator设计作业-设计LinkedList的iterator
  9. C语言的文件读取------C语言
  10. 最新parity 以太坊客户端2.7.2稳定版配置参数说明
  11. ReturnValueHandler原理(一):JSON和初解ReturnValueHandler
  12. GOOGLE地图基站定位-Google Mobile Maps API
  13. DSO Framer _ WinForm 使用
  14. 正点原子嵌入式linux视频教程,正点原子嵌入式开发完整全套视频教程
  15. Unity控制窗口全屏显示
  16. 形容词,名词记忆(七):ic,an,id后缀常用词
  17. UML测试题(用例图基础a)
  18. 四川职业技术学院2021年计算机考纲,2021年关于公布四川省普通高校对口招生职业技能考试大纲的通知...
  19. Kafka安装与验证
  20. 使用PlantUml插件画类图

热门文章

  1. 小米10卸载应用后无法再次安装
  2. Professional C++第四版 中文
  3. 基于OpenCV的RoboMaster装甲识别(Python,C++都有)
  4. 放开那三国服务器维护时间,放开那三国公告:停服更新维护
  5. 彩图和灰图(调色板)
  6. 英语中的动词(基础篇)
  7. 软件测试之——关于APP弱网测试
  8. java 热部署实现_Java热部署的实现原理
  9. a pom xml file already exists in the destination folder
  10. 工程类评高级职称的计算机免考,技术人员评聘9类人员可免考计算机能力