主題模型 克服了傳統(tǒng)信息檢索中文檔相似度計算方法的缺點,并且能夠在海量的數(shù)據(jù)中找出文字間的語義主題。主題模型在自然語言和給予文本的搜索上起到了重要的作用。
怎樣才能生成主題?對文章的主題應該怎么分析?這是主題模型要解決的問題。

從結(jié)果上來看,我們希望將一個包含(詞語×文檔)的矩陣,分解成(詞語×主題)和(主題×文檔)兩個矩陣相乘的結(jié)果。如果可以分解成功,那么矩陣對應的主題向量就是我們所有獲取的主題信息。 從而達到了文檔分類的結(jié)果。
當我們想要提取文檔隱含主題的時候,我們可以通過矩陣分解來提取我們需要的信息。下面介紹矩陣分解的算法。
三、SVD 奇異值分解

將m×n的矩陣,分解成三個m×r、r×r、r×n的矩陣。這是我們本質(zhì)上想要做的事情。但是有些時候我們的原始m×n矩陣比較大,我們可以這樣操作:
1、在m×r矩陣中取前k列。
2、在r×r矩陣中我們?nèi)蔷€的k個元素。
3、在r×n矩陣中取前k行。
即分解形成:m×k、k×k、k×n三個矩陣。這三個矩陣相乘的結(jié)果近似于原始矩陣m×n矩陣。
求解SVD的方法:
定義: 現(xiàn)在有矩陣An×n,Xn×1是一個向量。如果AX=λX;那么λ就是矩陣A的一個特征值,X是當前特征值λ對應的特征向量。
一個特征向量可以對應多少特征值?1個。
一個特征值可以對應多少特征向量?多個。
為了使特征向量唯一,我們要對特征向量做標準化。
有了特征向量和特征值以后,我們便可以對原始矩陣A進行矩陣分解了。
思考: 我們想將方陣An×n分解成:A=WΣW-1 。
W是特征向量形成的矩陣,Σ是系數(shù),就類似特征值λ;
標準化操作,令 |W|=1 即 WiTWi
∴ WTW=1 → WT = W-1→ A=WΣW-1
但上述的前提是矩陣A是一個方陣。如果A不是方陣,那么矩陣分解就必須用到SVD的方法。
奇異值分解的幾何意義:http://m.itdecent.cn/p/e1b8a315fd36
SVD的特性
對于奇異值,它跟我們特征分解中的特征值類似,在奇異值矩陣中也是按照從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上的比例。也就是說,我們也可以用最大的k個的奇異值和對應的左右奇異向量來近似描述矩陣。

由于可以使用小矩陣來近似的描述樣本信息的這個重要特性,SVD可以常用于PCA降維、推薦系統(tǒng)以及主題模型等場景中。
四、LSA模型
潛在語義分析(Latent Semantic Analysis, LSA),也叫做Latent Semantic Indexing, LSI. 是一種常用的簡單的主題模型。LSA是基于奇異值分解(SVD)的方法得到文本主題的一種方式。

分析為什么用近似值: 我們在做奇異值分解的時候,我們可以得到一個矩陣相乘的分解結(jié)果。我們認為可以用前K個特征構(gòu)成一個近似的分解結(jié)果。我們來分析一下,如果分解的結(jié)果是這樣的形式:Um×m∑m×nVTn×n;分解出來的矩陣大小和我的文章個數(shù) |μ文| 或詞的個數(shù) |μ詞| 掛鉤。如果文章里的詞特別多,那么我分解出來的結(jié)果,即提取出來的主題個數(shù),不是m就是n,就沒有了分解的意義。
所以我們要通過一個近似的方法,k代表的是我們主題的個數(shù)。|μ主題|
總結(jié): 我們輸入的有m個文本,每個文本有n個詞。而Aij則對應第i個文本的第j個詞的特征值。k是我們假設(shè)的主題數(shù),一般要比文本數(shù)少。
SVD分解后:
Uil 對應第i個文本和第l個主題的相關(guān)度。
Vjm 對應第j個詞和第m個詞義的相關(guān)度。
Σlm 對應第l個主題和第m個詞義的相關(guān)度
值得注意的是:Vjm詞義相關(guān)度也是一個隱含變量。
思考: 我們通過奇異值分解出來的是3個矩陣。Am×n = Um×k∑k×kVTn×k; 那么三個矩陣需要由幾個不同的變量?
1、一個矩陣分解成兩個個矩陣的時候,有文章、詞語、主題三個變量。我認為多出來的一維變量是主題。

2、那么現(xiàn)在兩個個矩陣矩陣分解到三個矩陣的時候,有文章、詞語、主題、詞義 四個變量。多出來的一維變量是詞義 。

Uil 對應第i個文本和第l個主題的相關(guān)度。
Vjm 對應第j個詞和第m個詞義的相關(guān)度。
Σlm 對應第l個主題和第m個詞義的相關(guān)度
下面通過一個例子來進一步解釋這個問題。
LSA案例
假設(shè)有10個詞、3個文本對應的詞頻TF矩陣如下:

假定主題數(shù)為2,通過SVD降維后的三個矩陣分布為:

通過SVD矩陣分解我們可以得到文本、詞與主題、語義之間的相關(guān)性,但是這個時候計算出來的內(nèi)容存在負數(shù),我們比較難解釋,所以我們可以對LSI得到文本主題矩陣使用余弦相似度計算文本的相似度的計算。最終我們得到第一個和第三個文檔比較相似,和第二個文檔不太相似。(備注:這個時候直接在文本主題矩陣的基礎(chǔ)上直接應用聚類算法即可)

LSA主題模型總結(jié)
除非數(shù)據(jù)規(guī)模比較小,而且希望快速的粗粒度的找出一些主題分布關(guān)系,否則我們一般不會使用LSA主題模型。
優(yōu)點:
原理簡單,一次SVD分解即可得到主題模型,可以同時解決詞義的問題。
缺點:
1、SVD分解的計算非常耗時,對于高維度矩陣做SVD分解非常困難;
2、主題模型數(shù)量的選取對于結(jié)果的影響非常大,很難選擇合適的k值;
3、LSA模型不是概率模型,缺乏統(tǒng)計基礎(chǔ),結(jié)果難以直觀的解釋。