LDA主题模型(三)变分方法

本文详细介绍了LDA主题模型的变分推断方法,包括变分推断与EM的区别、LDA的变分推断思路、参数求解任务的转化以及求解最优变分参数和模型参数的步骤。通过E步和M步的迭代更新,最终得到模型参数α和β,以及主题词分布λ和文档主题分布γ。
摘要由CSDN通过智能技术生成

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(θ,φ,zw,α,β)=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=1Kq(φkλk)d=1Mq(θd,zdγd,ϕd)=k=1Kq(φkλk)d=1M(q(θdγd)n=1Ndq(zdnϕdn))
  我们希望用 q ( φ , z , θ ∣ λ , ϕ , γ ) q(\varphi, z, \theta|\lambda,\phi, \gamma) q(φ,z,θλ,ϕ,γ)来近似估计 p ( θ , φ , z ∣ w , α , β ) p(\theta,\varphi, z | w, \alpha, \beta) p(θ,φ,zw,α,β),衡量两个分布相似的指标是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(θ,φ,zw,α,β))
  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(qp)=xq(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α,β)=logzp(θ,φ,z,wα,β)dθdφ=logzq(φ,z,θλ,ϕ,γ)p(θ,φ,z,wα,β)q(φ,z,θλ,ϕ,γ)dθdφ=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值