狄利克雷分佈[編輯]
狄利克雷分佈是一組連續多變量概率分佈,是多變量普遍化的Β分佈。爲了紀念德國數學家約翰·彼得·古斯塔夫·勒熱納·狄利克雷(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裏的勒貝格測度有個概率密度函數,定義爲:
-
x1, ..., xK–1 > 0並且x1 + ... + xK–1 < 1,xK =
1 – x1 – ... – xK–1. 在(K − 1)維的單純形開集上密度爲0。
歸一化衡量B(α)是多項Β函數,可以用Γ函數(gamma
function)表示:
-
隱含狄利克雷分佈[編輯]
隱含狄利克雷分佈簡稱LDA(Latent Dirichlet allocation),是一種主題模型,它可以將文檔集中每篇文檔的主題按照概率分佈的形式給出。同時它是一種無監督學習算法,在訓練時不需要手工標註的訓練集,需要的僅僅是文檔集以及指定主題的數量k即可。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。
LDA首先由Blei, David M.、吳恩達和Jordan, Michael
I於2003年提出[1],目前在文本挖掘領域包括文本主題識別、文本分類以及文本相似度計算方面都有應用。
數學模型[編輯]
LDA是一種典型的詞袋模型,即它認爲一篇文檔是由一組詞構成的一個集合,詞與詞之間沒有順序以及先後的關係。一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。
另外,正如Beta分佈是二項式分佈的共軛先驗概率分佈,狄利克雷分佈作爲多項式分佈的共軛先驗概率分佈。因此正如LDA貝葉斯網絡結構中所描述的,在LDA模型中一篇文檔生成的方式如下:
- 從狄利克雷分佈中取樣生成文檔i的主題分佈
- 從主題的多項式分佈中取樣生成文檔i第j個詞的主題
- 從狄利克雷分佈中取樣生成主題的詞語分佈
- 從詞語的多項式分佈中採樣最終生成詞語
因此整個模型中所有可見變量以及隱藏變量的聯合分佈是
最終一篇文檔的單詞分佈的最大似然估計可以通過將上式的以及進行積分和對進行求和得到
根據的最大似然估計,最終可以通過吉布斯採樣等方法估計出模型中的參數。
使用吉布斯採樣估計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。
∝
- 迭代完成後輸出主題-詞參數矩陣φ和文檔-主題矩陣θ
變量:
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)θα1−11⋯θαk−1k.
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=1∑znp(zn|θ)p(wn|zn,β)dθ,文本語料庫由M篇文檔組成,D=(w1,⋯,wM),故生成文本語料庫的概率爲
p(D|α,β)=∏Md=1∫p(θd|α)∏Ndn=1∑zdnp(zdn|θd)p(wdn|zdn,β)dθd.
下面敘述訓練過程:
首先設定目標函數
ℓ(α,β)=logp(D|α,β)=log∏d=1Mp(wd|α,β)=∑d=1Mlogp(wd|α,β).
我們參數訓練的目標是求使ℓ(α,β)最大的參數α∗,β∗。我們把p(w|α,β)展開得p(w|α,β)=Γ(∑iαi)∏iΓ(αi)∫(∏ki=1θαi−1i)(∏Nn=1∑ki=1∏Vj=1(θiβij)wjn)dθ,由於θ和β的耦合,對ℓ(α,β)用極大似然估計難以計算。下面我們用變分EM算法來計算最優參數α,β。
E步驟:我們用L(γ,ϕ;α,β)來近似估計logp(w|α,β),給定一對參數值(α,β),針對每一文檔,求得變分參數{γ∗d,ϕ∗d:d∈D},使得L(γ,ϕ;α,β)達到最大。
M步驟:求使L=∑dL(γ∗d,ϕ∗d;α,β)達到最大的α,β。
重複E、M步驟直到收斂,得到最優參數α∗,β∗。
E步驟的計算方法:
這裏用的是變分推理方法(variational inference),文檔的似然函數
上式右部記爲L(γ,ϕ;α,β)。當p(θ,z,w|α,β)q(θ,z)爲常數時,上式取等號,即分佈q取p(θ,z|w,α,β)時。
p(θ,z|w,α,β)=p(θ,z,w|α,β)p(w|α,β),由於p(w|α,β)中θ和β的耦合,p(w|α,β)難以計算,因此p(θ,z|w,α,β)也難以計算。我們用分佈q(θ,z|γ,ϕ)來近似分佈p(θ,z|w,α,β),在L(γ,ϕ;α,β)中分佈q取q(θ,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(γ,ϕ;α,β)中的p和q分解,得
把參數(α,β)和(γ,ϕ)代入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:d∈D}。
M步驟的計算方法:
將{γ∗d,ϕ∗d:d∈D}代入∑dL(γd,ϕd;α,β)得L=∑dL(γ∗d,ϕ∗d;α,β),我們用拉格朗日乘子法求β,拉格朗日函數爲l=L+∑ki=1λi(∑Vj=1βij−1),求得βij∝∑Md=1∑Ndn=1ϕdniwjdn,由∑Vj=1βij=1歸一化求得βij。
下面求α。我們對拉格朗日函數l對αi求偏導,得∂l∂αi=M(Ψ(∑kj=1αj)−Ψ(αi))+∑Md=1(Ψ(γdi)−Ψ(∑kj=1γdj))。由這個偏導等式可知αi值和αj值(i≠j)之間相互影響,故我們得用迭代法來求解最優α值。我們用牛頓-拉弗遜算法來求解。將上面的偏導數再對αj求偏導,得∂l∂αi∂αj=M(Ψ′(∑kj=1αj)−δ(i,j)Ψ′(αi))。牛頓-拉弗遜算法的迭代公式爲αnew=αold−H(αold)−1g(αold),H(α)即∂l∂αi∂αj,g(α)即∂l∂α,迭代到收斂時即得最優α值。
測試新文檔主題分佈:
設新文檔爲w,用變分推理算法計算出新文檔的γ∗,ϕ∗,由於ϕni表示文檔中第n個詞由主題i生成的概率,故∑Nn=1ϕni爲對文檔中由主題i生成的詞數估計,1N∑Nn=1ϕni爲主題i在文檔主題組成中的比重。
上述說法與推導有錯的話請大家批評指正。