1. 程式人生 > 其它 >LDA主題模型

LDA主題模型

LDA(主題模型)

本文是啟發是 v_JULY_v這位大佬的部落格 部落格地址為:https://blog.csdn.net/v_JULY_v/article/details/41209515

該文章單純是為了以後複習使用!!

LDA主要包含:

一個函式:gamma函式

四個分佈:二項分佈,多項分佈,beta分佈,Dirichlet(迪利克雷)分佈

一個概念和一個理念:共軛先驗和貝葉斯框架

兩個模型:pLSA, LDA

一個取樣:Gibbs取樣

gamma函式

對LDA的整體理解:

LDA 主要是可以將文件集中每篇文件中的主題以概率形式給出, 通過分析一些文件抽取它們主題(分佈)出來之後,然後通過主題(分佈)進行文字聚類和文字分類。LDA也是一種詞袋模型,每篇文件是由一組詞構成,詞和詞之間沒有先後順序關係,就像一個袋子,把它們全部裝起來,這個袋子就是這一片文件,其中這些詞就是能夠表達文件主題的一些詞彙,沒有先後關係,但是有邏輯關係。

一篇文章不是隻能擁有一個主題,文件可以有很多個主題組成,可能佔比不同,例如一篇文章的主題 = 教育 * 0.6 + 藝術 * 0.1 + 兒童 * 0.1 + 預算 * 0.1

首先:我們先看一下一篇文件是怎麼生成的LDA 創始人給出一個例子:我們事先確定幾個主題(topic),例如上面的 幾個主題Education, Arts, Children, Budgets,通過這幾個事先確定好的主題,通過機器學習獲取每個主題的對應的詞語,如下圖所示:

然後通過一定概率選取上面四個主題之一,在一一定概率選取每個主題下面的一個詞,不斷重複,而後就能夠生成一篇文章,不同顏色的代表不同的主題

當我們看到一篇文章的時候,如果我們想要推理一下該文章的作者是如何寫出這篇文章的,大部分人寫文章的時候:首先第一步我們就需要確定我們文章的幾個主題,例如一個主要主題,幾個次要主題,然後尋找在這幾個主題下的詞語,通過一定的邏輯關係進行組合,然後便能生成一篇文章。

LDA 主要就是做上面的步驟的:通過一篇文章反推其主題分佈

藉助 v_JULY_v 大佬的話通俗的理解就是:假設我們認定現在網路上出現的文章都是以上述方式生成的,現在有一些人先用通過LDA來做一件事情,就是通過分析網上眾多文章,獲取這些文章都寫了一些什麼主題,並且找出每篇文章的各個主題之間的比例(主題分佈)

在LDA模型中一篇文章的生成步驟如下:

  • 從服從Dirichlet分佈的α中 取樣生成文件 i 的主題分佈θi(各個主題之間的比例)
  • 從主題的多項式分佈θi 中取樣生成文章 i 的第 j 個詞的主題Z i j ( 就是獲取文件i眾多主題其中一個 )
  • 從服從Dirichlet分佈的 β 中取樣生成主題Z i j 對應的詞語φ Z i j(就是獲取每個詞語之間的比例 )
  • 從詞語的多項式分佈φZ i j 中取樣出最終的詞語Wij
  • 重複上述幾個過程

其中beta分佈是二項分佈的共軛先驗概率分佈,而Dirichet分佈是多項式的共軛先驗概率分佈

結構圖如下圖所示:

上面我們不斷重複二項分佈,多項分佈,beta分佈,Dirichlet分佈,這些分佈究竟是什麼,下面我們進行一些簡單的描述。

  • 二項分佈(Binomial distribution

    二項分佈是通過伯努利分佈來推進出來的,又稱為兩點分佈或0-1分佈, 是一個離散型隨機分佈,其中隨機變數止只有兩種情況非正即負,二項分佈就是做n次伯努利實驗 記作X~B(n, p),就是做一次實驗就是伯努利實驗,做n次就是二項分佈。要麼是 p 要麼是1-p 只有這兩種情況

    二項分佈的概率函式為:

  • 多項分佈,就是二項分佈擴充套件到多維的情況

    在二項分佈中我們的取值只能是p 或者1-p 但是在多項分佈中 我們取值會變得多樣化會出現 p1 p2 p3 .... pk 但是多個概率相加還是等於一

    多項分佈的概率密度函式為:

  • Beta分佈,二項分佈的共軛先驗分佈

    給定引數α>0和β>0,取值範圍為[ 0 , 1 ] 的隨機變數x的概率密度函式:

    其中:

    就是gamma函式 ,gamma函式就是階乘的具體化

    f(x;α,β) ={α + β}!/(α! * β!) * x ^ (α-1) * (1-x)^(β-1)

  • Dirichlet分佈,是beta分佈在高維度上的推廣

    Dirichlet分佈的密度函式形式和beta分佈的密度函式形式幾乎一樣

    其中:

    這兩個式子和上面兩個式子的形式幾乎一致,區別就在於下面這兩個式子有多個變數而上面的式子只有兩個變數,剩下的計算形式類似。

    好整體的LDA敘述完畢之後,我們來看一下gamma函式到底是什麼:

gamma函式

gamma函式是階乘在實數範圍內的推廣,一般的階乘例如:3的階乘為 3 * 2 * 1 = 6, 但是如果我想要求0.5的階乘呢?,這時候我們所理解的階乘公式就不再適用了,這時候 尤拉想出了階乘的一般函式形式,即gamma函式

這時候我們來想一個問題:

問題1: 隨機變數

把這n個變數排序之後我們得到順序統計量

請問這裡的分佈是什麼

因為這些資料都是在0-1之間的,而且我們都已經進行排序了,這時候如果我們求一下落在內的概率是多少,這樣就能夠求出這些隨機變數的分佈(比例)是多少了

先把[0,1]區間劃分為三份[0,x),[x, x+Δx], (x+Δx, 1], 這裡說明區間的大小就代表這個區間的佔整體的比例,也就是落在這個區間內的概率,假設n個數中有1個落在了區間[x, x+Δx],由於這個區間內的資料是第k大的所以[0,x) 範圍內應該有k-1個數據,(x+Δx, 1]區間內應該有 n-k個數據,如圖所示:

由上所述我們求出事件E:

對於上述事件E,有:

其中,o(Δx)表示Δx的高階無窮小。顯然,由於不同的排列組合,即n個數中有一個落在 [x,x+Δx]區間的有n種取法,餘下n−1個數中有k−1個落在[0,x)的有種組合,所以和事件E等價的事件一共有個。

如果有兩個數落在這個區間裡面呢:

由上面可得如果再次區間的資料超過一個的話那個這件事情的概率就幾乎為零

由此可得:

從而得出的概率密度函式為:

由此問題一得到解決,如果我們仔細觀察這個式子就會發現,這個式子的係數為階乘的形式,這時候如果配上gamma函式的話:

然後我們取變數α = k, β = n-k+1 ,轉成f(x)得出:

由此可見,我們推出了beta分佈

beta分佈

beta分佈

在概率論中beta分佈是一組定義在區間(0-1)內的連續分佈,有兩個引數α和β,並且α和β > 0

beta分佈的概率密度函式為:

隨機變數x服從引數為α和β的beta分佈,通常寫作:X ~ Be(α,β)

beta分佈與二項分佈共軛

我們先來了解一下共軛分佈

  1. 什麼叫做共軛分佈:後驗概率分佈函式和先驗概率分佈函式具有相同的形式。
  2. 為什麼要採用共軛分佈:可以使得後驗概率和先驗概率的形式相同,這裡一部分是符合人的直觀理念(他們應該是相同的分佈),另一方面,可以形成一個先驗鏈,即現在的後驗概率可以作為下一次計算的先驗分佈,如果形式相同,就可以形成一個鏈條

這時候我們回顧一下開頭所提出的問題“問題一:隨機變數,把這n個隨機變數排序後得到順序統計變數,然後想求出的分佈是什麼。”如果我們在這之上增加一些觀測資料,變成問題二:

  • ,對應的統計變數是,需要猜測
  • ,Yi中有m1個比p小,m2個比p大
  • 問題是的分佈是什麼

根據條件二我們得出"Yi中有m1個比p小,m2個比p大", 所以在中Xk是其中的第m1+k大的資料

​ 根據上面的事件推出事件服從Beta分佈從而我們推出的概率密度函式為:

我們先看一下什麼是先驗概率和後驗概率

P(A|B)是在B發生的情況下A發生的可能性。

首先,事件B發生之前,我們對事件A的發生有一個基本的概率判斷,稱為A的先驗概率,用P(A)表示;
其次,事件B發生之後,我們對事件A的發生概率重新評估,稱為A的後驗概率,用P(A|B)表示;
類似的,事件A發生之前,我們對事件B的發生有一個基本的概率判斷,稱為B的先驗概率,用P(B)表示;
同樣,事件A發生之後,我們對事件B的發生概率重新評估,稱為B的後驗概率,用P(B|A)表示。

這個的推理過程類似貝葉斯的推理過程:

  1. 為了猜測,在獲得一定的觀測資料前,我們對p的認知為: 這稱為p的先驗分佈

  2. 然後我們獲得這個結果“中有個比p小,個比大”,針對是做了m次伯努利實驗,所以服從

  3. 在給定資料(m1, m2)之後,p的後驗分佈變成了:

    貝葉斯理論中:先驗分佈 + 樣本資訊 後驗分佈

    上面公式的得出就是,新觀察到的樣本資訊將修正人們之前對該事件的認知,通俗的說是人們對θ的認知是先驗分佈在等到新樣本資訊之後,人們對θ的認知變成了

    對映到這個問題上就是:

    其中m1和m2對應的是二項分佈的的計數

    推廣到更一般的形式就是,對於非負實數α和β,我們有如下關係:

    對於觀測資料符合二項分佈,引數的先驗分佈和後驗分佈都是beta分佈,這種情況我們稱為 beta分佈和二項分佈共軛,Beta分佈稱為二項分佈的共軛先驗概率分佈

    二項分佈和Beta分佈是共軛分佈意味著,如果我們為二項分佈的引數p選取的先驗分佈是Beta分佈,那麼以p為引數的二項分佈用貝葉斯估計得到的後驗分佈仍然服從Beta分佈。

共軛先驗分佈

共軛函式分佈就是一個引數的先驗概率分佈 和後驗概率分佈 具有相同的格式,那麼先驗分佈和後驗分佈被叫做共軛分佈,同時先驗分佈叫做似然函式的,共軛先驗分佈。

例如我們觀察的資料服從時,當觀測到新的X資料時,需要考慮以下問題:

  • 是否可以根據觀測到的資料更新θ
  • 根據觀測到的資料在多大程度上能夠改變θ
  • 當我們從新估計引數θ的時候,給出新的引數θ分佈即

根據貝葉斯公式可得:

其中表示以預估θ為引數的x概率分佈,能夠直接求出,p(θ)是已有原始的θ概率分佈。

所以我們選取P(x|θ) 的共軛先驗作為p(θ)的分佈,那麼p(x|θ)乘以p(θ), 然後歸一化的結果p(θ|x)跟p(θ)的形式一樣,先驗分佈是p(θ),後驗分佈是p(θ|x)

投硬幣的例子:使用引數θ的伯努利模型,θ為硬幣正面的概率,那麼結果x的分佈為:

其共軛先驗分佈為beta分佈:

後驗概率為:

後驗概率歸一化之後會得到另一個Beta分佈,從而證明Beta分佈就是伯努利分佈的共軛先驗分佈

從Beta分佈推廣到Dirichlet分佈

beta分佈的性質之一:期望E:

上面式子的右邊積分為:

其分佈類似概率分佈,對於這個分佈有

從而求得的結果為:最後將結果帶入E(p)的計算式得出:

最後這個結果意味著對於Beta分佈的隨機變數,其均值(期望)可以使用來估計。

此外對於Dirichlet分佈也有類似的結論,即如果引數滿足Dirichlet分佈的話同樣可以證明以下結論成立:

Dirichlet分佈

Dirichlet分佈

Dirichlet分佈的概率密度函式為:

其中B(α)表示多項Beta函式:

Beta函式與Gamma函式的關係為:

把這個形式和Dirichelt分佈中的多項beta函式相比,果然是一一對應的 加法對加法,乘法對乘法,不同的就是,引數的個數不同

在B(α)中,並且x1+x2+x3+......+xk = 1, x1,x2,x3,....,xk-1 > 0,並且在(k-1)維的單純形上,在其它區域概率為零

單純形:表示在n維單純形上有n+1個頂點,例如一維表示線段,二維表示三角形,三維表示四面體,各個面都相等

Dirichlet分佈的另一種形式為:

其中稱為Dirichlet分佈的歸一化係數:

並且根據Dirichlet分佈的積分為1“概率的基本性質”,可以得到:

Dirichlet分佈和多項分佈共軛

繼上面問題二之後我們再提出問題三:

  • 排序後對應的順序統計量
  • 問的聯合分佈是什麼

為了方便計算,選取了x3滿足 x1+x2+x3 = 1,但只有x1和x2是變數,如下圖所示:

從而有:

繼而得到的聯合分佈為:

觀察上述式子的最終結果,可以看出其實就是三維的Dirichlet分佈

令:,於是分佈密度可以寫為:

為了驗證Dirichlet分佈是多項分佈是共軛分佈的共軛先驗分佈,我們引出問題四:

問題四:

  1. 排序之後對應的順序統計量
  2. 令注:這裡的p3不是變數,只是為了方便計算,現在要猜測
  3. 中Yi落到這三個區間的個數分別為m1,m2,m3,m=m1+m2+m3;
  4. 問後驗分佈的分佈是什麼

為了方便討論,記,以及,根據已知條件,Yi中落到三個區間的個數為m1和m2,可得p1 p2分別是這個m+n個數中k1+m1大和k2+m2大的數,於是後驗分佈應該是即一般化形式表示為:

同樣的,按照貝葉斯邏輯,整理為下:

  1. 我們要猜測引數,其先驗分佈為:
  2. 資料Yi落到三個區間的個數分別是m1,m2,m3,所以服從多項分佈
  3. 當我們提供資料之後先驗分佈就變成了

上述貝葉斯過程直觀的表達為:

令α等於k,可以把α從整數集合延伸到實數集合,從而得到更一般的表示式:

和上面一樣,針對觀測到資料符合多項分佈,其先驗概率分佈後驗概率分佈都符合Dirichlet分佈的情況下,就是Dirichlet分佈和多項分佈共軛

我們為多項分佈的引數p選取的先驗分佈是Dirichlet分佈,那麼以p為引數的多項分佈用貝葉斯估計得到的後驗分佈仍然服從Dirichlet分佈。

一般的Dirichlet分佈定義如下:

而對於給定的P和N,其多項分佈是:

最後結論是Dirichelt分佈和多項分佈是共軛關係

主題模型LDA

在開始進行這部的內容之前,我們先回顧一下上面的內容:

通過上面的內容我們得到:

  1. Beta分佈是二項分佈的共軛先驗分佈:

    對於非負實數α和β有如下關係:

    其中(m1,m2)是二項分佈B(m1+m2,p)的計數,針對這些觀測到的資料符合二項分佈,引數的先驗概率分佈和後驗概率分佈都符合Beta分佈的我們稱之為Beta分佈和二項分佈共軛

  2. Dirichlet分佈是多項分佈的共軛先驗分佈

    把α從整數集合擴充套件到實數集合,從而得到更一般的表示式如下:

    針對這些觀測資料符合多項分佈,引數的先驗概率分佈和後驗概率分佈都符合Dirichelt分的情況,我們稱為Dirichelt分佈和多項分佈共軛

  3. 貝葉斯派思考問題的 方式:

    上述表達方式為,新觀察到的樣本資訊將修正人們之前對事物的認知,換句話說,在得到新的樣本資訊之前,人們對θ的認知是先驗分佈,在得到樣本資訊之後,人們對θ的認知為

在我們進行LDA模型的時候我們先要進行一些基礎模型的認識:Unigram model,mixture of unigram model,以及和LDA最為接近的pLSA模型

為了方便解釋這些模型我們定義一下下面這幾個變數:

  • w表示詞,V表示所有單詞的個數(固定值)
  • z表示主題,k是主題的個數(預先給定,固定值)
  • D = (W1,W2,.....Wm)表示語料庫,其中的M是語料庫中的文件數(固定值)
  • W = (w1,w2,.....,wn)表示文件,其中n表示一箇中文文件中的詞數(隨機變數)

Unigram model

對於文件,用表示詞wn的先驗概率,生成文件w的概率為:

其圖模型為(圖中被塗色的w表示可觀測變數,N表示一篇文章中一共有N個單詞,M表示M篇文件):

另一種表示方法為:

unigram model假設文字中的詞服從Multinomial分佈,而且我們已經知道Multinomial分佈的先驗分佈為Dirichlet分佈

上述的表示在文字中觀察到的第n個詞,n∈[1,N]表示該文字中一共有N個詞。加上方框表示重複,即一共有N個這樣的隨機變數。其中,p和α是隱含未知變數:

  • p是服從Multinomial分佈的引數
  • α是Dirichlet分佈(即Multinomial分佈的先驗分佈)的引數。

一般α由經驗事先給定,p由觀察到的文字中出現的詞學習得到,表示文字中出現每個詞的概率。

Mixture of unigram model

該模型的生成過程是:先給文件一個主題z,然後根據該主題生成文件,該文件中所有詞都是來自一個主題,假設主題由,生成文件w的概率為:

其圖模型為(圖中被塗色的w表示可觀測變數,未塗色的z表示為止的隱變數,N表示文件中一共有N個詞,M表示M篇文件)

PLSA模型

pLSA模型是和LDA模型比較接近的一個模型,LDA就是pLSA模型加上一個貝葉斯框架

我們在上面的Mixture of unigram model模型中,假定的是一篇文件中只是有一個主題生成,但是實際上,一篇文件是由多個主題共同生成,只是比例不同(分佈),比如在介紹一個國家的文件中,我們還要從教育,經濟,軍事等等主題進行介紹,其中國家是大主題佔比比較大,其餘的是小主題,佔比比較小,那麼在pLSA模型中,文件是怎麼生成的呢?

先看生成文章的過程:

如果需要生成m篇文章,每一篇文章由各個不同的片語成,需要確定每篇文章每個位置對應的詞

假設一共有k個可選的主題,有v個可選詞通過投骰子,來生成一篇文件

  1. 在寫文件的時候我們可以製作一個有k面(文件-主題)的骰子(扔骰子能夠得到k個主題中的任意一個),通過投骰子來進行選取主題,和k個v面的“主題-詞語”骰子(每個骰子對應一個主題,k個骰子對應k個主題, v面對應的v個詞語)

    • 假設,我們設k = 3,製作一個3面的(文件-主題)骰子,這三個主題我們設定為:教育,經濟,交通,然後令V=3,製作三個有三個面的(主題-詞語)骰子,具體情況如下:

  2. 每寫一個詞,我們都要通過投擲(文件-主題)骰子獲取一個主題,得到主題之後,我們從對應的主題的(主題-詞語)骰子中投擲選擇我們要寫的詞語

    • 上面這個投骰子產生詞的過程簡化下便是:“先以一定的概率選取主題,再以一定的概率選取詞”。事實上,一開始可供選擇的主題有3個:教育、經濟、交通,那為何偏偏選取教育這個主題呢?其實是隨機選取的,只是這個隨機遵循一定的概率分佈。比如可能選取教育主題的概率是0.5,選取經濟主題的概率是0.3,選取交通主題的概率是0.2,那麼這3個主題的概率分佈便是{教育:0.5,經濟:0.3,交通:0.2},我們把各個主題z在文件d中出現的概率分佈稱之為主題分佈,且是一個多項分佈。
    • 同樣的,從主題分佈中隨機抽取出教育主題後,依然面對著3個詞:大學、老師、課程,這3個詞都可能被選中,但它們被選中的概率也是不一樣的。比如大學這個詞被選中的概率是0.5,老師這個詞被選中的概率是0.3,課程被選中的概率是0.2,那麼這3個詞的概率分佈便是{大學:0.5,老師:0.3,課程:0.2},我們把各個詞語w在主題z下出現的概率分佈稱之為詞分佈,這個詞分佈也是一個多項分佈。
    • 所以,選主題和選詞都是兩個隨機的過程,先從主題分佈{教育:0.5,經濟:0.3,交通:0.2}中抽取出主題:教育,然後從該教育主題對應的詞分佈{大學:0.5,老師:0.3,課程:0.2}中抽取出詞:大學。
  3. 然後不斷重複步驟2,重複N次,完成一篇文件,重複這一篇文件的生成方法m次,我們生成了m篇文件

上述過程為pLSA文件生成模型,在上面的文件生成方法中我們並未關注詞與詞之間的先後順序,因此pLSA是一個詞袋模型。這些詞雖然表面上沒有順序關係,但是通過一些詞邏輯上的關係,我們可以得到這篇文章的隱藏的主題類別,這裡我們定義:

  • 表示海量文件中某篇文件被選中的概率。
  • 表示詞在給定文件中出現的概率
    • 計算方式,對於海量文件,對所有文件進行分類之後,我們得到一個詞彙表,每篇文件就是一個詞語的集合,對於每個詞語,出現次數比上所有的詞的個數,最後結果就是這個詞在這篇文件中出現的概率
  • 表示具體某個主題在給定文件中出現的概率
  • 表示某個詞在主題中出現的概率,與主題關係越密切的詞出現的概率越大

利用上述1,3,4個概率,我們可以根據以下步驟生成“文件-詞項”模型

  1. 按照概率選擇一篇文件
  2. 選定文章後其主題分佈中按照概率選擇一個隱含的主題類別
  3. 選定後,從詞分佈表中按照概率選擇一個詞

所以pLSA中生成文件的過程為選定文件,生成主題,確定主題生成詞

上述是生成文件的過程,下面為分析文件的的過程

根據文件反推其主題分佈:

主要內容是:通過生成文件的過程,反推已有的文件中的主題分佈(生產文件的逆過程),建模的目的就是,自動的發現文件集中的主題分佈。

換句話來說就是,人們根據文件生成模型生成了各種各樣 的文章,然後遞交給計算機計算機的目的就是根據一篇篇文章中的一系列詞語的分佈,推測各個主題出現的概率(分佈):主題分佈,即單詞w和文章d是能夠觀測到的,而主題,是隱含的,我們的目的就是找到這隱含的主題分佈,

如下圖所示:圖中塗色的表示可以觀察到的資料d和w ,z表示隱含的資料,N表示一篇文件中一共有N個單詞,M表示一共有M篇文件

上圖中文件d和詞w是我們得到的樣本(樣本隨機,引數雖然不知道但是是固定的,所以pLSA資料頻率派思想,區別於下文要介紹的LDA中:樣本固定,引數為止,但不固定,是一個隨機變數,服從一定的分佈,所以LDA屬於貝葉斯派思想),可以觀測到對於任意一一篇文件,其是已知的

從而可以根據,大量已知的文件-詞項資訊訓練出文件-主題和主題詞項如下圖公式所示:

故得到文件中每個詞出現的概率為:

由於p(di)可以事先計算求出,而和未知,所以就是我們要估計的引數(值) ,通俗點說就是要最大化這個θ。

用什麼方法進行估計呢,常用的引數估計法有極大似然估計MLE,最大後驗估計MAP,貝葉斯估計等等,因為該待估計的引數中含有隱變數z,所以我們可以考慮EM演算法

LDA模型

LDA和pLSA模型比較相似,就是給pLSA模型加上了一個貝葉斯框架

pLSA模型生成文件和引數估計:

  1. 按照先驗概率選擇一篇文件
  2. 選定文件後,確定文件的主題分佈
  3. 從主題分佈後按照概率選擇一個隱含的主題型別
  4. 選定後,確定主題下的詞分佈
  5. 從詞分佈中按照概率選擇一個詞

LDA模型生成文件和引數估計:

  1. 先根據先驗概率選擇一篇文件
  2. 從迪利克雷分佈(Dirichlet分佈)α中取樣生成文件的主題分佈,換句話說就是主題分佈由超引數為α的Dirichlet分佈形成
  3. 從主題多項式分佈中取樣生成文件的第j個主題詞
  4. 從迪利克雷分佈(Dirichlet分佈)β中取樣生成主題對應的詞語分佈,換言之,詞語分佈由引數為β的Dirichlet分佈生成
  5. 從詞語的多項式分佈中取樣生成最後的詞語

從上面的兩個過程可以看出,LDA在pLSA的基礎上,為主題分佈和詞分佈增加了兩個Dirichlet先驗

pLSA分佈選取一個詞的過程,先從主題分佈為{教育:0.5,經濟:0.3,交通:0.2}中抽取出主題:教育,然後從該主題對應的詞分佈{大學:0.5,老師:0.3,課程:0.2}中抽取出詞:大學。

LDA選取一個詞的過程也是上面的方法,先選取一個主題,然後通過這個主題下面的詞分佈中選取一個詞語,LDA和pLSA的區別就是主題分佈和詞分佈不在是確定的,他是隨機可變的,但是這個變化符合一個分佈規律就是Dirichlet分佈

pLSA中,主題分佈和詞分佈確定之後,以一定的概率分別選取具體的主題和詞項,生成好文件,然後根據生成好的文件來反推其主題分佈,詞分佈的同時,之後使用EM演算法(極大似然估計法)求解出兩個為止引數的值:(由轉換而來),和由(轉換而來)

  • 文件d產生主題z的概率,主題z產生單詞w的概率都是兩個固定值。

    • 例子:給定一篇文件d,主題分佈是一定的,比如{ P(zi|d), i = 1,2,3 }可能就是{0.4,0.5,0.1},表示z1、z2、z3,這3個主題被文件d選中的概率都是個固定的值:P(z1|d) = 0.4、P(z2|d) = 0.5、P(z3|d) = 0.1,如下圖所示(圖擷取自沈博PPT上):

在LDA模型中我們不再認為主題分佈和詞分佈是唯一確定的,而是由很多種可能,但是一篇文件總要確定一個主題把,LDA採用了兩個Dirichlet先驗引數,這個Dirichlet先驗分佈為某篇文件隨機抽取了某個主題分佈和詞分佈

  • 文件d產生主題z(準確的說,其實是Dirichlet先驗為文件d生成主題分佈θ,然後根據主題分佈θ產生主題z)的概率,主題z產生單詞w的概率都不再是準確的兩個值,而是隨機變數。

總而言之LDA在pLSA的基礎上給這兩個引數加了兩個先驗分佈的引數(貝葉斯話):一個主題的先驗分佈Dirichlet分佈α,和一個詞語分佈的先驗分佈Dirichlet分佈β

這兩個模型的本質都是為了能夠找到給定文件生成主題,給定主題生成詞語的概率

LDA中,主題分佈 —— 比如{ P(zi), i =1,2,3 }等於{0.4,0.5,0.1}或{0.2,0.2,0.6} —— 是由dirichlet先驗給定的,不是根據文件產生的。所以,LDA生成文件的過程中,先從dirichlet先驗中“隨機”抽取出主題分佈,然後從主題分佈中“隨機”抽取出主題,最後從確定後的主題對應的詞分佈中“隨機”抽取出詞。

Dirichlet先驗隨機抽取主題分佈方式:

事實上,從Dirichlet分佈中隨機抽取主題分佈,這個過程並不是完全隨機的。事實上,如果我們選取三個事件的話,可以建立一個三維座標系:

在這個三維座標點中每一個座標點(p1, p2,p3)就對應這一個主題分佈,而且某一個點(p1,p2,p3)的大小代表著主題123出現的概率大小(因為各個主題出現的概率和為1),所以p1+p2+p3 = 1,比如(p1,p2,p3) = (0.4,0.5,0.1)便對應著主題分佈{ P(zi), i =1,2,3 } = {0.4,0.5,0.1}。

這個空間中有很多個這個點,意味著有很多主題分佈可以選擇,Dirichlet分佈選擇主題的方法是可以將上面三角形放到,對映到地面平面上,便得到如下所示的一些彩圖(3個彩圖種,每個點對應著一個主題分佈,高度代表著某個主題唄dirichelt分佈選中的概率,且選擇不同的α,dirichlet分佈會偏向不同的主題分佈)

α在LDA中的作用,較高的α表示主題稀疏性的影響較小,在一個文章中包含著大多主題,而比較第的α值代表著我們希望文件覆蓋少數主題,如果我們只想在這些文件中發掘出兩個主題(k=2),那麼可能所有文件都包含兩個主題,因此我們可以有一個比較大的alpha=0.5值。如果我們想發現一個k=1000主題,很可能大多數文件不會覆蓋所有1000個主題,只可能包含較小的一部分(稀疏性很高),因此我們採用較小的α值來解釋這個問題預期的稀疏性。

同樣β在主題中的單詞稀疏性中起作用,較高的β值代表著主題比較一般,單詞頻率更加統一。第β值意味著主題應該更加具體,他們單詞概率將更不均勻,在比較少的單詞上面放著更高的概率。這也與要發現的主題數量有關,高的β意味著很少但是比較常見的主題被發現,第β用於更具體的主題