隱含狄利克雷分布

隱含狄利克雷分布(英語:Latent Dirichlet allocation,簡稱LDA),是一種主題模型,它可以將文檔集中每篇文檔的主題按照概率分布的形式給出。同時它是一種無監督學習算法,在訓練時不需要手工標註的訓練集,需要的僅僅是文檔集以及指定主題的數量k即可。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。

LDA首先由 David M. Blei、吳恩達邁克爾·I·喬丹於2003年提出[1],目前在文本挖掘領域包括文本主題識別、文本分類以及文本相似度計算方面都有應用。

數學模型

 
LDA貝斯網絡結構

LDA是一種典型的詞袋模型,即它認為一篇文檔是由一組詞構成的一個集合,詞與詞之間沒有順序以及先後的關係。一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。它以概率分佈的形式揭示每個文檔集的主題,以便在分析一些文檔以提取其主題分佈後,可以根據主題分佈進行主題聚類或使用文本分類。每個主題都用一個詞分佈表示[2]

另外,正如Beta分布二項式分布的共軛先驗概率分布,狄利克雷分布作為多項式分布的共軛先驗概率分布。因此正如LDA貝斯網絡結構中所描述的,在LDA模型中一篇文檔生成的方式如下:

  • 從狄利克雷分布 中取樣生成文檔 的主題分布 
  • 從主題的多項式分布 中取樣生成文檔 中第 個主題 
  • 從狄利克雷分布 中取樣生成主題 的詞語分布 
  • 從詞語的多項式分布 中採樣最終生成詞語 

因此整個模型中所有可見變量以及隱藏變量的聯合分布

 

最終一篇文檔的單詞分布的最大似然估計可以通過將上式的 以及 進行積分和對 進行求和得到

 

根據 的最大似然估計,最終可以通過吉布斯採樣等方法估計出模型中的參數。

使用吉布斯採樣估計LDA參數

在LDA最初提出的時候,人們使用EM算法進行求解,後來人們普遍開始使用較為簡單的Gibbs Sampling,具體過程如下:

  • 首先對所有文檔中的所有詞遍歷一遍,為其都隨機分配一個主題,即 ,其中m表示第m篇文檔,n表示文檔中的第n個詞,k表示主題,K表示主題的總數,之後將對應的    ,他們分別表示在m文檔中k主題出現的次數,m文檔中主題數量的和,k主題對應的t詞的次數,k主題對應的總詞數。
  • 之後對下述操作進行重複迭代。
  • 對所有文檔中的所有詞進行遍歷,假如當前文檔m的詞t對應主題為k,則    ,即先拿出當前詞,之後根據LDA中topic sample的概率分布sample出新的主題,在對應的    上分別+1。
  
  • 迭代完成後輸出主題-詞參數矩陣φ和文檔-主題矩陣θ
 
 

參見


參考文獻

  1. ^ Blei, David M.; Ng, Andrew Y.; Jordan, Michael I. Lafferty, John , 編. Latent Dirichlet allocation. Journal of Machine Learning Research. January 2003, 3 (4–5): pp. 993–1022 [2013-07-08]. doi:10.1162/jmlr.2003.3.4-5.993. (原始內容存檔於2012-05-01). 
  2. ^ Public Opinion Mining on Construction Health and Safety: Latent Dirichlet Allocation Approach, Buildings 2023, 13(4), 927; https://doi.org/10.3390/buildings13040927