【注:本文為原創(chuàng)】 若公式顯示有問題請復(fù)制鏈接到新TAB重新打開 聽說國外大牛都認(rèn)為LDA只是很簡單的模型,吾輩一聽這話,只能加油了~ 另外這個大牛寫的LDA導(dǎo)讀很不錯:http://bbs./#!article/PR_AI/2530?p=1 一、預(yù)備知識:1. 概率密度和二項分布、多項分布,在這里 2. 狄利克雷分布,在這里,主要內(nèi)容摘自《Pattern Recognition and Machine Learning》第二章 3. 概率圖模型,在PRML第九章有很好的介紹 二、變量表示:1. word:word是最基本的離散概念,在自然語言處理的應(yīng)用中,就是詞。我覺得比較泛化的定義應(yīng)該是觀察數(shù)據(jù)的最基本的離散單元。word的表示可以是一個V維向量v,V是所有word的個數(shù)。這個向量v只有一個值等于1,其他等于0。呵呵,這種數(shù)學(xué)表示好浪費,我以前做過的項目里一般中文詞在200-300w左右,每一個都表示成300w維向量的話就不用活了。哈哈,所以真正應(yīng)用中word只要一個編號表示就成了。 2. document:一個document就是多個word的合體。假設(shè)一篇文檔有N個詞,這些word是不計順序的,也就是exchangeable的,LDA論文 3.1有說這個概念。論文中document的個數(shù)是M。 3. topic:就是主題啦,比如“錢”的主題可能是“經(jīng)濟(jì)”,也可能是“犯罪”~ LDA中主題的表示是隱含的,即只預(yù)先確定主題的個數(shù),而不知道具體的主題是什么。論文中表示主題個數(shù)的字母是k,表示主題的隨機(jī)變量是z。 好了,總結(jié)一下所有的變量的意思,V是所有單詞的個數(shù)(固定值),N是單篇文檔詞的個數(shù)(隨機(jī)變量),M是總的文檔的個數(shù)(固定值),k是主題的個數(shù)(需要預(yù)先根據(jù)先驗知識指定,固定值)。
三、基礎(chǔ)模型:先從兩個基礎(chǔ)模型說起: 1. Unitgram model (LDA 4.1) 一個文檔的概率就是組成它的所有詞的概率的乘積,這個一目了然,無需多說: 圖模型: 2. Mixture of unigrams (LDA 4.2) 假如我們假設(shè)一篇文檔是有一個主題的(有且僅有一個主題),可以引入主題變量z,那么就成了mixture of unigrams model。它的圖模型如下圖: 這個模型的generate過程是,首先選擇一個topic z for each docoment,然后根據(jù)這個z以及p(w|z)獨立同分布產(chǎn)生w。觀察這個圖,z是在N餅外面的,所以每一個w均來自同一個z,就是說一個文檔N個詞只有一個topic。這和LDA中z在N餅里面不一樣。 四、LDA接下來正式說LDA的產(chǎn)生過程,對于一個文檔w: 1. 選擇 這一步其實只是選個單詞的個數(shù),對整個模型沒啥影響 2. 選擇一個多項分布參數(shù) 這α是狄利克雷分布的參數(shù)(k+1維), 3. 上兩步完成后,開始產(chǎn)生文檔中的N個詞 (a) 首先選個一個topic z是從以θ為參數(shù)的多項分布中挑選出來的,總共有k個topic,根據(jù)θ的概率參數(shù)選擇其中一個topic作為z (a) 然后選擇一個word from 這個參數(shù)β也是多項分布,是一個 至此,產(chǎn)生過程完成。上概率圖模型:
整個圖的聯(lián)合概率為(只算單個文檔,不算整個corpus的M個文檔): 把上式對應(yīng)到圖上,可以大致解釋成這個樣子:
在上面這個新圖中,LDA的三個表示層被用三種顏色表示了出來: 1. corpus-level (紅色):α和β是語料級別的參數(shù),也就是說對于每個文檔都是一樣的,因此在generate過程中只需要sample一次。 2.document-level (橙色):θ是文檔級別的參數(shù),意即每個文檔的θ參數(shù)是不一樣的,也就是說每個文檔產(chǎn)生topic z的概率是不同的,所以對于每個文檔都要sample一次θ。 3. word-level (綠色):最后z和w都是文檔級別的變量,z由參數(shù)θ產(chǎn)生,之后再由z和β共同產(chǎn)生w,一個w對應(yīng)一個z。 五、幾何學(xué)解釋來看下面這個圖:
這個圖的意思是這樣的,外面大三角形的三個頂點代表三個word,這三個word組成一個simplex,那么這個simplex中的一個點,代表什么意思呢?它代表的意思就是一個點就是一個產(chǎn)生這三個word的多項分布的概率密度(對于這個圖多項分布的它是一個三維向量)。具體點來說,例如紅色的點p1,它就在word1上。這個意思就是說,p1是一個多項分布,其參數(shù)為(1.0, 0, 0),也就是它產(chǎn)生word1的概率為1,產(chǎn)生其它兩個word的概率為0。再來看藍(lán)色的點p2,它產(chǎn)生word1的概率正比于它到word1對邊的距離(注意可不是到word1那個點的距離哈)。因為正三角形內(nèi)部任意一點到三邊的垂線之和等于高,也就是可以視為等于1。那么正好這個性質(zhì)滿足概率之和等于1。所以p2到三邊的垂線非別代表p2產(chǎn)生垂線對面那個頂點的概率。因此,p2產(chǎn)生word 1的概率看起來像是0.1, word2的概率像是0.4,word3像是0.5。 了解了上面這層意思之后,我們再來看這個topic simplex。它是包含在word simplex里面的(sub-simplex),所以topic simplex上的一點同時也是word simplex上的一個點。這樣topic simplex上的一個點,就有了兩層含義,一層含義是它是一個產(chǎn)生word的多項分布概率密度,另一層含義就是它是產(chǎn)生topic的多項分布概率密度。在這個圖上,還可以發(fā)現(xiàn)topic的點相對于word simplex是已經(jīng)固定的,其實這topic simplex 上的三個頂點到word simplex上的三個頂點對邊垂直線總共9個距離,也就是9個概率值,正好是一個 知道了這些之后,我們就可以來看mixture of unigrams在圖上應(yīng)該怎么表示了。還記得mixture of unigrams是要先選擇一個文檔的topic z的,然后根據(jù)這個topic產(chǎn)生word。所以它在這個圖上的產(chǎn)生過程就是,先隨機(jī)挑選topic simplx(注意是topic simplex)三個頂點中的一個,然后根據(jù)這個頂點到word simplex頂點對邊線的距離,也就是這個頂點在word simplex上的多項分布產(chǎn)生每一個word。 再來看pLSI,圖中間每一個帶叉的圈圈就是一個pLSI中的文檔,每一個文檔(在pLSI中文檔被視為觀察變量,即每個文檔都被視為word那樣是有編號的)都有一個獨立的產(chǎn)生topic的多項分布,文檔點的位置就表示了它產(chǎn)生三個topic的概率值。 對于LDA,汗,不是很理解,LDA places a smooth distribution on the topic simplex denoted by the contour lines。只好先放著了。 2012@3@28,關(guān)于上面這個LDA的圖形為啥是曲線的問題,我專門請教了北大趙鑫大牛,他的回答很給力而且一針見血。要理解LDA為啥是曲線,要先從pLSI為啥是點說起。因為pLSI中,由文檔w產(chǎn)生topic z的概率是一個參數(shù),對于每個單獨文檔這個參數(shù)要被估計一次,參數(shù)可不是隨機(jī)變量,而是固定的值。因此pLSI中每個文檔在圖中表示為一個確定的點。而LDA呢,文檔w產(chǎn)生topic z的概率在論文里后面inference部分已經(jīng)給出了,它是 2012@4@18 今天看到《Parameter estimation for text analysis》(PETA)里的內(nèi)容,可以更深入地解釋“LDA places a smooth distribution on the topic simplex denoted by the contour lines”這句話。首先給出PETA里面的原話:LDA with a uniform prior Dir(1) is a full Bayesian estimator for the same model for which PLSA provides an ML or MAP estimator。這句話說明了pLSA是用的是最大似然推斷或最大后驗推斷,在最大后驗推斷中,p(z|w)是一個給定的置信值(這一點PETA中也有說明:最大后驗推斷中的置信值不等同于概率),這個置信值是一個常量。LDA用的是貝葉斯推斷,所以LDA中的p(z|w)是一個概率分布。 |
|