LDA漫游系列(五)-基于Gibbs Sampling的LDA模型

我們日常生活中總是產生大量的文本,如果每一個文本存儲為一篇文檔, 那么每篇文丹從人的觀察來說就是有序的詞的序列d=(w1,w2,...wn).

統計文本建模的目的就是追問這些觀察到的語料庫中的詞序列是如何生成的,統計學被人們描述為猜測上帝的游戲,人類產生的所有語料文本我們都可以看成是一個偉大的上帝在天堂上拋擲骰子生成的,我們觀察到的只是上帝玩這個游戲的結果-詞序列構成的語料,而上帝玩這個游戲的過程對我們來說是個黑盒子。所以在統計文本建模中,我們希望猜測出上帝是怎么玩這個游戲的,具體一點,最核心的兩個問題是:
(1)上帝都有什么樣的骰子
(2)上帝是如何拋擲這些骰子的
第一個問題表示模型中都有哪些參數,即骰子中的每一面被擲出的概率,第二個問題表示游戲規則是什么,上帝可能有各種不同類型的骰子,上帝可以按照一定的規則拋擲這些骰子從而產生詞序列。

1、Unigram Model

假設我們的一個詞典中共有V個詞,那么最簡單的Unigram模型認為上帝按照如下的游戲規則產生文本:


這個拋擲骰子的實驗類似于一個多項分布,記為

那么對于一篇文檔d=(w1,w2,...wn),該文檔被生成的概率就是:


而文檔與文檔之間我們認為是獨立的,所以如果語料中有多篇文檔,那么該語料生成的概率是:


在Unigram Model中,我們假設了文檔之間是獨立可交換的,而文檔中的詞也是獨立可交換的,所以一篇文檔相當于一個袋子,里面裝了一些詞,而詞的順序信息就無關緊要了,這樣的模型也稱為詞袋模型(Bag-of-words)。

假設語料中總的詞頻是N,如果我們關注的每個詞vi的發生次數是ni,那么每個詞發生的概率正好對應于一個多項分布:

此時語料的概率是:



所以,我們現在的任務就是估計模型中的參數p了,即問上帝擁有的骰子各個面出現的概率有多大,統計學家種頻率派的觀點,可能這樣得到概率的估計值:

而對于這樣的估計方法,貝葉斯統計學派的統計學家是不會同意的,他們不認為上帝只有這么一個骰子,也就是說,以上模型參數p不是唯一固定的,他們認為上帝按照以下的規則進行游戲:

上帝的這個壇子里面,骰子可以是無窮多個,有些類型的骰子數量多,有些類型的骰子數量少,所以從概率分布的角度看,壇子里面的骰子p服從一個先驗概率分布:

所以,在貝葉斯學派看來,語料的概率是這樣計算的:由于我們并不知道上帝到底用了哪個骰子,所以每個骰子都是可能被使用的,只是使用的概率由先驗分布來決定,對每一個具體的骰子,都有一個產生語料所對應的概率,所以最終數據產生的概率就是對每一個骰子上產生的數據概率進行積分累加求和:



由于每個詞是我們可以看到的,詞的選擇服從一個多項分布,所以對先驗分布一個比較好的選擇就是其對應的共軛先驗分布,即Dirichlet分布:


回顧之前在共軛先驗分布一節中介紹的知識:



所以在給定了先驗分布,各個詞出現頻次的數據服從多項分布,無需計算我們就可以推導出后驗分布:

所以,參數的期望為:

也就是說對于每一個參數pi,我們用下式做參數估計:

進一步,我們可以計算出文本語料產生的概率:


2、LDA Topic Model

LDA的圖模型如下:



這個圖模型表示法有時也稱作“盤子表示法”,圖中的陰影圓圈可以表示觀測變量(observed variable),非陰影圓圈表示潛在變量(latent variable),箭頭表示兩變量間的條件依賴性(conditional dependency),方框表示重復抽樣,重復次數在方框的右下角。
在上面的圖中:
M代表訓練語料中的文章數;
K代表設置的主題個數;
V代表訓練語料庫中出現的所有詞的詞表;
θ是一個M*K的矩陣,θm代表第m篇文章的主題分布;
Φ是一個K*V的矩陣,Φk代表編號為k的主題之上的詞分布;
α是每篇文檔的主題分布的先驗分布Dirichlet分布的參數(也被稱為超參數),θi~Dir(α);
β是每個主題的詞分布的先驗分布Dirichlet分布的參數(也被稱為超參數),Φk~Dir(β);
w是可被觀測的詞.

我們仍然用上帝擲骰子的過程來解釋一下上面的圖模型。在LDA模型中,上帝是按照如下的規則玩文檔生成的游戲的:



假設語料庫中有M篇文檔,所有的word和對應的topic如下所示:

使用概率圖模型表示,LDA模型的游戲過程如圖所示:



這個概率圖可以分解為兩個主要的物理過程:


理解LDA最重要的就是理解這兩個物理過程,LDA模型在基于K個topic生成語料中的M篇文檔的過程中,由于是bag-of-words,有一些物理過程是相互獨立可交換的,由此,LDA生成模型中,M篇文檔會對英語M個獨立的Dirichlet-Multionmial共軛結構,K個topic會對應于K個獨立的Dirichlet-Multionmial共軛結構。所以理解LDA所需要的就是理解Dirichlet-Multionmial共軛。所以,現在我們進入細節,來看看LDA模型是如何被分解為M+K個Dirichlet-Multionmial共軛結構的。


所以我們可以得到:


由于語料中M篇文檔的topics生成過程相互獨立,所以我們得到M個相互獨立的Dirichlet-Multionmial共軛結構,從而我們可以得到整個語料中的topics生成概率:

到目前為止,我們已經得到了M個Dirichlet-Multionmial共軛結構,剩下的K個在哪呢?在上帝按照之前的規則玩LDA游戲的時候,上帝是先完全處理完成一篇文檔,再處理下一篇文檔。文檔中每個詞的生成都要拋兩次骰子,第一次拋doc-topic骰子得到topic,第二次拋一個topic-word骰子得到word,每次生成每篇文檔中的一個詞的時候這兩次拋骰子的動作是緊鄰輪換進行的。如果語料中一共有N個詞,則上帝共需要拋擲2N次骰子。但實際上有一些拋骰子的順序是可以交換的,我們可以等價的調整2N次拋骰子的次序,前N次用于得到topic,后N次用于得到N個word,所以上帝在玩LDA游戲的時候,可以等價的如下進行:



以上游戲是先生成了所有詞的topic,然后對每個詞在給定的topic條件下生成word,在語料中所有詞的topic已經生成的條件下,任何兩個word的生成動作都是可交換的,于是我們把語料中的詞進行交換,把具有相同topic的詞放在一起:



同樣,我們可以得到:



而語料中K個topics生成words的過程相互獨立,所以我們得到K個相互獨立的Dirichlet-Multionmial共軛結構,從而我們可以得到整個語料中詞生成概率:



所以結合兩個物理過程,我們得到:

3、LDA Gibbs采樣公式



4、LDA Gibbs采樣模型訓練

有了LDA模型,我們的目標有兩個:
有了Gibbs Sampling公式,我們就可以給予語料訓練LDA模型,并應用訓練得到的模型對新的文檔進行topic語義分析,訓練的過程就是通過Gibbs采樣獲取語料中的(z,w)的樣本,而模型的所有參數都可以基于最終采樣得到的樣本進行估計,訓練的流程如下:


有了LDA模型,對于新來的文檔,我們通過如下的流程來進行文檔的主題分布:

以下是在另一個博客上得到的類似的訓練流程,可能更加易于大家理解:


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容