1. 程式人生 > >LDA主題模型學習筆記

LDA主題模型學習筆記

LDA:隱含狄利克雷分佈(Latent Dirichlet Allocation,簡稱LDA)
定義:
-它是一種主題模型,它可以將文件集中每篇文件的主題以概率分佈的形式給出,從而通過分析一些文件抽取出它們的主題(分佈)出來後,便可以根據主題(分佈)進行主題聚類或文字分類。同時,它是一種典型的詞袋模型,即一篇文件是由一組詞構成,詞與詞之間沒有先後順序的關係

而當我們看到一篇文章後,往往喜歡推測這篇文章是如何生成的,我們可能會認為作者先確定這篇文章的幾個主題,然後圍繞這幾個主題遣詞造句,表達成文。
LDA就是要幹這事:根據給定的一篇文件,推測其主題分佈。
通俗來說,可以假定認為人類是根據上述文件生成過程寫成了各種各樣的文章,現在某小撮人想讓計算機利用LDA幹一件事:你計算機給我推測分析網路上各篇文章分別都寫了些啥主題,且各篇文章中各個主題出現的概率大小(主題分佈)是啥。
簡單來說就是為一堆文章進行聚類(所以是非監督學習),一種topic就是一類,要聚成的topic數目是事先指定的。聚類的結果是一個概率,而不是布林型的100%屬於莫個類。
-最重要的兩個分佈:


–文件的主題分佈:即對於每個D中的文件d,對應到不同topic的概率θd < pt1,…, ptk >其中,pti表示d對應T中第i個topic的概率。計算方法是直觀的,pti=nti/n,其中nti表示d中對應第i個topic的詞的數目,n是d中所有詞的總數。
–主題中的詞分佈:即對於每個T中的topic t,生成不同的概率φt < pw1,…, pwm >,其中,pwi表示t生成VOC中第i個單詞的概率。計算方法同樣很直觀,pwi=Nwi/N,其中Nwi表示對應到topic t的VOC中第i個單詞的數目,N表示所有對應到topic t的單詞總數。

LDA的核心公式如下:

p(w|d) = p(w|t)*p(t|d)

-解析:直觀的看這個公式,就是以Topic作為中間層,可以通過當前的θd和φt給出了文件d中出現單詞w的概率。其中p(t|d)利用θd計算得到,p(w|t)利用φt計算得到。實際上,利用當前的θd和φt,我們可以為一個文件中的一個單詞計算它對應任意一個Topic時的p(w|d),然後根據這些結果來更新這個詞應該對應的topic。然後,如果這個更新改變了這個單詞所對應的Topic,就會反過來影響θd和φt
-LDA演算法開始時,先隨機地給θd和φt賦值(對所有的d和t)。然後上述過程不斷重複,最終收斂到的結果就是LDA的輸出