LDA(Latent Dirichlet Allocation)模型于03年发表在Journal of Machine Learning Research,三位作者乃当今当之无愧的机器学习大牛。身边很多学者因为其复杂的数学演算而对其望而生畏,而本文将对该模型进行抽丝剥茧,直奔主题,将其中最核心的idea和技术展现出来。
LDA模型又称为主题模型,对文档进行建模,学习出潜在的主题分布。假设一篇文档中包含
-
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(θ|α) ,即θ 服从参数为α 的狄利克雷分布。
我们可以知道
我们能轻易写出变量
一般而言,由于隐变量的存在,参数的估计采用 EM算法。然而,在EM算法中,我们需要计算隐变量(
简单分析上式,分母
其中
那么剩下的就是交替优化的思想来估计相应参数
- 固定参数
β,α ,优化参数γ,{ϕ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模型也很好理解。有了模型参数,我们就能得到文档的主题分布,即得到了文档的高层语义信息。