Latent Dirichlet Allocation
D. Blei, A. Ng, and M. Jordan.
Journal of Machine Learning Research, 3:993–1022, January 2003
topic model將原本從文件直接連結到字彙的機率,
轉變成兩個步驟的過程
其一是從文件到主題,而其二則是將主題對應到字彙

上個禮拜時候,我們談到了PLSA,但是PLSA有兩個致命性的缺點

在如上圖的文本中,共有M個文件,而假設我們的topic有K個的話,
哪PLSA在將文件對應到主題的部分,一共就需要KM個參數,
這造成了一個很大的問題是參數的量,是隨著文件數量而線性成長的,
更不要說這樣做可能會導致的over-fitting了
而第二個問題是PLSA針對尚未見過過的文件無法有很有效的處理。
而為了解決這兩個問題,LDA模型就因此而誕生了!
LDA模型描述
大致上來看,以下是LDA模型對於一個文本的生成的假設
1.利用poisson distribution決定文本的長度
2.利用dirichlet distribution (參數為alpha)來決定文件的topic distribution theta
3.對於這個文件中的每個字,由以下方式產生
根據theta,產生一個topic
根據topic以及beta,產生一個字
不過實際上因為決定文本長度的參數與其他參數是獨立的,因此我們將他視為一個輔助的參數而忽略不看
示意圖如下
在k個主題的情況下,dirichlet distribution如下 (註1)
(1)
於是我們就可以得到以下的結果
接著,把所有topic的結果加總,並且對distribution積分,我們就可以得到這樣的結果
(2)
最後,將每一個文件的機率相乘,我們就可以得到整個文本的機率如下

(3)
在這個model,有幾個地方值得我們注意
其一是,不同於simple dirichlet-mutinomial clustering model ,只對整個文章sample一次model,
LDA在文章內,對每一個字,不停的重新sample topic
其二則是LDA的無序性,而這個無序性可以在兩個部分展現,

在文章內,文件內的字的順序並不影響到文章的機率,
而同樣的,跨文件所組成的文本,文件的順序,也並不會影響到最後整個文本的機率
而基於無序的假設,我們可以得到以下的式子

另一方面來看,藉由揉合隱藏的主題模型,
我們可以將LDA表示成一個比較簡單的兩階段模型
我們可以將原本(2)表示成以下形式
(4)
如此一來,我們就可以把LDA生成文件的步驟減化成如下
1.根據dirichlet distribution (參數alpha)選擇主題模型分布參數theta
2.根據theta以及式(4)產生文件的每個字
如此一來,我們就可以用以下式(5)表達新的文件機率

(5)
inference and parameter estimation
為了使用LDA模型,我們要解決的問題式計算隱藏參數(也就是theta跟topic )

但是實際上,這樣的計算是很困難的,
因此實際上,我們可能會把這個問題轉換成另外一個形式
如下圖:

因此,實際上,我們就是想要藉由phi 以及gamma兩個參數來產生theta以及topic
不過,這樣所產生出來的結果當然會跟原本的有一定的落差,
因此,我們想要的phi 跟gamma就是跟原本的模型最接近的,如下式(6)
(6)
接下來,我們就利用EM來進行參數的計算

smoothing
不過我們常常會遇到另外一個問題則是字典的大小,或者是說罕見字的問題,對於罕見字,我們常常會遇到新出現的文章中出現以前從來沒有出現過的字的情況,
為了解決這個問題,所以我們通常會使用smoothing的技術,大體上來說如下圖所示
result
實際上,我們常常利用peplexity來計算我們結果,計算如下
註1
什麼是dirichlet distribution?
舉個例子來說,當我們丟一個銅板一萬次的機率是(0.4,0.6)
dirichlet distribution P((0.5,0.5)|(0.4,0.6))的意思就是說,
在我們已經知道這一萬次的結果之後,那接下來我們丟銅板會出現(0.5,0.5)的結果的機率是多少?



































