LDA 吉布斯採樣(Gibbs Sampling)的公式推導

假設讀者已經瞭解 LDA 的來龍去脈。

需要明確採樣的含義:
隨機變量是總體,採樣就是按照總體的概率分佈(指示了樣本出現的概率)抽取樣本的過程。樣本應該能正確反映總體的情況,即樣本與總體應該具有相同的統計性質(均值,方差等)。

一、《LDA數學八卦》中的推導

語料庫中的第 ii 個詞對應的主題我們記爲 ziz_i,其中 i=(m,n)i=(m,n) 是一個二維下標,即語料庫中第 ii 個詞對應於第 mm 篇文檔的第 nn 詞,我們用 ¬i\neg i 表示去除下標爲 ii 的詞。
那麼按照 Gibbs Sampling 的要求,我們要求得任一座標軸 ii 對應的條件分佈 p(zi=kZ¬i,W)p(z_i=k|\vec{Z}_{\neg i},\vec{W}),注意這是一個離散型概率分佈的抽樣。由貝葉斯法則可得(條件概率正比於聯合概率):
p(zi=kZ¬i,W)p(zi=k,wi=tZ¬i,W¬i)p(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto p(z_i=k,w_i=t|\vec{Z}_{\neg i},\vec{W}_{\neg i})
由於zi=k,wi=tz_i=k,w_i=t只涉及到第 mm 篇文檔和第 kk 個主題,所以只會涉及到如下兩個 Dirichlet-Multinomial 共軛結構

  1. αθmzm\vec{\alpha}\rightarrow\vec{\theta}_m\rightarrow\vec{z}_m
  2. βφkwk\vec{\beta}\rightarrow\vec{\varphi}_k\rightarrow\vec{w}_k

去掉了語料中第 ii 個詞對應的 (zi,wi)(z_i,w_i),並不會改變上面兩個共軛結構,只是會減少對應的計數。所以 θm,φk\vec{\theta}_m,\vec{\varphi}_k 的後驗分佈都還是狄利克雷分佈:
p(θmZ¬i,W¬i)=Dir(θmnm,¬i+α)p(φkZ¬i,W¬i)=Dir(φknk,¬i+β)p(\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})=Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\\p(\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})=Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta})
注意,nm,¬i,nk,¬i\vec{n}_{m,\neg i},\vec{n}_{k,\neg i} 都不是雙下標,nm=(nm(1), ,nm(K))\vec{n}_{m}=(n_m^{(1)},\cdots,n_m^{(K)})nm(k)n_m^{(k)} 表示第 m 篇文檔中第 k 個主題的詞的個數,nk=(nk(1), ,nk(V))\vec{n}_k=(n_k^{(1)},\cdots,n_k^{(V)})nk(t)n_k^{(t)} 表示第 k 個主題中第 t(詞典下標) 個詞的個數。¬i\neg i 表示去除下標爲 ii(語料下標) 的詞,所以在統計生成 nm,nk\vec{n}_{m},\vec{n}_{k} 這兩個向量時,我們可以當做第 m 篇文檔中就沒有這個詞,也就不統計該詞相關的計數,nm,¬i,nk,¬i\vec{n}_{m,\neg i},\vec{n}_{k,\neg i} 表示的就是這樣一種含義。

Gibbs Sampling 公式的推導:
p(zi=kZ¬i,W)p(zi=k,wi=tZ¬i,W¬i)=p(zi=k,wi=t,θm,φkZ¬i,W¬i)dθmdφk=p(zi=k,θmZ¬i,W¬i)p(wi=t,φkZ¬i,W¬i)dθmdφk=p(zi=kθm)p(θmZ¬i,W¬i)p(wi=tφk)p(φkZ¬i,W¬i)dθmdφk=p(zi=kθm)Dir(θmnm,¬i+α)dθmp(wi=tφk)Dir(φknk,¬i+β)dφk=θmkDir(θmnm,¬i+α)dθmφktDir(φknk,¬i+β)dφk=E(θmk)E(φkt)=θ^mkφ^kt \begin{aligned} p(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto & p(z_i=k,w_i=t|\vec{Z}_{\neg i},\vec{W}_{\neg i})\\ =&\int p(z_i=k,w_i=t,\vec{\theta}_m,\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k,\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})\cdot p(w_i=t,\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k|\vec{\theta}_m)p(\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})\cdot p(w_i=t|\vec{\varphi}_k)p(\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k|\vec{\theta}_m)Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\mathrm d\vec{\theta}_m\cdot\int p(w_i=t|\vec{\varphi}_k)Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta})\mathrm d\vec{\varphi}_k\\ =&\int \theta_{mk} Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\mathrm d\vec{\theta}_m\cdot\int \varphi_{kt} Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta})\mathrm d\vec{\varphi}_k\\ =&E(\theta_{mk})\cdot E(\varphi_{kt})\\ =&\hat{\theta}_{mk}\cdot\hat{\varphi}_{kt} \end{aligned}

根據狄利克雷分佈的期望公式有:
θ^mk=nm,¬i(k)+αkk=1Knm,¬i(k)+αkφ^kt=nk,¬i(t)+βtt=1Vnk,¬i(t)+βt\hat{\theta}_{mk}=\frac{n_{m,\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k}\\\hat{\varphi}_{kt}=\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}

所以 LDA 模型的採樣公式爲:
p(zi=kZ¬i,W)nm,¬i(k)+αkk=1Knm,¬i(k)+αknk,¬i(t)+βtt=1Vnk,¬i(t)+βtp(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto\frac{n_{m,\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k}\cdot\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}

二、《Parameter estimation for text analysis》中的推導

第一類狄利克雷積分,後面直接當作結論使用,不做證明:
Δ(α)=xi=1i=1Nxiαi1dx\Delta(\vec{\alpha})=\int_{\sum x_i=1}\prod_{i=1}^Nx_i^{\alpha_i-1}\mathrm d\vec{x}
考慮一個有狄利克雷先驗的一元模型(文檔的生成僅依賴於一個詞分佈),此時只有一個 Dirichlet-Multinomial 共軛結構,有:
p(Wα)=p(Wp)p(pα)dpp(W|\vec{\alpha})=\int{p(W|\vec{p})\cdot p(\vec{p}|\vec{\alpha})\mathrm d\vec{p}}
對比我們在概率論中學過的全概率公式,可以把這個式子理解爲連續型變量的全概率公式。
具體的:
p(Wα)=n=1NMult(w=wnp,1)Dir(pα)dp=v=1Vpvn(v)1Δ(α)v=1Vpvαv1dp=1Δ(α)v=1Vpvn(v)+αv1dpDirichlet=Δ(n+α)Δ(α),n={n(v)}v=1V \begin{aligned} p(W|\vec{\alpha})=&\int{\prod_{n=1}^N\mathrm{Mult}(w=w_n|\vec{p},1)\cdot \mathrm{Dir}(\vec{p}|\vec{\alpha})\mathrm d\vec{p}}\\ =&\int{\prod_{v=1}^Vp_v^{n^{(v)}}\cdot \frac{1}{\Delta(\vec\alpha)}\prod_{v=1}^Vp_v^{\alpha_v-1}\mathrm d\vec{p}}\\ =&\frac{1}{\Delta(\vec\alpha)}\int{\prod_{v=1}^Vp_v^{n^{(v)}+\alpha_v-1}\mathrm d\vec{p}} & | \mathrm{Dirichlet}\int\\ =&\frac{\Delta(\vec{n}+\vec\alpha)}{\Delta(\vec\alpha)},\vec{n}=\{n^{(v)}\}_{v=1}^V \end{aligned}
其中,Mult(w=wnp,1)\mathrm{Mult}(w=w_n|\vec{p},1) 表示多項式分佈 N 次實驗中一次實驗的觀測結果,最後一步的推導使用了第一類狄利克雷積分。

上面這個推導的意義是,消去了多項式分佈的參數 p\vec{p} 的影響,因爲它是未知的,僅使用詞計數和狄利克雷超參數(僞計數)來表達觀察到的語料的概率。

那麼對於 LDA 模型來說,就是 K+M 個 Dirichlet-Multinomial 共軛結構。
首先對於 K 個主題的 Dirichlet-Multinomial 共軛結構有:
p(wz,β)=p(wz,Φ)p(Φβ)dΦ=k=1K1Δ(β)t=1Vφk,tnk(t)+βt1dφk=k=1KΔ(nk+β)Δ(β),nk={nk(t)}t=1V \begin{aligned} p(\vec w|\vec z,\vec \beta)=&\int p(\vec w|\vec z,\Phi)p(\Phi|\vec \beta)\mathrm d\Phi\\ =&\prod_{k=1}^K\int\frac{1}{\Delta(\vec\beta)}\prod_{t=1}^V\varphi_{k,t}^{n_k^{(t)}+\beta_t-1}\mathrm d\vec\varphi_k\\ =&\prod_{k=1}^K\frac{\Delta(\vec n_k+\vec\beta)}{\Delta(\vec\beta)},\vec n_k=\{n_k^{(t)}\}_{t=1}^V \end{aligned}
其次對於 M 個文檔的 Dirichlet-Multinomial 共軛結構有:
p(zα)=p(zΘ)p(Θα)dΘ=m=1M1Δ(α)k=1Kθm,knm(k)+αk1dθm=m=1MΔ(nm+α)Δ(α),nm={nm(k)}k=1K \begin{aligned} p(\vec z|\vec \alpha)=&\int p(\vec z|\Theta)p(\Theta|\vec \alpha)\mathrm d\Theta\\ =&\prod_{m=1}^M\int\frac{1}{\Delta(\vec\alpha)}\prod_{k=1}^K\theta_{m,k}^{n_m^{(k)}+\alpha_k-1}\mathrm d\vec\theta_m\\ =&\prod_{m=1}^M\frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec\alpha)},\vec n_m=\{n_m^{(k)}\}_{k=1}^K \end{aligned}
所以模型的聯合分佈爲:
p(z,wα,β)=k=1KΔ(nk+β)Δ(β)m=1MΔ(nm+α)Δ(α)p(\vec z,\vec w|\vec\alpha,\vec\beta)=\prod_{k=1}^K\frac{\Delta(\vec n_k+\vec\beta)}{\Delta(\vec\beta)}\cdot\prod_{m=1}^M\frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec\alpha)}
因爲 Gibbs Sampling 的要求就是根據條件分佈進行採樣,所以 LDA 模型的採樣公式爲:
p(zi=kz¬i,w)=p(w,z)p(w,z¬i)=p(wz)p(w¬iz¬i)p(wi)p(z)p(z¬i)(1)Δ(nk+β)Δ(nk,¬i+β)Δ(nm+α)Δ(nm,¬i+α)(2)=Γ(nk(t)+βt)Γ(t=1Vnk,¬i(t)+βt)Γ(nk,¬i(t)+βt))Γ(t=1Vnk(t)+βt)Γ(nm(k)+αk)Γ(k=1Knm,¬i(k)+αk)Γ(nm,¬i(k)+αk)Γ(k=1Knm(k)+αk)(3)=nk,¬i(t)+βtt=1Vnk,¬i(t)+βtnm,¬i(k)+αk[k=1Knm(k)+αk]1(4)nk,¬i(t)+βtt=1Vnk,¬i(t)+βt(nm,¬i(k)+αk)(5) \begin{aligned} p(z_i=k|\vec{z}_{\neg i},\vec{w})=& \frac{p(\vec{w},\vec{z})}{p(\vec{w},\vec{z}_{\neg i})}=\frac{p(\vec{w}|\vec{z})}{p(\vec{w}_{\neg i}|\vec{z}_{\neg i})p(w_i)}\cdot\frac{p(\vec{z})}{p(\vec{z}_{\neg i})} & (1)\\ \propto & \frac{\Delta(\vec{n}_k+\vec\beta)}{\Delta(\vec{n}_{k,\neg i}+\vec\beta)}\cdot \frac{\Delta(\vec{n}_m+\vec\alpha)}{\Delta(\vec{n}_{m,\neg i}+\vec\alpha)} &(2)\\ =& \frac{\Gamma(n_k^{(t)}+\beta_t)\Gamma(\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t)}{\Gamma(n_{k,\neg i}^{(t)}+\beta_t))\Gamma(\sum_{t=1}^Vn_k^{(t)}+\beta_t)}\cdot\frac{\Gamma(n_m^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k)}{\Gamma(n_{m,\neg i}^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_m^{(k)}+\alpha_k)}&(3)\\ =&\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}\cdot\frac{n_{m,\neg i}^{(k)}+\alpha_k}{[\sum_{k=1}^Kn_m^{(k)}+\alpha_k]-1}&(4)\\ \propto & \frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}\cdot(n_{m,\neg i}^{(k)}+\alpha_k)&(5) \end{aligned}
上面的公式推導做以下五點解釋:

  1. (1) 式和 (2) 式正比,是因爲 p(wi)p(w_i) 是一個常數;由於 ¬i\neg i 只涉及兩個共軛結構,所以 (1) 式到 (2) 式約去了相同的 Δ\Delta 函數。
  2. (2) 式到 (3) 式,同樣是因爲 i 只與第 k 個主題和第 m 篇文檔有關,將 Δ\Delta 函數展開成 Γ\Gamma 函數後,約去了相同的 Γ\Gamma 函數。
  3. (3) 式到 (4) 式利用了 Γ\Gamma 函數的性質:Γ(x+1)=xΓ(x)\Gamma(x+1)=x\Gamma(x),進行約去。
  4. (4) 式裏有一個減 1,是因爲把第 m 篇文檔裏要去掉的那個計數分離了出來。
  5. 因爲第 m 篇文檔的單詞數是已知的,所以 (4) 式和 (5) 式是正比關係。

三、原來對 LDA 的一個疑惑,以及解答

疑問:LDA 並沒有做任何詞語語義方面的工作,僅僅是做一些數量上的統計,它是怎麼挖掘出文檔具有語義含義的主題的呢?

LDA 本質上是對詞進行了聚類(依據某方面的相似度),聚的這個類就是主題。換句話說就是,按照主題給詞進行了聚類。

既然沒有做詞語義方面的工作,那詞之間的相似度是怎麼確定的呢?
讀完 LDA 著名的科普文章《Parameter estimation for text analysis》,它裏面提到潛在主題是高階共現的結果,即,t1 和 t2 共現,t2 和 t3 共現,表明 t1 和 t3 是一個二階共現,以此類推。(共現,在不同上下文中共同出現。兩個詞越經常在不同的上下文共現,就越表示這兩個詞相似。)

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