Gibbs Sampling
Background
所有的推導可以說都是根據這張圖片:
α∈RM×K
θm∈RK
β∈RK×V
ϕk∈RV
LDA的目的就是爲了在給定α,β 的情況下,求出θ 和ϕ 。
推導1 — 聯合分佈
求解 p(s,z|α,β)=p(w|z,β)⋅p(z|α)
兩個部分p(w|z,β) , p(z|α) 分別考慮。
對於第一部分: p(w|z,β)=∫p(x|z,ϕ)⋅p(ϕ|β)dϕ
- p(x|z,ϕ)=∑Kk=1p(w|zk,ϕk)=∑Kk=1∏Vv=1p(w|zk,ϕk,v)=ϕntkk,v ,其中ntk 表示的是所有文檔中屬於topic k的詞v的個數。
- p(ϕk|β)=Dir(ϕk|β)=1B(β)∏Vv=1ϕβv−1k,v
所以p(w|z,β)=∫∏Kk=1∏Vv=1ϕnvk,v⋅∏Kk=11B(β)∏Vv=1ϕβv−1k,vdϕk,v=∏Kk=11B(β)∫∏Vv=1ϕnvk+βk−1k,vdϕk,v
而又有因爲∫∏Kk=1pαk−1kdpk=B(α)
能得到p(w|z,β)=∏Kk=1B(nk+β)B(β) ,其中nk=[n1k,n2k,...,nVk] ,表示所有文檔中,屬於topic k的詞v的個數。
同理,對於第二部分p(z|α)
p(z|α)=∫p(z|θ)⋅p(θ|α)dθ=∏Mm=11B(α)∫∏Kk=1θnkm+α-1m,k)=∏Mm=1B(nm+α)B(α) ,其中nm=[n1m,n2m,...,nKm] ,nkm 表示第m個文檔中屬於第k個主題的詞的個數。
所以綜上p(w,z|α,β)=∏Kk=1B(nk+β)B(β)⋅∏Mm=1B(nm+α)B(α)
推導2 — 條件分佈
求解:p(zi=k|z−i,w)
首先,要得到p(zi=k|z−i,w)=p(w,z)P(w,z−i)
根據上面,有p(w,z|α,β)=∏Kk=1B(nk+β)B(β)⋅∏Mm=1B(nm+α)B(α)
所以在固定α 和β 之後,可以得到p(w,z)P(w,z−i)=∏Kk=1B(nk+β)B(β)⋅∏Mm=1B(nm+α)B(α)∏Kk=1B(nk,−i+β)B(β)⋅∏Mm=1B(nm,−i+α)B(α)=B(nk+β)B(bk,−i+β)⋅B(nm+α)B(nm,−i+α)
B(nk,−i+β)=∏Vv=1Γ(nv,−i+βv)Γ(∑v=1Vnv,−i+βv)=Γ(n1+β1)⋅Γ(n2+β2)...Γ(ni−1+βi)...Γ(nV+βV)Γ(∑Vv=1nv,−i+βv)
B(nk+β)=∏Vv=1Γ(nv+βv)Γ(∑v=1Vnv,−i+βv)=Γ(n1+β1)⋅Γ(n2+β2)...Γ(ni−1+βi)...Γ(nV+βV)Γ(∑Vv=1nv+βv)
所以B(nk+β)B(nk,−i+β)=Γ(ni+βi)Γ(ni−1+βi)⋅Γ(∑Vv=1nv,−i+βv)Γ(∑Vv=1nv+βv)
又因爲Γ(x+1)=x⋅Γ(x)
所以能夠化簡爲B(nk+β)B(nk,−i+β)=ni−1+βi∑Vv=1(nv,−i)+βv
同理B(nm+α)B(nm,−i+α)=ni−1+αi∑Kk=1nk,−i+αk
所以得到p(zi=k|z−i,w)∝ni−1+βi∑Vv=1nt,−i+Vβvnk−1+αi∑Vv=1nt,−i+Vαv
若∀i ,βi=β,αi=α ,則得到
p(zi=k|z−i,w)∝ni−1+β∑Vv=1nt,−i+Vβnk−1+α∑Vv=1nt,−i+Vα
推導3 — 後驗
根據Dirichlet和Multi-nomial的共軛性,也就是當先驗是Dirichlet,likelihood是Multi-nomial,那麼後驗也是Dirichlet。也就是先驗分佈Dir(p|α) ,後驗分佈Dir(p|α+x) 。使用Dirichlet分佈的期望來估計Multinomial分佈的參數。
E(P)=(α1∑αi,α2∑αi,...,αK∑αi)
因此,只要能夠識別出對於文檔中的每一個單詞的隱含主題,就能夠求出兩個公式。
p(z|w)=p(z,w)p(w) ,而p(w)=∏i=1n∑k=1Kp(wi|zi=k)p(zi=k) ,計算量太大,所以我們才使用了前面證明的方法,來求得p(zi=k|z−i,w) 。
所以綜合上述
θ=[θ1,θ2,...,θM]
θm,k=nm,k+α∑Kk=1nm,k+Kα
ϕ=[ϕ1,ϕ2,...,ϕK]
ϕk,w=nk,w+βw∑Vv=1nk,i+Vβ
Appendix
寫完了才發現有高清無碼的paperParameter estimation for text analysis
代碼實現在這裏:github repo
這一章節內容也是參考了另外兩篇不錯的博客,然後對裏面的公式進行更細緻的推導
博客1
博客2