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