通俗理解LDA主題模型

0 前言

    印象中,最開始據說「LDA」這個名詞,是緣於rickjin在2013年3月寫的一個LDA科普系列,叫LDA數學八卦,我當時一直想看來着,記得還打印過一次,但不知是因爲這篇文檔的前序鋪墊太長(現在才意識到這些「鋪墊」都是深入理解LDA 的基礎,但假設沒有人幫助剛開始學習的人提綱挈領、把握主次、理清思路,則很是easy陷入LDA的細枝末節之中),仍是因爲當中的數學推導細節太多,致使一直沒有完整看完過。算法

    2013年12月,在我組織的Machine Learning讀書會第8期上,@夏粉_百度 講機器學習中排序學習的理論和算法研究。@沈醉2011 則講主題模型的理解。又一次碰到了主題模型,當時貌似僅僅記得沈博講了一個汪峯寫歌詞的樣例。依舊沒有理解LDA到底是怎樣一個東西(但理解了LDA以後。再看沈博主題模型的PPT會很是贊)。api

    直到昨日下午。機器學習班 第12次課上,鄒講完LDA以後,才真正明確LDA原來是那麼一個東東!上完課後,趁熱打鐵,再次看LDA數學八卦,發現曾經看不下去的文檔再看時竟然一路都比較順暢。一口氣看完大部。看完大部後,思路清晰了。知道理解LDA。可以分爲下述5個步驟:網絡

  1. 一個函數:gamma函數
  2. 四個分佈:二項分佈、多項分佈、beta分佈、Dirichlet分佈
  3. 一個概念和一個理念:共軛先驗和貝葉斯框架
  4. 兩個模型:pLSA、LDA(在本文第4 部分闡述)
  5. 一個採樣:Gibbs採樣

    本文便依照上述5個步驟來闡述,但願讀者看完本文後,能對LDA有個儘可能清晰完整的瞭解。同一時候,本文基於鄒講LDA的PPT、rickjin的LDA數學八卦及其它參考資料寫就,可以定義爲一篇學習筆記或課程筆記,固然,興許不斷增長了很是多本身的理解。框架

如有不論什麼問題,歡迎隨時於本文評論下指出,thanks。機器學習

 

1 gamma函數

1.0 整體把握LDA

    關於LDA有兩種含義,一種是線性判別分析(Linear Discriminant Analysis),一種是機率主題模型:隱含狄利克雷分佈(Latent Dirichlet Allocation,簡稱LDA),本文講後者。xss

    另外,我先簡單說下LDA的整體思想。否則我怕你看了半天。鋪了太長的前奏。卻依舊因沒見到LDA的影子而顯得「心浮氣躁」,致使不想再繼續看下去。因此,先給你吃一顆定心丸。明確整體框架後,我們再一步步抽絲剝繭。展開來論述。函數

    依照wiki上的介紹,LDA由Blei, David M.、Ng, Andrew Y.、Jordan於2003年提出。是一種主題模型,它可以將文檔集 中每篇文檔的主題以機率分佈的形式給出。從而經過分析一些文檔抽取出它們的主題(分佈)出來後,便可以依據主題(分佈)進行主題聚類或文本分類。同一時候,它是一種典型的詞袋模型,即一篇文檔是由一組詞構成,詞與詞之間沒有前後順序的關係。學習

    此外,一篇文檔可以包括多個主題,文檔中每個詞都由當中的一個主題生成。優化

    人類是怎麼生成文檔的呢?LDA的這三位做者在原始論文中給了一個簡單的樣例。比方假設事先給定了這幾個主題:Arts、Budgets、Children、Education,而後經過學習訓練。獲取每個主題Topic相應的詞語。例如如下圖所看到的:lua

 

    而後以必定的機率選取上述某個主題,再以必定的機率選取那個主題下的某個單詞,不斷的反覆這兩步,終於生成例如如下圖所看到的的一篇文章(當中不一樣顏色的詞語分別相應上圖中不一樣主題下的詞):

  

    而當咱們看到一篇文章後。每每喜歡推測這篇文章是怎樣生成的,咱們可能會以爲做者先肯定這篇文章的幾個主題,而後環繞這幾個主題遣詞造句,表達成文。
    LDA就是要幹這事: 依據給定的一篇文檔,推測其主題分佈
    通俗來講,可以假定以爲 人類是依據上述文檔生成過程寫成了各類各樣的文章,現在某小撮人想讓計算機利用LDA幹一件事:你計算機給我推測分析網絡上各篇文章分別都寫了些啥主題,且各篇文章中各個主題出現的機率大小(主題分佈)是啥
    然,就是這麼一個看似普通的LDA,一度嚇退了很多想深刻探究其內部原理的剛開始學習的人。難在哪呢,難就難在LDA內部涉及到的數學知識點太多了。
    在LDA模型中,一篇文檔生成的方式例如如下:
  • 從狄利克雷分佈中取樣生成文檔 i 的主題分佈
  • 從主題的多項式分佈中取樣生成文檔i第 j 個詞的主題
  • 從狄利克雷分佈中取樣生成主題相應的詞語分佈
  • 從詞語的多項式分佈中採樣終於生成詞語

    當中,類似Beta分佈是二項式分佈的共軛先驗機率分佈。而狄利克雷分佈(Dirichlet分佈)是多項式分佈的共軛先驗機率分佈。

    此外。LDA的圖模型結構例如如下圖所看到的(類似貝葉斯網絡結構):

    恩,不錯,短短6句話整體歸納了整個LDA的主體思想!但也就是上面短短6句話,卻接連不斷或反覆出現了二項分佈、多項式分佈、beta分佈、狄利克雷分佈(Dirichlet分佈)、共軛先驗機率分佈、取樣,那麼請問,這些都是啥呢?

    這裏先簡單解釋下二項分佈、多項分佈、beta分佈、Dirichlet 分佈這4個分佈。

  •  二項分佈(Binomial distribution)

    二項分佈是從伯努利分佈推動的。

伯努利分佈,又稱兩點分佈或0-1分佈,是一個離散型的隨機分佈。當中的隨機變量僅僅有兩類取值,非正即負{+,-}。而二項分佈即反覆n次的伯努利試驗,記爲 。簡言之,僅僅作一次實驗,是伯努利分佈。反覆作了n次。是二項分佈。二項分佈的機率密度函數爲:

    

    對於k = 0, 1, 2, ..., n,當中的 是二項式係數(這就是二項分佈的名稱的由來),又記爲 。回想起高中所學的那丁點機率知識了麼:想必你當年必定死記過這個二項式係數 就是
  • 多項分佈,是二項分佈擴展到多維的狀況
    多項分佈是指單次試驗中的隨機變量的取值再也不是0-1的,而是有多種離散值可能(1,2,3...,k)。比方投擲6個面的骰子實驗。N次實驗結果服從K=6的多項分佈。

當中

    多項分佈的機率密度函數爲:
  • Beta分佈,二項分佈的共軛先驗分佈
    給定參數 ,取值範圍爲[0,1]的隨機變量 x 的機率密度函數
    當中
。 
   注: 即是所謂的gamma函數。下文會詳細闡述。
  • Dirichlet分佈,是beta分佈在高維度上的推廣
    Dirichlet分佈的的密度函數形式跟beta分佈的密度函數一模一樣:
    當中
    至此,咱們可以看到 二項分佈和多項分佈很是類似, Beta分佈和Dirichlet 分佈很是類似,而至於 Beta分佈是二項式分佈的共軛先驗機率分佈。而狄利克雷分佈 (Dirichlet分佈)是多項式分佈的共軛先驗機率分佈這點在下文中說明。

    OK。接下來,我們就依照本文開頭所說的思路:「一個函數:gamma函數,四個分佈:二項分佈、多項分佈、beta分佈、Dirichlet分佈,外加一個概念和一個理念:共軛先驗和貝葉斯框架,兩個模型:pLSA、LDA(文檔-主題,主題-詞語),一個採樣:Gibbs採樣」一步步詳細闡述,爭取給讀者一個儘可能清晰完整的LDA。

    (固然,假設你不想深究背後的細節原理,僅僅想整體把握LDA的主體思想,可直接跳到本文第4 部分。看完第4部分後。若仍是想深究背後的細節原理,可再回到此處開始看)

1.1 gamma函數

    我們先來考慮一個問題(此問題1包括下文的問題2-問題4皆取材自LDA數學八卦):

  1. 問題1 隨機變量
  2. 把這n 個隨機變量排序後獲得順序統計量
  3. 而後請問的分佈是什麼。

    爲解決問題,可以嘗試計算落在區間[x,x+Δx]的機率。即求下述式子的值:

    首先。把 [0,1] 區間分紅三段 [0,x),[x,x+Δx],(x+Δx,1],而後考慮下簡單的情形:即假設n 個數中僅僅有1個落在了區間 [x,x+Δx]內,因爲這個區間內的數X(k)是第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等價的事件一共同擁有 個。
 
    假設有2個數落在區間[x,x+Δx]呢?例如如下圖所看到的:
    類似於事件E,對於2個數落在區間[x,x+Δx]的事件E’:
    有:
   從上述的事件E、事件E‘中,可以看出。僅僅要落在[x,x+Δx]內的數字超過一個,則相應的事件的機率就是 o(Δx)。

因而乎有:

    從而獲得 的機率密度函數 爲:

    至此,本節開頭提出的問題獲得解決。然細緻觀察的機率密度函數。發現式子的終於結果有階乘。聯想到階乘在實數上的推廣函數:

    二者結合是否會產生奇異的效果呢?考慮到具備例如如下性質:

    故將代入到的機率密度函數中,可得:

    而後取,轉換獲得:

    假設熟悉beta分佈的朋友,可能會驚呼:哇,竟然推出了beta分佈。

 

2 beta分佈

2.1 beta分佈

    在機率論中,beta是指一組定義在 區間的連續機率分佈。有兩個參數 。且
    beta分佈的機率密度函數是:
    當中的 即是 函數:
    隨機變量X服從參數爲 的beta分佈一般寫做:

2.2 Beta-Binomial 共軛

    回想下1.1節開頭所提出的問題:「問題1 隨機變量 。把這n 個隨機變量排序後獲得順序統計量 ,而後請問 的分佈是什麼。

」 假設。我們要在這個問題的基礎上增長一些觀測數據,變成問題2

  • ,相應的順序統計量是。需要推測
  • , 中有個比p小,個比大;
  • 那麼,請問的分佈是什麼。
    依據「Yi中有 個比 小, 個比 大」。換言之。Yi中有 個比 小, 個比 大,因此 中第 大的數。
    依據1.1節終於獲得的結論「僅僅要落在[x,x+Δx]內的數字超過一個。則相應的事件的機率就是 o(Δx)」。繼而推出事件服從beta分佈,從而可知 的機率密度函數爲:
   
    熟悉貝葉斯方法(不熟悉的沒事,參見 此文第一部分)的朋友內心預計又犯「嘀咕」了,這不就是貝葉斯式的思考過程麼?
  1. 爲了推測,在得到必定的觀測數據前,咱們對的認知是:,此稱爲的先驗分佈;
  2. 而後爲了得到這個結果「 中有個比p小,個比大」。針對是作了次貝努利實驗。因此服從二項分佈
  3. 在給定了來自數據提供的的知識後,的後驗分佈變爲
    回想下 貝葉斯派思考問題的固定模式:
  • 先驗分佈 + 樣本信息  後驗分佈
     上述思考模式意味着。新觀察到的樣本信息將修正人們曾經對事物的認知。換言之,在獲得新的樣本信息以前,人們對的認知是先驗分佈,在獲得新的樣本信息後,人們對的認知爲
    類比到現在這個問題上,咱們也可以試着寫下:
    當中 相應的是二項分佈 的計數。
    更通常的,對於非負實數 。咱們有例如如下關係
 

    針對於這樣的觀測到的數據符合二項分佈參數的先驗分佈和後驗分佈都是Beta分佈的狀況,就是Beta-Binomial共軛。換言之,Beta分佈是二項式分佈的共軛先驗機率分佈

    二項分佈和Beta分佈是共軛分佈意味着,假設咱們爲二項分佈的參數p選取的先驗分佈是Beta分佈,那麼以p爲參數的二項分佈用貝葉斯預計獲得的後驗分佈仍然服從Beta分佈。

    此外,怎樣理解參數 所表達的意義呢? 可以以爲形狀參數。通俗但不嚴格的理解是。 共同控制Beta分佈的函數「長的樣子」:形狀千奇百怪。高低胖瘦,例如如下圖所看到的:
 

2.3 共軛先驗分佈

    什麼又是共軛呢?軛的意思是束縛、控制,共軛從字面上理解,則是共同約束。或互相約束。
     在貝葉斯機率理論中。假設後驗機率P(θ|x)和先驗機率p(θ)知足相同的分佈律。那麼。先驗分佈和後驗分佈被叫作共軛分佈,同一時候,先驗分佈叫作似然函數的共軛先驗分佈
    比方,某觀測數據服從機率分佈 P(θ)時,當觀測到新的X數據時,咱們一般會遇到例如如下問題:
  • 能否依據新觀測數據X。更新參數θ?
  • 依據新觀測數據可以在多大程度上改變參數θ,即
  • 當又一次預計θ的時候,給出新參數值θ的新機率分佈。即P(θ|x)
    事實上。依據依據貝葉斯公式可知:
    當中。P(x|θ)表示以預估θ爲參數的x機率分佈。可以直接求得,P(θ)是已有原始的θ機率分佈。
    因此。假設咱們選取P(x|θ)的共軛先驗做爲P(θ)的分佈。那麼P(x|θ)乘以P(θ)。而後歸一化的結果P(θ|x)跟和P(θ)的形式同樣。

換句話說,先驗分佈是P(θ)。後驗分佈是P(θ|x),先驗分佈跟後驗分佈同屬於一個分佈族。故稱該分佈族是θ的共軛先驗分佈(族)

 
    舉個樣例。

投擲一個非均勻硬幣,可以使用參數爲θ的伯努利模型,θ爲硬幣爲正面的機率,那麼結果x的分佈形式爲:

    其共軛先驗爲beta分佈,具備兩個參數 ,稱爲超參數(hyperparameters)。

且這兩個參數決定了θ參數,其Beta分佈形式爲

    而後計算後驗機率
    歸一化這個等式後會獲得還有一個Beta分佈。從而證實了Beta分佈確實是伯努利分佈的共軛先驗分佈。

2.4 從beta分佈推廣到Dirichlet 分佈

    接下來。我們來考察beta分佈的一個性質。
    假設 。則有:
    注意到上式最後結果的右邊積分
    其類似於機率分佈 ,而對於這個分佈有

    從而求得
    的結果爲
    最後將此結果帶入 的計算式,獲得:

    最後的這個結果意味着對於Beta 分佈的隨機變量。其均值(指望)可以用來預計。

此外。狄利克雷Dirichlet 分佈也有類似的結論,即假設。相同可以證實有下述結論成立:

    那什麼是Dirichlet 分佈呢?簡單的理解Dirichlet 分佈就是一組連續多變量機率分佈。是多變量廣泛化的beta分佈。爲了記念德國數學家約翰·彼得·古斯塔夫·勒熱納·狄利克雷(Peter Gustav Lejeune Dirichlet)而命名。狄利克雷分佈常做爲貝葉斯統計的先驗機率。

 

3 Dirichlet 分佈

3.1 Dirichlet 分佈

    依據wikipedia上的介紹。維度K ≥ 2(x1,x2…xK-1維。共K個)的狄利克雷分佈在參數α1, ..., αK > 0上、基於歐幾里得空間RK-1裏的勒貝格測度有個機率密度函數,定義爲:

    當中,至關因而多項beta函數

    且

    此外,x1+x2+…+xK-1+xK=1,x1,x2…xK-1>0,且在(K-1)維的單純形上,其它區域的機率密度爲0。

    固然,也可以例如如下定義Dirichlet 分佈

    當中的稱爲Dirichlet 分佈的歸一化係數:

    且依據Dirichlet分佈的積分爲1(機率的基本性質)。可以獲得:

3.2 Dirichlet-Multinomial 共軛

    如下。在2.2節問題2的基礎上繼續深刻。引出問題3

  • 排序後相應的順序統計量,
  • 的聯合分佈是什麼?
    爲了簡化計算,取x3知足x1+x2+x3=1,但僅僅有x1,x2是變量。例如如下圖所看到的:

    從而有:

    繼而獲得因而咱們獲得的聯合分佈爲:

    觀察上述式子的終於結果,可以看出上面這個分佈事實上就是3維形式的 Dirichlet 分佈

    令,因而分佈密度可以寫爲

    這個就是通常形式的3維 Dirichlet 分佈,即使延拓到非負實數集合,以上機率分佈也是良定義的。

    將Dirichlet分佈的機率密度函數取對數,繪製對稱Dirichlet分佈的圖像例如如下圖所看到的(截取自wikipedia上):

    上圖中。取K=3。也就是有兩個獨立參數x1,x2,分別相應圖中的兩個座標軸。第三個參數始終知足x3=1-x1-x2且α1=α2=α3=α,圖中反映的是參數α從α=(0.3, 0.3, 0.3)變化到(2.0, 2.0, 2.0)時的機率對數值的變化狀況。

    爲了論證Dirichlet分佈是多項式分佈的共軛先驗機率分佈,如下我們繼續在上述問題3的基礎上再進一步,提出問題4

  1. 問題4  ,排序後相應的順序統計量
  2. ,,(此處的p3非變量,僅僅是爲了表達方便)。現在要推測
  3. 。Yi中落到 三個區間的個數分別爲 m1,m2,m3,m=m1+m2+m3。
  4.  問後驗分佈的分佈是什麼。

   爲了方便討論,記,及。依據已知條件「,Yi中落到 三個區間的個數分別爲 m1,m2」,可得各自是這m+n個數中第大、第大的數。因而。後驗分佈應該爲,即通常化的形式表示爲:

    相同的,依照貝葉斯推理的邏輯,可將上述過程整理例如如下:

  1.  咱們要推測參數,其先驗分佈爲
  2.  數據Yi落到三個區間 的個數分別爲,因此服從多項分佈
  3.  在給定了來自數據提供的知識後,的後驗分佈變爲

    上述貝葉斯分析過程的直觀表述爲:

    令,可把從整數集合延拓到實數集合,從而獲得更通常的表達式例如如下:

    針對於這樣的 觀測到的數據符合多項分佈,參數的先驗分佈和後驗分佈都是Dirichlet 分佈的狀況, 就是Dirichlet-Multinomial 共軛

換言之,至此已經證實了Dirichlet分佈的確就是多項式分佈的共軛先驗機率分佈。

     意味着,假設咱們爲多項分佈的參數p選取的先驗分佈是Dirichlet分佈,那麼以p爲參數的多項分佈用貝葉斯預計獲得的後驗分佈仍然服從Dirichlet分佈。
    進一步,通常形式的Dirichlet 分佈定義例如如下:
    而對於給定的 ,其多項分佈爲:
    結論是:Dirichlet分佈 和多項分佈 是共軛關係。
 

 

4 主題模型LDA

        在開始如下的旅程以前,先來總結下咱們眼下所獲得的最基本的幾個收穫:

  • 經過上文的第2.2節,咱們知道beta分佈是二項式分佈的共軛先驗機率分佈:
    •  對於非負實數,咱們有例如如下關係

    當中相應的是二項分佈的計數。針對於這樣的觀測到的數據符合二項分佈,參數的先驗分佈和後驗分佈都是Beta分佈的狀況。就是Beta-Binomial 共軛。

  • 經過上文的3.2節,咱們知道狄利克雷分佈(Dirichlet分佈)是多項式分佈的共軛先驗機率分佈:
    •  從整數集合延拓到實數集合。從而獲得更通常的表達式例如如下:

    針對於這樣的觀測到的數據符合多項分佈。參數的先驗分佈和後驗分佈都是Dirichlet 分佈的狀況,就是 Dirichlet-Multinomial 共軛。 」
  • 以及貝葉斯派思考問題的固定模式:
    • 先驗分佈 + 樣本信息  後驗分佈
         上述思考模式意味着,新觀察到的樣本信息將修正人們曾經對事物的認知。換言之,在獲得新的樣本信息以前,人們對的認知是先驗分佈,在獲得新的樣本信息後。人們對的認知爲
  • 順便提下頻率派與貝葉斯派各自不一樣的思考方式:
    • 頻率派把需要判斷的參數θ看作是固定的未知常數。即機率儘管是未知的,但最起碼是肯定的一個值,同一時候,樣本X 是隨機的,因此頻率派重點研究樣本空間,大部分的機率計算都是針對樣本X 的分佈;
    • 貝葉斯派的觀點則截然相反,他們以爲待預計的參數是隨機變量,服從必定的分佈。而樣本X 是固定的,因爲樣本是固定的。因此他們重點研究的是參數的分佈。

    OK,在殺到終極boss——LDA模型以前,再按部就班理解基礎模型:Unigram model、mixture of unigrams model,以及跟LDA最爲接近的pLSA模型。

   爲了方便描寫敘述,首先定義一些變量:

  • 表示詞,表示所有單詞的個數(固定值)
  • 表示主題,是主題的個數(預先給定。固定值)
  • 表示語料庫,當中的是語料庫中的文檔數(固定值)
  • 表示文檔,當中的表示一個文檔中的詞數(隨機變量)

4.1 各個基礎模型

4.1.1 Unigram model

    對於文檔。用表示詞的先驗機率。生成文檔的機率爲:

    其圖模型爲(圖中被塗色的w表示可觀測變量,N表示一篇文檔中總共N個單詞,M表示M篇文檔):

    或爲:

    unigram model假設文本中的詞服從Multinomial分佈。而咱們已經知道Multinomial分佈的先驗分佈爲Dirichlet分佈。
    上圖中的表示在文本中觀察到的第n個詞。n∈[1,N]表示該文本中一共同擁有N個單詞。

加上方框表示反覆,即一共同擁有N個這樣的隨機變量

當中,p和α是隱含未知變量:

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

    通常α由經驗事先給定,p由觀察到的文本中出現的詞學習獲得,表示文本中出現每個詞的機率。

4.1.2 Mixture of unigrams model

    該模型的生成過程是:給某個文檔先選擇一個主題,再依據該主題生成文檔。該文檔中的所有詞都來自一個主題。

假設主題有。生成文檔的機率爲:

    其圖模型爲(圖中被塗色的w表示可觀測變量,未被塗色的z表示未知的隱變量。N表示一篇文檔中總共N個單詞,M表示M篇文檔):

4.2 PLSA模型

    啊哈,長征兩萬五,通過前面這麼長的鋪墊。終於快要接近LDA模型了!因爲跟LDA模型最爲接近的即是如下要闡述的這個pLSA模型,理解了pLSA模型後,到LDA模型也就一步之遙——給pLSA加上貝葉斯框架,即是LDA。

4.2.1 pLSA模型下生成文檔

    OK。在上面的Mixture of unigrams model中。咱們假定一篇文檔僅僅有一個主題生成。可實際中,一篇文章每每有多個主題,僅僅是這多個主題各自在文檔中出現的機率大小不同。比方介紹一個國家的文檔中。每每會分別從教育、經濟、交通等多個主題進行介紹。

那麼在pLSA中,文檔是怎樣被生成的呢

    假設你要寫M篇文檔。因爲一篇文檔由各個不一樣的詞組成,因此你需要肯定每篇文檔裏每個位置上的詞。
    再假定你一共同擁有K個可選的主題,有V個可選的詞,我們來玩一個扔骰子的遊戲。
  • 1. 假設你每寫一篇文檔會製做一顆K面的「文檔-主題」骰子(扔此骰子能獲得K個主題中的隨意一個),和K個V面的「主題-詞項」 骰子(每個骰子相應一個主題,K個骰子相應以前的K個主題。且骰子的每一面相應要選擇的詞項,V個面相應着V個可選的詞)。
    • 比方可令K=3。即製做1個含有3個主題的「文檔-主題」骰子,這3個主題可以是:教育、經濟、交通。而後令V = 3,製做3個有着3面的「主題-詞項」骰子,當中,教育主題骰子的3個面上的詞可以是:大學、老師、課程。經濟主題骰子的3個面上的詞可以是:市場、企業、金融,交通主題骰子的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. 最後,你不停的反覆扔「文檔-主題」骰子和」主題-詞項「骰子。反覆N次(產生N個詞),完畢一篇文檔,反覆這產生一篇文檔的方法M次。則完畢M篇文檔。
    上述過程抽象出來便是PLSA的文檔生成模型。在這個過程當中,咱們並未關注詞和詞之間的出現順序,因此pLSA是一種詞袋方法。詳細說來,該模型假設一組共現(co-occurrence)詞項關聯着一個隱含的主題類別

同一時候定義:

  • 表示海量文檔中某篇文檔被選中的機率。
  • 表示詞在給定文檔中出現的機率。
    • 怎麼計算獲得呢?針對海量文檔,對所有文檔進行分詞後,獲得一個詞彙列表。這樣每篇文檔就是一個詞語的集合。

      對於每個詞語,用它在文檔中出現的次數除以文檔中詞語總的數目即是它在文檔中出現的機率

  • 表示詳細某個主題在給定文檔下出現的機率。
  • 表示詳細某個詞在給定主題下出現的機率,與主題關係越密切的詞,其條件機率越大。
    利用上述的第一、三、4個機率,咱們便可以依照例如如下的步驟獲得「文檔-詞項」的生成模型:
  1. 依照機率選擇一篇文檔
  2. 選定文檔後,從主題分佈中依照機率選擇一個隱含的主題類別
  3. 選定後,從詞分佈中依照機率選擇一個詞
    因此pLSA中生成文檔的整個過程即是選定文檔生成主題,肯定主題生成詞。

4.2.1 依據文檔反推其主題分佈

    反過來,既然文檔已經產生,那麼怎樣依據已經產生好的文檔反推其主題呢?這個利用看到的文檔判斷其隱藏的主題(分佈)的過程(事實上也就是產生文檔的逆過程),即是主題建模的目的:本身主動地發現文檔集中的主題(分佈)。
    換言之。人類依據文檔生成模型寫成了各種文章,而後丟給了 計算機,至關於計算機看到的是一篇篇已經寫好的文章。現在計算機需要依據一篇篇文章中看到的一系列詞概括出當篇文章的主題,進而得出各個主題各自不一樣的出現機率:主題分佈

即文檔d和單詞w是可被觀察到的,但主題z倒是隱藏的。

    例如如下圖所看到的( 圖中被塗色的d、w表示可觀測變量。未被塗色的z表示未知的隱變量。N表示一篇文檔中總共N個單詞,M表示M篇文檔):
    上圖中,文檔d和詞w是咱們獲得的樣本(樣本隨機,參數雖未知但固定,因此pLSA屬於頻率派思想。差異於下文要介紹的LDA中:樣本固定,參數未知但不固定,是個隨機變量,服從必定的分佈。因此LDA屬於貝葉斯派思想)。可觀測獲得,因此對於隨意一篇文檔。其是已知的。
    從而可以依據大量已知的文檔-詞項信息,訓練出文檔-主題主題-詞項,例如如下公式所看到的:
    故獲得文檔中每個詞的生成機率爲:

    因爲可事先計算求出,未知,因此就是咱們要預計的參數(值),通俗點說。就是要最大化這個θ。

    用什麼方法進行預計呢,常用的參數預計方法有極大似然預計MLE、最大後驗證預計MAP、貝葉斯預計等等。因爲該待預計的參數中含有隱變量z,因此咱們可以考慮EM算法。

4.2.1.1 EM算法的簡介

    EM算法。全稱爲Expectation-maximization algorithm,爲指望最大算法,其基本思想是:首先隨機選取一個值去初始化待預計的值,而後不斷迭代尋找更優的使得其似然函數likelihood 比原來的要大。

換言之,假定現在獲得了。想求,使得

    EM的關鍵即是要找到的一個下界(注:當中。X表示已經觀察到的隨機變量)。而後不斷最大化這個下界。經過不斷求解下界的極大化,從而逼近要求解的似然函數

    因此EM算法的通常步驟爲:

  • 1. 隨機選取或者依據先驗知識初始化
  • 2. 不斷迭代下述兩步
    • ①給出當前的參數預計,計算似然函數的下界
    • ②又一次預計參數θ。即求,使得
  • 3. 上述第二步後,假設收斂(即收斂)則退出算法,不然繼續回到第二步。

    上述過程比如在二維平面上。有兩條不相交的曲線,一條曲線在上(簡稱上曲線)。一條曲線在下(簡稱下曲線),下曲線爲上曲線的下界。現在對上曲線未知。僅僅已知下曲線,爲了求解上曲線的最高點,咱們試着不斷增大下曲線。使得下曲線不斷逼近上曲線,下曲線在某一個點達到局部最大值並與上曲線在這點的值相等,記錄下這個值,而後繼續增大下曲線,尋找下曲線上與上曲線上相等的值,迭代到收斂(即收斂)中止,從而利用當前下曲線上的局部最大值看成上曲線的全局最大值(換言之,EM算法不保證必定能找到全局最優值)。

例如如下圖所看到的:

    如下是詳細介紹。

    假定有訓練集包括m個獨立樣本,但願從中找到該組數據的模型p(x,z)的參數。

   

    而後經過極大似然預計創建目標函數--對數似然函數:

    這裏,z是隱隨機變量,直接找到參數的預計是很是困難的。

咱們的策略是創建的下界。並且求該下界的最大值;反覆這個過程,直到收斂到局部最大值。

    令Qi是z的某一個分佈。Qi≥0,且結合Jensen不等式,有:

    爲了尋找儘可能緊的下界。咱們可以讓使上述等號成立,而若要讓等號成立的條件則是:

    換言之。有如下式子成立:。且因爲有:

    因此可得:

    終於獲得EM算法的整體框架例如如下:

    OK,EM算法還會在本博客後面的博文中詳細闡述。

接下來,回到pLSA參數的預計問題上。

 

4.2.1.2 EM算法預計pLSA的兩未知參數

    首先嚐試從矩陣的角度來描寫敘述待預計的兩個未知變量

  • 假定用表示詞表在主題上的一個多項分佈,則可以表示成一個向量,每個元素表示詞項出現在主題中的機率,即

  • 表示所有主題在文檔上的一個多項分佈,則可以表示成一個向量,每個元素表示主題出現在文檔中的機率,即

    這樣,巧妙的把轉換成了兩個矩陣

換言之,終於咱們要求解的參數是這兩個矩陣:

    因爲詞和詞之間是相互獨立的,因此整篇文檔N個詞的分佈爲:

    再因爲文檔和文檔之間也是相互獨立的,因此整個語料庫中詞的分佈爲(整個語料庫M篇文檔,每篇文檔N個詞):

    當中。表示詞項在文檔中的詞頻。表示文檔di中詞的總數。顯然有


    從而獲得整個語料庫的詞分佈的對數似然函數(下述公式中有個小錯誤,正確的應該是:N爲M。M爲N):

    現在,咱們需要最大化上述這個對數似然函數來求解參數。對於這樣的含有隱變量的最大似然預計,可以使用EM算法。EM算法,分爲兩個步驟:先E-step,後M-step。

  • E-step:假定參數已知,計算此時隱變量的後驗機率。

    利用貝葉斯法則,可以獲得:

  • M-step:帶入隱變量的後驗機率,最大化樣本分佈的對數似然函數,求解相應的參數。

    觀察以前獲得的對數似然函數的結果。因爲文檔長度可以單獨計算。因此去掉它不影響最大化似然函數。

此外,依據E-step的計算結果,把 代入,因而咱們僅僅要最大化如下這個函數  就能夠下述公式中有個小錯誤,正確的應該是:N爲M,M爲N):

    這是一個多元函數求極值問題,並且已知有例如如下約束條件下述公式中有個小錯誤,正確的應該是:M爲N):

    熟悉凸優化的朋友應該知道。通常處理這樣的帶有約束條件的極值問題,常用的方法即是拉格朗日乘數法,即經過引入拉格朗日乘子將約束條件和多元(目標)函數融合到一塊兒,轉化爲無約束條件的極值問題。

    這裏咱們引入兩個拉格朗日乘子,從而寫出拉格朗日函數下述公式中有個小錯誤,正確的應該是:N爲M。M爲N):

    因爲咱們要求解的參數是,因此分別對求偏導。而後令偏導結果等於0,獲得下述公式中有個小錯誤。正確的應該是:N爲M,M爲N):

    消去拉格朗日乘子,終於可預計出參數下述公式中有個小錯誤,正確的應該是:N爲M,M爲N):

    綜上。在pLSA中:

  1. 因爲未知,因此咱們用EM算法去預計這個參數的值。
  2. 然後,用表示詞項出現在主題中的機率。即,用表示主題出現在文檔中的機率,即。從而轉換成了「主題-詞項」矩陣Φ(主題生成詞),把轉換成了「文檔-主題」矩陣Θ(文檔生成主題)。
  3. 終於求解出

4.3 LDA模型

    事實上,理解了pLSA模型,也就差點兒相同快理解了LDA模型。因爲LDA就是在pLSA的基礎上加層貝葉斯框架,即LDA就是pLSA的貝葉斯版本號(正因爲LDA被貝葉斯化了,因此才需要考慮歷史先驗知識,才加的兩個先驗參數)。

4.3.1 pLSA跟LDA的對照:生成文檔與參數預計

    在pLSA模型中,咱們依照例如如下的步驟獲得「文檔-詞項」的生成模型:

  1. 依照機率選擇一篇文檔
  2. 選定文檔後。肯定文章的主題分佈
  3. 從主題分佈中依照機率選擇一個隱含的主題類別
  4. 選定後,肯定主題下的詞分佈
  5. 從詞分佈中依照機率選擇一個詞 

    如下。我們對照下本文開頭所述的LDA模型中一篇文檔生成的方式是怎樣的:

  1. 依照先驗機率選擇一篇文檔
  2. 從狄利克雷分佈(即Dirichlet分佈)中取樣生成文檔 的主題分佈,換言之,主題分佈由超參數爲的Dirichlet分佈生成
  3. 從主題的多項式分佈中取樣生成文檔第 j 個詞的主題
  4. 從狄利克雷分佈(即Dirichlet分佈)中取樣生成主題相應的詞語分佈。換言之,詞語分佈由參數爲的Dirichlet分佈生成
  5. 從詞語的多項式分佈中採樣終於生成詞語 

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

    繼續拿以前解說PLSA的樣例進行詳細說明。

如前所述。在PLSA中,選主題和選詞都是兩個隨機的過程,先從主題分佈{教育:0.5,經濟:0.3。交通:0.2}中抽取出主題:教育,而後從該主題相應的詞分佈{大學:0.5,老師:0.3,課程:0.2}中抽取出詞:大學。

    而在LDA中。 選主題和選詞依舊都是兩個隨機的過程。依舊多是先從主題分佈{教育:0.5,經濟:0.3。交通:0.2}中抽取出主題:教育。而後再從該主題相應的詞分佈{大學:0.5,老師:0.3,課程:0.2}中抽取出詞:大學
    那PLSA跟LDA的差異在於什麼地方呢?差異就在於:
  • PLSA中,主題分佈和詞分佈是惟一肯定的。能明確的指出主題分佈可能就是{教育:0.5。經濟:0.3。交通:0.2}。詞分佈可能就是{大學:0.5,老師:0.3,課程:0.2}
  • 但在LDA中,主題分佈和詞分佈再也不惟一肯定不變。即沒法確切給出。

    好比主題分佈多是{教育:0.5,經濟:0.3,交通:0.2}。也多是{教育:0.6。經濟:0.2,交通:0.2},到底是哪一個咱們再也不肯定(即不知道)。因爲它是隨機的可變化的。但再怎麼變化。也依舊服從必定的分佈,即主題分佈跟詞分佈由Dirichlet先驗隨機肯定

   看到這,你可能凌亂了,你說面對多個主題或詞,各個主題或詞被抽中的機率不同,因此抽取主題或詞是隨機抽取,還好理解。但現在你說主題分佈和詞分佈自己也都是不肯定的,這是怎麼回事?沒辦法,誰叫Blei等人「強行」給PLSA安了個貝葉斯框架呢。正因爲LDA是PLSA的貝葉斯版本號。因此主題分佈跟詞分佈自己由先驗知識隨機給定。
    進一步,你會發現:
  • pLSA中,主題分佈和詞分佈肯定後。以必定的機率()分別選取詳細的主題和詞項,生成好文檔。

    然後依據生成好的文檔反推其主題分佈、詞分佈時,終於用EM算法(極大似然預計思想)求解出了兩個未知但固定的參數的值:(由轉換而來)和(由轉換而來)。

    • 文檔d產生主題z的機率。主題z產生單詞w的機率都是兩個固定的值。
      • 舉個文檔d產生主題z的樣例。給定一篇文檔d,主題分佈是必定的,比方{ P(zi|d), i = 1,2,3 }可能就是{0.4,0.5,0.1},表示z一、z二、z3。這3個主題被文檔d選中的機率都是個固定的值:P(z1|d) = 0.四、P(z2|d) = 0.五、P(z3|d) = 0.1,例如如下圖所看到的(圖截取自沈博PPT上):

  • 但在貝葉斯框架下的LDA中,咱們再也不以爲主題分佈(各個主題在文檔中出現的機率分佈)和詞分佈(各個詞語在某個主題下出現的機率分佈)是惟一肯定的(而是隨機變量),而是有很是多種可能。但一篇文檔總得相應一個主題分佈和一個詞分佈吧。怎麼辦呢?LDA爲它們弄了兩個Dirichlet先驗參數,這個Dirichlet先驗爲某篇文檔隨機抽取出某個主題分佈和詞分佈。
    • 文檔d產生主題z(準確的說。事實上是Dirichlet先驗爲文檔d生成主題分佈Θ,而後依據主題分佈Θ產生主題z)的機率,主題z產生單詞w的機率都再也不是某兩個肯定的值。而是隨機變量
      • 仍是再次舉下文檔d詳細產生主題z的樣例。給定一篇文檔d,現在有多個主題z一、z二、z3,它們的主題分佈{ P(zi|d), i = 1,2,3 }多是{0.4,0.5,0.1},也多是{0.2,0.2,0.6},即這些主題被d選中的機率都再也不以爲是肯定的值,多是P(z1|d) = 0.四、P(z2|d) = 0.五、P(z3|d) = 0.1,也有多是P(z1|d) = 0.二、P(z2|d) = 0.二、P(z3|d) = 0.6等等。而主題分佈到底是哪一個取值集合咱們不肯定(爲何?這就是貝葉斯派的核心思想。把未知參數看成是隨機變量,再也不以爲是某一個肯定的值)。但其先驗分佈是dirichlet 分佈,因此可以從無窮多個主題分佈中依照dirichlet 先驗隨機抽取出某個主題分佈出來。例如如下圖所看到的(圖截取自沈博PPT上):

 
    換言之,LDA在pLSA的基礎上給這兩參數)加了兩個先驗分佈的參數(貝葉斯化):一個主題分佈的先驗分佈Dirichlet分佈,和一個詞語分佈的先驗分佈Dirichlet分佈
    綜上,LDA真的僅僅是pLSA的貝葉斯版本號,文檔生成後,二者都要依據文檔去判斷其主題分佈和詞語分佈( 即二者本質都是爲了預計給定文檔生成主題。給定主題生成詞語的機率),僅僅是用的參數判斷方法不一樣。在pLSA中用極大似然預計的思想去判斷兩未知的固定參數。而LDA則把這兩參數弄成隨機變量,且增長dirichlet先驗。
    因此,pLSA跟LDA的本質差異就在於它們去預計未知參數所採用的思想不一樣,前者用的是頻率派思想,後者用的是貝葉斯派思想。
    比如,我去一朋友家:
  • 依照頻率派的思想,我預計他在家的機率是1/2。不在家的機率也是1/2,是個定值。
  • 依照貝葉斯派的思想。他在家不在家的機率再也不以爲是個定值1/2,而是隨機變量。比方依照咱們的經驗(比方當天週末),推測他在家的機率是0.6,但這個0.6不是說就是全然肯定的。也有多是0.7。

    如此。貝葉斯派無法確切給出參數的肯定值(0.3,0.4,0.6,0.7,0.8,0.9都有可能),但至少明確在哪一個範圍或哪些取值(0.6,0.7。0.8,0.9)更有可能,哪一個範圍或哪些取值(0.3,0.4) 不太可能。

    進一步。貝葉斯預計中,參數的多個預計值服從必定的先驗分佈,然後依據實踐得到的數據(好比周末不斷跑他家)。不斷修正以前的參數預計。從先驗分佈慢慢過渡到後驗分佈。

    OK,相信已經解釋清晰了。

假設是在機器學習班上face-to-face,更好解釋和溝通。

4.3.2 LDA生成文檔過程的進一步理解

    上面說。LDA中,主題分佈  —— 比方{ P(zi), i =1,2,3 }等於{0.4,0.5,0.1}或{0.2,0.2,0.6} —— 是由dirichlet先驗給定的,不是依據文檔產生的。因此。LDA生成文檔的過程當中,先從dirichlet先驗中「隨機」抽取出主題分佈,而後從主題分佈中「隨機」抽取出主題。最後從肯定後的主題相應的詞分佈中「隨機」抽取出詞。
    那麼,dirichlet先驗到底是怎樣「隨機」抽取主題分佈的呢?
    事實上。從dirichlet分佈中隨機抽取主題分佈,這個過程不是全然隨機的。

爲了說清晰這個問題,我們得回想下dirichlet分佈。事實上。假設咱們取3個事件的話,可以創建一個三維座標系。類似xyz三維座標系,這裏。咱們把3個座標軸弄爲p一、p二、p3,例如如下圖所看到的:

    在這個三維座標軸所劃分的空間裏,每個座標點(p1,p2,p3)就相應着一個主題分佈。且某一個點(p1,p2,p3)的大小表示3個主題z一、z二、z3出現的機率大小(因爲各個主題出現的機率和爲1。因此p1+p2+p3 = 1,且p一、p二、p3這3個點最大取值爲1)。比方(p1,p2,p3) = (0.4,0.5,0.1)便相應着主題分佈{ P(zi), i =1,2,3 } = {0.4,0.5,0.1}。

    可以想象到,空間裏有很是多這樣的點(p1,p2,p3)。意味着有很是多的主題分佈可供選擇,那dirichlet分佈怎樣選擇主題分佈呢?把上面的斜三角形放倒。映射究竟面的平面上,便獲得例如如下所看到的的一些彩圖(3個彩圖中,每個點相應一個主題分佈,高度表明某個主題分佈被dirichlet分佈選中的機率。且選不一樣的。dirichlet 分佈會偏向不一樣的主題分佈):

    咱們來看上圖中左邊這個圖,高度就是表明dirichlet分佈選取某個座標點(p1,p2,p3)(這個點就是一個主題分佈)的機率大小。例如如下圖所看到的,平面投影三角形上的三個頂點上的點:A=(0.9,0.05,0.05)、B=(0.05,0.9,0.05)、C=(0.05,0.05,0.9)各自相應的主題分佈被dirichlet分佈選中的機率值很是大。而平面三角形內部的兩個點:D、E相應的主題分佈被dirichlet分佈選中的機率值很是小。

    因此儘管說dirichlet分佈是隨機選取隨意一個主題分佈的,但依舊存在着P(A) = P(B) = P(C) >> P(D) = P(E)。即dirichlet分佈仍是「偏心」某些主題分佈的。至於dirichlet分佈的參數 是怎樣決定dirichlet分佈的形狀的。可以從dirichlet分佈的定義和公式思考。
    此外。就算說「隨機」選主題也是依據主題分佈來「隨機」選取。這裏的隨機不是全然隨機的意思,而是依據各個主題出現的機率值大小來抽取。比方當dirichlet先驗爲文檔d生成的主題分佈{ P(zi), i =1,2,3 }是{0.4,0.5,0.1}時,那麼主題z2在文檔d中出現的機率即是0.5。因此。從主題分佈中抽取主題,這個過程也不是全然隨機的。而是依照各個主題出現的機率值大小進行抽取。

4.3.3 pLSA跟LDA的機率圖對照

    接下來,對照下LDA跟pLSA的機率模型圖模型,左圖是pLSA。右圖是LDA(右圖不太規範,z跟w都得是小寫。 當中,陰影圓圈表示可觀測的變量。非陰影圓圈表示隱變量,箭頭表示兩變量間的條件依賴性conditional dependency,方框表示反覆抽樣,方框右下角的數字表明反覆抽樣的次數):
             
    相應到上面右圖的LDA,僅僅有W / w是觀察到的變量,其它都是隱變量或者參數。當中。Φ表示詞分佈,Θ表示主題分佈,  是主題分佈Θ的先驗分佈(即Dirichlet 分佈)的參數。 是詞分佈Φ的先驗分佈(即Dirichlet 分佈)的參數,N表示文檔的單詞總數,M表示文檔的總數。
    因此,對於一篇文檔d中的每個單詞,LDA依據先驗知識 肯定某篇文檔的主題分佈θ,而後從該文檔所相應的多項分佈(主題分佈)θ中抽取一個主題z,接着依據先驗知識 肯定當前主題的詞語分佈ϕ,而後從主題z所相應的多項分佈(詞分佈)ϕ中抽取一個單詞w。而後將這個過程反覆N次。就產生了文檔d。
    換言之:
  1. 假定語料庫中共同擁有M篇文章,每篇文章下的Topic的主題分佈是一個從參數爲的Dirichlet先驗分佈中採樣獲得的Multinomial分佈。每個Topic下的詞分佈是一個從參數爲的Dirichlet先驗分佈中採樣獲得的Multinomial分佈。
  2. 對於某篇文章中的第n個詞,首先從該文章中出現的每個主題的Multinomial分佈(主題分佈)中選擇或採樣一個主題,而後再在這個主題相應的詞的Multinomial分佈(詞分佈)中選擇或採樣一個詞。不斷反覆這個隨機生成過程,直到M篇文章所有生成完畢。
    綜上,M 篇文檔會相應於 M 個獨立的 Dirichlet-Multinomial 共軛結構。K 個 topic 會相應於 K 個獨立的 Dirichlet-Multinomial 共軛結構。
  • 當中。→θ→z 表示生成文檔中的所有詞相應的主題,顯然 →θ 相應的是Dirichlet 分佈,θ→z 相應的是 Multinomial 分佈。因此整體是一個 Dirichlet-Multinomial 共軛結構。例如如下圖所看到的:
  • 類似的,→φ→w,easy看出, 此時β→φ相應的是 Dirichlet 分佈, φ→w 相應的是 Multinomial 分佈, 因此整體也是一個Dirichlet-Multinomial 共軛結構,例如如下圖所看到的:

4.3.4 pLSA跟LDA參數預計方法的對照

    上面對照了pLSA跟LDA生成文檔的不一樣過程,如下,我們反過來,假定文檔已經產生,反推其主題分佈。那麼,它們預計未知參數所採用的方法又有什麼不一樣呢?
  • 在pLSA中,咱們使用EM算法去預計「主題-詞項」矩陣Φ(由轉換獲得)和「文檔-主題」矩陣Θ(由轉換獲得)這兩個參數,並且這兩參數都是個固定的值。僅僅是未知,使用的思想事實上就是極大似然預計MLE。
  • 而在LDA中,預計Φ、Θ這兩未知參數可以用變分(Variational inference)-EM算法,也可以用gibbs採樣,前者的思想是最大後驗預計MAPMAP與MLE類似,都把未知參數看成固定的值,後者的思想是貝葉斯預計。貝葉斯預計是對MAP的擴展,但它與MAP有着本質的不一樣。即貝葉斯預計把待預計的參數看做是服從某種先驗分佈的隨機變量。
    • 關於貝葉斯預計再舉個樣例。假設中國的大學僅僅有兩種:理工科和文科,這兩種學校數量的比例是1:1。當中,理工科男女比例7:1,文科男女比例1:7。某天你被外星人隨機扔到一個校園,問你該學校可能的男女比例是多少?而後,你實際到該校園裏逛了一圈,看到的5我的全是男的。這時候再次問你這個校園的男女比例是多少?
      1. 因爲剛開始時,有先驗知識,因此該學校的男女比例要麼是7:1。要麼是1:7,即P(比例爲7:1) = 1/2,P(比例爲1:7) = 1/2。
      2. 而後看到5個男生後又一次預計男女比例。事實上就是求P(比例7:1|5個男生)= ?,P(比例1:7|5個男生) = ?
      3. 用貝葉斯公式,可得:P(比例7:1|5個男生) = P(比例7:1)*P(5個男生|比例7:1) / P(5個男生),P(5個男生)是5個男生的先驗機率。與學校無關,因此是個常數;類似的,P(比例1:7|5個男生) = P((比例1:7)*P(5個男生|比例1:7)/P(5個男生)。
      4. 最後將上述兩個等式比一下。可得:P(比例7:1|5個男生)/P(比例1:7|5個男生) = {P((比例7:1)*P(5個男生|比例7:1)} / { P(比例1:7)*P(5個男生|比例1:7)}。
    因爲LDA把要預計的主題分佈和詞分佈看做是其先驗分佈是Dirichlet分佈的隨機變量,因此,在LDA這個預計主題分佈、詞分佈的過程當中,它們的先驗分佈(即Dirichlet分佈)事先由人爲給定,那麼LDA就是要去求它們的後驗分佈(LDA中可用gibbs採樣去求解它們的後驗分佈。獲得指望)!
   此外,不厭其煩的再插一句,在LDA中,主題分佈和詞分佈自己都是多項分佈,而由上文3.2節可知「Dirichlet分佈是多項式分佈的共軛先驗機率分佈」。所以選擇Dirichlet 分佈做爲它們的共軛先驗分佈。意味着爲多項分佈的參數p選取的先驗分佈是Dirichlet分佈,那麼以p爲參數的多項分佈用貝葉斯預計獲得的後驗分佈仍然是Dirichlet分佈。

4.3.5 LDA參數預計:Gibbs採樣

    理清了LDA中的物理過程,如下我們來看下怎樣學習預計。

    類似於pLSA。LDA的原始論文中是用的變分-EM算法預計未知參數,後來發現還有一種預計LDA未知參數的方法更好,這樣的方法就是:Gibbs Sampling,有時叫Gibbs採樣或Gibbs抽樣。都一個意思。Gibbs抽樣是馬爾可夫鏈蒙特卡爾理論(MCMC)中用來獲取一系列近似等於指定多維機率分佈(比方2個或者多個隨機變量的聯合機率分佈)觀察樣本的算法。

    OK,給定一個文檔集合。w是可以觀察到的已知變量,是依據經驗給定的先驗參數,其它的變量z,θ和φ都是未知的隱含變量,需要依據觀察到的變量來學習預計的。依據LDA的圖模型,可以寫出所有變量的聯合分佈:

    注:上述公式中及下文中。等價上文中定義的等價於上文中定義的等價於上文中定義的等價於上文中定義的

    因爲產生主題分佈θ,主題分佈θ肯定詳細主題,且產生詞分佈φ、詞分佈φ肯定詳細詞,因此上述式子等價於下述式子所表達的聯合機率分佈

    當中,第一項因子表示的是依據肯定的主題和詞分佈的先驗分佈參數採樣詞的過程,第二項因子是依據主題分佈的先驗分佈參數採樣主題的過程,這兩項因子是需要計算的兩個未知參數

    因爲這兩個過程是獨立的。因此如下可以分別處理。各個擊破。

    第一個因子,可以依據肯定的主題和從先驗分佈取樣獲得的詞分佈Φ產生:

    因爲樣本中的詞服從參數爲主題的獨立多項分佈,這意味着可以把上面對詞的乘積分解成分別對主題和對詞的兩層乘積:

    當中,是詞 t 在主題 k 中出現的次數。

    回到第一個因子上來。

目標分佈需要對詞分佈Φ積分。且結合咱們以前在3.1節定義的Dirichlet 分佈的歸一化係數的公式

    可得:

    這個結果可以看做K個Dirichlet-Multinomial模型的乘積。
    現在開始求第二個因子。類似於的步驟。先寫出條件分佈,而後分解成兩部分的乘積:

    當中。 表示的單詞 i 所屬的文檔,是主題 k 在文章 m 中出現的次數。

    對主題分佈Θ積分可得:

    綜合第一個因子和第二個因子的結果,獲得的聯合分佈結果爲

    接下來, 有了聯合分佈。我們便可以經過聯合分佈來計算在給定可觀測變量 w 下的隱變量 z 的條件分佈(後驗分佈)來進行貝葉斯分析
    換言之,有了這個聯合分佈後,要求解第m篇文檔中的第n個詞(下標爲 的詞)的所有條件機率就好求了。
    先定義幾個變量。 表示除去 的詞。
    而後。排除當前詞的主題分配。即依據其它詞的主題分配和觀察到的單詞來計算當前詞主題的機率公式爲:
    勘誤:考慮到,因此上述公式的第二行的分子,非p(w,z) *p(z)。而是p(w|z)*p(z)。
    且有:
    最後一步,即是依據Markov鏈的狀態 獲取主題分佈的參數Θ和詞分佈的參數Φ。
    換言之依據貝葉斯法則和Dirichlet先驗,以及上文中獲得的 各自被分解成兩部分乘積的結果,可以計算獲得 每個文檔上Topic的後驗分佈和每個Topic下的詞的後驗分佈分別例如如下(據上文可知: 其後驗分佈跟它們的先驗分佈同樣,也都是Dirichlet 分佈
    當中, 是構成文檔m的主題數向量, 是構成主題k的詞項數向量。
 
    此外,別忘了上文中2.4節所述的Dirichlet的一個性質,例如如下:

     「 假設,相同可以證實有下述結論成立:

    即:假設 。則 中的任一元素 的指望是:
    可以看出。超參數 的直觀意義就是事件先驗的僞計數(prior pseudo-count)。

 
    因此,終於求解的Dirichlet 分佈指望爲

    而後將 的結果代入以前獲得的 的結果中,可得:
    細緻觀察上述結果。可以發現,式子的右半部分即是 ,這個機率的值相應着 的路徑機率。

如此,K 個topic 相應着K條路徑,Gibbs Sampling 便在這K 條路徑中進行採樣。例如如下圖所看到的:

    何等奇異。就這樣,Gibbs Sampling經過求解出主題分佈和詞分佈的後驗分佈,從而成功解決主題分佈和詞分佈這兩參數未知的問題。
相關文章
相關標籤/搜索