最近因為論文需要用到LDA方法,這個方法需要的數學知識比較多,查了些資料,根據自己的理解先從Gibbs Sampling開始。
1.什么是隨機模擬(統計模擬,蒙特卡洛方法)
隨機模擬的重要問題是給定一個概率分布p(x),在計算機中生成它的樣本,比如利用計算機生成隨機數來作為均與分布的樣本。但是有些概率分布p(x)的的樣本難以生成,這時就需要一些更復雜的隨機模擬的方法來生成樣本了。這就是下面要介紹的MCMC(馬爾科夫蒙特卡洛)和Gibbs Sampling(吉布斯抽樣)了。
2.MCMC(馬爾科夫蒙特卡洛)方法
之所以叫馬爾科夫蒙特卡洛方法,是因為它利用了馬爾科夫鏈的重要性質——平穩分布。給定初始隨機變量X0的概率分布P0(x),在馬氏鏈上做狀態轉移一定次數i后,此時狀態轉移矩陣的i次方得到的矩陣每列都是相同的,所以隨機變量Xi的概率分布Pi(x)不再變化。
因此馬爾科夫蒙特卡洛方法的核心是構造一個轉移矩陣為P的馬氏鏈,使得該馬氏鏈的平穩分布恰好是來生成樣本的概率分布P(x),那么我們從任何一個初始樣本x0出發,n步后馬氏鏈收斂,此時n+1步就是我們需要的概率分布P(x)的樣本了。
最后,Gibbs Sampling(吉布斯抽樣)的核心思想就是MCMC(馬爾科夫蒙特卡洛)方法。
3.PLA的Gibbs Sampling(吉布斯抽樣)應用
為什么要在PLA中使用Gibbs?由於在LDA中我們關注三個參數z,theta和phi。其中z是語料中每一個word對應的隱變量(主題),theta是語料中每一個文檔的主題分布,phi是每一個主題的term分布。其實只要求得z,其他兩個可以通過簡單的似然估計得到。於是需要將LDA的概率公式P(w,z,theta,phi | alpha,beta)通過積分的方法把theta和phi積掉,剩下P(w,z | alpha,beta)。然后求解P(z|w,alpha,beta) = P(w,z | alpha,beta) / P(w | alpha,beta),由於分母要對K的n次方個項求和因此直接求不可行(其中K是主題數,n是詞匯表的長度),即概率分布P(z|w,alpha,beta)的樣本難以生成。Gibbs抽樣就是要完成對P(z|w,alpha,beta)的抽樣,利用抽樣結果通過簡單的似然估計求得theta和phi。
參考文獻:1.靳志輝 《LDA數學八卦》
2.http://hi.baidu.com/a17509/item/70b5eae2b72babb8c10d75ca
3.http://cos.name/2010/10/lda_topic_model/