雖然現在深度學習幾乎一統天下,但回顧一下經典還是很有意思的。LSA已經成為經典的經典,UCB的Thomas Hofmann(現在已經到了Google)提出的PLSA,普林斯頓的David Blei提出的LDA,其實在很多應用中還很有效的。
在話題提取問題中,一類經典的模型就是話題模型。總的來說,話題模型的目標是在大量的文件中自動發現隱含的主題結構資訊。在本文中,我們將主要介紹以下幾種常見的主題模型:(1)潛在語義分析(LSA)模型;(2)機率潛在語義分析(PLSA)模型;(3)潛在狄利克雷分配(LDA)模型。
接下來我們將一一介紹這些模型,並闡明這些模型的相對優缺點。
潛在語義分析(LSA)模型
在潛在語義分析(LSA)模型[1] 首先給出了這樣一個 ‘‘分散式假設”[2]:一個 單詞的屬性是由它所處的環境刻畫的。這也就意味著如果兩個單詞在含義上比較接近,那麼它們也會出現在相似的文字中,也就是說具有相似的上下文。
簡單地說,LSA首先構建了這樣一個 ‘‘單詞-文件’’ 矩陣:矩陣的每一行表示一個單詞, 矩陣的每一列表示一個文章,第 i 行第 j 列的值表示第 i 個單詞在第 j 個段落裡面出現了幾次或者表示該單詞的 tf-idf 值[3,4] 等等。LSA模型在構建好了單詞-文件矩陣之後,出於以下幾種可能的原因,我們會使用奇異值分解(Singular Value Decomposition,SVD)[5]的方法來尋找該矩陣的一個低階近似:
原始的單詞-文件矩陣過於龐大而會消耗過多的計算資源。在這種情況下,近 似的低階矩陣可以被解釋為原始矩陣的一個 ‘‘近似’’。
原始的單詞-文件矩陣往往包含著很多噪音,也就是說並不是裡面的任何一個資訊都是有用的。在這種情況下,求近似的矩陣的過程可以看成對原來的矩陣進行 ‘‘降噪’’。
原始的單詞-文件矩陣相對於 ‘‘真實的’’ 單詞-文件矩陣而言過於稀疏。所謂真實的矩陣,就是指將世界上所有出現的單詞和文件都考慮在內得到的矩陣,而這顯然是不可能的。我們只能透過分析一部分資料來得到真實矩陣的一種近似。在這種情況下,近似的矩陣可以看成是原始矩陣的一種 ‘‘精簡’’ 版本。
機率潛在語義分析(PLSA)模型
機率潛在語義分析(PLSA)模型[6] 其實是為了克服潛在語義分析(LSA)模型存在的一些缺點而被提出的。LSA 的一個根本問題在於,儘管我們可以把 Uk 和 Vk 的每一列都看成是一個話題,但是由於每一列的值都可以看成是幾乎沒有限制的實數值,因此我們無法去進一步解釋這些值到底是什麼意思,也更無法從機率的角度來理解這個模型。而尋求機率意義上的解釋則是貝葉斯推斷的核心思想之 一。
PLSA模型則透過一個生成模型來為LSA賦予了機率意義上的解釋。該模型假設,每一篇文件都包含一系列可能的潛在話題,文件中的每一個單詞都不是憑空產生的,而是在這些潛在的話題的指引下透過一定的機率生成的。
在 PLSA 模型裡面,話題其實是一種單詞上的機率分佈,每一個話題都代表著一個不同的單詞上的機率分佈,而每個文件又可以看成是話題上的機率分佈。每篇文件就是透過這樣一個兩層的機率分佈生成的,這也正是PLSA 提出的生成模型的核心思想。
PLSA 透過下面這個式子對 d 和 w 的聯合分佈進行了建模:
該模型中的 z 的數量是需要事先給定的一個超引數。需要注意的是,上面這 個式子裡面給出了 P(w, d) 的兩種表達方式,在前一個式子裡,d 和 w 都是在給定z 的前提下透過條件機率生成出來的,它們的生成方式是相似的,因此是 ‘‘對稱’’ 的;在後一個式子裡,首先給定d,然後根據 P(z|d) 生成可能的話題 z,然後再根據 P(w|z) 生成可能的單詞 w,由於在這個式子裡面單詞和文件的生成並不相似, 所以是 ‘‘非對稱’’ 的。
上圖給出了 PLSA 模型中非對稱形式的 Plate Notation表示法。其中 d 表示 一篇文件,z 表示由文件生成的一個話題,w 表示由話題生成的一個單詞。在這個模型中,d 和 w 是已經觀測到的變數,而 z 是未知的變數(代表潛在的話題)。
容易發現,對於一個新的文件而言,我們無法得知它對應的 P(d) 究竟是什麼, 因此儘管 PLSA 模型在給定的文件上是一個生成模型,它卻無法生成新的未知的文件。該模型的另外的一個問題在於,隨著文件數量的增加,P(z|d) 的引數也會隨著線性增加,這就導致無論有多少訓練資料,都容易導致模型的過擬合問題。這兩點成為了限制 PLSA 模型被更加廣泛使用的兩大缺陷。
潛在狄利克雷分配(LDA)模型
為了解決 PLSA 模型中出現的主要問題,潛在狄利克雷分配(LDA)模型被 Blei 等人提出[7],這個模型也成為了主題模型這個研究領域內應用最為廣泛的模 型。從根本上來講,LDA 模型是在 PLSA 的模型的基礎上引入了引數的先驗分佈這個概念。
從上一節我們可以看到,在 PLSA 這個模型裡,對於一個未知的新文件 d,我們對於 P(d) 一無所知,而這個其實是不符合人的經驗的。或者說,它沒有去使用本來可以用到的資訊,而這部分資訊就是 LDA 中所謂的先驗資訊。
具體來說,在 LDA 中,首先每一個文件都被看成跟有限個給定話題中的每一個存在著或多或少的關聯性,而這種關聯性則是用話題上的機率分佈來刻畫的, 這一點與 PLSA 其實是一致的。
但是在 LDA 模型中,每個文件關於話題的機率分佈都被賦予了一個先驗分佈,這個先驗一般是用稀疏形式的狄利克雷分佈表示的。 這種稀疏形式的狄利克雷先驗可以看成是編碼了人類的這樣一種先驗知識:一般而言,一篇文章的主題更有可能是集中於少數幾個話題上,而很少說在單獨一篇文章內同時在很多話題上都有所涉獵並且沒有明顯的重點。
此外,LDA 模型還對一個話題在所有單詞上的機率分佈也賦予了一個稀疏形式的狄利克雷先驗,它的直觀解釋也是類似的:在一個單獨的話題中,多數情況是少部分(跟這個話題高度相關的)詞出現的頻率會很高,而其他的詞出現的頻率則明顯較低。這樣兩種先驗使得 LDA 模型能夠比 PLSA 更好地刻畫文件-話題-單詞這三者的關係。
事實上,從 PLSA 的結果上來看,它實際上相當於把 LDA 模型中的先驗分佈轉變為均勻分佈,然後對所要求的引數求最大後驗估計(在先驗是均勻分佈的前提下,這也等價於求引數的最大似然估計)[8],而這也正反映出了一個較為合理的先驗對於建模是非常重要的。
而好的先驗其實源於對於現象的準確深刻的洞察。
參考文獻:
[1] Hofmann T. Probabilistic latent semantic analysis[C]//Proceedings of the Fifteenth conference on Uncertainty in artificial intelligence. [S.l.]: Morgan Kaufmann Publishers Inc., 1999: 289–296.
[2] Firth J R. A synopsis of linguistic theory, 1930-1955[J]. Studies in linguistic analysis, 1957.
[3] Salton G, Buckley C. Term-weighting approaches in automatic text retrieval[J]. Information processing & management, 1988, 24(5): 513–523.
[4] Ramos J, et al. Using tf-idf to determine word relevance in document queries[C]//Proceedings of the first instructional conference on machine learning: volume 242. [S.l.: s.n.], 2003: 133–142.
[5] Kalman D. A singularly valuable decomposition: the svd of a matrix[J]. The college mathematics journal, 1996, 27(1): 2–23.
[6] Deerwester S, Dumais S T, Furnas G W, et al. Indexing by latent semantic analysis[J]. Journal of the American society for information science, 1990, 41(6): 391.
[7] Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. Journal of machine Learning research, 2003, 3(Jan): 993–1022.
[8] GirolamiM,KabánA.On an equivalence between plsi and lda[C]//Proceedings of the 26 th annual international ACM SIGIR conference on Research and development in informaion retrieval. [S.l.]: ACM, 2003: 433–434.