天天看點

LDA的Gibbs 采樣1 馬爾可夫鍊參考

1 馬爾可夫鍊

LDA的Gibbs 采樣1 馬爾可夫鍊參考

馬爾可夫鍊(Markov Chain),描述了一種狀态序列,其每個狀态值取決于前面有限個狀态。馬爾可夫鍊是具有馬爾可夫性質的随機變量的一個數列。這些變量的範圍,即它們所有可能取值的集合,被稱為“狀态空間”,而

LDA的Gibbs 采樣1 馬爾可夫鍊參考

的值則是在時間n的狀态。如果

LDA的Gibbs 采樣1 馬爾可夫鍊參考

對于過去狀态的條件機率分布僅是

LDA的Gibbs 采樣1 馬爾可夫鍊參考

的一個函數,則

LDA的Gibbs 采樣1 馬爾可夫鍊參考

這裡x為過程中的某個狀态。上面這個恒等式可以被看作是馬爾可夫性質。

馬爾可夫鍊是滿足馬爾可夫性質的随機過程。

LDA的Gibbs 采樣1 馬爾可夫鍊參考

馬爾可夫鍊的穩态:

LDA的Gibbs 采樣1 馬爾可夫鍊參考

無論最初的狀态是什麼樣子的,最終的穩态分布的矩陣是固定的,其中所有行是相同的,表示下一個狀态的分布向量。

LDA的Gibbs 采樣1 馬爾可夫鍊參考

q是無窮維狀态轉移的馬爾可夫鍊的穩态分布

LDA的Gibbs 采樣1 馬爾可夫鍊參考

MCMC,第一個MC是蒙特卡洛随機過程;第二個MC是馬爾可夫鍊,表示存在穩态。

因為馬爾可夫鍊存在穩态分布,是以可以通過足夠步後的采樣來猜測最終的穩态分布q。

LDA的Gibbs 采樣1 馬爾可夫鍊參考

LDA中Gibbs采樣計算時使用條件機率

LDA的Gibbs 采樣1 馬爾可夫鍊參考

使用gibbs采樣是因為我們認為LDA最終的zij或者說doc-topic和topic-word存在穩态分布。我們要做的就是不斷的疊代采樣。 上圖中zij是i個doc總j詞所屬topic的index。 (最初的zij是随機初始化,依據zij可以求doc-topic, topic-word. )最終的目的是求得穩定的doc-topic, topic-word。

具體步驟

在LDA最初提出的時候,人們使用EM算法進行求解,後來人們普遍開始使用較為簡單的Gibbs Sampling,具體過程如下:

  1. 首先對所有文檔中的所有詞周遊一遍,為其都随機配置設定一個主題,即zm,n=k~Mult(1/K),其中m表示第m篇文檔,n表示文檔中的第n個詞,k表示主題,K表示主題的總數,之後将對應的n(k)m+1, nm+1, n(t)k+1, nk+1, 他們分别表示在m文檔中k主題出現的次數,m文檔中主題數量的和,k主題對應的t詞的次數,k主題對應的總詞數。
  2. 之後對下述操作進行重複疊代。
  3. 對所有文檔中的所有詞進行周遊,假如目前文檔m的詞t對應主題為k,則n(k)m-1, nm-1, n(t)k-1, nk-1, 即先拿出目前詞,之後根據LDA中topic sample的機率分布sample出詞t的新的主題(例如原先t是topic3, 更新後可能是topic5了),在對應的n(k)m, nm, n(t)k, nk上分别+1。 這裡采用了條件機率估計樣本,比聯合機率簡單。

Gibbs Sampling通過求解出主題分布和詞分布的後驗分布,進而成功解決主題分布和詞分布這兩參數未知的問題。

參考

http://www.voidcn.com/blog/u014568921/article/p-4904074.html

http://blog.csdn.net/v_july_v/article/details/41209515

繼續閱讀