LDA模型

来源:互联网 发布:pk10软件计划手机软件 编辑:程序博客网 时间:2024/05/14 10:45

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模型也很好理解。有了模型参数,我们就能得到文档的主题分布,即得到了文档的高层语义信息。