論文篇:Latent Dirichlet Allocation(LDA)(一)
首次看本專欄文章的小伙建議先看一下介紹專欄結構的這篇文章:專欄文章分類及各類內容簡介。
由於LDA論文所涉及的內容比較多,所以把講解LDA論文的文章分成4篇子文章,以方便小夥伴們閱讀,下面是各個子文章的主要內容及文章鏈接:
(一)早期文本模型的簡介
(二)LDA的建模介紹
(三)用變分推理求解LDA模型的參數
(四)Gensim簡介、LDA編程實現、LDA主題提取效果圖展示
本篇文章介紹一篇在文本建模方面非常經典、頻繁被引用的論文:Latent Dirichlet Allocation。對於研究領域稍微和文本處理沾點邊的小夥伴來說,這篇論文基本上是必看的論文。該篇論文於2003年發表在「Journal of Machine Learning Research」期刊上,迄今引用次數已超過15000次,可見該論文對後來相關研究工作的影響之大。LDA模型是文本建模中主題模型的一種,同時也是一個具有里程碑意義的主題模型,因為它首次正式將主題以隱變數的形式引入,形成一個三層貝葉斯模型,並且相比於之前和它最接近的pLSI文本模型,LDA的主題選取不再受訓練集文本內容的束縛,是一個完全非監督且依據多個主題進行聚類的機器學習、數據挖掘領域的演算法。自2003年發表之後至2017年,全世界範圍內有很多研究人員對該模型進行了各種各樣的加工和改良,LDA也成了現如今主題模型研究領域的理論基石。
本文所需基礎知識
線性代數矩陣運算,概率論中的條件概率、邊緣分布、聯合分布、期望的求解、八大重要分布中的0-1分布、二項分布、gamma函數、KL散度、Jsensens Inequality、EM演算法、奇異值矩陣分解
本文與專欄主題的關係
在推薦系統的研究中,利用評論文本信息來提升推薦性能是近3-4年的一個熱門研究領域,LDA及其改良的文本模型則是用來挖掘評論文本的主要方式,通過提取出評論文本中的主題來獲取與用戶、物品相關的信息,再融入到協同過濾的演算法中可以大幅度提高推薦演算法的多方面性能。
早期文本模型的簡介
文本建模的目的是用非常簡潔的數學化形式去描述一個語料庫中的文本,同時提供文本間、主題間、詞語間的統計關係去服務於後續的文本處理工作,比如文本分類、新穎性檢測、文本摘要提取、文本相似度測量等。
TF-IDF文本模型是早期文本模型的代表之一,於1983年提出,是基於資訊理論中著名的TF-IDF公式來對文本進行建模的。TF-IDF公式的計算是對兩個部分進行乘積,第一個部分稱為詞頻部分(即TF部分),用來表示文本中某個詞在該文本中出現的頻率,計算上是用該詞在該文本中出現的次數除以該文本包含的詞的個數;第二個部分稱為逆文本部分(即IDF部分),用來表示在語料庫中有多少篇文本包含了這個詞,計算上是用總文本數除於含該詞的文本數再取對數,兩個部分的計算公式以及總的計算公式如下(i代表詞語,j代表文本,(i,j)代表第j個文本的第i個詞):
計算好每個詞的tf-idf值之後,我們就可以對目標語料庫進行建模了。假設語料庫中有N篇文檔,M個不同的詞,那麼我們就可以建立一個M * N的矩陣,每一列代表一篇文檔,每一行代表某個詞在這篇文檔中對應的tf-idf值,到此建模就完成啦。我們發現無論每篇包含多少個詞,這樣建模後每篇文檔都被表示成了一個同樣長度的向量,向量的每個值就是對應詞的tf-idf值。建模矩陣如下圖所示:
TF-IDF文本模型總的來說比較簡單易懂,對語料庫中的文本有著很好的規範化處理,但是它並沒有將原有的文本信息壓縮了很多,而且單純地統計詞頻也沒有很好地挖掘詞語間、文本間的信息。基於TF-IDF文本模型的缺點,1990年,研究人員提出了LSI文本模型。
LSI文本模型試圖將ti-idf的建模矩陣進行奇異值分解,而且是帶壓縮的分解,分解圖示如下:
其中r代表了主題的個數,第一個子矩陣代表了詞與主題的關係,第二個子矩陣代表了主題本身,第三個子矩陣代表了主題與文檔之間的關係。通過這種分解,可以大幅度壓縮目標語料庫,捨棄無關的信息。同時,LSI的作者也認為LSI模型除了在空間壓縮上表現優良外,也可以更好地發掘出同義詞以及多義詞(可能是通過計算詞與詞之間坐標的歐幾里德距離或者是兩個詞向量的餘弦相似度,這裡沒有太多探究)。
鑒於矩陣分解的不可解釋性,許多研究人員在LSI提出後試圖建立其概率圖模型的形式,為其提供一個概率形式的解釋。Hofmann於1999年提出了pLSI文本模型,是在這方面研究中取得的一個顯著的學術成果。接下來,本文將從 概率圖模型 的角度以及介紹unigram、mixture of unigrams、pLSI三個概率文本模型。
Unigram文本模型中,文檔中的每個詞都是從一個單獨的多項分布中獨立採樣而得的,是概率文本模型中最簡單的情形,其概率模型圖如下所示:
其文本中詞語的概率生成公式如下所示:
mixture of unigrams文本模型在Unigram文本模型引入了一個服從離散分布的隱變數Z。在這個模型中,文本的生成過程是先選擇一個主題z,然後從條件多項分布p(w|z)中獨立地生成N個詞,以此來構建出文本。該模型的概率模型圖如下所示:
其文本生成的概率公式如下:
從這個過程中我們可以看出,該模型假定了每篇文檔只能屬於一個主題,這使得該模型在實際的文本建模中非常受限制,因為一篇文檔往往屬於多個主題。
pLSI文本模型是在LDA提出之前最「先進」的文本模型,它打破了mixture of unigrams文本模型中「每篇文檔只能有一個主題」的束縛,通過引入文本變數來使得對於一個特定的目標文本,可以有多個主題以加權的形式結合在一起。它的概率圖模型如下圖所示:
pLSI文本模型的文檔、詞語的聯合生成概率如下:
這裡我們可以看到,在pLSI中,詞語和文檔向量都是觀測變數,主題的生成取決於文檔裡面有什麼詞語。也就是說,在訓練這個文本模型的時候,模型裡面的主題詞只能來自於訓練集中的文檔,用到測試集的時候可能提取到的主題都是有範圍的了,即只能提取出在訓練集文檔中出現過的詞語。所以從這點來看,pLSI文本模型並不是一個泛化能力很好的模型,對於一個裡面大部分詞都沒在訓練集文檔中出現過的「未知」文檔,它會顯得很無能為力。pLSI另一個很嚴重的問題是,由於產生的主題由訓練集中文檔的信息來決定,所以隨著訓練集中文檔數目的增長,所需要訓練的參數也就跟著線性增長,而在機器學習的演算法中,參數過多意味著會發生過擬合,這是一個嚴重的問題。
文本模型的可交換性與LDA的提出動機
在正式開始介紹LDA的建模內容前,我們先了解一下什麼是文本模型的可交換性。目前,大多數文本模型都基於「bag-of-words」的假設,即(1)一篇文檔內N個詞之間的順序可以隨意互換,不影響建模過程;(2)一個語料庫內M個文檔可以隨意互換順序,哪個文檔在前哪個文檔在後都無所謂。這兩個性質合稱為文本模型的可交換性,這一點在德芬涅定理(de Finetti theorem)裡面有著更加詳細的闡述,本文不再詳細展開敘述。
但是需要注意的是,雖然有著文檔與文檔、一篇文檔內詞與詞之間的可互換性,但是不能跨文檔換詞,即將文檔A中的第a個詞與文檔B中的第b個詞互換,這個不在假設範圍之內。
LDA的提出,一方面是受到德菲涅定理的啟發,試圖將文檔間、文檔的詞語間的可交換性完全發揮出來,在之後介紹的LDA模型中,我們會看到,LDA文本模型將文檔的選取、主題的選取、詞語的選取都定義為概率生成過程,與上述兩個性質相契合;另一方面則是試圖去除pLSI的缺陷,讓每個單詞不再屬於單一的一個主題,而主題的種類也不再局限於訓練集中文檔詞語的種類。
好了,第一篇文章就介紹了這麼多了,在下一篇文章「(二)LDA的建模介紹」中,我們將講解一下LDA文本模型的建模部分。
推薦閱讀: