主題模型LDA:從入門到放棄


宏觀理解

LDA有兩種含義

  • 線性判別器(Linear Discriminant Analysis)
  • 隱含狄利克雷分布(Latent Dirichlet Allocation,簡稱LDA)

本文講解的是后者,它常常用於淺層語義分析,在文本語義分析中是一個很有用的模型。

LDA模型是一種主題模型,它可以將文檔集中的每篇文檔的主題以概率分布的形式給出,從而通過分析一些文檔抽取出它們的主題(分布)出來后,便可以根據主題(分布)進行主題聚類或文本分類。同時,它是一種典型的詞袋模型,即一篇文檔是由一組詞構成,詞與詞之間沒有先后順序的關系。

上面的大家在任何的地方都能看到一句話,然鵝我在第一看的時候一點都沒有看懂。

如果用通俗的語言來講,假設我們有一個文檔集,里面有M個文檔,對於第d個文檔中會出現一堆單詞,其中有一個單詞是“周傑倫”,那么通過這個單詞我們就可以理解為該文檔的主題可能是“娛樂”,但是這個文檔中還出現“姚明”,“孫楊”,“張繼科”這些單詞,此時該文檔為“體育”主題的概率將大大上升,LDA模型就是要根據給定一篇文檔,推斷這個文檔的主題是什么,並給出各個主題的概率大小是多少。

那么對於我們剛剛提到的文檔,“周傑倫”,“姚明”,“孫楊”,“張繼科”,為”娛樂“主題的概率為1/4,為“體育”主題的概率為3/4,此時的LDA模型就說這個文檔的主題為"體育"。

這樣一想其實LDA主題模型的想法非常簡單,但是具體到內部的細節,還是會有點懵。

瑣碎但必要的知識

Gamma函數

這個Gamma函數其實是為后面的Beta分布和Dirichlet分布做准備,具體它的數學之美我們就不在本文討論,只需要記住以下的東西

Gamma函數定義:

通過分部積分的方法,可以推導出這個函數有如下的遞歸性質:

於是gamma函數可以當成是階乘在實數集上的延展,具有如下性質:

Beta分布

此時我們先引出個數學概念

  • 在貝葉斯流派中,如果先驗分布和后驗分布是同類,則先驗分布和后驗分布被稱為共軛分布,先驗分布被稱為似然函數的共軛先驗

什么是Beta分布,它是指一組定義在$(0,1)$區間的連續概率分布,有兩個參數$\alpha,\beta>0$,通俗的解釋,beta分布可以看作一個概率的概率分布,當你不知道一個東西的概率是多少,它給你指出了所有可能出現的概率的概率大小,它的概率密度函數為

其中Bete函數為

Beta分布是二項分布的共軛先驗分布,Beta分布描述了二項分布中P取值的可能性,對於Betaf分布的隨機變量,其均值可以估計為

Beta-Binomial共軛

首先我們要記住貝葉斯參數估計的基本過程為:

先驗分布+數據的知識=后驗分布

更一般的,對於非負實數$\alpha,\beta$,我們有如下關系:

我們可以看到,參數的先驗分布和后驗分布都能夠保持Beta分布的形式。

Dirichlet分布

狄利克雷分布是一組連續多變量概率分布,是多變量普遍化的Beta分布。

其中$\vec\alpha$是Dirichlet分布的參數。Dirichlet分布是多項式分布的共軛先驗分布。

它的期望為

 

細致詳解

 

LDA假設文檔主題的先驗分布是DIrichlet分布,即對於任一文檔$d$,其主題分布$\theta_d$為:

$$\theta_d = Dirichlet(\vec \alpha)$$

其中,$\alpha$為分布的超參數,是一個$K$維向量。

LDA假設主題中詞的先驗分布是DIrichlet分布,即對於任一主題$k$,其詞分布$\beta_k$為:

$$\beta_k= Dirichlet(\vec \eta)$$

其中,$\eta$為分布的超參數,是一個$V$維向量,$V$代表詞匯表里所有詞的個數。

對於數據中任一一篇文檔$d$中的第$n$個詞,我們可以從主題分布$\eta_d$中得到它的主題編號$z_{dn}$的分布為:

$$z_{dn}=multi(\theta_d)$$

而對於該主題編號,得到我們看到的詞$w_{dn}$的概率分布為:

$$w_{dn}=multi(\beta_{z_{dn}})$$

理解LDA主題模型的主要任務就是理解上面的這個模型,這個模型,我們有$M$個文檔主題的Dirichlet分布,而對應的數據有$M$個主題編號的多項分布,這樣($\alpha \to \theta_d \to \vec z_{d}$)就組成了Dirichlet-multi共軛,可以使用前面提到的貝葉斯推斷的方法得到基於Dirichlet分布的文檔主題后驗分布

如果在第$d$個文檔中,第$k$個主題的詞的個數為:$n_d^{(k)}$,則對應的多項分布的計數可以表示為

$$\vec n_d = (n_d^{(1)}, n_d^{(2)},...n_d^{(K)})$$

利用Dirichlet-multi共軛,得到$\theta_d$的后驗分布為:

$$Dirichlet(\theta_d | \vec \alpha + \vec n_d)$$

同樣的道理,對於主題與詞的分布,我們有$K$個主題與詞的Dirichlet的分布,而對應的數據有$K$個主題編號的多項分布,這樣($\eta \to \beta_k \to \vec w_{(k)}$)就組成了組成了Dirichlet-multi共軛,可以使用前面提到的貝葉斯推斷的方法得到基於Dirichlet分布的主題詞的后驗分布

如果在第k個主題中,第v個詞的個數為:$n_k^{(v)}$,則對應的多項分布的計數可以表示為:

$$\vec n_k = (n_k^{(1)}, n_k^{(2)},...n_k^{(V)})$$

利用Dirichlet-multi共軛,得到$\beta_k$的后驗分布為:

$$Dirichlet(\beta_k | \vec \eta+ \vec n_k)$$

由於主題產生詞不依賴具體某一個文檔,因此文檔主題分布和主題詞分布是獨立的。理解了上面這$M+K$組Dirichlet-multi共軛,就理解了LDA的基本原理了。

 

 

參考資料

[1] 通俗理解LDA主題模型

[2] 文本主題模型之LDA(一) LDA基礎

[3] LDA-數學八卦

[4] LDA(Latent Dirichlet Allocation)主題模型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM