在優秀的詞嵌入方法出現之前,潛在語義分析模型(LSA)和文檔主題生成模型(LDA)都是解決自然語言問題的好方法。LSA模型和LDA模型有相同矩陣形式的詞袋表示輸入。不過,LSA模型專注於降維,而LDA模型專注於解決主題建模問題。
在自然語言理解任務中,我們可以通過一系列的層次來提取含義——從單詞、句子、段落,再到文檔。在文檔層面,理解文本最有效的方式之一就是分析其主題。在文檔集合中學習、識別和提取這些主題的過程被稱為主題建模。
概述
所有主題模型都基於相同的基本假設:
- 每個文檔包含多個主題;
- 每個主題包含多個單詞。
換句話說,主題模型圍繞着以下觀點構建:實際上,文檔的語義由一些我們所忽視的隱變量或「潛」變量管理。因此,主題建模的目標就是揭示這些潛在變量——也就是主題,正是它們塑造了我們文檔和語料庫的含義。這篇博文將繼續深入不同種類的主題模型,試圖建立起讀者對不同主題模型如何揭示這些潛在主題的認知。
LSA:
首先,我們用m個文檔和n個詞作為模型的輸入。這樣我們就能構建一個以文檔為行、以詞為列的m*n矩陣。我們可以使用計數或TF-IDF得分。然而,用TF-IDF得分比計數更好,因為大部分情況下高頻並不意味着更好的分類.
該模型的挑戰是矩陣很稀疏(或維數很高),同時有噪聲(包括許多高頻詞)。因此,使用分解 SVD 來降維。
SVD,即奇異值分解,是線性代數中的一種技術。該技術將任意矩陣 M 分解為三個獨立矩陣的乘積:A=U*S*V,其中 S 是矩陣 M 奇異值的對角矩陣。很大程度上,截斷 SVD 的降維方式是:選擇奇異值中最大的 t 個數,且只保留矩陣 U 和 V 的前 t 列。在這種情況下,t 是一個超參數,我們可以根據想要查找的主題數量進行選擇和調整。

SVD 的思想在於找到最有價值的信息並使用低維的t來表達這一信息。
LDA:
LDA模型,屬於無監督學習,而主題模型是其個中典型。它建立的假設在於每份文檔都使用多個主題混合生成,同樣每個主題也是由多個單詞混合生成。
我不打算深入講解狄利克雷分布,不過,我們可以對其做一個簡短的概述:即,將狄利克雷視為「分布的分布」。本質上,它回答了這樣一個問題:「給定某種分布,我看到的實際概率分布可能是什么樣子?」
考慮比較主題混合概率分布的相關例子。假設我們正在查看的語料庫有着來自 3 個完全不同主題領域的文檔。如果我們想對其進行建模,我們想要的分布類型將有着這樣的特征:它在其中一個主題上有着極高的權重,而在其他的主題上權重不大。如果我們有 3 個主題,那么我們看到的一些具體概率分布可能會是:
- 混合 X:90% 主題 A,5% 主題 B,5% 主題 C
- 混合 Y:5% 主題 A,90% 主題 B,5% 主題 C
- 混合 Z:5% 主題 A,5% 主題 B,90% 主題 C
如果從這個狄利克雷分布中繪制一個隨機概率分布,並對單個主題上的較大權重進行參數化,我們可能會得到一個與混合 X、Y 或 Z 非常相似的分布。我們不太可能會抽樣得到這樣一個分布:33%的主題 A,33%的主題 B 和 33%的主題 C。

根據狄利克雷分布 Dir(α),我們繪制一個隨機樣本來表示特定文檔的主題分布或主題混合。這個主題分布記為θ。我們可以基於分布從θ選擇一個特定的主題 Z。
接下來,從另一個狄利克雷分布 Dir(𝛽),我們選擇一個隨機樣本來表示主題 Z 的單詞分布。這個單詞分布記為φ。從φ中,我們選擇單詞 w。
然而,"a","with","can"這樣的單詞對主題建模問題沒有幫助。這樣的單詞存在於各個文檔,並且在類別之間概率大致相同。因此,想要得到更好的效果,消除停用詞是關鍵一步。
參考:https://www.sohu.com/a/234584362_129720
