【NLP】LDA筆記

參考

【NLP】LDA主題模型詳解

【NLP】LDA主題模型的簡單應用

 

 

主題模型簡介

       主題模型(Topic Model)是用來在一系列文檔中發現 抽象主題 的一種統計模型(自動分析每個文檔,統計文檔中的詞語,根據統計的信息判斷當前文檔包含哪些主題以及各個主題所佔比)。直觀來講,如果一篇文章有一箇中心思想,那麼一定存在一些特定詞語會出現的比較頻繁

  • 比方說,如果現在一篇文章是在講蘋果公司的,那麼“喬布斯”和“IPhone”等詞語出現的頻率會更高一些;如果現在一篇文章是在描述微軟公司的,那麼“Windows”和“Microsoft”等詞語出現的頻率會更高一些;
  • 但真實情況下,一篇文章中通常包含多種主題,而且每個主題所佔的比例各不相同比如一篇文章中10%和蘋果公司有關,90%和微軟公司有關,那麼和微軟有關的關鍵字出現的次數應該是蘋果關鍵字出現次數的9倍。

       主題模型 是對文本中 隱含主題 的一種建模方法,每個主題其實是詞表上單詞的概率分佈;主題模型是一種生成模型,一篇文章中每個詞都是通過“以一定概率選擇某個主題,並從這個主題中以一定概率選擇某個詞語”這樣一個過程得到的。這個過程好比我們在寫文章:一般我們寫文章的時候都是先給自己的文章定一個主題,然後我們會根據這個主題,用和這個主題有關的詞語進行組合最後形成文章。

 

LDA主題模型

簡介

LDA由Blei, David M.、Ng, Andrew Y.、Jordan於2003年提出,是一種主題模型,它可以將文檔集中每篇文檔的主題以概率分佈的形式給出,從而通過分析一些文檔抽取出它們的主題(分佈)出來後,便可以根據主題(分佈)進行主題聚類或文本分類。同時,它是一種典型的詞袋模型,即一篇文檔是由一組詞構成,詞與詞之間沒有先後順序的關係。此外,一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成

 

人類寫作:先確定自己將要寫的文章的幾個主題,然後圍繞這幾個主題遣詞造句,寫出優秀作文。

LDA 主題模型要乾的事就是:根據給定的一篇文檔,反推其主題分佈。你計算機給我推測文章分別都寫了些啥主題,且各篇文章中各個主題出現的概率大小(主題分佈,後面還會提到)是啥。

 

流程

 

數學知識點

  • 基本概率知識

 1)先驗概率:在事情尚未發生前,對該事件發生概率的估計。利用過去歷史資料計算出來得到的先驗概率叫做客觀先驗概率;憑主觀經驗來判斷而得到的先驗概率叫做主觀先驗概率。
2)後驗概率:通過調查或其它方式獲取新的附加信息,利用貝葉斯公式對先驗概率進行修正後,而得到的概率。
3)似然函數:給定模型參數 θ的條件下,樣本數據服從這一概率模型的相似程度。

θ 1 ,θ 2表示模型的未知參數,X表示樣本

 

 

  • 二項分佈

  伯努利分佈,又稱兩點分佈或0-1分佈(擲硬幣一次)。二項分佈(擲硬幣多次)即重複n次的伯努利試驗。

  • 多項分佈

       多項分佈式二項分佈的推廣,是指單次試驗中隨機變量的取值不再是0/1的,而是有多種離散值可能(1,2,3,...,k)(1,2,3,...,k)(1,2,3,...,k)。比如擲骰子,有6個面,N次試驗結果服從K=6的多項分佈。

  • Beta 分佈

Beta分佈 可以看作一個概率的概率分佈,當你不知道一個東西的具體概率是多少時,它可以給出了所有概率出現的可能性大小。

 

  • 狄利克雷分佈(Dirichlet 分佈)

 


LDA

 

基礎模型之Unigram model

 

個人認爲,這有點像LDA流程圖的下半部分:

LDA流程圖

 

 

基礎模型之Mixture of unigrams model

 在Mixture of unigrams model中,假定一篇文檔只有一個主題生成。可實際中,一篇文章往往有多個主題,只是這多個主題各自在文檔中出現的概率大小不一樣。

 

基礎模型之PLSA

(1)pLSA模型下生成文檔過程

   在上面的Mixture of unigrams model中,我們假定一篇文檔只有一個主題生成,可實際中,一篇文章往往有多個主題,只是這多個主題各自在文檔中出現的概率大小不一樣。比如介紹一個國家的文檔中,往往會分別從教育、經濟、交通等多個主題進行介紹。那麼在pLSA中,文檔是怎樣被生成的呢?

  • 假設你要寫M篇文檔,由於一篇文檔由各個不同的詞組成,所以你需要確定每篇文檔裏每個位置上的詞。
  • 再假定你一共有K個可選的主題,有V個可選的詞,咱們來玩一個扔骰子的遊戲。

第一步:

   假設你每寫一篇文檔會製作一顆K面的“文檔-主題”骰子(扔此骰子能得到K個主題中的任意一個),和K個V面的“主題-詞項” 骰子(每個骰子對應一個主題,K個骰子對應之前的K個主題,且骰子的每一面對應要選擇的詞項,V個面對應着V個可選的詞)。比如可令K=3,即製作1個含有3個主題的“文檔-主題”骰子,這3個主題可以是:教育、經濟、交通。然後令V = 3,製作3個有着3面的“主題-詞項”骰子,其中,教育主題骰子的3個面上的詞可以是:大學、老師、課程,經濟主題骰子的3個面上的詞可以是:市場、企業、金融,交通主題骰子的3個面上的詞可以是:高鐵、汽車、飛機。

在這裏插入圖片描述

 

第二步:

   每寫一個詞,先扔該“文檔-主題”骰子選擇主題,再使用和主題結果對應的那顆“主題-詞項”骰子,選擇要寫的詞。

  • 先扔“文檔-主題”的骰子,假設(以一定的概率)得到的主題是 教育,所以下一步便是扔 教育 主題篩子,(以一定的概率)得到教育主題篩子對應的某個詞:大學。
  • 上面投骰子產生詞的過程簡化下便是:“先以一定的概率選取主題,再以一定的概率選取詞”。事實上,一開始可供選擇的主題有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}中抽取出詞:大學。

 

第三步:

  最後,你重複扔“文檔-主題”骰子和”主題-詞項“骰子,重複N次(產生N個詞),完成一篇文檔重複這產生一篇文檔的方法M次,則完成M篇文檔。

 

 

(2)根據文檔反推其主題分佈

        反過來,既然文檔已經產生,那麼如何根據已經產生好的文檔反推其主題呢?這個利用看到的文檔推斷其隱藏的主題(分佈)的過程(其實也就是產生文檔的逆過程),便是主題建模的目的:自動地發現文檔集中的主題(分佈)

   換言之,人類根據文檔生成模型寫成了各類文章,然後丟給了計算機,相當於計算機看到的是一篇篇已經寫好的文章。現在計算機需要根據一篇篇文章中看到的一系列詞歸納出當篇文章的主題,進而得出各個主題各自不同的出現概率:主題分佈。即文檔 ddd 和單詞 www 是可被觀察到的,但主題 zzz 卻是隱藏的。

EM算法 參考:【機器學習】EM算法從小白到理解,附帶案例代碼

 

(3)EM算法估計pLSA的兩個未知參數

 

綜上,在pLSA中:


LDA 模型

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

(1)pLSA跟LDA的對比:生成文檔與參數估計

 

(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先驗隨機確定。

前面我們提到的是,有很多個主題或詞,各個主題或詞被抽中的概率不一樣,所以抽取主題或詞是隨機抽取了。但是現在主題分佈和詞分佈也不確定了,也就是說,在我們抽取主題的時候,之前是從一個固定的主題分佈中,現在是這個主題分佈也是不確定的,可能是{教育:0.5,經濟:0.3,交通:0.2},也可能是{教育:0.6,經濟:0.2,交通:0.2}。正因爲LDA是PLSA的貝葉斯版本,所以主題分佈跟詞分佈本身由先驗知識隨機給定。

 

pLSA中:

 

LDA中:

 

(3)LDA生成文檔過程的進一步理解

 

 

LDA參數估計:Gibbs採樣

 

Gibbs採樣流程

 LDA參數學習-Gibbs採樣

好有道理的亞子,就是看不懂

 

LDA流程圖

 

 Gibbs採樣總結

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章