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