LDA主题模型(一)基本概念
LDA主题模型(二)Gibbs采样方法
LDA主题模型(三)变分方法
变分推断
变分推断的过程类似于EM过程,区别在于
EM:计算隐变量的后验概率期望得到下界
变分:计算KL散度得到下界
具体关于变分的讲解网上有很多,我看的只是一知半解因此贴上一篇对我很有帮助的博客
LDA的变分推断
还是回到开始,看LDA的模型图
在这个模型中,我们有观测值 w m , n w_m,n wm,n,有隐变量 θ , φ , z \theta,\varphi,z θ,φ,z,有模型参 α , β \alpha,\beta α,β,如果是EM的思想需要在E步先求出来 θ , φ , z \theta,\varphi,z θ,φ,z的后验概率期望,然后在M步最大化期望,但是我们可以发现 θ , φ , z \theta,\varphi,z θ,φ,z之间并不知相互独立的,也就是存在耦合现象,那么就需要采用变分推断的方法。
变分推断存在一个假设:每个隐变量都是通过独立的分布形成的,因此可以用这些独立分布来近似隐变量的后验概率分布。得到隐变量的后验概率分布之后,就可以得到模型参数 α , β \alpha,\beta α,β,进而得到LDA模型的主档-主题分布 θ \theta θ和主题-词分布 φ \varphi φ。
注意:这里与Gibbs采样不同,Gibbs采样是通过采样直接得到 θ , φ \theta,\varphi θ,φ,而 α , β \alpha,\beta α,β是作为超参事先选择好的。而变分方法最后直接得到了 α , β \alpha,\beta α,β的值,已经知道 θ , φ \theta,\varphi θ,φ分别服从参数为 α , β \alpha,\beta α,β的Dirichlet的分布,可以根据某文档得到一组 θ , φ \theta,\varphi θ,φ,后面我们还可以看到我们可以得到 θ , φ \theta,\varphi θ,φ近似分布。所以说Gibbs采样是随机近似推断而变分是确定近似推断。
LDA变分推断思路
1.参数求解任务的转化
我们本来要求隐藏变量的后验概率分布如下 p ( θ , φ , z ∣ w , α , β ) = p ( θ , φ , z , w ∣ α , β ) p ( w ∣ α , β ) p(\theta,\varphi, z | w, \alpha, \beta) = \frac{p(\theta,\varphi, z, w| \alpha, \beta)}{p(w|\alpha, \beta)} p(θ,φ,z∣w,α,β)=p(w∣α,β)p(θ,φ,z,w∣α,β)
但是由于耦合现象,无法直接求上式,因此我们引入变分参数,假设
变量θ是由独立分布γ形成的,隐藏变量z是由独立分布ϕ形成的,隐藏变量 φ \varphi φ是由独立分布λ形成的。这样我们得到了三个隐藏变量联合的变分分布q为
q ( φ , z , θ ∣ λ , ϕ , γ ) = ∏ k = 1 K q ( φ k ∣ λ k ) ∏ d = 1 M q ( θ d , z d ∣ γ d , ϕ d ) = ∏ k = 1 K q ( φ k ∣ λ k ) ∏ d = 1 M ( q ( θ d ∣ γ d ) ∏ n = 1 N d q ( z d n ∣ ϕ d n ) ) q(\varphi, z, \theta|\lambda,\phi, \gamma) = \prod_{k=1}^Kq(\varphi_k|\lambda_k)\prod_{d=1}^Mq(\theta_d, z_d|\gamma_d,\phi_d) \\ = \prod_{k=1}^Kq(\varphi_k|\lambda_k)\prod_{d=1}^M(q(\theta_d|\gamma_d)\prod_{n=1}^{N_d}q(z_{dn}| \phi_{dn})) q(φ,z,θ∣λ,ϕ,γ)=k=1∏Kq(φk∣λk)d=1∏Mq(θd,zd∣γd,ϕd)=k=1∏Kq(φk∣λk)d=1∏M(q(θd∣γd)n=1∏Ndq(zdn∣ϕdn))
我们希望用 q ( φ , z , θ ∣ λ , ϕ , γ ) q(\varphi, z, \theta|\lambda,\phi, \gamma) q(φ,z,θ∣λ,ϕ,γ)来近似估计 p ( θ , φ , z ∣ w , α , β ) p(\theta,\varphi, z | w, \alpha, \beta) p(θ,φ,z∣w,α,β),衡量两个分布相似的指标是KL散度,即现在的目标是 ( λ ∗ , ϕ ∗ , γ ∗ ) = a r g    m i n ⎵ λ , ϕ , γ D ( q ( φ , z , θ ∣ λ , ϕ , γ ) ∣ ∣ p ( θ , φ , z ∣ w , α , β ) ) (\lambda^*,\phi^*, \gamma^*) = \underbrace{arg \;min}_{\lambda,\phi, \gamma} D(q(\varphi, z, \theta|\lambda,\phi, \gamma) || p(\theta,\varphi, z | w, \alpha, \beta)) (λ∗,ϕ∗,γ∗)=λ,ϕ,γ
argminD(q(φ,z,θ∣λ,ϕ,γ)∣∣p(θ,φ,z∣w,α,β))
KL散度的公式为 D ( q ∣ ∣ p ) = ∑ x q ( x ) l o g q ( x ) p ( x ) = E q ( x ) ( l o g    q ( x ) − l o g    p ( x ) ) D(q||p) = \sum\limits_{x}q(x)log\frac{q(x)}{p(x)} = E_{q(x)}(log\;q(x) - log\;p(x)) D(q∣∣p)=x∑q(x)logp(x)q(x)=Eq(x)(logq(x)−logp(x)),但是上面的式子根本没法求变分参数,那只好先看我们有什么数据了,我们只有文档数据,因此可以得到文档数据的对数似然函数
l o g ( w ∣ α , β ) = l o g ∫ ∫ ∑ z p ( θ , φ , z , w ∣ α , β ) d θ d φ = l o g ∫ ∫ ∑ z p ( θ , φ , z , w ∣ α , β ) q ( φ , z , θ ∣ λ , ϕ , γ ) q ( φ , z , θ ∣ λ , ϕ , γ ) d θ d φ = l o g    E q p ( θ , φ , z , w ∣ α , β ) q ( φ , z , θ ∣ λ , ϕ , γ ) ≥ E q    l o g p ( θ , φ , z , w ∣ α , β ) q ( φ , z , θ ∣ λ , ϕ , γ ) = E q    l o g p ( θ , φ , z , w ∣ α , β ) − E q    l o g q ( φ , z , θ ∣ λ , ϕ , γ ) log(w|\alpha,\beta) = log \int\int \sum\limits_z p(\theta,\varphi, z, w| \alpha, \beta) d\theta d\varphi \\ = log \int\int \sum\limits_z \frac{p(\theta,\varphi, z, w| \alpha, \beta) q(\varphi, z, \theta|\lambda,\phi, \gamma)}{q(\varphi, z, \theta|\lambda,\phi, \gamma)}d\theta d\varphi \\ = log\;E_q \frac{p(\theta,\varphi, z, w| \alpha, \beta) }{q(\varphi, z, \theta|\lambda,\phi, \gamma)} \\ \geq E_q\; log\frac{p(\theta,\varphi, z, w| \alpha, \beta) }{q(\varphi, z, \theta|\lambda,\phi, \gamma)} \\ = E_q\; log{p(\theta,\varphi, z, w| \alpha, \beta) } - E_q\; log{q(\varphi, z, \theta|\lambda,\phi, \gamma)} log(w∣α,β)=log∫∫z∑p(θ,φ,z,w∣α,β)dθdφ=log∫∫z∑q(φ,z,θ∣λ,ϕ,γ)p(θ,φ,z,w∣α,β)q(φ,z,θ∣λ,ϕ,γ)dθdφ=