關於LDA的gibbs採樣,為什麼可以獲得正確的樣本?

看了兩天LDA,暈乎乎的,有個問題實在想不明白,求教。。。

gibbs採樣是已知分布獲取樣本,但是LDA模型在採樣之前,具體的分布(轉移矩陣)是不知道的啊。。。只知道分布的表達式。。。

我看演算法裡面是隨機初始了一個分布,然後進行採樣,然後根據每次採樣的結果去更新分布,之後接著採樣直到收斂。這感覺像是雞生蛋蛋生雞啊,為什麼能保證採樣的結果是真實的

P(Z|W) 的樣本啊?(W是詞語向量,Z是每個詞對應的主題向量)


謝邀。

直接看LDA里的Gibs Sampling可能不是很好直接理解。

建議去看MCMC本來的解釋和收斂的證明。然後Gibs Sampling和MCMC是一樣的。

實際在做應用的時候,其實是不是真的能夠收斂到Exact的分布有時候也不是那麼的重要。首先LDA的假設就已經比較強了,然後比如說如果用Variantional Inference的方法做出來的也是近似解,但是也可以用,再來有時候收斂到最後也不見得比用hold-out data上early stop的好。

Gibs Sampling做LDA好還是好在簡單,速度夠快,然後收斂結果也不錯,理論是不是收斂到精確解其實有時候也是指導意義居多。


最近在學習LDA,開始也遇到了同樣的困惑,現將自己的認識記錄如下:

1.Gibss採樣並非需要已知樣本的分布。

Gibss採樣只是需要知道樣本中一個元素x_i,在其它所有元素
eg m x_i
eg m x_i表示除去x_i外的所有其他元素,為向量)當前狀態下的條件概率(即轉移概率),即p(x_i|
eg m x_i)。然後利用這個條件概率,來採樣各個樣本轉移後的狀態。具體演算法如下圖,其中x_i^{(t+1)}表示x_it+1時刻的狀態[1]。

2.何為樣本,何為樣本的狀態空間。

大多數LDA的資料,都沒有明確說明這一點,可能是對MCMC和Gibbs採樣很熟悉的同學,一下就能對應上,但是對於新手理解起來不是很直觀。

在LDA模型中,樣本是每個單詞w_{d,n}(d文檔的第n個單詞),狀態空間是樣本所屬的主題z_{d,n}。雖然LDA模型並不知道所有單詞在主題上的聯合分布,但是可以求出轉移概率[2]。

注意對於採用Gibbs採樣進行推斷的演算法,假設了Dirichlet先驗分布參數alpha_k=alpha_j=alphaeta_k=eta_j=eta

至此,採用Gibbs採樣:

(1)隨機給定每個單詞的主題。

(2)根據轉移概率依次產生每個單詞的新的主題。

(3)收斂後,得到的採樣極為所求的採樣。[1]LDA數學八卦

[2]Parameter estimation for text analysis


簡單的來說,轉移矩陣是知道的,可以從條件分布得到


Gibbs是已知p(x), 求p(x)的採樣. 然後樣本代入p(x)得到一系列 p(xi|x_{i}), 用這些分布去迭代.
是否知道p(x)其實沒什麼關係,它的用處就是推出p(xi|x_{i}), 只要知道p(xi|x_{i}), 就能用Gibbs求p(x)的採樣.

而LDA這裡是已知p(z,w), 但要求的不是p(z,w)的採樣, 因為w是已知的, 要求p(z|w)的採樣, 而p(zi|z_{i}, w)可計算出, 所以也就是能通過Gibbs求p(z|w)的採樣.


建議你去看看 LDA數學八卦 , 講的很清晰易懂,為什麼要用gibbs,就是因為,MCMC的特性是最終收斂的狀態,與初始分布狀態無關,只與轉移矩陣p有關。


正好前一段時間看過一些lda的東西,在這裡希望能為題主提供一些幫助。

1.首先明確一下MCMC方法。

當我們面對一個未知或者複雜的分布時,我們經常使用MCMC方法來進行分布採樣。而採樣的目的是得到這個分布的樣本,通過這些樣本,我們就能明確出該分布的具體結構。所以MCMC本身就是解決無法直接採樣或理解的分布問題的,所以不是對已知分布進行採樣。

而gibbs採樣時MCMC方法的一種改進策略,所以解決的是一類問題。在LDA中,後驗概率無法直接取得,我們通過gibbs採樣的方法去採樣該分布,從而得到模型結構。

2.關於gibbs採樣正確性,或者雞生蛋蛋生雞的說法。

關於gibbs採樣的正確性,即能夠得到正確的結果。基本層面是MCMC方法的正確性問題,因為gibbs採樣只是MCMC方法的變種,即升級接受概率為1,關於這方面的證明過比較專業,題主可以去查詢相關的資料。

而在實際中雞生蛋蛋生雞的問題,建議題主可以從EM演算法了解下手,即含有隱變數時的參數估計問題,相信題主能夠得到一些答案。


Gibbs Sampling或者說更一般的MCMC演算法,本來就可以保證對於任意初始分布(或者應該說不叫分布吧,就是一組初值),迭代能收斂到真實分布。和LDA本身沒什麼關係。


推薦看一下《LDA 漫讀指南》,個人覺得gibbs 這一塊,它講的挺不錯的,還有數學八卦,輔助看。


推薦閱讀:

有沒有可能對門戶網站爬下來的新聞做主題分類?
增強學習在推薦系統有什麼最新進展?

TAG:機器學習 | 自然語言處理 | LDA |