LDA模型

LDA(Latent Dirichlet Allocation)模型于03年发表在Journal of Machine Learning Research,三位作者乃当今当之无愧的机器学习大牛。身边很多学者因为其复杂的数学演算而对其望而生畏,而本文将对该模型进行抽丝剥茧,直奔主题,将其中最核心的idea和技术展现出来。
LDA模型又称为主题模型,对文档进行建模,学习出潜在的主题分布。假设一篇文档中包含 N 个单词,记为 w={wn}Nn=1 ,其中 wn 为该文档中第 n 个单词。在LDA模型中,单词 wn 用单位基向量(unit-basis vector)表示,即我们事先会定义一个包含 V 个典型单词的单词库(语料库),则 wn 为一个 V 维向量,其对应位置 v 上元素 wvn=1 ,其它元素为0。很显然,单词 wn 应该服从多元伯努利分布。LDA假设文档中每一个单词 wn 对应一个主题 zn ,文档 w 对应主题 z 。由于文档中有多个主题,因此,LDA最核心的思想即单词服从一个混合的伯努利分布:某一单词 wn 在给定第 k 个主题 znk 下服从参数为 βk 的伯努利分布。下面列举其中关键的分布:

  • p(wn|zn,β)=kp(wn|βk)znk ,此为单词的混合伯努利分布(便于理解,对应混合的高斯分布,即 x 在给定类别 k 下服从参数为 (μk,Σk) 的高斯分布)。其中, p(wn|βk)=vβwvnkv ,多元伯努利分布。显然, zn 为一个 K 维向量,包含 K 个主题, β 为一个 K×V 的二维矩阵,行向量为第 k 个伯努利分布的参数。
  • 同理 zn 也为一个 K 维的单位基向量,对应元素为1的值即为相应单词 wn 的主题。因此, p(zn|θ)=kθznkk θ 为伯努利分布参数,一个 K 维的向量。
  • 根据共轭先验的性质, p(θ|α)=Dir(θ|α) ,即 θ 服从参数为 α 的狄利克雷分布。

我们可以知道 z θ 为隐变量, α β 为模型的参数。下面是整个模型的概率图表示,通过该图能很清晰的明白整个模型的建模过程。
这里写图片描述
我们能轻易写出变量 w , z θ 的联合概率分布,其中 z θ 为隐变量:

p(w,z,θ|α,β)=p(θ|α)p(w|z,β)p(z|θ)=p(θ|α)np(wn|zn,β)p(zn|θ)

一般而言,由于隐变量的存在,参数的估计采用 EM算法。然而,在EM算法中,我们需要计算隐变量( z θ )的后验分布:
p(z,θ|w,α,β)=p(w,z,θ|α,β)p(w|α,β)

简单分析上式,分母 p(w|α,β) 由于需要对联合概率分布进行积分而无法计算。因此,文中采用变分的思想对模型进行参数估计,即用简单的分布 q(z,θ) 来逼近后验分布 p(z,θ|w) ,如下图
这里写图片描述
q(z,θ)=q(θ|γ)nq(zn|ϕn)

其中 q(θ|γ) 为服从参数为 γ 的狄利克雷分布;而 q(zn|ϕn) 为服从参数为 ϕn 的多元伯努利分布。那么有了近似的后验分布,根据EM算法的思想,我们就可以最大化对数似然函数( lnp(w|α,β) )的下界:
maxγ,{ϕn}Nn=1,β,αEqlnp(w,z,θ|α,β)q(z,θ)

那么剩下的就是交替优化的思想来估计相应参数 γ,{ϕn}Nn=1,β,α 。具体为:

  • 固定参数 β,α ,优化参数 γ,{ϕn}Nn=1
    maxγ,{ϕn}Nn=1Eqlnp(w,z,θ|α,β)Eqlnq(z,θ)maxγ,{ϕn}Nn=1Eqlnp(θ|α)+Eqlnp(z|θ)+Eqlnp(w|z,β)Eqlnq(θ)Eqlnq(z)

    下面的计算就很简单了,代入相应的分布的表达式,并对对应的 z,θ 在近似的 q(zn|ϕn),q(θ) 分布下求期望。最后采用常规的优化算法求解 γ,{ϕn}Nn=1
  • 固定参数 γ,{ϕn}Nn=1 ,优化模型参数 β,α ,此乃EM算法的M步:
    maxβ,αEqlnp(w,z,θ|α,β)maxβ,αEqlnp(θ|α)+Eqlnp(z|θ)+Eqlnp(w|z,β)

    同理代入相应表达式并求期望,最后用常规优化算法求解 β,α

整个算法流程基于EM算法,后验分布的近似采用了变分的思想,因此称为变分EM算法,也称为平均场。通过上面的分析,事实上LDA模型也很好理解。有了模型参数,我们就能得到文档的主题分布,即得到了文档的高层语义信息。

猜你喜欢

转载自blog.csdn.net/step_forward_ml/article/details/78350865