天天看點

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

小記: 很長一段時間沒有更新部落格了,因為工作比較忙,也沒有回答一些朋友的問題, 非常抱歉。 這篇LDA的總結已經寫好了有三個多月, 一直沒有時間發到CSDN上, 今天周末, 本來打算在很火爆的國内MOOC上學學java,但是簡單看了看,感覺水準都比較一般, 是以看不下去了,還是把這個LDA 總結一下。 

ps: 網上也有很多總結的,但是大部分都不是很系統,目前覺得july總結的最好了,但是不得不說,我自己的這份總結要比july總結的早一點,但是遠遠沒有他總結的那麼好。

ps2: 實在受不了CSDN的排版系統了,真心不知道CSDN的工程師們都在做什麼。。。

LDA 概述

—— watkins.song

在詳細的講LDA之前, 先需要了解一些基本概念。

1. MCMC and Gibbs Sampling

reference:http://www.52nlp.cn/lda-math-mcmc-%E5%92%8C-gibbs-sampling1

MC(蒙特卡羅方法(Monte Carlo Simulation)) 是統計模拟的方法, 用來進行在連續的機率分布函數中進行采樣模拟統計分布。 MC針對的問題是給定一個機率密度函數 p(x) 如何在計算機中生成這個機率密度函數的樣本。

當p(x) 不是很複雜的時候, 可以采用[Box-Muller 變換] 将p(x)轉換到均勻分布然後采用線性同餘發生器擷取樣本, 但是當p(x)非常複雜的時候, 就需要别的方法。

當p(x)比較複雜的時候, 或者p(x)是高維分布的情況, 例如p(x)是以下情況時:

  • p(x)=p˜(x)/∫p˜(x)dx,而p˜(x) 我們是可以計算的,但是底下的積分式無法顯式計算。
  • p(x,y) 是一個二維的分布函數,這個函數本身計算很困難,但是條件分布 p(x|y),p(y|x)的計算相對簡單;如果p(x) 是高維的,這種情形就更加明顯。

此時就需要使用一些更加複雜的随機模拟的方法來生成樣本。MCMC(Markov Chain Monte Carlo) 和 Gibbs Sampling算法就是最常用的一種,這兩個方法在現代貝葉斯分析中被廣泛使用。

總結:  因為有些機率密度函數比較難計算, 是以需要采用MCMC或者Gibbs Sampling這些模拟統計的方法進行采樣計算機率密度函數, 降低機率密度函數的計算複雜度。

2. Markov Chain

馬氏鍊的數學定義很簡單:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

也就是狀态轉移的機率隻依賴于前一個狀态。

我們先來看馬氏鍊的一個具體的例子。社會學家經常把人按其經濟狀況分成3類:下層(lower-class)、中層(middle-class)、上層(upper-class),我們用1,2,3 分别代表這三個階層。社會學家們發現決定一個人的收入階層的最重要的因素就是其父母的收入階層。如果一個人的收入屬于下層類别,那麼他的孩子屬于下層收入的機率是 0.65, 屬于中層收入的機率是 0.28, 屬于上層收入的機率是 0.07。事實上,從父代到子代,收入階層的變化的轉移機率如下:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

使用矩陣的表示方式,轉移機率矩陣記為

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

假設目前這一代人處在下層、中層、上層的人的比例是機率分布向量π0= [π0(1),π0(2),π0(3)], 那麼他們的子女的分布比例将是 π1=π0P,  他們的孫子代的分布比例将是 π2=π1P=π0P2, ……,  第n代子孫的收入分布比例将是πn=πn−1P=π0Pn。

假設初始機率分布為π0=[0.21,0.68,0.11],則我們可以計算前n代人的分布狀況如下:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

我們發現,當n 足夠大的時候,這個Pn矩陣的每一行都是穩定地收斂到π= [0.286,0.489,0.225] 這個機率分布。自然的,這個收斂現象并非是我們這個馬氏鍊獨有的,而是絕大多數馬氏鍊的共同行為。

所有的 MCMC(Markov Chain Monte Carlo) 方法都是以這個定理(Markov Chain定理)作為理論基礎的。

從初始機率分布π0 出發,我們在馬氏鍊上做狀态轉移,記Xi的機率分布為πi, 則有

X0∼π0(x)

Xi∼πi(x)πi(x)=πi−1(x)P=π0(x)Pn

由馬氏鍊收斂的定理, 機率分布πi(x)将收斂到平穩分布π(x)。假設到第n步的時候馬氏鍊收斂,則有

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

是以Xn,Xn+1,Xn+2,⋯∼π(x) 都是同分布的随機變量,當然他們并不獨立。如果我們從一個具體的初始狀态 x0 開始,沿着馬氏鍊按照機率轉移矩陣做跳轉,那麼我們得到一個轉移序列 x0,x1,x2,⋯xn,xn+1⋯, 由于馬氏鍊的收斂行為, xn,xn+1,⋯ 都将是平穩分布 π(x) 的樣本。

總結: Markov Chain 是一個狀态轉移的公式, 并且狀态轉移最終會實作收斂, 就像PageRank算法的網頁相關性矩陣最終收斂差不多。 最終收斂以後就可以在收斂以後的機率分布函數下進行采樣了。

劇透: 在LDA中為什麼要使用Gibbs Sampling? 因為在LDA中根據M篇文檔以及每篇文檔的單詞的topic分布, 計算了一個聯合機率公式:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

這個聯合機率公式是非常難計算的, 是以需要采用Gibbs Sampling算法進行采樣計算這個聯合機率公式。 在這個公式中, 那麼Markov Chain的轉換, 是要讓誰達到收斂狀态呢? 因為

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

是已經觀測到的樣本, 是以不要計算,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

是初始計算時随機配置設定的topic, 是以最終的目的是要達到

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

實作收斂, 這樣在LDA的plate model中的每篇文檔對應的topic 分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

和每個topic下對應的term的分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

就自然也是收斂的了, 就可以通過

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

計算LDA模型的兩種多項分布的參數。

3. 繼續MCMC and Gibbs Sampling

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution & Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

MCMC中存在一個稱為接受率的概念,  α(i,j), 一般q(i,j)表示從狀态i 轉移到狀态 j.

對于高維的情形,由于接受率α的存在(通常α<1), 以上 MCMC及變種算法的效率不夠高。是以可以采用Gibbs Sampling提高狀态轉換效率以達到最快的實作收斂的機率分布狀态。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

二維Gibbs Sampling 算法中的馬氏鍊轉移

Gibbs Sampling 算法大都是坐标軸輪換采樣的,但是這其實是不強制要求的。最一般的情形可以是,在t時刻,可以在x軸和y軸之間随機的選一個坐标軸,然後按條件機率做轉移,馬氏鍊也是一樣收斂的。

将2維的Gibbs Sampling算法擴充到N維的采樣算法, Gibbs Sampling過程中狀态轉換隻是沿着一個坐标軸, 也就是說隻沿着一個随機變量進行狀态轉換, 是以n維空間中對于機率分布p(x1,x2,⋯,xn) 可以如下定義轉移矩陣:

  1. 如果目前狀态為(x1,x2,⋯,xn),馬氏鍊轉移的過程中,隻能沿着坐标軸做轉移。沿着xi這根坐标軸做轉移的時候,轉移機率由條件機率p(xi|x1,⋯,xi−1,xi+1,⋯,xn) 定義;
  2. 其它無法沿着單根坐标軸進行的跳轉,轉移機率都設定為 0。
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

以上算法收斂後,得到的就是機率分布p(x1,x2,⋯,xn)的樣本,當然這些樣本并不獨立,但是我們此處要求的是采樣得到的樣本符合給定的機率分布,并不要求獨立。

總結 &劇透: 在Gibbs Sampling過程中, 每次狀态轉換隻沿着一個變量(或者可以說是一個坐标軸)進行, 變量之間的順序可以采用輪循。 在LDA中, Gibbs Sampling采樣的過程相當于對于所有的文檔的所有的單詞, 也就是整體語料庫裡面的每一個單詞都當作一個随機變量, 每一次采樣的時候都選取一個單詞作為随機變量, 然後根據除了這個單詞的所有其他的語料決定目前單詞的下一個狀态(要配置設定的topic編号), Gibbs Sampling的過程就是不停的循環對所有的單詞從新估計topic分布, 知道topic編号分布實作收斂, 不再變化, 這樣就對應于最終的每篇文檔的topic分布和每個 topic下 term的多項分布。

4. Gamma函數

Gamma函數:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

通過分部積分的方法,可以推導出這個函數有如下的遞歸性質:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Γ(x) 函數可以當成是階乘在實數集上的延拓, 如果x是整數, Gamma函數的定義則為:

Γ(n)=(n−1)!

Gamma函數将階乘由整數域擴充到了實數域, 同時将倒數的計算由整數域擴充到了實數域。

與Gamma函數相關的一個函數:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Gamma 分布在機率統計領域也是一個萬人迷,衆多統計分布和它有密切關系。指數分布和χ2分布都是特殊的Gamma 分布。另外Gamma 分布作為先驗分布是很強大的,在貝葉斯統計分析中被廣泛的用作其它分布的先驗。如果把統計分布中的共轭關系類比為人類生活中的情侶關系的話,那指數分布、Poission分布、正态分布、對數正态分布都可以是 Gamma 分布的情人。

總結: Gamma函數實作了将階乘和倒數的計算擴充到實數域, 并且Gamma分布也是很多配置設定的先驗分布。 之是以在這裡簡單的提一些Gamma分布, 是因為在Beta分布和Dirichlet分布中用到了Gamma函數。

5.  Beta Distribution & Dirichlet Distribution

Beta Distribution

Beta函數的定義為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

這個就是一般意義上的 Beta 分布!可以證明,在α,β取非負實數的時候,這個機率密度函數也都是良定義的。 上面公式中, x 可以了解為二項分布中的事件發生的機率p。

Beta分布也可以将f(x) 換成p(x) , 即表示x的機率分布函數。 α,β 的實體意義是僞計數, pseudo-count, 因為beta分布是二項分布的參數的分布, 是以α,β 作為僞計數的情況下, beta分布可以了解為二項分布的先驗分布。 因為二項分布存在兩種情況: 發生和不發生, 是以對應的先驗分布(beta分布)有兩個參數α和β, α,β分别作為二項分布的先驗分布的僞計數, 即我們的先驗知識告訴我們這兩種時間發生的次數。

Beta分布稱為二項分布的共厄先驗分布, 因為:

Beta(p|α,β)+Count(m1,m2)=Beta(p|α+m1,β+m2)

上面公式可以看出, 二項分布的參數p的後驗機率分布也服從Beta分布。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

百變星君Beta分布

Beta分布可以了解為二項分布的參數p的先驗分布, 在二項分布加上觀測資料以後可以得到二項分布的參數p的後驗分布也是beta分布。

Beta分布的一些性質計算:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Dirichlet Distribution

Dirichlet分布是由Beta分布衍生來的, Dirichlet分布是多項分布的參數p的先驗分布。 在一個多項分布中, 每一項的機率pi如何确定? 在Bayesian學派認為, 多項分布的參數p應該是服從一個機率分布的, 可以認為服從Dirichlet分布, 也就是說Dirichlet分布是多項分布的參數的分布, 被認為是“分布上的分布”。

Dirichlet分布的定義:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

上面公式中,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

為Dirichlet分布的參數, 即多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的分布的參數。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的實體意義和Beta分布中的僞計數α和β一樣, 表示在先驗知識中每種事件發生的僞計數。

另外, Dirichlet分布還可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

就是歸一化因子

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

一般在應用中采用對稱的Dirichlet分布,他和Beta 分布一樣也是一個百變星君,密度函數可以展現出多種形态。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

不同α 下的Dirichlet 分布

在多項分布中, 多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布也服從Dirichlet分布,  并且Dirichlet分布和多項分布互為共厄分布。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

如果p∼Beta(t|α,β), 則

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

如果

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Dirichlet分布中存在兩個比較重要的參數, “the scale or the concentration”

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

,  還有 “base measure” i' =i0 。

在LDA模型中, 每篇文檔的topic分布服從一個多項分布, 同時這個topic分布(多項分布)的參數又服從一個Dirichlet分布。 每一篇文檔的都對應一個不同的topic分布, 即多項分布。 同時, LDA中的每個topic下存在一個term的單詞多項分布, 即每個topic下的單詞都服從多項分布, 并且每個topic對應的多項分布的參數都服從一個Dirichlet分布, 這也是為什麼LDA的名字由來, 因為存在兩個隐含的Dirichlet分布。

6. 文本模組化 Unigram Model

在文本中,每一篇文檔都可以看作若幹詞的組合,  d=(w1,w2,⋯,wn)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA為生成模型, 同時Unigram Model也為生成模型。 Unigram Model是把所有的文檔的詞都作為一個語料庫, 并且所有的詞的分布都服從同一個多項分布, 即每個詞出現的機率。 也就是所有的這些詞組成的字典中, 每個詞的頻率。 假設詞典總共有V個詞, 那麼多項分布的情況種類就有V個, 多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的次元為V。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

有個每個詞的出現的機率,  就可以計算語料庫中每個文檔的生成機率:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的生成機率為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

語料庫中的文檔可以認為是相對獨立的, 是以每個文檔之間是沒有相關性的, 是以可以獲得整個語料庫的生成機率,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 語料庫的機率為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

假設語料中總的詞頻是N, 在所有的 N 個詞中,如果我們關注每個詞 vi 的發生次數 ni,那麼

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

正好是一個多項分布, 該多項分布的機率為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

此時, 語料的機率是:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

注意: 要特别區分多項分布的機率計算公式和語料的生成機率計算公式, 語料的生成機率計算公式中沒有全排列計算, 因為在語料中不用考慮文檔以及單詞的出現順序。

我們很重要的一個任務就是估計模型中的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

,也就是問上帝擁有的這個骰子的各個面的機率是多大,按照統計學家中頻率派的觀點,使用最大似然估計最大化P(W),于是參數pi的估計值就是:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

然而, 在上面的基礎上, 貝葉斯學派認為上帝隻有一個骰子是不對的, 應該上帝有無數多的骰子, 隻是在生成語料庫的時候上帝随機的選了一個。 這就是說, 生成語料庫的模型參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

(也就是多項分布的參數)應該是服從一個機率分布的, 上帝選擇一個骰子的意思就是在

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的分布上進行采樣獲得一個具體的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的取值,然後根據将這個取值作為多項分布的參數。 這個時候, 一般認為

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

服從Dirichlet分布。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Dirichlet分布則可以認為是多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的先驗分布。

在貝葉斯學派的遊戲規則的假設之下,語料W産生的機率如何計算呢?  因為W中每個單詞出現的機率是受

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

影響的, 而

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

本分服從一個Dirichlet分布,是以要對所有的可能存在的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的情況進行全機率計算。 連續變量則進行積分計算:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

在上面的公式中,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

應該如何計算? 對先驗分布的一個比較好的選擇就是多項分布對應的共轭分布,即 Dirichlet 分布:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

就是歸一化因子

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Unigram Model的機率圖模型

之前提到了以下的概念:

Dirichlet 先驗 + 多項分布的資料→ 後驗分布為 Dirichlet 分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

是以, 在給定語料庫的基礎上, 可以得知多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布也服從Dirichlet分布, 我們可以計算

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

計算得到參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布以後, 就可以根據後驗機率分布計算參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的估計了, 可以根據後驗機率分布的期望計算參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的平均取值, 作為

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的估計值。

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布為

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 于是:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

αi 在 Dirichlet 分布中的實體意義是事件的先驗的僞計數,這個估計式子的含義是很直覺的:每個參數的估計值是其對應事件的先驗的僞計數和資料中的計數的和在整體計數中的比例。

進一步,我們可以計算出文本語料的産生機率為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

總結: 在Unigram Model中, 所有的文檔中的所有的單詞都被看作屬于統一個語料庫, 并且都服從同樣的分布(這一點和LDA是不同的, 在LDA中每一個文檔都有自己的topic分布, 并且每一個topic都有自己對應的term分布)。 貝葉斯學派認為每個單詞的出現機率服從多項分布, 即要生成一個新的單詞有V中選擇, 針對V中選擇有V個不同的機率, 即構成

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

。多項分布的參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

又是一個服從Dirichlet分布的随機變量。

7. PLSA

Unigram Model過于簡單, 但是很好的解釋了多項分布參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的計算過程, 同時了解生成模型的過程。

在生活中, 寫一篇文檔總是要先決定這個文檔包含哪些主題, 以及每個主題的權重(這可能就對應LDA中的每篇文檔的topic分布), 然後确定了該文檔包含哪些主題以後, 就需要确定在這個主題下選擇該主題下的哪些能夠表達該主題的單詞(對應于每個主題的term分布), 然後重複選擇主題和根據主題選擇單詞的這個過程就可以最終擷取一篇指定單詞數量的文章。

生成一個文本的生成模型描述:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

上面描述中, 上帝先對一篇文檔選擇了一個骰子, 即确定了這篇文檔的主題分布, 因為是從無數的骰子中選擇的, 是以也對應了每篇文檔的主題分布的參數也服從一個分布(Dirichlet分布), 然後根據這個doc-topic骰子進行topic選擇, 得到topic以後再選擇對應的topic-word分布, 從中選擇單詞。 在PLSA中每一個topic都對應一個 term 的多項分布, 這些多項分布可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 每一個文檔都對應于一個topic分布, 可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 如果每個單詞有一個編号, 那麼一篇文檔中每個詞的生成機率為: (全機率公式)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

然後可以得到一篇文檔的生成機率:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

然後就可以根據EM算法求解模型的參數。

總結: 貌似PLSA并沒有利用Dirichlet分布, 每篇文檔對應的topic分布以及每個topic對應的term分布都沒有采用Dirichlet分布作為多項分布的先驗分布, 沒有充分利用貝葉斯理論, 是以在後來提出了基于貝葉斯理論并且使用Dirichlet分布作為先驗分布的LDA模型。

8. LDA詳解

在了解了上面那麼多基本知識以後, 終于要聊聊LDA了, 我在最早接觸LDA的時候發現沒有上面的基礎知識看LDA真的很費勁。

首先要講Gibbs Sampling和模型的參會的inference, 最早我了解LDA的最大的困惑在于為神馬要采用Gibbs Sampling, 事實上采用Gibbs Sampling是為了降低參數估計的複雜度, 能夠實作參數估計。這個接下來會詳細說明。

8.1 混合模型 & 生成模型

LDA是一個生成模型, 生成模型的示例圖如下圖所示:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

對于LDA生成模型的了解: 假定我們需要寫一篇文章, 那麼這個文章可能包含多個主題, 也就是說我們先要決定我們的文章由哪些主題構成, 這些主題所占的比例如何。 有了主題分布, 也就對應于

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

(每篇文章的主題分布),  有了主題分布, 我們就開始寫文章, 在決定寫一個單詞的時候, 根據上圖的模型, 先要由主題分布決定這個單詞所屬的topic, 然後有了這個單詞的topic, 在根據每個topic下面的term的分布選擇應該采用哪個單詞。 這樣重複這個過程就可以獲得一篇有n個單詞的文章。

LDA 生成模型中,M 篇文檔會對應于 M 個獨立的 Dirichlet-Multinomial 共轭結構; K 個 topic 會對應于 K 個獨立的 Dirichlet-Multinomial 共轭結構。 LDA中, 每個文章都有自己的topic分布, 每個topic都對應于自己的term分布, 所有的doc-topic分布的參數都服從Dirichlet分布, 所有的topic-term分布的參數都服從Dirichlet分布。

LDA生成模型的算法過程描述如下:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

因為LDA中包含了多個多項分布, 是以LDA稱為混合模型, 在LDA中, 一個單詞t出現的機率應該符合全機率公式, 即在所有的topic中這個單詞出現的機率和:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA需要計算的不是全局的topic分布(global topic proportion), 而是要以文檔為機關的基礎上一個單詞的topic分布。 這樣, 可以得知LDA inference的目的為: (1)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 即為每個topic下的term分布, (2)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 每個文檔對應的topic分布。 最終要估計的是兩個參數:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

8.2 Likelihoods

根據LDA模型, 對于一個文檔m 的完全資料的似然估計(關于所有的已知和未知參數的聯合分布)為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

注釋: 這裡我一直覺得 “word plate”的範圍錯了, 我覺得不應該包括連乘符号。而且, 連乘後邊繼續放一個圓點後放一個條件機率, 容易讓人誤會圓點以後的機率也是對于所有的word都進行乘法操作。

在文檔m中, 一個單詞t出現的機率為 (通過計算Zm,n的邊緣分布, 并且忽略多項分布的參數分布)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

由每個單詞出現的機率, 我們可以計算整個語料庫的生成機率:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

上面公式給出了兩個參數的似然估計, 雖然LDA雖然是比較簡單的模型, 但是直接推斷這個模型的參數是非常困難的, 可以采用近似推斷算法。 是以需要采用Gibbs Sampling進行采樣估計。

8.3 Inference via Gibbs Sampling

在LDA模型中,隐藏的模型變量為 Zm,n, (Zm,n 表示文檔m中第n個單詞的 topic值), 之前一直在說要用Gibbs Sampling, 這裡Zm,n 就相當于Markov Chain中的狀态變量, 當Z 收斂以後, 整個語料庫的每個文檔的topic分布以及每個topic對應的term分布也就收斂了, 也就是

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

都實作收斂, 最終可以計算LDA的兩個多項分布的參數。

Inference的目的是計算如下公式的機率(其中Zi = Zm,n , 這裡是為了友善表示):  (因為在給定觀測樣本

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的基礎上, 計算得到Z的機率分布即可以獲得整個LDA模型的所有參數, 即

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

,  計算

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

機率分布的目的就是看所有的語料庫的單詞對應的topic分布是否已經收斂了, 如果已經收斂則可以利用Z 計算得到模型參數。 因為上面提到Zm,n對應于Markov Chain的狀态變量, 是以對于不同的狀态的Z會有不同的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

機率分布, 但是當Z收斂以後,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

應該不會再變化。 這裡說了好多為什麼要推斷

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 應該很清楚了。)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

但是上面公式中的分母部分很難計算求得, 這就需要采用Gibbs Sampling來發揮作用了(發揮作用的意思不是可以用Gibbs Sampling計算分母, 而是采用Gibbs Sampling獲得收斂的Z)。需要利用Gibbs Sampling 的全條件機率分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

去模拟

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

。 關于Gibbs Sampling的公式, 存在以下的分析。

Gibbs Sampling是一個特殊的MCMC, 并且在采樣過程中輪流對不同的次元xi 進行采樣, 在對次元xi采樣的時候, 利用所有的其他的不包含xi 的次元的機率分布計算xi 的新的采樣值, 不包含xi 的次元可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

Gibbs Sampling的過程描述如下:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

為了擷取一個Gibbs Sampling采樣器, 必須得到一個univariate conditionals (or full conditionals)

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

對于包含隐含變量Z, 并且诶已知後驗機率分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的模型, Gibbs 采樣器可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

在這個Gibbs采樣器中有一個聯合機率分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 我們需要計算這個聯合機率分布才能獲得具體的Gibbs采樣器。

8.4 聯合機率分布

聯合機率分布可以表示為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

我們把這個公式分成兩個部分分别計算, 首先是

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

(給定語料庫中每個單詞的topic值, 根據topic值獲得語料庫的生成機率), 得到:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

如果表示為另外一種形式, 則得到:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解
LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

是關于

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的分布, 是以

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的計算可以通過對

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

進行積分得到:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

同樣的,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

也可以通過以下公式得到:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

然後可以通過對

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

進行積分計算

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

最後得到聯合機率分布的結果:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

結合上面提到的Gibbs采樣器公式和聯合機率公式, 可以最終得到Gibbs Sampling的采樣公式為:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

注釋:  當看到得到這個公式以後, 我最初很迷茫有了這個公式到底怎麼采樣? 得到的就是一個機率, 采毛樣。。。。 , 後來看了資料以後, 是需要計算目前的term (單詞) 所有對應的 k 的機率取值, 這樣就獲得的所有的 K 個 新的這個單詞将要劃分的topic的值, 然後生成随機數在這個K 個topic中選擇 這個單詞 需要重新劃分的topic 。 對于所有的單詞都進行這個過程操作, 直到 Z 收斂以後。

8.5 參數估計

根據以前提到的Dirichlet分布的特征可以得知, LDA模型中對應的每個文檔的topic分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

和每個 topic下term的分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

都服從Dirichlet分布, 并且

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率分布也服從Dirichlet分布:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

其中,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

表示第 m 篇文檔中每個topic的單詞數量向量(次元為 K),

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

表示第 k 個topic下 詞典 V 中 每個單詞在整個語料庫中出現的次數 (次元為 V) , 其中,

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

都可以根據Gibbs Sampling采樣達到收斂狀态後的 Z 統計得到(計算很簡單)。 然後可以得到模型的參數計算:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

終于通過各種分析, Gibbs Sampling計算得到了LDA的模型參數, 并且在計算LDA的Gibbs Sampling 過程中計算了聯合機率分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

其實在最初看論文的過程中最大的問題就是思維比較混亂, 不知到哪裡的公式為什麼使用, 為什麼要計算聯合機率分布, 為什麼要計算

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 等到多看幾遍論文以後, 便發現所有的論證都是圍繞着Gibbs Sampling進行的, 都是在為引出或者計算Gibbs Sampling公式服務的。

Gibbs Sampling的過程描述如下:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

8.6 new come document

對于未知的新來的文檔, 如何根據已經訓練好的模型将文檔表示為 topic 的向量或者擷取文檔的topic特征呢?

對于一個 query document , 可以看作 term 向量

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 我們可以在已有的LDA模型參數的基礎上計算 query document的 topic分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的後驗機率, 也可以計算文檔的topic分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

。 計算得到文檔的 topic則可以根據這個topic分布的向量計算文檔之間的相似度。

計算query document 的topic分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

的過程和LDA模型的參數估計過程有一些差別, (1) 在query document的Gibbs采樣過程中使用LDA模型中已經得到的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

和訓練模型的時候使用的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

,  在query document的 topic分布計算過程中需要使用 已經得到參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

, 即我們假設所有的topic對應的term分布都符合從語料庫中得到的參數。 (2) 參數

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

隻對測試文檔有效。(不知到了解的對不對。。。。)

和Gibbs Sampling一樣, 首先給query document 的每一個word随機配置設定一個 topic , 然後進行Gibbs Sampling, 知道query document的

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

實作收斂, 采樣公式如下所示:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

有了上面公式的Gibbs Sampling采樣過程以後, 到達

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

收斂之後, 就可以計算query document 的topic 分布

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

了:

LDA: 從頭到尾徹底了解LDA (Latent Dirichlet Allocation) 1. MCMC and Gibbs Sampling 2. Markov Chain 3. 繼續MCMC and Gibbs Sampling 4. Gamma函數 5.  Beta Distribution &amp; Dirichlet Distribution 6. 文本模組化 Unigram Model 7. PLSA 8. LDA詳解

這裡還有個大疑問: 在進行Gibbs Sampling的過程中, 怎麼确定(計算) Z 已經收斂了呢? 貌似論文中沒有提到。。。(難道根據Z的變化? 。。。)

繼續閱讀