Latent Dirichlet Allocation(LDA)

狄利克雷分佈[編輯]

狄利克雷分佈是一組連續多變量概率分佈,是多變量普遍化的Β分佈。爲了紀念德國數學家約翰·彼得·古斯塔夫·勒熱納·狄利克雷(Peter Gustav Lejeune Dirichlet)而命名。狄利克雷分佈常作爲貝葉斯統計的先驗概率。當狄利克雷分佈維度趨向無限時,便成爲狄利克雷過程(Dirichlet process)。

狄利克雷分佈奠定了狄利克雷過程的基礎,被廣泛應用於自然語言處理特別是主題模型(topic model)的研究。

概率密度函數[編輯]

此圖展示了當K=3、參數αα=(0.3, 0.3, 0.3)變化到(2.0, 2.0, 2.0)時,密度函數取對數後的變化。

維度K ≥ 2的狄利克雷分佈在參數α1, ..., αK > 0上、基於歐幾里得空間RK-1裏的勒貝格測度有個概率密度函數,定義爲:

f(x_1,\dots, x_{K-1}; \alpha_1,\dots, \alpha_K) = \frac{1}{\mathrm{B}(\alpha)} \prod_{i=1}^K x_i^{\alpha_i - 1}

x1, ..., xK–1 > 0並且x1 + ... + xK–1 < 1,xK = 1 – x1 – ... – xK–1. 在(K − 1)維的單純形開集上密度爲0。

歸一化衡量B(α)是多項Β函數,可以用Γ函數(gamma function)表示:

\mathrm{B}(\alpha) = \frac{\prod_{i=1}^K \Gamma(\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K \alpha_i\bigr)},\qquad\alpha=(\alpha_1,\dots,\alpha_K).


隱含狄利克雷分佈[編輯]

隱含狄利克雷分佈簡稱LDA(Latent Dirichlet allocation),是一種主題模型,它可以將文檔集中每篇文檔的主題按照概率分佈的形式給出。同時它是一種無監督學習算法,在訓練時不需要手工標註的訓練集,需要的僅僅是文檔集以及指定主題的數量k即可。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。

LDA首先由Blei, David M.、吳恩達和Jordan, Michael I於2003年提出[1],目前在文本挖掘領域包括文本主題識別、文本分類以及文本相似度計算方面都有應用。

數學模型[編輯]

LDA是一種典型的詞袋模型,即它認爲一篇文檔是由一組詞構成的一個集合,詞與詞之間沒有順序以及先後的關係。一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。

LDA貝葉斯網絡結構

另外,正如Beta分佈二項式分佈的共軛先驗概率分佈,狄利克雷分佈作爲多項式分佈的共軛先驗概率分佈。因此正如LDA‎貝葉斯網絡結構中所描述的,在LDA模型中一篇文檔生成的方式如下:

  • 從狄利克雷分佈\alpha 中取樣生成文檔i的主題分佈\theta_i
  • 從主題的多項式分佈\theta_i中取樣生成文檔i第j個詞的主題z_{i, j}
  • 從狄利克雷分佈\beta 中取樣生成主題z_{i, j}的詞語分佈\phi_{z_{i, j}}
  • 從詞語的多項式分佈\phi_{z_{i, j}}中採樣最終生成詞語w_{i, j}

因此整個模型中所有可見變量以及隱藏變量的聯合分佈

p(w_i, z_i, \theta_i, \Phi | \alpha, \beta) = \prod_{j = 1}^{N} p(\theta_i|\alpha)p(z_{i, j}|\theta_i)p(\Phi|\beta)p(w_{i, j}|\theta_{z_{i, j}})

最終一篇文檔的單詞分佈的最大似然估計可以通過將上式的\theta_i以及\Phi進行積分和對z_i進行求和得到

p(w_i | \alpha, \beta)  = \int_{\theta_i}\int_{\Phi }\sum_{z_i}p(w_i, z_i, \theta_i, \Phi | \alpha, \beta)

根據p(w_i | \alpha, \beta) 的最大似然估計,最終可以通過吉布斯採樣等方法估計出模型中的參數。

使用吉布斯採樣估計LDA參數[編輯]

在LDA最初提出的時候,人們使用EM算法進行求解,後來人們普遍開始使用較爲簡單的Gibbs Sampling,具體過程如下:

  • 首先對所有文檔中的所有詞遍歷一遍,爲其都隨機分配一個主題,即zm,n=k~Mult(1/K),其中m表示第m篇文檔,n表示文檔中的第n個詞,k表示主題,K表示主題的總數,之後將對應的n(k)m+1, nm+1, n(t)k+1, nk+1, 他們分別表示在m文檔中k主題出現的次數,m文檔中主題數量的和,k主題對應的t詞的次數,k主題對應的總詞數。
  • 之後對下述操作進行重複迭代。
  • 對所有文檔中的所有詞進行遍歷,假如當前文檔m的詞t對應主題爲k,則n(k)m-1, nm-1, n(t)k-1, nk-1, 即先拿出當前詞,之後根據LDA中topic sample的概率分佈sample出新的主題,在對應的n(k)m, nm, n(t)k, nk上分別+1。

p(z_i=k|z_{-i},w)(n^{(t)}_{k,-i}+\beta_t)(n_{m,-i}^{(k)}+\alpha_k)/(\sum_{t=1}^{V}n_{k,-i}^{(t)}+\beta_t)

  • 迭代完成後輸出主題-詞參數矩陣φ和文檔-主題矩陣θ

\phi_{k,t}=(n_k^{(t)}+\beta_t)/(n_k+\beta_t)

\theta_{m,k}=(n_m^{(k)}+\alpha_k)/(n_m+\alpha_k)


變量:

w表示詞,z表示主題,w=(w1,w2,,wN)表示文檔,語料庫D=(w1,,wM)V表示所有單詞的個數(固定值),N表示一個文檔中的詞數(隨機變量),M是語料庫中的文檔數(固定值),k是主題的個數(預先給定,固定值)。

 

在說明LDA模型之前,先介紹幾個簡單一些的模型。

1.Unigram model:

文檔w=(w1,w2,,wN),用p(wn)表示詞wn的先驗概率,生成文檔w的概率:p(w)=n=1Np(wn)

圖模型爲:

 

2.Mixture of unigrams model:

一篇文檔只由一個主題生成。該模型的生成過程是:給某個文檔先選擇一個主題z,再根據該主題生成文檔,該文檔中的所有詞都來自一個主題。假設主題有z1,...,zk,生成文檔w的概率爲:

p(w)=p(z1)n=1Np(wn|z1)++p(zk)n=1Np(wn|zk)=zp(z)n=1Np(wn|z).

圖模型爲:

 

LDA模型:

下面說明LDA模型生成一個文檔的過程:

1首先要選擇一個主題概率分佈θθ=(θ1,...,θk),θi代表第i個主題被選擇的概率,即p(z=i|θ)=θi,且i=1kθi=1θDir(α)p(θ|α)=Γ(i=1kαi)i=1kΓ(αi)θα111θαk1k.

2在選好一個主題概率分佈θ後,再選擇一個主題zn,再根據znβ選擇一個詞wnβ=(βij)k×V,βij=p(wj=1|zi=1)表示主題i生成詞j的概率,Vj=1βij=1

用2中的步驟生成N個詞,文檔w就生成了。

圖模型:

 

由LDA的圖模型我們可以清楚得看出變量間的依賴關係。

整個圖的聯合概率(單個文檔)爲:p(θ,z,,w|α,β)=p(θ|α)Nn=1p(zn|θ)p(wn|zn,β)

生成文檔的概率爲p(w|α,β)=p(θ|α)Nn=1znp(zn|θ)p(wn|zn,β)dθ,文本語料庫由M篇文檔組成,D=(w1,,wM),故生成文本語料庫的概率爲

p(D|α,β)=Md=1p(θd|α)Ndn=1zdnp(zdn|θd)p(wdn|zdn,β)dθd.

下面敘述訓練過程:

首先設定目標函數

(α,β)=logp(D|α,β)=logd=1Mp(wd|α,β)=d=1Mlogp(wd|α,β).

我們參數訓練的目標是求使(α,β)最大的參數α,β。我們把p(w|α,β)展開得p(w|α,β)=Γ(iαi)iΓ(αi)(ki=1θαi1i)(Nn=1ki=1Vj=1(θiβij)wjn)dθ,由於θβ的耦合,對(α,β)用極大似然估計難以計算。下面我們用變分EM算法來計算最優參數α,β

E步驟:我們用L(γ,ϕ;α,β)來近似估計logp(w|α,β),給定一對參數值(α,β),針對每一文檔,求得變分參數{γd,ϕd:dD},使得L(γ,ϕ;α,β)達到最大。

M步驟:求使L=dL(γd,ϕd;α,β)達到最大的α,β

重複E、M步驟直到收斂,得到最優參數α,β

E步驟的計算方法:

這裏用的是變分推理方法(variational inference),文檔的似然函數

上式右部記爲L(γ,ϕ;α,β)。當p(θ,z,w|α,β)q(θ,z)爲常數時,上式取等號,即分佈qp(θ,z|w,α,β)時。

p(θ,z|w,α,β)=p(θ,z,w|α,β)p(w|α,β),由於p(w|α,β)θβ的耦合,p(w|α,β)難以計算,因此p(θ,z|w,α,β)也難以計算。我們用分佈q(θ,z|γ,ϕ)來近似分佈p(θ,z|w,α,β),在L(γ,ϕ;α,β)中分佈qq(θ,z|γ,ϕ),我們得logp(w|α,β)=L(γ,ϕ;α,β)+D(q(θ,z|γ,ϕ)||p(θ,z|w,α,β)).上式說明計算分佈q(θ,z|γ,ϕ)與分佈p(θ,z|w,α,β))間的KL距離的最小值等價於計算下界函數L(γ,ϕ;α,β)的最大值。

用來近似後驗概率分佈p(θ,z|w,α,β))的分佈q(θ,z|γ,ϕ)的圖模型:

 

γ爲狄利克萊分佈的參數,ϕ=(ϕni)n×i,n=1,,N,i=1,,kϕni表示第n個詞由主題i生成的概率,ki=1ϕni=1

下面我們求使L(γ,ϕ;α,β)達到極大的參數γ,ϕ

L(γ,ϕ;α,β)中的pq分解,得

把參數(α,β)(γ,ϕ)代入L(γ,ϕ;α,β),再利用公式Eq[log(θi)|γ]=Ψ(γi)Ψ(kj=1γj)ΨlogΓ的一階導數,可通過泰勒近似來計算),我們可得到

然後用拉格朗日乘子法(即變量的拉格朗日函數對變量求偏導等於零,求出變量對應的等式)來計算可得

ϕniβivexp(Ψ(γi)Ψ(kj=1γj)),

γi=αi+Nn=1ϕni.

ki=1ϕni=1歸一化求得ϕni。由於解ϕniγi相互影響,可用迭代法來求解,算法如下:

 

最終可以得到收斂的參數γ,ϕ。這裏的參數γ,ϕ是在給定一個固定的文檔w下產生的,因此γ,ϕ也可記爲γ(w),ϕ(w),變分分佈q(θ,z|γ(w),ϕ(w))是後驗分佈p(θ,z|w,α,β)的近似。文本語料庫D=(w1,,wM),用上述方法求得變分參數{γd,ϕd:dD}

M步驟的計算方法:

{γd,ϕd:dD}代入dL(γd,ϕd;α,β)L=dL(γd,ϕd;α,β),我們用拉格朗日乘子法求β,拉格朗日函數爲l=L+ki=1λi(Vj=1βij1),求得βijMd=1Ndn=1ϕdniwjdn,由Vj=1βij=1歸一化求得βij

下面求α。我們對拉格朗日函數lαi求偏導,得lαi=M(Ψ(kj=1αj)Ψ(αi))+Md=1(Ψ(γdi)Ψ(kj=1γdj))。由這個偏導等式可知αi值和αj值(ij)之間相互影響,故我們得用迭代法來求解最優α值。我們用牛頓-拉弗遜算法來求解。將上面的偏導數再對αj求偏導,得lαiαj=M(Ψ(kj=1αj)δ(i,j)Ψ(αi))。牛頓-拉弗遜算法的迭代公式爲αnew=αoldH(αold)1g(αold)H(α)lαiαjg(α)lα,迭代到收斂時即得最優α值。

測試新文檔主題分佈:

設新文檔爲w,用變分推理算法計算出新文檔的γ,ϕ,由於ϕni表示文檔中第n個詞由主題i生成的概率,故Nn=1ϕni爲對文檔中由主題i生成的詞數估計,1NNn=1ϕni爲主題i在文檔主題組成中的比重。

上述說法與推導有錯的話請大家批評指正。

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