一、簡介
隱含狄利克雷分布(Latent Dirichlet Allocation,簡稱LDA)是由 David M. Blei、Andrew Y. Ng、Michael I. Jordan 在2003年提出的,是一種詞袋模型,它認(rèn)為文檔是一組詞構(gòu)成的集合,詞與詞之間是無序的。一篇文檔可以包含多個主題,文檔中的每個詞都是由某個主題生成的,LDA給出文檔屬于每個主題的概率分布,同時給出每個主題上詞的概率分布。LDA是一種無監(jiān)督學(xué)習(xí),在文本主題識別、文本分類、文本相似度計算和文章相似推薦等方面都有應(yīng)用。
本文將從貝葉公式、Gamma函數(shù)、二項分布、Beta分布、多項式分布、Dirichlet分布、共軛先驗分布、馬氏鏈及其平穩(wěn)分布、MCMC、Gibbs Sampling、EM算法、Unigram Model、貝葉斯Unigram Model、PLSA、LDA 幾方面介紹LDA模型,需要讀者具備一定的概率論和微積分知識。
二、基礎(chǔ)知識
▌1.1 貝葉公式
貝葉斯學(xué)派的最基本的觀點是:任一個未知量θ都可看作一個隨機變量,應(yīng)該用一個概率分布去描述對θ的未知狀況,這個概率分布是在抽樣前就有關(guān)于θ的先驗信息的概率陳述,這個概率分布被稱為先驗分布。
從貝葉斯觀點看,樣本的產(chǎn)生要分兩步進行,首先設(shè)想從先驗分布 p(θ) 產(chǎn)生一個樣本?θ',這一步是“老天爺”做的,人們是看不到的,故用“設(shè)想”二字。第二步是從總體分布?p(X|θ')?產(chǎn)生一個樣本,這個樣本是具體的,人們能看得到的,此樣本 X 發(fā)生的概率是與如下聯(lián)合密度函數(shù)成正比。
這個聯(lián)合密度函數(shù)是綜合了總體信息和樣本信息,常稱為似然函數(shù),記為 L(θ')。
由于θ'是設(shè)想出來的,它仍然是未知的,它是按先驗分布p(θ)產(chǎn)生的,要把先驗信息進行綜合,不能只考慮θ',而應(yīng)對θ的一切可能加以考慮,故要用p(θ)參與進一步綜合,所以樣本 X 和參數(shù)θ的聯(lián)合分布(三種可用的信息都綜合進去了):
我們的任務(wù)是要對未知數(shù)θ 作出統(tǒng)計推斷,在沒有樣本信息時,人們只能根據(jù)先驗分布對θ 作出推斷。在有樣本觀察值之后,我們應(yīng)該依據(jù)?p(X,θ)?對?θ 作出推斷,為此我們把?p(X,θ)?作如下分解:
其中p(X)是X 的邊緣密度函數(shù)。
它與θ 無關(guān),p(X) 中不含θ 的任何信息。因此能用來對θ 作出推斷的僅是條件分布 p(θ|X):
這就是貝葉斯公式的密度函數(shù)形式,在樣本 X 給定下,θ 的條件分布被稱為θ 的后驗分布。它是集中了總體、樣本和先驗等三種信息中有關(guān)θ 的一切信息,而又是排除一切與θ無關(guān)的信息之后得到的結(jié)果,故基于后驗分布p(θ|X) 對θ 進行統(tǒng)計推斷是更合理的。
一般說來,先驗分布p(θ) 是反映人們在抽樣前對θ 的認(rèn)識,后驗分布p(θ|X) 是反映人們在抽樣后對θ 的認(rèn)識,之間的差異是由于樣本的出現(xiàn)后人們對θ 認(rèn)識的一種調(diào)整,所以后驗分布p(θ|X) 可以看作是人們用總體信息和樣本信息(抽樣信息)對先驗分布p(θ) 作調(diào)整的結(jié)果。下面我們介紹三種估計方法:
1. 最大似然估計(ML)
最大似然估計是找到參數(shù)θ 使得樣本 X 的聯(lián)合概率最大,并不會考慮先驗知識,頻率學(xué)派和貝葉斯學(xué)派都承認(rèn)似然函數(shù),頻率學(xué)派認(rèn)為參數(shù)θ 是客觀存在的,只是未知。求參數(shù)θ 使似然函數(shù)最大,ML估計問題可以用下面公式表示:
通??梢粤顚?dǎo)數(shù)為 0 求得θ 的值。ML估計不會把先驗知識考慮進去,很容易出現(xiàn)過擬合的現(xiàn)象。我們舉個例子,拋一枚硬幣,假設(shè)正面向上的概率為 p,拋了 N 次,正面出現(xiàn)次,反面出現(xiàn)次,c=1?表示正面,c=0? 表示反面,我們用 ML 估計:
如果?,?,則?,似乎比我們認(rèn)知的 0.5 高了很多。
2. 最大后驗估計(MAP)
MAP 是為了解決 ML 缺少先驗知識的缺點,剛好公式 (5) 后驗概率集中了樣本信息和先驗信息,所以 MAP 估計問題可以用下面公式表示:
MAP 不僅希望似然函數(shù)最大,還希望自己出現(xiàn)的先驗概率也最大,加入先驗概率,起到正則化的作用,如果θ 服從高斯分布,相當(dāng)于加一個 L2 范數(shù)正則化,如果θ 服從拉普拉斯分布,相當(dāng)于加一個 L1 范數(shù)正則化。我們繼續(xù)前面拋硬幣的例子,大部分人認(rèn)為應(yīng)該等于0.5,那么還有少數(shù)人認(rèn)為 p 取其他值,我們認(rèn)為 p 的取值服從 Beta 分布。
我們?nèi)?α=5,β=5,即 p 以最大的概率取0.5,得到。
3. 貝葉斯估計
前面介紹的 ML 和 MAP 屬于點估計,貝葉斯估計不再把參數(shù)θ 看成一個未知的確定值,而是看成未知的隨機變量,利用貝葉斯定理結(jié)合新的樣本信息和參數(shù)θ 的先驗分布,來得到θ 的新的概率分布(后驗分布)。貝葉斯估計的本質(zhì)是通過貝葉斯決策得到參數(shù)θ 的最優(yōu)估計,使得貝葉斯期望損失最小。貝葉斯期望損失為:
是損失函數(shù),我們希望?最小。如果?,則:
所以貝葉斯估計值為在樣本 X 條件下θ 的期望值,貝葉斯估計的步驟為:
確定參數(shù)θ 的先驗分布 P(θ)
利用貝葉斯公式,求θ的后驗分布:
求出貝葉斯的估計值:
我們繼續(xù)前面的拋硬幣的例子,后驗概率:
其中,所以可以得:
▌1.2 Gamma函數(shù)
通過分部積分的方法,可以得到一個遞歸性質(zhì)。
函數(shù)可以當(dāng)成是階乘在實數(shù)集上的延拓,。
▌1.3 二項分布
在概率論中,試驗 E 只有兩個可能結(jié)果: A 及,則稱E 為伯努利(Bernoulli)試驗。設(shè) p(A)=p,則。將 E 獨立重復(fù)地進行 n 次,則稱這一串重復(fù)的獨立試驗為 n 重伯努利試驗,這里重復(fù)是指在每次試驗中?p(A)=p?保持不變,獨立是指各次試驗的結(jié)果互不影響。以 X 表示 n 重伯努利試驗中事件 A 發(fā)生的次數(shù),稱隨機變量 X 服從參數(shù)為 n,p 的二項分布,記為X~B(n,p) 。
▌1.4 Beta分布
Beta分布是指一組定義在(0,1)區(qū)間的連續(xù)概率分布,其概率密度函數(shù)是:
1)
證明:
令 t=x+y,當(dāng) y=0,t=x ; y=∞,t=∞,可得:
令 x=μt,可得:
2)期望
證明:
▌1.5 多項式分布
多項式分布是二項式分布的推廣,二項式分布做 n 次伯努利試驗,規(guī)定每次試驗的結(jié)果只有兩個,而多項式分布在 N 次獨立試驗中結(jié)果有 K 種,且每種結(jié)果都有一個確定的概率 p,仍骰子是典型的多項式分布。
其中
▌1.6 Dirichlet分布
Dirichlet 分布是 Beta 分布在高維度上的推廣,概率密度函數(shù)是:
▌1.7 共軛先驗分布
在貝葉斯中,如果后驗分布與先驗分布屬于同類分布,則先驗分布與后驗分布被稱為共軛分布,而先驗分布被稱為似然函數(shù)的共軛先驗。
1.Beta-Binomial共軛
1)先驗分布
2)二項式似然函數(shù)
3)后驗分布
即可以表達為
取一個特殊情況理解
Beta(p|1,1)恰好是均勻分布 uniform(0,1) ,假設(shè)有一個不均勻的硬幣拋出正面的概率為 p,拋出 n 次后出現(xiàn)正面和反面的次數(shù)分別是 n1 和 n2 ,開始我們對硬幣不均勻性一無所知,所以應(yīng)該假設(shè) p~uniform(0,1) ,當(dāng)有了試驗樣本,我們加入樣本信息對 p 的分布進行修正, p 的分布由均勻分布變?yōu)锽eta 分布。
2.Dirichlet-Multinomial共軛
1)先驗分布
2)多項分布似然函數(shù)
3)后驗分布
即可以表達為
▌1.8 馬氏鏈及其平穩(wěn)分布
馬氏鏈的數(shù)學(xué)定義很簡單,狀態(tài)轉(zhuǎn)移的概率只依賴于前一個狀態(tài)。
看一個馬氏鏈的具體例子,馬氏鏈表示股市模型,共有三種狀態(tài):牛市(Bull market)、熊市(Bear market)、橫盤(Stagnant market),每一個轉(zhuǎn)態(tài)都以一定的概率轉(zhuǎn)化到下一個狀態(tài),如圖1.1所示。
圖1.1
這個概率轉(zhuǎn)化圖可以以矩陣的形式表示,如果我們定義矩陣 P 某一位置 (i,j) 的值為P(j|i),表示從狀態(tài) i 轉(zhuǎn)化到狀態(tài) j的概率,這樣我們可以得到馬爾科夫鏈模型的狀態(tài)轉(zhuǎn)移矩陣為:
假設(shè)初始概率分布為
從第60輪開始的值保持不變,為[0.625? 0.3125? 0.0625]? 。我們更改初始概率,,從55輪開始
的值保持不變,為[0.625 0.3125 0.0625]。兩次給定不同的初始概率分布,最終都收斂到概率分布π=[0.625 0.3125 0.0625] ,也就是說收斂的行為和初始概率分布π0 無關(guān),這個收斂的行為主要是由概率轉(zhuǎn)移矩陣 P 決定的,可以計算下。
當(dāng) n 足夠大的時候,矩陣的每一行都是穩(wěn)定地收斂到?π=[0.625? 0.3125? 0.0625]? 這個概率分布。這個收斂現(xiàn)象并不是這個馬氏鏈獨有的,而是絕大多數(shù)馬氏鏈獨有的。關(guān)于馬氏鏈的收斂有如下定理:
定理1.1如果一個非周期馬氏鏈具有轉(zhuǎn)移概率矩陣 P,且它的任何兩個狀態(tài)是連通的,那么存在且與 i 無關(guān),我們有:?
關(guān)于上述定理,給出幾點解釋:
1) 馬氏鏈的狀態(tài)數(shù)可以是有限的,也可以是無限的,因此可以用于連續(xù)概率分布和離散概率分布。
2) 非周期馬氏鏈:馬氏鏈的狀態(tài)轉(zhuǎn)化不是循環(huán)的,如果是循環(huán)的則永遠不會收斂,我們遇到的一般都是非周期馬氏鏈。對于任意某一狀態(tài)i,d 為集合的最大公約數(shù),如果 d=1,則該狀態(tài)為非周期。?
3) 任何兩個狀態(tài)是連通的:從任意一個狀態(tài)可以通過有限步到達其他的任意狀態(tài),不會出現(xiàn)條件概率一直為0導(dǎo)致不可達的情況。
4)π稱為馬氏鏈的平穩(wěn)分布。
如果從一個具體的初始狀態(tài) x0 開始,沿著馬氏鏈按照概率轉(zhuǎn)移矩陣做跳轉(zhuǎn),那么可以得到一個轉(zhuǎn)移序列,由于馬氏鏈的收斂行為,都將是平穩(wěn)分布?π(x)?的樣本。
▌1.9 MCMC
1. 接受-拒絕采樣
對于不常見的概率分布π(x) 樣本,使用接受-拒絕采樣對可采樣的分布 q(x) 進行采樣得到,如圖1.2所示,采樣得到 Mq(x) 的一個樣本 x0,從均勻分布 (0,Mq(x0))中采樣得到一個值μ0 ,如果μ0 落在圖中灰色區(qū)域則拒絕這次采樣,否則接受樣本 x0,重復(fù)上面過程得到 n 個接受的樣本,則這些樣本服從π(x)分布,具體過程見算法1.1。
圖1.2
下面我們來證明下接受-拒絕方法采樣得到的樣本服從π(x) 分布。
證明:accept x 服從π(x) 分布,即 p(x|accept) =π(x)。
2. MCMC
給定概率分布 p(x),希望能夠生成它對應(yīng)的樣本,由于馬氏鏈能收斂到平穩(wěn)分布,有一個很好的想法:如果我們能構(gòu)造一個轉(zhuǎn)移矩陣為 P 的馬氏鏈,使得該馬氏鏈的平穩(wěn)分布恰好是p(x),那么我們從任何一個初始狀態(tài)出發(fā)沿著馬氏鏈轉(zhuǎn)移,得到一個轉(zhuǎn)移序列,如果馬氏鏈在第 n 步已經(jīng)收斂了,于是我們可以得到?p(x) 的樣本?,所以關(guān)鍵問題是如何構(gòu)造轉(zhuǎn)移矩陣 ,我們是基于下面的定理。
定理1.2(細致平穩(wěn)條件)如果非周期馬氏鏈的轉(zhuǎn)移矩陣 P 和分布π(x) 滿足:
則π(x) 是馬氏鏈的平穩(wěn)分布。
證明很簡單,有公式(34)得:
πP=π,滿足馬氏鏈的收斂性質(zhì)。這樣我們就有了新的思路尋找轉(zhuǎn)移矩陣 P,即只要我們找到矩陣 P 使得概率分布π(x) 滿足細致平穩(wěn)條件即可。
假設(shè)有一個轉(zhuǎn)移矩陣為 Q 的馬氏鏈(Q(i,j) 表示從狀態(tài) i 轉(zhuǎn)移到狀態(tài) j 的概率),通常情況下很難滿足細致平穩(wěn)條件的,即:
我們對公式(36)進行改造,使細致平穩(wěn)條件成立,引入 α (i,j) 。
α(i,j)如何取值才能使公式(37)成立?最簡單的我們可以?。?/p>
Q' (i,j)=Q (i,j)α(i,j) ,Q' (j,i)=Q (j,i)α(j,i) ,所以我們有:
轉(zhuǎn)移矩陣 Q' 滿足細致平穩(wěn)條件,因此馬氏鏈Q(jìng)' 的平穩(wěn)分布就是π(x)!
我們可以得到一個非常好的結(jié)論,轉(zhuǎn)移矩陣Q' 可以通過任意一個馬氏鏈轉(zhuǎn)移矩陣 Q 乘以α(i,j) 得到, α(i,j)一般稱為接受率,其取值范圍為[0,1] ,可以理解為一個概率值,在原來的馬氏鏈上,從狀態(tài) i 以Q (i,j) 的概率跳轉(zhuǎn)到狀態(tài) j 的時候,我們以一定的概率α(i,j) 接受這個轉(zhuǎn)移,很像前面介紹的接受-拒絕采樣,那里以一個常見的分布通過一定的接受-拒絕概率得到一個不常見的分布,這里以一個常見的馬氏鏈狀態(tài)轉(zhuǎn)移矩陣Q通過一定的接受-拒絕概率得到新的馬氏鏈狀態(tài)轉(zhuǎn)移矩陣Q'。
圖1.3
總結(jié)下MCMC的采樣過程。
MCMC采樣算法有一個問題,如果接受率α(xt,x') 比較小,馬氏鏈容易原地踏步,拒絕大量的跳轉(zhuǎn),收斂到平穩(wěn)分布π(x) 的速度很慢,有沒有辦法可以使α(xt,x')變大?
3. M-H采樣
M-H采樣可以解決MCMC采樣接受概率過低問題,回到公式(37),若α(i,j)=0.1,α(j,i)=0.2,即:
公式(40)兩邊同時擴大5倍,仍然滿足細致平穩(wěn)條件,即:
所以我們可以把公式(37)中的α(i,j) 和α(j,i) 同比例放大,使得其中最大的放大到 1,這樣提高了采樣中的接受率,細致平穩(wěn)條件也沒有打破,所以可以取:
提出一個問題:按照MCMC中介紹的方法把 Q→Q' ,是否可以保證Q' 每行加和為1?
▌1.10 Gibbs Sampling
對于高維的情形,由于接受率α≤1,M-H 算法效率不夠高,我們能否找到一個轉(zhuǎn)移矩陣 Q 使得接受率α=1 呢?從二維分布開始,假設(shè)p(x,y) 是一個二維聯(lián)合概率分布,考察某個特征維度相同的兩個點 A(x1,y1) 和 B(x1,y2) ,容易發(fā)現(xiàn)下面等式成立:
所以可得:
也就是:
觀察細致平穩(wěn)條件公式,我們發(fā)現(xiàn)在 x=x1 這條直線上,如果用條件分布p(y|x1) 作為任何兩點之間的轉(zhuǎn)移概率,那么任何兩點之間的轉(zhuǎn)移都滿足細致平穩(wěn)條件。同樣的,在 y=y1 這條直線上任取兩點 A(x1,y1) 和 C(x2,y1) ,我們可以得到:
圖1.4
基于上面的發(fā)現(xiàn),我們可以構(gòu)造分布 p(x,y) 的馬氏鏈的狀態(tài)轉(zhuǎn)移矩陣 Q。
有了上面的轉(zhuǎn)移矩陣 Q ,很容易驗證對于平面任意兩點 X,Y,都滿足細致平穩(wěn)條件。
所以這個二維空間上的馬氏鏈將收斂到平穩(wěn)分布p(x,y),稱為Gibbs Sampling 算法。
整個采樣過程中,我們通過輪換坐標(biāo)軸,得到樣本(x0,y0),(x0,y1),(x1,y1),... ,馬氏鏈?zhǔn)諗亢?,最終得到的樣本就是p(x,y)的樣本。當(dāng)然坐標(biāo)軸輪換不是必須的,我們也可以每次隨機選擇一個坐標(biāo)軸進行采樣,在 t 時刻,可以在 x 軸和 y 軸之間隨機的選擇一個坐標(biāo)軸,然后按照條件概率做轉(zhuǎn)移。
圖1.5
二維可以很容易推廣到高維的情況,在 n 維空間中對于概率分布p(x1,x2,...xn) 。
▌1.11 EM算法
我們先介紹凸函數(shù)的概念,f的定義域是實數(shù)集,若x∈R且f''(x)≥0,則 f是凸函數(shù),若f''(x)>0,則f是嚴(yán)格凸函數(shù);若x是向量且 hessian 矩陣H是半正定矩陣,則f是凸函數(shù),若H是正定矩陣,則f是嚴(yán)格凸函數(shù)。
定理1.3(Jensen不等式)f的定義域是實數(shù)集,且是凸函數(shù),則有:
如果f是嚴(yán)格凸函數(shù),只有當(dāng) X 是常量,公式(49)等式成立即E[f(X)]=f(E[X])。
圖1.6
假設(shè)訓(xùn)練集,每個樣本相互獨立,我們需要估計模型?p(x,z) 的參數(shù)?θ,由于含有隱變量?z,所以很難直接用最大似然求解,如果?z 已知,那么就可以用最大似然求解。
其實我們的目標(biāo)是找到 z 和θ使 l(θ) 最大,也就是分別對 Z 和θ求偏導(dǎo),然后令其為 0,理想是美好的,現(xiàn)實是殘酷的,公式(49)求偏導(dǎo)后變的很復(fù)雜,求導(dǎo)前要是能把求和符號從對數(shù)函數(shù)中提出來就好了。EM算法可以有效地解決這個問題,引入?表示?的概率分布。由公式(50)可得:
最后一步是利用 Jensen 不等式所以 f 是凹函數(shù),
是
的期望,所以有:
由公式(51)可知,我們可以不斷地最大化下界,以提高 l(θ),最終達到最大值。如果固定 θ,那么l(θ) 的下界就取決于,可以通過調(diào)整這個概率,使得下界不斷地上升逼近 ?l(θ),最終相等,然后固定,調(diào)整 θ,使下界達到最大值,此時?θ 為新的值,再固定 θ,調(diào)整,反復(fù)直到收斂到?l(θ) 的最大值。現(xiàn)在我們有兩個問題需要證明,1. 下界何時等于 l(θ);2. 為什么可以收斂到最大值。
第一個問題,由Jensen不等式定理中等式成立條件可知,X 為常量,即:
再由得:
下面我們先給出 EM 算法,然后再討論第二個問題,E步:固定 θ,根據(jù)公式(53)選擇 Qi 使得下界等于 l(θ),M步:最大化下界,得到新的θ 值。EM算法如下:
在我們開始討論第二個問題,是EM迭代過程的參數(shù)估計,我們需要證明,也就是EM算法是單調(diào)地提高。
第一個不等式是因為:
公式(57)中,。
第二個不等式是因為是為了
三、LDA
▌2.1 Unigram Model
假設(shè)我們的詞典中一共有 V 個詞,Unigram Model就是認(rèn)為上帝按照下面游戲規(guī)則產(chǎn)生文本的。
Game 2.1 Unigram Model
骰子各個面的概率記為,對于一篇文檔,生成該文檔的概率為:
假設(shè)我們預(yù)料是由 m 篇文檔組成即,每篇文檔是相互獨立的,則該預(yù)料的概率為:
假設(shè)預(yù)料中總共有 N 個詞,每個詞 wi 的詞頻為 ni,那么服從多項式分布,可參考1.5節(jié)的多項式分布概念。
此時公式(60)為:
我們需要估計模型中的參數(shù),可以用最大似然估計:
于是參數(shù) pk 的估計值就是:
▌2.2 貝葉斯Unigram Model
對于以上模型,統(tǒng)計學(xué)家中貝葉斯學(xué)派就不同意了,為什么上帝只有一個固定的篩子呢,在貝葉斯學(xué)派看來,一切參數(shù)都是隨機變量,模型中不是唯一固定的,而是服從一個分布,所以貝葉斯Unigram Model游戲規(guī)則變?yōu)椋?/p>
Game 2.2 貝葉斯Unigram Model
上帝這個壇子里面有些骰子數(shù)量多,有些骰子數(shù)量少,所以從概率分布的角度看,壇子里面的骰子服從一個概率分布,這個分布稱為參數(shù)的先驗分布。先驗分布?是服從多項式分布的,,回顧1.7節(jié)可知,
于是,在給定了參數(shù)時候,語料中各個詞出現(xiàn)的次數(shù)服從多項式分布,所以后驗分布為:
對參數(shù)分布??梢杂? 的期望值作為參數(shù)?
接下來我們計算語料產(chǎn)生的概率,開始并不知道上帝到底用哪個骰子,所以每個骰子都有可能被使用,使用的概率由決定的,對于每個具體的骰子,由該骰子產(chǎn)生預(yù)料的概率為,所以語料產(chǎn)生的概率為:
▌2.3 PLSA
1. PLSA Model
概率隱語義分析,是主題模型的一種。上面介紹的Unigram Model相對簡單,沒有考慮文檔有多個主題的情況,一般一篇文檔可以由多個主題(Topic)組成,文檔中的每個詞都是由一個固定的Topic生成的,所以PLSA的游戲規(guī)則為:
2. EM算法推導(dǎo)PLSA
PLSA 模型中 doc-topic 和 topic-word 的每個面的概率值是固定的,所以屬于點估計,但是PLSA模型既含有觀測變量di,wj,又含有隱變量 zk,就不能簡單地直接使用極大似然估計法估計模型參數(shù),我們可以采用EM算法估計參數(shù)。我們先介紹推導(dǎo)過程用到的符號含義:
:表示語料中 N 篇文檔;
:表示語料中 M 個詞組;
:表示詞 wj 在文檔 di 中出現(xiàn)的頻次,;
:表示 K 個主題,每篇文檔可以有多個主題;
wj 在給定文檔?di 中出現(xiàn)的概率;
:表示主題 zk 在給定文檔?di 下出現(xiàn)的概率;
:表示詞?wj? 在給定主題?zk 下出現(xiàn)的概率。
一般給定語料di,wj是可以觀測的,zk 是隱變量,不可以直觀地觀測到。我們定義“doc-word”的生成模型,如圖1.8所示。
圖2.3
下面進入正題,用EM算法進行模型參數(shù)估計,似然函數(shù)為:
對于給定訓(xùn)練預(yù)料,希望公式 (69) 最大化。
引入表示 zk 的概率分布
,根據(jù)Jensen不等式得:
當(dāng)
時,
公式(71)不等式中等號成立,所以只需要最大化:
根據(jù)拉格朗日乘子法
所以可得:
總結(jié)EM算法為:
1.E-step 隨機初始化變量 ,計算隱變量后驗概率。
2.M-step 最大化似然函數(shù),更新變量,
3.重復(fù)1、2兩步,直到收斂。
▌2.4 LDA
對于 PLSA 模型,貝葉斯學(xué)派表示不同意,為什么上帝只有一個 doc-topic 骰子,為什么上帝只有固定 K 個topic-word骰子?是模型的參數(shù),一切參數(shù)都是隨機變量,模型中不是唯一固定的,類似 2.2 節(jié)貝葉斯 Unigram Model 和 2.1 節(jié) Unigram Model 的關(guān)系。所以 LDA 游戲規(guī)則為:
假設(shè)我們訓(xùn)練語料有 M 篇 doc,詞典中有 V 個word,K 個topic。對于第m 篇文檔有 Nm 個詞。
,第 m 篇文檔的主題分布概率,
;
,主題為 k 的詞的概率分布,;
:第 m 篇文檔中屬于 topic k 的詞的個數(shù),
;
:topic k 產(chǎn)生詞 t 的個數(shù),
;
:先驗分布超參數(shù);
:先驗分布超參數(shù);
:第 m 篇文檔中第 n 個詞的主題;
:第 m 篇文檔中第 n 個詞。
LDA的概率圖模型表示如圖2.4所示。
圖2.4
1. 聯(lián)合概率分布
1):第一步對?分布進行采樣得到樣本(也就是從第一個壇子中抽取 doc-topic 骰子 );第二步 doc-topic 骰子有 K 個面,每個面表示一個主題,那么在一次投擲骰子過程中,每個主題的概率為
,第 m 篇文檔有Nm個詞,所以需要投擲Nm 次骰子,為該篇文檔中的每個詞生成一個主題, 第 n 個詞對應(yīng)的主題為
,整篇文檔的主題表示為。在?Nm 次投擲過程中,每個主題出現(xiàn)的次數(shù)為
,那么服從多項式分布(只生成每個詞的主題,并未由主題產(chǎn)生具體的詞)??梢圆捎秘惾~斯估計對參數(shù)?進行估計。
?的先驗分布為?
后驗分布為(推導(dǎo)過程可以參考1.7節(jié))
的貝葉斯估計值為
下面我們計算第 m 篇文檔的主題概率分布:
整個語料中的 M 篇文檔是相互獨立的,所以可以得到語料中主題的概率為:
2)
:第一步對分布進行 K?采樣得到樣本(從第二個壇子中獨立地抽取了 K 個topic-word骰子);第二步根據(jù)之前得到的主題,為每個?生成對應(yīng)的詞,
,第 k 個主題有個詞,所以需要投擲?
,那么服從多項式分布,可以采用貝葉斯估計對參數(shù)?進行估計。
的先驗分布為?
后驗分布為(推導(dǎo)過程可以參考1.7節(jié))
的貝葉斯估計值為
下面我們計算第k 個主題的詞概率分布:
整個語料中的 K 個主題是相互獨立的,所以可以得到語料中詞的概率為:
由公式(74)、(78)、(82) 可得聯(lián)合概率分布為:
2. Gibbs Sampling
上面我們已經(jīng)推導(dǎo)出參數(shù)的貝葉斯估計公式,但是仍然存在一個問題,公式中的無法根據(jù)語料直接得到,如果我們知道語料中的每個詞的主題,即得到,那么就可以推斷出,進一步就可以得出貝葉斯的參數(shù)估計。我們需要利用 Gibbs Sampling 對?進行采樣來得到
。 先介紹一些符號定義。
下標(biāo)索引;
:表示去除下標(biāo)為 i 的詞;
:第 m 篇文檔中第 n 個詞為 t;
:第 m 篇文檔中第 n 個詞的主題為 k;
:除去下標(biāo)為 i 這個詞,剩下的所有詞中,詞 t 屬于主題 k 的統(tǒng)計次數(shù),
(這里假設(shè));
:除去下標(biāo)為 i 的這個詞,第 m 篇文檔中主題 m 產(chǎn)生詞的個數(shù),?
(這里假設(shè));:語料的主題;
:語料的單詞。
1)的計算過程類似,僅僅在計算的時候不考慮下標(biāo)為 i 的這個詞,我們假設(shè);當(dāng)已知語料時,可以從語料中統(tǒng)計出來,所以可以認(rèn)為是常量。
2)我們是推斷 i=(m,n)詞 t 的主題為 k 的條件概率
我們再利用另外一種方法推導(dǎo)條件概率:
已經(jīng)推導(dǎo)出條件概率,可以用Gibbs Sampling公式進行采樣了。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4256瀏覽量
62223 -
文本分類
+關(guān)注
關(guān)注
0文章
18瀏覽量
7283 -
LDA
+關(guān)注
關(guān)注
0文章
29瀏覽量
10580
原文標(biāo)題:干貨 | 一文詳解隱含狄利克雷分布(LDA)
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論