2011年3月22日 星期二

[aMMAI] Paper Summary: Paper Summary: Latent Dirichlet allocation

Title: Latent Dirichlet allocation
Author: D. Blei, A. Ng, and M. Jordan
Publication: Journal of Machine Learning Research, 3:993–1022, January 2003








LDA
Latent Dirichlet allocation的縮寫。是一種unsupervised learning,可以用來識別大規模文件集中潛藏的主題訊息,用了Bag-of-word的概念,不考慮字出現的次序,減化問題的複雜度。
LDAtopic model是一個三層的Bayes Hierarchy Model,包含topicdocword三層。將模型的參數看作隨機變量,可以引入控制參數的參數。

Topic model一般來說有兩種分部:
第一種: topic~word的分佈,p(w|z),是多項式分佈
第二種: doc~topic的分佈,p(z|d) ,是Dirichlet分佈
doc 對應到多個topictopic又對應到多個word

降維就是將文件投影到topic的空間中。

LDA是一個機率生成模型,可以隨機生成一篇由多個主題組成的文件。
定義一些參數:










V: word的大小,表示corpus中有多少字。
w:表示一份文件,N表示文件長度。
D:表示corpus,大小為M,代表有M份文件。

具體生成文件的步驟如下:







1.選擇NN是一篇文件的長度,也就是word的數量,
2.選擇θθ1*K的列向量,是Dirichlet分布代表每個topic發生的機率,alphaDirichlet分布的參數。θ1k都是非負值,且總合為1
3.對每一個word, wn
選一個topic zn,是Multinomial(θ)多項分布。
        選一個word wn,根據p(wn| zn, beta),在zn條件下的多項分佈

這邊的beta,是一個K*V的矩陣,betaij = P(wj=1|zi=1)beta記錄某個topic下生成某個word的機率。


簡單來說,對每一篇文件,從topic分佈中抽出一個主題,再從該主題中,所對應的word分佈抽出一個word,重複上面的步驟,直到Nword都找到。

步驟二,是pLSALDA最大的不同點,LDAdoc~topic中間引入Dirichlet modelθ代表每個topic發生的機率,每一個文章會對應到一個θ。這樣就不會像pLSA一樣,model參數隨著文件的增加而增加。

下圖是LDAGraphical model










塗滿的圓圈表示觀察變量,空心圓表示隱含變量,方框代表重覆的次數。

寫成數學式子如下:







這邊由於引入了alphabeta兩個參數。

所以要做參數的估計,利用EM去求,但是過程中事後機率,p(θ,z|w)無法計算出解析式,需要近似解,尋找一個likelihood函式的下界。
Paper中利用了variational inference來求下界,找出alphabeta,就可以丟到EM裡去計算,直到收斂。


網路上有LDAsource code,可以去找來實驗看看。

參考網站:



沒有留言:

張貼留言