Processing math: 100%
ML

LDA模型

熟悉熟悉公式排版、顺便理解理解变分贝叶斯参数推导

Posted by Jie on February 13, 2017

熟悉熟悉公式插件,整理整理学习LDA模型的时候对参数推导的理解,与原始论文有所不同。

模型定义

具体定义参考原始论文,这里使用平滑模型,对topic-word也加了先验信息。

ldamodel 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(α,β)=Mm=1L(Wm;α,β)=Mm=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,θ)=Kk=1q(θk;λk)Mm=1q(φm;γm)Mm=1Nmn=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(θ)=Kk=1q(θk;λk)lnKk=1p(θk;β)dθ=Kk=1q(θk;λk)lnp(θk;β)dθk=Kk=1Dir(θk;λk)ln1B(β)v=1Vθβv1k,vdθk=Kk=1Dir(θk;λk)ln1B(β)dθk+Vv=1(βv1)Dir(θk;λk)lnθk,vdθk=Kk=1ln1B(β)+Vv=1(βv1)Eq[lnθk,v]=Kk=1lnΓ(Vv=1βv)Vv=1lnΓ(βv)+Vv=1(βv1)(Ψ(λk,v)Ψ(Kk=1λm,k))

同理

Eq[lnp(φm)]=lnΓ(Kk=1αk)Kk=1lnΓ(αk)+Kk=1(αk1)(Ψ(γm,k)Ψ(Kk=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=Nmn=1Mult(zm,n;ϕm,n)Dir(φm,zm;γm)lnφm,zmdzm,n=Nmn=1Kk=1ϕm,n,k(Ψ(γm,k)Ψ(Kk=1γm,k))

其余推导公式省略(太难输入了)

最后得到展开的公式,求最大值,令L(λ,ϕm,γm)的微分为0

省略

省略

误差分析

变分参数估计几处都用了近似(模型、分布、参数…)

\todo 有时间再说