LDA Gibbs Sampling公式推導

Gibbs Sampling

Background

所有的推導可以說都是根據這張圖片:

αRM×K

θmRK

βRK×V

ϕkRV

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=1Vv=1p(w|zk,ϕk,v)=ϕntkk,v ,其中ntk 表示的是所有文檔中屬於topic k的詞v的個數。
  • p(ϕk|β)=Dir(ϕk|β)=1B(β)Vv=1ϕβv1k,v

所以p(w|z,β)=Kk=1Vv=1ϕnvk,vKk=11B(β)Vv=1ϕβv1k,vdϕk,v=Kk=11B(β)Vv=1ϕnvk+βk1k,vdϕk,v

而又有因爲Kk=1pαk1kdpk=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|zi,w)

首先,要得到p(zi=k|zi,w)=p(w,z)P(w,zi)

根據上面,有p(w,z|α,β)=Kk=1B(nk+β)B(β)Mm=1B(nm+α)B(α)

所以在固定αβ 之後,可以得到p(w,z)P(w,zi)=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)...Γ(ni1+βi)...Γ(nV+βV)Γ(Vv=1nv,i+βv)

B(nk+β)=Vv=1Γ(nv+βv)Γ(v=1Vnv,i+βv)=Γ(n1+β1)Γ(n2+β2)...Γ(ni1+βi)...Γ(nV+βV)Γ(Vv=1nv+βv)

所以B(nk+β)B(nk,i+β)=Γ(ni+βi)Γ(ni1+βi)Γ(Vv=1nv,i+βv)Γ(Vv=1nv+βv)

又因爲Γ(x+1)=xΓ(x)

所以能夠化簡爲B(nk+β)B(nk,i+β)=ni1+βiVv=1(nv,i)+βv

同理B(nm+α)B(nm,i+α)=ni1+αiKk=1nk,i+αk

所以得到p(zi=k|zi,w)ni1+βiVv=1nt,i+Vβvnk1+αiVv=1nt,i+Vαv

iβi=β,αi=α ,則得到

p(zi=k|zi,w)ni1+βVv=1nt,i+Vβnk1+α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=1nk=1Kp(wi|zi=k)p(zi=k) ,計算量太大,所以我們才使用了前面證明的方法,來求得p(zi=k|zi,w)

所以綜合上述

θ=[θ1,θ2,...,θM]

θm,k=nm,k+αKk=1nm,k+Kα

ϕ=[ϕ1,ϕ2,...,ϕK]

ϕk,w=nk,w+βwVv=1nk,i+Vβ

Appendix

寫完了才發現有高清無碼的paperParameter estimation for text analysis

代碼實現在這裏:github repo

這一章節內容也是參考了另外兩篇不錯的博客,然後對裏面的公式進行更細緻的推導

博客1

博客2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章