LDA臨時筆記,待整理

weixin_34185560發表於2018-07-31

學習建議:

從大方向上把握LDA

1、先了解主題模型的歷史
可以通過了解主題模型的歷史,從基於統計學分佈的一元模型,多元混合模型,到基於貝葉斯的一元模型。再到pLSA,再到基於貝葉斯的LDA。
參考https://blog.csdn.net/pipisorry/article/details/42560693

2、再瞭解pLSA與LDA可以用來幹什麼
對於M篇文件,通過模型的計算,可以得到M篇文件中每一個文件下的主題分佈,每一個主題下的單詞分佈。
用處1,可以用此來得到每個文章之間的相似性(計算主題向量之間的距離即可,越小的說明越相似)。用處2,可以用來的到一篇文件的關鍵詞(不同主題下的前幾個概率最大的詞)
注意pLSA是統計觀點,是通過EM演算法求得。而LDA是貝葉斯觀點,通過Gibbs或者變分EM演算法可以求解得到模型引數。參考http://www.cnblogs.com/pinard/p/6873703.html

而對於新來的一篇文章,怎樣計算得到該文章的主題分佈呢?
pLSA類似於樸素貝葉斯, 仍然需要統計各種東西然後按照EM演算法的到的引數公式進行計算。
而LDA則通過Gibbs取樣的前半部分可以得到其主體分部。參考http://www.cnblogs.com/pinard/p/6873703.html

以上就是LDA基本原理,弄懂就可以呼叫LDA包了。要是想深挖下面的理論,還需要弄清許多推導的細節。

3、再具體瞭解LDA中的幾個基本概念都是什麼。

5945886-6f79f37a33fbb616.png

4、最後再看看LDA模型是怎麼得到以及怎麼求解引數(gibbs取樣)的。參考https://blog.csdn.net/yhao2014/article/details/51098037


LDA要乾的事情:根據給定的一篇文件,推測其主題分佈。
狄利克雷分佈,被稱為是分佈的分佈。

從一個分佈中取樣,得到的就是一個隨機變數X。
從一個分佈的分佈中取樣,得到的就是關於X的分佈。然後再從X的分佈中取樣,才能得到隨機變數X。

5945886-540f759aef69a0d7.png

對圖片中四句話的解釋:
狄利克雷分佈 是多項式分佈的 共軛先驗分佈。也就是說,已知先驗概率,是可以對X進行取樣的。

主題符合多項式分佈。於是,先取樣的到主題的分佈。
再從主題的分佈中取樣的到第j個單詞的主題。
單詞符合多項式分佈,再從狄利克雷beta中取樣得到單詞的分佈
再從單詞的分佈中取樣得到單詞。

順序統計量中Xk的分佈。先計算落在[x,x+detax]的概率。
通過上述推論,在區間中有一個X落在[x,x+detax]中的概率是P(E)。而這個X的取值可能有n個,所以情況會有Cnn-k種。

超過兩個的額情況就是高階無窮小。

於是可知落在區間中的概率,而連續分佈的概率密度,可以通過極限求得。

1、最終發現這個可以與gama函式聯絡起來。然後推出了beta分佈。

2、beta分佈中,beta是二項分佈的共軛先驗分佈,這一點從知乎,如何通俗理解beta分佈中可以得到結論。

經過最終計算beta的期望,發現最終E(p)等於alpha\alpha+beta,服從beta分佈的隨機變數的均值,都可以通過這個期望來得到。

5945886-07c2237739e1785f.png

EM演算法,推導過程也挺簡單,可以特意記一下公式。最終的引數jesen不等式,得到的引數值。

對於pLSA演算法,認為引數theta是固定引數,設定好引數以後,最終可以對此引數採用EM演算法,估計得到模型的兩個引數,使得能夠滿足極大似然,從而可以用於估計,分類。

注意,此時pLSA沒有考慮先驗分佈。而LDA考慮了先驗分佈,所以才需要加上兩個先驗概率。

5945886-e442191b36974d9d.png
5945886-e42aa86cba38a7e4.png
5945886-552880e81412139b.png
image.png
5945886-ce3312301551be7b.png
image.png
5945886-a3c703055bdfe738.png
image.png
5945886-d37e59ee126292d7.png
5945886-ff0dd77703f9cc17.png

最終求得狄利克雷概率分佈的期望值(知道其中任意元素的期望值,也就是一系列的概率分佈值也確定了)。

而alpha,beta引數也已知
所以,通過gibbs取樣,得到了兩個狄利克雷分佈。LDA模型需要的引數就已經知道啦。

LDA中,先根據狄利克雷分佈,取樣產生主題分佈,再根據主題分佈產生主題。(多了一步取樣產生主體分佈。因為在pLSA中認為主體分佈是固定的引數,不需要取樣的。)
再查查LDA在文字分類上的應用。

得到模型的引數以後,就可以對文字求得後驗概率,每個文字屬於某一個主題的概率也就可以確定了。主題相似的文字相似度就高。

LDA模型的一個簡單應用。

應用:將LDA模型應用於1篇文件,進行關鍵詞抽取。

方法與原理依據:LDA模型能夠得到每個主題生成每個詞的概率,那麼我們可以把每個主題中的TopK個詞取出來作為該文件的關鍵詞(移除重複出現的詞)。
對上面這句話的理解,就是,比如我們假定有5個主題,那麼我們可以根據LDA算出這篇文件屬於這五個主題的概率。然後這5個主題生成詞的概率我們也能知道,比如第1個主題生成每個詞的概率我們能夠得到,我們就取前兩個或者三個詞作為這個文字的關鍵詞。同理我們能得到十個或者十五個關鍵詞,再去重,取權重,就能得到這個文件的關鍵詞了。

與pLSA相比,貝葉斯化帶來的好處。

對於一篇新的文章,通過gibbs取樣,即可得到
這篇文章的主體分佈的引數。即可進行

這個利用看到的文件推斷其隱藏的主題(分佈)的過程(其實也就是產生文件的逆過程),便是主題建模的目的:自動地發現文件集中的主題(分佈)。

怎麼進行目的呢?即求得主題分佈呢?

5945886-252bd0b7dad0ab2c.png
5945886-758c1ff475fba954.png

pLSA中,把已知概率p(w,d)用兩個與主題有關的概率參數列示,然後利用極大似然函式,此時,未知引數與極大似然函式都已經具備,就可以進行EM演算法了。

https://www.cnblogs.com/fengsser/p/5836677.html

LDA的使用是上述文件生成的逆過程,它將根據一篇得到的文章,去尋找出這篇文章的主題,以及這些主題對應的詞。

5945886-a7f20b0d97595c45.png

是不是可以認為,在得到樣本x以後,就可以得到後驗分佈theta了,相當於一直x以後,該文件的主題也就都可以求得了。

pLSA的通過EM演算法求解,我們會得到兩分引數的估計。根據這兩個估計,我們可以求得每個文章中的主題分佈,每個主題下的單詞的分佈。
如下,其中LDA與pLSA類似。

5945886-8bdf515c2b5ecc2f.png

對於下圖中的pLSA,在已經訓練,得到這兩個引數以後,基於統計的思想,我們認為,這兩個引數是不變的。因為是矩陣,我們甚至可以求得每個文件下的主題分佈,每個主題下的詞的分佈。

類似於樸素貝葉斯,需要對許多資料進行統計,然後求得引數。
而對於來了一篇新的文章,想要得到該文章的主題分佈,以及主題下詞的分佈。就可以利用這兩個公式進行計算了。k等於5的話,文件i下面我們就能得到5個theta。


5945886-ec07a96f0ccd0fb0.png

LDA的求解方法:因為LDA基於貝葉斯學派的觀點,所以用別的演算法估計這兩個引數十分麻煩,可以用變分EM演算法或者gibbs取樣可以求得這兩個引數。

5945886-2b9913a838349a4f.png
![](http://upload-images.jianshu.io/upload_images/5945886-edbbad45fdd675af?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

而對於新的一篇文件,要得到文件的主題分佈,也是用gibbs取樣的前半部分求得。參考http://www.cnblogs.com/pinard/p/6867828.html


相關文章