目錄
潛在狄利克雷分配(latent Dirichlet allocation,LDA)
多項分佈(Multinomial Distribution)
狄利克雷分佈(Dirichlet distribution)
LSA/LSI
略
PLSA
略
潛在狄利克雷分配(latent Dirichlet allocation,LDA)
伯努利分佈(Bernoulli Distribution)
舉個例子,在一次“拋硬幣”的試驗中,出現正面朝上的的概率爲,反面朝上的概率爲,則在一次試驗中出現正面朝上的次數服從伯努利分佈。出現正面朝上的次數有兩個值:0和1,0次正面朝上的概率爲,1次正面朝上的概率爲,概率分佈如下:
0 | 1 | |
二項分佈(Binomial Distribution)
在伯努利試驗中,我們只做了一次試驗,那麼如果重複獨立n次伯努利試驗,則正面朝上的次數k服從二項分佈,正面朝上的次數爲k的概率如下:
其中
,k的取值可能是0,1,...,n。概率分佈如下:
0 | 1 | ... | n | |
... |
在二項分佈中,如果n=1,就是伯努利分佈,所以伯努利分佈可以看成二項分佈的特例。
多項分佈(Multinomial Distribution)
在二項分佈中,每次拋硬幣可能出現的結果只有兩個:正面朝上和反面朝上,那假設現在一個事件可能出現的結果不再是2個,而是個。第i個結果出現的概率爲,則
,在n次試驗中,第i個結果出現的次數爲,則
,在上述假設下,次試驗中,第個結果出現次數爲服從多項分佈
其中係數
由排列組合得到,即先在n次試驗中選取個結果爲1的試驗,可能的選取方式有個,接着從剩下的次試驗中再選擇次試驗,可能的選取方式有,依次選擇下去……,總共可能的方式就是這個係數。實際上,多項分佈式二項分佈的推廣,比如在多項分佈中假設k=2,則概率變爲:
令(因爲在二項分佈中,使用k表示的次數,多項分佈中使用的k表示結果的個數,注意區別),就可以得到二項分佈。
貝塔分佈(beta distribution)
設連續隨機變量的取值範圍爲,它的概率密度函數如下:
其中是參數,是beta函數,定義如下:
beta函數也可以由伽馬函數得到,伽馬函數定義如下:
beta函數和伽馬函數之間的關係如下:
可以如下證明這個關係:
令,利用重積分性質既能得到。
狄利克雷分佈(Dirichlet distribution)
狄利克雷分佈是一種多元連續隨機變量的分佈,是貝塔分佈(beta distribution)的推廣。我們將beta分佈的單個隨機變量推廣到由k個隨機變量構成的隨機向量,每個隨機變量的取值範圍爲,不過他們之間和爲1,即
表示第i個隨機變量的取值。 概率密度函數如下定義:
是參數。
在狄利克雷分佈中,取,則就變成了Beta分佈。
爲了可以和Beta分佈有相同的形式,令
,,
則
因爲,所以實際上可以看成一個歸一化因子。
下面以k=3來直觀認識下狄利克雷分佈,此時,如果看成是在三維空間中,如圖:
圖中正三角形區域表示的各種可能的取值,也就是說的取值會落在三角形上或者內部。現在我們取不同的,
(1)的情況,
,分別對應如下圖:
也就是說當各個分量相等時,的分佈是對稱的,隨着分量的增大,分佈更集中。
(2)當的各個分量不全部相等時
比如
分別對應如下圖:
越小越向靠近。
以上介紹的各種分佈,整理如下:
伯努利分佈 | |
二項分佈 | |
多項分佈 | |
貝塔分佈 | |
狄利克雷分佈 |
共軛先驗(conjugate prior)
這裏有幾個分佈需要搞清楚,分別是先驗分佈,後驗分佈和似然函數。我們以拋硬幣爲例,假設正面朝上的概率爲,但是在未拋硬幣之前我們是不知道的具體值,根據當前已有的經驗,我們通常會假設服從[均爲分佈,當然也可以假設服從其他分佈,也就是說正面朝上的概率取[0,1]之間任意值是等可能的,假設均勻分佈的密度函數是
這個均勻分佈稱爲的先驗分佈。假設現在拋了5次,得到如下一組數據:
正面,正面,反面,反面,正面
在參數下,產生“如此數據“的條件概率稱之爲似然函數,如下:
這裏說個題外話,很多時候,我們會碰到最大似然估計,指的是什麼樣的概率,最有可能產生“如此數據”,即求似然函數的最大值對應的值,可以通過似然函數兩邊取對數解出。下面我們還說後驗分佈,根據貝葉斯公式:
如果是連續的,就是
表示在得到數據X之後的概率,服從的分佈稱爲的後驗分佈。先驗分佈和後驗分佈的區別就是後驗分佈比先驗分佈多了數據這樣的“證據”。在本例中的先驗分佈是均爲分佈,但是在拿到數據後,從數據來看,正面朝上的可能性更大,所以後驗分佈並不是均勻分佈,事實上可以根據貝葉斯公式準確計算出來,如下:
從結果的密度函數來看確實不是均勻分佈。上面表明如果二項分佈的先驗分佈是均勻分佈,它的後驗分佈並不是均勻分佈。
如果的先驗分佈和後驗分佈具有相同的分佈類型,比如都是高斯分佈,則稱先驗分佈和後驗分佈爲共軛分佈。先驗分佈稱爲共軛先驗。下面這個結論在LDA模型中比較重要
如果多項分佈的先驗分佈是狄利克雷分佈,則其後驗分佈也是狄利克雷分佈。
下面我們給出證明:
假設隨機變量X服從多項分佈,可能的k個結果爲,概率如下:
假設現在得到n個數據的樣本,則似然函數爲
其中。假設的先驗分佈是狄利克雷分佈,即
根據貝葉斯公式,的後驗分佈爲
(其中)
(由得到)
從最後結果來看,任然是一個狄利克雷分佈,只不過參數由變爲。
LDA文本生成
LDA模型是一個文本生成概率模型。假設文本集合,含有M個文檔,表示文檔由個詞構成,是一個詞典,含有L個詞。文本集合與K個主題相關,主題集合。下面看如何生成文本,事實上,生成一個文本只要生成構成文本的每個詞就可以了。但我們並不是直接生成詞,而是通過中間隱含變量——主題來間接生成,首先生成文檔的主題序列,然後由主題序列生成詞序列,從而生成文檔。生成過程如下:
(1)生成主題序列
對於文檔,在給定參數的情況下,按照狄利克雷分佈
隨機生成一組概率,概率表示的是文檔生成主題的概率。因爲有M個文檔,生成一個階矩陣:
得到文檔主題分佈
()
構成一個矩陣:
根據這個密度函數就可以生成文檔對應的主題序列了(實際不關心順序),如下:
,
注意到主題序列中總共有個分量,這些主題分量可能會有重複,但是總共只有K個主題,所以我們只需要關注這K個主題即可,對於任意主題,可以如下生成詞。
(2)生成詞序列
對於主題,在給定參數的情況下,按照狄利克雷分佈
隨機產生一組概率,概率表示的是主題生成詞的概率。因爲有個主題,總共生成組,構成如下階矩陣:
得到主題生成詞的分佈
()
正好構成一個階矩陣
根據該密度函數和主題序列,就可以生成如下詞序列了
也就是文檔。
上面的整個生成過程,可以使用如下概率圖表示:
方框右下角符號表示方框中相同圖形的數量。