自然語言處理-第十期-LDA&Topic Model

背景

自然語言處理-第十期-LDA&Topic Model

上一期整期在解釋什麼是Topic. 基本上所有的Topic Molde 算法都帶有Latent(潛在)這個單詞。這是因為Topic Model 發掘的是一個隱藏的規律。在已經理解Topic 之後,我們將介紹 LDA模型。本次介紹將跳過模型數學部分。

Topic Model &LDA

Topic Model的目標

上一期提到了,Topic是文章背後隱藏的屬性。但是Topic Model並不是要揭示這一段講的是“健身器材的介紹”。LDA所做的是將“跑步機”、“橢圓機”等詞放在同一個Topic裡面。 換句話說,LDA所做的是Cluster,做的是將詞 分群 的任務。那麼LDA具體是怎麼做的呢?

自然語言處理-第十期-LDA&Topic Model

LDA過程

LDA(Latent Derelicht Allocation)本質上是一個概率模型。它通過計算P( word | topics) 和 P( topics | documents) 來獲得單詞的分群。我們通過一個網上的例子來說明下:

假設我們目前我們目前看到的是三個文檔,其包含兩個主題:食物和寵物

自然語言處理-第十期-LDA&Topic Model

文檔1主要關於食物主題(Topic A),文檔2主要是關於寵物主題(Topic B)。文檔3在A、B主題中平均分佈,除了有一個未分配的單詞Fish。通過現有信息,我們能夠得到 文檔3中的Fish 應該歸屬於哪個主題。

首先,我們需要計算該詞在不同主題中出現的概率:

P( ‘Fish’ | topic A) = 0.75

P( ‘Fish’ | topic B) = 0.25

現在,我們需要計算該Fish單詞所在文檔的主題分佈:

P( topic A | Document 3) = P( topic B | Document 3) = 0.5

因為他們目前是平均分佈的,所以都是0.5

通過兩次概率計算,我們能夠將文檔3中的該Fish 分配到Topic A中。

該算法的下一步是對文檔中的所有單詞重複該步驟,計算概率 然後分配主題。在許多次循環之後,最終結果收斂,也就是LDA的結果。


總結下

LDA模型實際上就是概率分佈的模型。其中最關鍵的兩個步驟是:

  • 該詞在所有文檔的範圍內,歸屬於哪個Topic;
  • 該詞所在的文檔歸屬於哪個Topic

在初始步驟中,隨機給所有單詞配置一個主題Topic之後,對所有的單詞計算以上兩個概率。在網上看LDA有很多好處,擴展性什麼的:

  • 我個人認為LDA的一個最大的好處就是能夠處理多義詞或者同一個詞的不同語境。 因為LDA進行主題劃分時,又考慮到整個文檔的主題傾向。例如,一個通篇在談花卉的文章裡面的化肥,可能與農業文章裡的化肥歸屬於不同主題;
  • LDA模型能夠將分佈最不同的詞突出,例如上面例子中的“Eat” 很明顯是歸屬於食品主題的;

總之,LDA通過基於上述兩個概率的循環,將所有文檔中的所有單詞進行Cluster。 並且當其面對一個新的文檔時,能夠計算出其主題分佈。

下期預告

實際上大家會發現,從概念上理解LDA模型其實並不難。其通過兩個主要的概率原則,將所有的詞分配到不同的主題中。此模型一個很重要的問題是,該模型最終是否會收斂。這個最重要的問題,需要通過大量的數學來證明。所以本系列並不涉及,以實用為主。

下一期將給大家帶來一個LDA模型實際應用的例子。


分享到:


相關文章: