LDA-Latent Dirichlet Allocation 学习笔记
以下內(nèi)容主要基于《Latent Dirichlet Allocation》,JMLR-2003一文,另加入了一些自己的理解,剛開(kāi)始了解,有不對(duì)的還請(qǐng)各位指正。
?
LDA-Latent Dirichlet Allocation
JMLR-2003
?
摘要:本文討論的LDA是對(duì)于離散數(shù)據(jù)集,如文本集,的一種生成式概率模型。LDA是一個(gè)三層的貝葉斯分層模型,將數(shù)據(jù)集中每一項(xiàng),如每個(gè)文本,建模為某些未知的topic組成的集合的混合。每個(gè)topic又建模為某種混合概率分布。在文本建模中,話題的概率就提供了每個(gè)doc的具體表示。
個(gè)人理解:1.生成式模型,就好像我們要寫(xiě)出一篇文章(生成一篇文檔),我們?cè)谙鹿P的時(shí)候腦袋里要先有這個(gè)文章的主題,然后在這個(gè)主題下再構(gòu)建合適的詞來(lái)組成文檔。這樣的過(guò)程就是這篇文章里‘生成’的過(guò)程。
2.doc->mixture of topics;?每個(gè)topic->mixture of words,文中的Dirichlet分布也體現(xiàn)在這個(gè)分布的分布上,原因后續(xù)講解。
?
基礎(chǔ)知識(shí),如果都懂,可以跳過(guò):
一、tf-idf?scheme
tf-idf?scheme:?首先選中一個(gè)基字典basic vocabulary,?然后對(duì)每一個(gè)文檔doc,查找每個(gè)詞word的出現(xiàn)次數(shù),然后進(jìn)行歸一化,最后得到的表示形式為一個(gè)term-by-document的矩陣X,而將任意長(zhǎng)度的doc表示成固定長(zhǎng)度的一個(gè)向量,而所有的doc則可以用一個(gè)list,也就是矩陣X,來(lái)表示:
??????????????????????????????????????????doc_1??????doc _2?????…????doc _ N
word_1??????????*?????*???????????…????*
word _2?????????*?????xij?????????…????*
……?????????????????????… …
word _|V|??????????????*?????*???????????…????*
其中xij=#num of word_i / # num of total words in doc_j .
?
優(yōu)點(diǎn):可以簡(jiǎn)明易懂的將每個(gè)文檔表示出來(lái),而且無(wú)論每個(gè)文檔本身長(zhǎng)度如何,都縮減為固定長(zhǎng)度(|V|)的向量;
缺點(diǎn):1.如果選擇的詞典vocabulary比較大,那這個(gè)表示矩陣的維度也會(huì)比較大,而且其list的長(zhǎng)度會(huì)隨著庫(kù)中文本數(shù)目的增加而增加;2.另外,這樣的表示沒(méi)有考慮文檔與文檔之間以及各文檔內(nèi)部的結(jié)構(gòu)信息。
個(gè)人理解:除以上缺點(diǎn)外,這種方法的相似性判斷建立的基礎(chǔ)是認(rèn)為文檔之間重復(fù)的詞語(yǔ)越多越相似,然而有一些屬于語(yǔ)義層的相關(guān),而并非表面的詞語(yǔ)的相關(guān),例如‘電腦’與‘微型計(jì)算機(jī)’這兩個(gè)詞并不相同,但意思相同,這時(shí)候如果用tf-idf方法通過(guò)統(tǒng)計(jì)單詞個(gè)數(shù)比較相似性的方法,效果就不會(huì)太好。而主題模型就解決了這個(gè)問(wèn)題,它的相關(guān)性體現(xiàn)在隱藏的主題的相關(guān)性上,而不是僅僅由表面的詞語(yǔ)的重復(fù)度來(lái)決定。,如下圖所示(摘自Thomas Huffman_ppt)。
二、LSI-Latent Semantic Indexing
針對(duì)缺點(diǎn)1,LSI(1990)將矩陣X進(jìn)行奇異值分解,然后只取一部分作為其特征,此過(guò)程其實(shí)就相當(dāng)于對(duì)X進(jìn)行pca降維。將原始的向量轉(zhuǎn)化到一個(gè)低維的隱含語(yǔ)義空間中,而保留下來(lái)的維度(根據(jù)奇異值大小決定)所對(duì)應(yīng)的奇異值就對(duì)應(yīng)了每個(gè)‘隱含語(yǔ)義’的權(quán)重,去掉的那些維度就相當(dāng)于把那些不重要的‘隱含語(yǔ)義’的權(quán)重賦值為0.
LSI的作者Deerwester稱由LSI得到的特征能夠捕獲一些基本的語(yǔ)義概念,例如同義詞等。個(gè)人理解,這是由pca的性質(zhì)決定的,。
LSI如其名字Latent Semantic Indexing,?旨在在詞頻矩陣X的基礎(chǔ)上找出latent semantic,潛藏的語(yǔ)義信息。
其缺點(diǎn)是:不能解決多義詞問(wèn)題;
個(gè)人理解:這種方法就像詞包模型一樣,有一定的道理,但沒(méi)有明確化,不像概率模型一樣具體化。原文中說(shuō)‘Given a generative model of text, however, it is not clear why one should adopt the LSI methodology’,個(gè)人覺(jué)得就是說(shuō)他的理論基礎(chǔ)不夠明白,所以后續(xù)推出PLSI,就是能夠從數(shù)學(xué)上,從理論上具有嚴(yán)格意義的說(shuō)明是怎么回事,到底是為什么有效,又怎么得出理論解。
?
三、pLSI-probabilistic LSI
(pLSI圖模型表示)
?
pLSI如上圖,其中D,Z,W分別表示文檔doc,主題topic,和單詞word,在pLSI中對(duì)每一個(gè)都進(jìn)行了建模,從文檔到主題,建模為混合模型,從主題到單詞也是一個(gè)混合模型,每個(gè)單詞都是從這個(gè)混合模型中抽取出來(lái)的,不過(guò)在pLSI中每個(gè)混合模型的成分都是multinomial分布,根據(jù)上圖,其中后驗(yàn)概率可以表示為:
p(z_k|d,w)=p(w|z_k)p(z_k|d)/sum_l(p(w|z_l)p(z_l|d))
用EM算法可以求解出各成分的參數(shù)。
?
個(gè)人理解:1.在pLSI中,每個(gè)doc已經(jīng)可以有多個(gè)topic,每個(gè)topic出現(xiàn)的概率不等,這一點(diǎn)在LDA中也有。只不過(guò)LDA比pLSI多了一層。
2.上述混合模型的理解:類比于混合高斯模型一樣,在混合高斯模型GMM中,是由多個(gè)高斯分布混合mixture而成的,在這里,每個(gè)混合模型的分量不是高斯分布,而是multinomial分布-多項(xiàng)式分布而已,而且區(qū)別于普通GMM,這里是有兩層結(jié)構(gòu)的,每一層都是一個(gè)混合模型,doc->topic層是一個(gè)混合模型,topic->word層也是一個(gè)混合模型,每個(gè)混合成分都是一個(gè)多項(xiàng)式分布,然后每個(gè)混合模型中包含了各個(gè)成分本身的參數(shù)和各個(gè)成分的權(quán)重的參數(shù)。
2.從上面這個(gè)圖可以看出在pLSI中已經(jīng)有了topic的概念,而且對(duì)于文檔-主題和主題-單詞兩個(gè)層面都進(jìn)行了建模(混合模型),但是也可以看出這個(gè)模型是對(duì)每一個(gè)文檔集的,每一個(gè)文檔集都對(duì)應(yīng)著模型的一堆參數(shù),如果新來(lái)一個(gè)文檔(不在原來(lái)的訓(xùn)練集里),就沒(méi)法處理。而LDA就可以不僅對(duì)已有的文本進(jìn)行估計(jì),也會(huì)對(duì)其他新的相似的文本給一個(gè)較高的probability。(注:在pLSI模型中,假設(shè)有k個(gè)topic,vocabulary長(zhǎng)度為V,對(duì)于這k個(gè)topic有M個(gè)mixture,那總共有kV+kM個(gè)參數(shù),這個(gè)數(shù)目是隨著M的增加而增加的,當(dāng)文本集中文檔數(shù)目太大時(shí)就會(huì)overfitting)。
3.每個(gè)文檔的表示就是一個(gè)list,其中的每個(gè)number表示了每個(gè)topic在其中的比例(mixing proportions)。這種表示,當(dāng)文本集很大時(shí),仍然會(huì)有很長(zhǎng)的一個(gè)list。
??????
四、LDA-latent dirichlet allocation
(LDA的圖模型表示)
然后,由其概率模型圖可以比較容易的得到模型如下:
推斷:
計(jì)算后驗(yàn)概率:
?
?
似然函數(shù)
?
?
這個(gè)式子中對(duì)于beta和aplha都有指數(shù)冪而相互耦合,兩個(gè)參數(shù)求導(dǎo)后都不能消掉,因此沒(méi)辦法直接用最大似然或者em求解,這時(shí)候引入變分推斷(variational inference)。變分推斷就是為了顧及后驗(yàn)分布,在無(wú)法直接對(duì)似然函數(shù)求解的情況下尋找一個(gè)似然函數(shù)的下界。然后利用EM的思想進(jìn)行迭代,讓這個(gè)下界逐次增大,達(dá)到最后收斂。
?
???????針對(duì)pLSI的缺陷,LDA很大的一個(gè)特點(diǎn)是將doc->topic這一層的mixture weights作為是一個(gè)k-d的隨機(jī)變量,而不是像pLSI一樣作為直接與訓(xùn)練集中的每個(gè)doc相關(guān)聯(lián)的參數(shù)集合。就是原文中的theta作為一個(gè)隨機(jī)變量。對(duì)于一個(gè)有k個(gè)topic的模型來(lái)說(shuō),他總共有k+kV個(gè)參數(shù)(alpha有k個(gè)參數(shù),beta有kV個(gè)參數(shù)),與訓(xùn)練集中的文檔數(shù)目M無(wú)關(guān)。
?
基礎(chǔ):無(wú)論是LSI,PLSI還是LDA都有一個(gè)假設(shè),就是無(wú)序性假設(shè)(exchangeability),即認(rèn)為文檔中的word的出現(xiàn)位置先后沒(méi)有關(guān)系,文檔集中的各個(gè)doc的位置也不計(jì)較先后關(guān)系。
???????在LDA中,文檔中topic的分布取為multinomial分布,其先驗(yàn)取為multinomial分布的共軛先驗(yàn)-dirichlet分布;而每個(gè)topic下word的分布也取為multinomial分布,其先驗(yàn)也取其共軛先驗(yàn)-dirichlet分布。
???????參考網(wǎng)址1,關(guān)于LDA中各個(gè)分布的一個(gè)通俗解釋如下:“我們可以假想有一位大作家,比如莫言,他現(xiàn)在要寫(xiě)m篇文章,一共涉及了K個(gè)Topic,每個(gè)Topic下的詞分布為一個(gè)從參數(shù)為的Dirichlet先驗(yàn)分布中sample出來(lái)的Multinomial分布(注意詞典由term構(gòu)成,每篇文章由word構(gòu)成,前者不能重復(fù),后者可以重復(fù))。對(duì)于每篇文章,他首先會(huì)從一個(gè)泊松分布中sample一個(gè)值作為文章長(zhǎng)度,再?gòu)囊粋€(gè)參數(shù)為的Dirichlet先驗(yàn)分布中sample出一個(gè)Multinomial分布作為該文章里面出現(xiàn)每個(gè)Topic下詞的概率;當(dāng)他想寫(xiě)某篇文章中的第n個(gè)詞的時(shí)候,首先從該文章中出現(xiàn)每個(gè)Topic下詞的Multinomial分布中sample一個(gè)Topic,然后再在這個(gè)Topic對(duì)應(yīng)的詞的Multinomial分布中sample一個(gè)詞作為他要寫(xiě)的詞。不斷重復(fù)這個(gè)隨機(jī)生成過(guò)程,直到他把m篇文章全部寫(xiě)完。這就是LDA的一個(gè)形象通俗的解釋。”
?
推斷:后驗(yàn)概率p(theta,z|alpha,beta,w)中theta與beta有指數(shù)冪不能直接求解,為此得用近似推斷的方法,文章中用的是變分推斷。變分推斷就是要找一個(gè)與原來(lái)的不能直接求解的后驗(yàn)概率等價(jià)或近似的函數(shù)q,這個(gè)函數(shù)要好解,一般最簡(jiǎn)單直接的方法就是假設(shè)q中各個(gè)參數(shù)獨(dú)立,形成q=product_n(q_n),這篇文章中選取的q為:
對(duì)應(yīng)的圖模型為
,也就是將原來(lái)的圖模型中的w節(jié)點(diǎn)去掉并且去掉了theta 與z之間的邊而得到近似。
在得到近似函數(shù)后,就通過(guò)求解最優(yōu)近似函數(shù)q的參數(shù)來(lái)得到原后驗(yàn)的參數(shù)。
?
?
?
?
?
?
雜七雜八說(shuō)了這么多,下面介紹幾個(gè)參考資料:
其他值得參考的資料:
1.http://blog.csdn.net/yangliuy/article/details/8330640,這里是一個(gè)系列,總共有5篇文章,從PLSA、em到LDA都有介紹,其中有pLSA的詳細(xì)實(shí)現(xiàn)過(guò)程;
2.?http://hi.baidu.com/hehehehello/item/677f9446b729a72210ee1e8b?,pLSI與LDA詳細(xì)的區(qū)別;
3.?http://hi.baidu.com/linecong/item/8c115b196232147a7b5f2598?,?
4.百度搜索官方博客:http://stblog.baidu-tech.com/?p=1190
5.丕子博文
6.關(guān)于LSA中用到的SVD奇異值分解可以參考之前轉(zhuǎn)的一篇文章: ?http://blog.sina.com.cn/s/blog_5033f3b40101a61t.html
7.plsa?http://moonwith.blog.163.com/blog/static/12368689120099220115495/
其他資源:以下摘自網(wǎng)絡(luò):
?(1)D. M. Blei, et al., "Latent Dirichlet allocation," Journal of Machine Learning Research, vol. 3, pp. 993-1022, 2003.
(2)T. L. Griffiths and M. Steyvers, "Finding scientific topics," Proceedings of the National Academy of Sciences, vol. 101, pp. 5228-5235, 2004.
(3)D. M. Blei, et al., "Hierarchical Topic Models and the Nested Chinese Restaurant Process," NIPS, 2003.
(4)Blei的LDA視頻教程:http://videolectures.net/mlss09uk_blei_tm/
(5)Teh的關(guān)于Dirichlet Processes的視頻教程:http://videolectures.net/mlss07_teh_dp/
(6)Blei的畢業(yè)論文:http://www.cs.princeton.edu/~blei/papers/Blei2004.pdf
(7)Jordan的報(bào)告:http://www.icms.org.uk/downloads/mixtures/jordan_talk.pdf
(8)G. Heinrich, "Parameter Estimation for Text Analysis," http://www.arbylon.net/publications/text-est.pdf
基礎(chǔ)知識(shí):
(1)P. Johnson and M. Beverlin, “Beta Distribution,” http://pj.freefaculty.org/ps707/Distributions/Beta.pdf
(2)M. Beverlin and P. Johnson, “The Dirichlet Family,” http://pj.freefaculty.org/stat/Distributions/Dirichlet.pdf
(3)P. Johnson, “Conjugate Prior and Mixture Distributions”, http://pj.freefaculty.org/stat/TimeSeries/ConjugateDistributions.pdf
(4)P.J. Green, “Colouring and Breaking Sticks:Random Distributions and Heterogeneous Clustering”, http://www.maths.bris.ac.uk/~mapjg/papers/GreenCDP.pdf
(5)Y. W. Teh, "Dirichlet Process", http://www.gatsby.ucl.ac.uk/~ywteh/research/npbayes/dp.pdf
http://www.stat.berkeley.edu/tech-reports/770.pdf
(7)T. P. Minka, "Estimating a Dirichlet Distribution", http://research.microsoft.com/en-us/um/people/minka/papers/dirichlet/minka-dirichlet.pdf
(8)北郵論壇的LDA導(dǎo)讀:[導(dǎo)讀]文本處理、圖像標(biāo)注中的一篇重要論文Latent Dirichlet Allocation,http://bbs.byr.edu.cn/article/PR_AI/2530?p=1
(9)Zhou Li的LDA Note:http://lsa-lda.googlecode.com/files/Latent Dirichlet Allocation note.pdf
(10)C. M. Bishop, “Pattern Recognition And Machine Learning,” Springer, 2006.
代碼:
(1)Blei的LDA代碼(C):http://www.cs.princeton.edu/~blei/lda-c/index.html
(2)BLei的HLDA代碼(C):http://www.cs.princeton.edu/~blei/downloads/hlda-c.tgz
(3)Gibbs LDA(C++):http://gibbslda.sourceforge.net/
(4)Delta LDA(Python):http://pages.cs.wisc.edu/~andrzeje/research/deltaLDA.tgz
(5)Griffiths和Steyvers的Topic Modeling工具箱:http://psiexp.ss.uci.edu/research/programs_data/toolbox.htm
(6)LDA(Java):http://www.arbylon.net/projects/
(7)Mochihashi的LDA(C,Matlab):http://chasen.org/~daiti-m/dist/lda/
(8)Chua的LDA(C#):http://www.mysmu.edu/phdis2009/freddy.chua.2009/programs/lda.zip
(9)Chua的HLDA(C#):http://www.mysmu.edu/phdis2009/freddy.chua.2009/programs/hlda.zip
轉(zhuǎn)載于:https://www.cnblogs.com/focus-ml/p/3713949.html
總結(jié)
以上是生活随笔為你收集整理的LDA-Latent Dirichlet Allocation 学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL存储过程权限检查主要点
- 下一篇: Javascript s08