主題模型值LDA

  主題模型(topic model)是以非監督學習的方式對文集的隱含語義結構(latent semantic structure)進行聚類(clustering)的統計模型。html

  主題模型主要被用於天然語言處理(Natural language processing)中的語義分析(semantic analysis)和文本挖掘(text mining)問題,例如按主題對文本進行收集、分類和降維;也被用於生物信息學(bioinfomatics)研究 [2] 。隱含狄利克雷分佈(Latent Dirichlet Allocation, LDA)是常見的主題模型。算法

1. LDA貝葉斯模型

  LDA是基於貝葉斯模型的,涉及到貝葉斯模型離不開「先驗分佈」,「數據(似然)」和"後驗分佈"三塊。在樸素貝葉斯算法原理小結中咱們也已經講到了這套貝葉斯理論。在貝葉斯學派這裏:函數

先驗分佈 + 數據(似然)= 後驗分佈post

  這點其實很好理解,由於這符合咱們人的思惟方式,好比你對好人和壞人的認知,先驗分佈爲:100個好人和100個的壞人,即你認爲好人壞人各佔一半,如今你被2個好人(數據)幫助了和1個壞人騙了,因而你獲得了新的後驗分佈爲:102個好人和101個的壞人。如今你的後驗分佈裏面認爲好人比壞人多了。這個後驗分佈接着又變成你的新的先驗分佈,當你被1個好人(數據)幫助了和3個壞人(數據)騙了後,你又更新了你的後驗分佈爲:103個好人和104個的壞人。依次繼續更新下去。學習

2. 二項分佈與Beta分佈

  對於上一節的貝葉斯模型和認知過程,假如用數學和機率的方式該如何表達呢?url

  對於咱們的數據(似然),這個好辦,用一個二項分佈就能夠搞定,即對於二項分佈:spa

$Binom(k|n,p)=\binom{n}{k}p^{k}(1-p)^{n-k}$.net

  其中$p$咱們能夠理解爲好人的機率,$k$爲好人的個數,$n$爲好人壞人的總數。3d

  雖然數據(似然)很好理解,可是對於先驗分佈,咱們就要費一番腦筋了,爲何呢?由於咱們但願這個先驗分佈和數據(似然)對應的二項分佈集合後,獲得的後驗分佈在後面還能夠做爲先驗分佈!就像上面例子裏的「102個好人和101個的壞人」,它是前面一次貝葉斯推薦的後驗分佈,又是後一次貝葉斯推薦的先驗分佈。也便是說,咱們但願先驗分佈和後驗分佈的形式應該是同樣的,這樣的分佈咱們通常叫共軛分佈。在咱們的例子裏,咱們但願找到和二項分佈共軛的分佈。orm

  和二項分佈共軛的分佈其實就是Beta分佈。Beta分佈的表達式爲:

$Beta(p|\alpha ,\beta )= \frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha \Gamma (\beta ))}p^{\alpha -1}(1-p)^{\beta -1}$

  其中$\Gamma$是Gamma函數,知足$\Gamma (x)=(x-1)!$  

  仔細觀察Beta分佈和二項分佈,能夠發現二者的密度函數很類似,區別僅僅在前面的歸一化的階乘項。那麼它如何作到先驗分佈和後驗分佈的形式同樣呢?後驗分佈$P(p|n,k,\alpha ,\beta )$推導以下:

$P(p|n,k,\alpha ,\beta )\propto P(k|n,p)P(p|\alpha ,\beta )=P(k|n,p)P(p|\alpha ,\beta )=Binom(k|n,p)Beta(p|\alpha ,\beta )=\binom{n}{k}p^{k}(1-p)^{n-k}\times \frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha )\Gamma (\beta )}p^{\alpha -1}(1-p)^{\beta -1}\propto p^{k+\alpha -1}(1-p)^{n-k+\beta -1}$

  將上面最後的式子歸一化之後,獲得咱們的後驗機率爲:

$P(p|n,k,\alpha ,\beta )=\frac{\Gamma (\alpha +\beta +n)}{\Gamma (\alpha+k) \Gamma (\beta+n-k)}p^{k+\alpha -1}(1-p)^{n-k+\beta -1}$

  可見咱們的後驗分佈的確是Beta分佈,並且咱們發現:

$Beta(p|\alpha ,\beta )+BinomCount(k,n-k)=Beta(p|\alpha+k ,\beta+n-k )$

  這個式子徹底符合咱們在上一節好人壞人例子裏的狀況,咱們的認知會把數據裏的好人壞人數分別加到咱們的先驗分佈上,獲得後驗分佈。 

  咱們在來看看Beta分佈$Beta(p|\alpha ,\beta )$的指望:

$E(Beta(p|\alpha ,\beta ))=\int_{0}^{1}tBeta(p|\alpha ,\beta )dt=\int_{0}^{1}\frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha )\Gamma (\beta )}t^{\alpha -1}(1-t)^{\beta -1}dt=\int_{0}^{1}\frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha )\Gamma (\beta )}t^{\alpha}(1-t)^{\beta -1}dt$

  因爲上式最右邊的乘積對應Beta分佈$Beta(p|\alpha+1 ,\beta )$,所以有:

$\int_{0}^{1}\frac{\Gamma (\alpha +\beta +1)}{\Gamma (\alpha+1 )\Gamma (\beta )}p^{\alpha}(1-p)^{\beta -1}dp=1$

  這樣咱們的指望能夠表達爲:

$E(Beta(p|\alpha ,\beta ))=\frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha )\Gamma (\beta )}\frac{\Gamma (\alpha +1)\Gamma (\beta )}{\Gamma (\alpha+\beta +1 )}=\frac{\alpha }{\alpha +\beta }$

  這個結果也很符合咱們的思惟方式。

3. 多項分佈與Dirichlet 分佈

  如今咱們回到上面好人壞人的問題,假如咱們發現有第三類人,很差不壞的人,這時候咱們如何用貝葉斯來表達這個模型分佈呢?以前咱們是二維分佈,如今是三維分佈。因爲二維咱們使用了Beta分佈和二項分佈來表達這個模型,則在三維時,以此類推,咱們能夠用三維的Beta分佈來表達先驗後驗分佈,三項的多項分佈來表達數據(似然)。

  三項的多項分佈好表達,咱們假設數據中的第一類有$m_{1}$個好人,第二類有$m_{2}$個壞人,第三類爲$m_{3}=n-m_{1}-m_{2}$個很差不壞的人,對應的機率分別爲$p_{1}$,$m_{2}$,$m_{3}=n-m_{1}-m_{2}$,則對應的多項分佈爲:

$multi(m_{1},m_{2},m_{3}|n,p_{1},p_{2},p_{3})=\frac{n!}{m_{1}!m_{2}!m_{3}!}p_{1}^{m_{1}}p_{2}^{m_{2}}p_{3}^{m_{3}}$

  那三維的Beta分佈呢?超過二維的Beta分佈咱們通常稱之爲狄利克雷(如下稱爲Dirichlet )分佈。也能夠說Beta分佈是Dirichlet 分佈在二維時的特殊形式。從二維的Beta分佈表達式,咱們很容易寫出三維的Dirichlet分佈以下:

$Dirichlet(p_{1},p_{2},p_{3}|\alpha _{1},\alpha _{2},\alpha _{3})=\frac{\Gamma (\alpha _{1}+\alpha _{2}+\alpha _{3})}{\Gamma(\alpha _{1} )\Gamma (\alpha _{2})\Gamma (\alpha _{3})}p_{1}^{\alpha _{1}-1}p_{2}^{\alpha _{2}-1}p_{3}^{\alpha _{3}-1}$

  一樣的方法,咱們能夠寫出4維,5維,。。。以及更高維的Dirichlet 分佈的機率密度函數。爲了簡化表達式,咱們用向量來表示機率和計數,這樣多項分佈能夠表示爲:$Dirichlet(\overrightarrow{p}|\overrightarrow{\alpha})$,而多項分佈能夠表示爲:$multi(\overrightarrow{m}|n,\overrightarrow{p})$

  通常意義上的K維Dirichlet 分佈表達式爲:

$Dirichlet(\overrightarrow{p}|\overrightarrow{\alpha})=\frac{\Gamma (\sum_{k=1}^{K}\alpha _{k})}{\prod_{k=1}^{K}\Gamma (\alpha _{k})}\prod_{k=1}^{K}p_{k}^{\alpha _{k}-1}$

  而多項分佈和Dirichlet 分佈也知足共軛關係,這樣咱們能夠獲得和上一節相似的結論:

$Dirichlet(\overrightarrow{p}|\overrightarrow{\alpha})+MultiCount(\overrightarrow{m})=Dirichlet(\overrightarrow{p}|\overrightarrow{\alpha}+\overrightarrow{m})$

  對於Dirichlet 分佈的指望,也有和Beta分佈相似的性質:

$E(Dirichlet(\overrightarrow{p}|\overrightarrow{\alpha}))=(\frac{\alpha _{1}}{\sum_{k=1}^{K}},\frac{\alpha _{2}}{\sum_{k=1}^{K}},\cdots ,\frac{\alpha _{K}}{\sum_{k=1}^{K}})$

4. LDA主題模型

  前面作了這麼多的鋪墊,咱們終於能夠開始LDA主題模型了。

  咱們的問題是這樣的,咱們有M篇文檔,對應第d個文檔中有有Nd個詞。即輸入爲以下圖:

    咱們的目標是找到每一篇文檔的主題分佈和每個主題中詞的分佈。在LDA模型中,咱們須要先假定一個主題數目K,樣全部的分佈就都基於K個主題展開。那麼具體LDA模型是怎麼樣的呢?具體以下圖:

  LDA假設文檔主題的先驗分佈是Dirichlet分佈,即對於任一文檔d,其主題分佈$\theta _{d}$爲:

$\theta _{d}=Dirichlet(\overline{\alpha })$

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

  LDA假設主題中詞的先驗分佈是Dirichlet分佈,即對於任一主題k,其詞分佈$\beta _{k}$爲:

$\beta _{k}=Dirichlet(\overline{\eta })$

  其中,$\eta$爲分佈的超參數,是一個V維向量。V表明詞彙表裏全部詞的個數。

  對於數據中任一一篇文檔d中的第n個詞,咱們能夠從主題分佈$\theta _{d}$中獲得它的主題編號$z_{dn}$的分佈爲:

$z_{dn}=multi(\theta _{d})$

  而對於該主題編號,獲得咱們看到的詞$\omega z_{dn}$的機率分佈爲:

$\omega z_{dn}=multi(\beta _{zdn})$

  理解LDA主題模型的主要任務就是理解上面的這個模型。這個模型裏,咱們有M個文檔主題的Dirichlet分佈,而對應的數據有M個主題編號的多項分佈,這樣($\alpha \rightarrow \theta _{d}\rightarrow \overrightarrow{{z}_{d}}$)就組成了Dirichlet-multi共軛,可使用前面提到的貝葉斯推斷的方法獲得基於Dirichlet分佈的文檔主題後驗分佈。

  若是在第d個文檔中,第k個主題的詞的個數爲:$n_{d}^{k}$,則對應的多項分佈的計數能夠表示爲:

$\overrightarrow{n}_{d}=(n_{d}^{1},n_{d}^{2},\cdots ,n_{d}^{K})$

  利用Dirichlet-multi共軛,獲得$\theta _{d}$的後驗分佈爲:

$Dirichlet(\theta _{d}|\overrightarrow{\alpha}+\overrightarrow{n}_{d})$

  一樣的道理,對於主題與詞的分佈,咱們有𝐾K個主題與詞的Dirichlet分佈,而對應的數據有K個主題編號的多項分佈,這樣($\eta \rightarrow \beta _{k}\rightarrow \overrightarrow{w}_{k}$)就組成了Dirichlet-multi共軛,可使用前面提到的貝葉斯推斷的方法獲得基於Dirichlet分佈的主題詞的後驗分佈。

  若是在第k個主題中,第v個詞的個數爲:$n_{k}^{v}$,則對應的多項分佈的計數能夠表示爲

$\overrightarrow{n}_{k}=(n_{k}^{1},n_{k}^{1},\cdots ,n_{k}^{V})$

  利用Dirichlet-multi共軛,獲得$\beta _{k}$的後驗分佈爲:

$Dirichlet(\beta _{k}|\overrightarrow{\eta }+\overrightarrow{\eta}_{k})$

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

  如今的問題是,基於這個LDA模型如何求解咱們想要的每一篇文檔的主題分佈和每個主題中詞的分佈呢?

  通常有兩種方法,第一種是基於Gibbs採樣算法求解,第二種是基於變分推斷EM算法求解。 

 

參考:

https://blog.csdn.net/jiayalu/article/details/100533184

http://www.javashuo.com/article/p-urliamfr-v.html

相關文章
相關標籤/搜索