Title: Latent Dirichlet allocation
Author: D. Blei, A. Ng, and M. Jordan
Publication: Journal of Machine Learning Research, 3:993–1022, January 2003LDA
Latent Dirichlet allocation的縮寫。是一種unsupervised learning,可以用來識別大規模文件集中潛藏的主題訊息,用了Bag-of-word的概念,不考慮字出現的次序,減化問題的複雜度。
LDA的topic model是一個三層的Bayes Hierarchy Model,包含topic,doc,word三層。將模型的參數看作隨機變量,可以引入控制參數的參數。
Topic model一般來說有兩種分部:
第一種: topic~word的分佈,p(w|z),是多項式分佈
第二種: doc~topic的分佈,p(z|d) ,是Dirichlet分佈。
doc 對應到多個topic,topic又對應到多個word。
降維就是將文件投影到topic的空間中。
LDA是一個機率生成模型,可以隨機生成一篇由多個主題組成的文件。
定義一些參數:
V: word的大小,表示corpus中有多少字。
w:表示一份文件,N表示文件長度。
D:表示corpus,大小為M,代表有M份文件。
具體生成文件的步驟如下:
1.選擇N,N是一篇文件的長度,也就是word的數量,
2.選擇θ,θ是1*K的列向量,是Dirichlet分布,代表每個topic發生的機率,alpha是Dirichlet分布的參數。θ1~θk都是非負值,且總合為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,重複上面的步驟,直到N個word都找到。
下圖是LDA的Graphical model
塗滿的圓圈表示觀察變量,空心圓表示隱含變量,方框代表重覆的次數。
寫成數學式子如下:
這邊由於引入了alpha和beta兩個參數。
所以要做參數的估計,利用EM去求,但是過程中事後機率,p(θ,z|w)無法計算出解析式,需要近似解,尋找一個likelihood函式的下界。
Paper中利用了variational inference來求下界,找出alpha和beta,就可以丟到EM裡去計算,直到收斂。
網路上有LDA的source code,可以去找來實驗看看。
參考網站:

沒有留言:
張貼留言