熟悉熟悉公式插件,整理整理学习LDA模型的时候对参数推导的理解,与原始论文有所不同。
模型定义
具体定义参考原始论文,这里使用平滑模型,对topic-word也加了先验信息。
LDA图模型
引理
在推导时候需要用几个引理
引理1.
定义相对熵 KL(q(z),p(z|w))=∑zq(z)lnq(z)p(z|w)
那么有公式 lnp(w)=L(q)+KL(q(z),p(z|w))
其中
L(q)=∑zq(z)lnp(z,x)q(z) 证明:
∑zq(z)lnp(z,w)q(z)+∑zq(z)lnq(z)p(z|w)=∑zq(z)lnp(z,w)p(z|w)=∑zq(z)lnp(w)=lnp(w)
证毕■
引理2
argminqKL(q(z),p(z|w)) 等于 argmaxqL(q).
证明:
argminqKL(q(z),p(z|w))=>argminq(−∑zq(z)lnp(z|w)q(z))=>argmaxq(∑zq(z)lnp(z|w)q(z))=>argmaxq(∑zq(z)lnp(z,w)q(z))=>argmaxqL(q)
证毕■
p(z|w) 和 p(z,w)都是常量,且都大于0。
变分贝叶斯求解
原始论文使用极大似然求参。
现在推导LDA的变分推断。
对数似然函数
lnL(α,β)=M∑m=1L(Wm;α,β)=M∑m=1(L(λ,ϕm,γm)+KL(q(φm,zm,θ;λ,ϕm,γm),p(φm,zm,θ|Wm;α,β))
其中
L(λ,ϕm,γm)=∫∑zq(φm,zm,θ;λ,ϕm,γm)lnp(φm,zm,θ,Wm;α,β)q(φm,zm,θ;λ,ϕm,γm)dφmdθm=Eq[lnp(φm,zm,θ,Wm;α,β)]−Eq[lnq(φm,zm,θ;λ,ϕm,γm)]
需要最大化lnL(α,β)和最小化KL(q(φm,zm,θ;λ,ϕm,γm),p(φm,zm,θ|Wm;α,β)),根据引理2,这等同于最大化最大化L(λ,ϕm,γm).
即现在目标为argmaxqL(λ,ϕm,γm).
求解,平均场理论来近似概率分布,定义
q(φ,z,θ)=K∏k=1q(θk;λk)M∏m=1q(φm;γm)M∏m=1Nm∏n=1q(zm,n;ϕm,n)
其中λ和γ是Dirichlet分布参数,ϕ是多项分布参数,
得到
L(λ,ϕm,γm)=Eq[lnp(θ)]+Eq[lnp(φm)]+Eq[lnp(zm|φm)]+Eq[lnp(Wm|φm,zm,θ)]−Eq[lnq(φm)]−Eq[lnq(zm)]−Eq[lnq(θ)]
现在将(7)展开,每一项展开
Eq[lnp(θ)]=∫q(θ)lnp(θ)d(θ)=∫K∏k=1q(θk;λk)lnK∏k=1p(θk;β)dθ=K∑k=1∫q(θk;λk)lnp(θk;β)dθk=K∑k=1∫Dir(θk;λk)ln1B(β)∏v=1Vθβv−1k,vdθk=K∑k=1∫Dir(θk;λk)ln1B(β)dθk+V∑v=1(βv−1)∫Dir(θk;λk)lnθk,vdθk=K∑k=1ln1B(β)+V∑v=1(βv−1)Eq[lnθk,v]=K∑k=1lnΓ(V∑v=1βv)−V∑v=1lnΓ(βv)+V∑v=1(βv−1)(Ψ(λk,v)−Ψ(K∑k=1λm,k))
同理
Eq[lnp(φm)]=lnΓ(K∑k=1αk)−K∑k=1lnΓ(αk)+K∑k=1(αk−1)(Ψ(γm,k)−Ψ(K∑k=1γm,k))
Eq[lnp(zm|φm)]=∫∫q(zm,φm)lnp(zm|φm)dzmdφm=∫∫q(zm;ϕm)Dir(φm;γm)lnMult(zm;φm)dzmdφm=∫∫q(zm;ϕm)Dir(φm;γm)lnφm,zmdzmdφm=∫Nm∏n=1Mult(zm,n;ϕm,n)∫Dir(φm,zm;γm)lnφm,zmdzm,n=Nm∑n=1K∑k=1ϕm,n,k(Ψ(γm,k)−Ψ(K∑k‘=1γm,k‘))
…
…
其余推导公式省略(太难输入了)
最后得到展开的公式,求最大值,令L(λ,ϕm,γm)的微分为0
省略
省略
误差分析
变分参数估计几处都用了近似(模型、分布、参数…)
\todo 有时间再说