潛在語義分析通過矢量語義空間來分析文檔和詞的關系。
基本假設:如果兩個詞多次出現在同個文檔中,則兩個詞在語義上具有相似性。
LSA使用大量文本構成矩陣,每行表示一個詞,一列表示一個文檔,矩陣元素可以是詞頻或TF-IDF,然后使奇異值分解SVD進行矩陣降維,得到原矩陣的近似,此時兩個詞的相似性可通過其向量cos值。
降維原因:
- 原始矩陣太大,降維后新矩陣是原矩陣的近似。
- 原始矩陣有噪音,降維也是去噪過程。
- 原始矩陣過於稀疏
- 降維可以解決一部分同義詞與二義性的問題。
推導:
對於文檔集可以表示成矩陣X,行為詞,列為文檔
詞向量的點乘可以表示這兩個單詞在文檔集合中的相似性。矩陣
包含所有詞向量點乘的結果
降維的過程其實是奇異值分解,矩陣X可分解成正交矩陣U、V,和一個對角矩陣的乘積
因此,詞與文本的相關性矩陣可表示為:
因為
與
是對角矩陣,因此
肯定是由
的特征向量組成的矩陣,同理
是
特征向量組成的矩陣。






這些特征向量對應的特征值即為
中的元素。綜上所述,這個分解看起來是如下的樣子:





通過矩陣分解可以看出,原始矩陣中的
只與U矩陣的第i行有關,我們則稱第i行為
。


同理,原始矩陣中的
只與
中的第j列有關,我們稱這一列為
。
與
並非特征值,但是其由矩陣所有的特征值所決定。





當我們選擇k個最大的奇異值(這里就進行了特征提取),和它們對應的U與V中的向量相乘,則能得到一個X矩陣的k階近似,此時該矩陣和X矩陣相比有着最小誤差(即殘差矩陣的Frobenius范數)。
但更有意義的是這么做可以將詞向量和文檔向量映射到語義空間。向量
與含有k個奇異值的矩陣相乘,實質是從高維空間到低維空間的一個變換,可以理解為是一個高維空間到低維空間的近似。

同理,向量
也存在這樣一個從高維空間到低維空間的變化。這種變換用公式總結出來就是這個樣子:


有了這個變換,則可以做以下事情:
- 判斷文檔
與
在低維空間的相似度。比較向量
與向量
(比如使用余弦夾角)即可得出。
- 通過比較
與
可以判斷詞
和詞
的相似度。
- 有了相似度則可以對文本和文檔進行聚類。
- 給定一個查詢字符串,算其在語義空間內和已有文檔的相似性。
要比較查詢字符串與已有文檔的相似性,需要把文檔和查詢字符串都映射到語義空間,對於原始文檔,由以下公式可以進行映射:

其中對角矩陣
的逆矩陣可以通過求其中非零元素的倒數來簡單的得到。

同理,對於查詢字符串,得到其對應詞的向量后,根據公式
將其映射到語義空間,再與文檔進行比較。

低維的語義空間可以用於以下幾個方面:
- 在低維語義空間可對文檔進行比較,進而可用於文檔聚類和文檔分類。
- 在翻譯好的文檔上進行訓練,可以發現不同語言的相似文檔,可用於跨語言檢索。
- 發現詞與詞之間的關系,可用於同義詞、歧義詞檢測。.
- 通過查詢映射到語義空間,可進行信息檢索。
- 從語義的角度發現詞語的相關性,可用於“選擇題回答模型”(multi choice qustions answering model)。
LSA的一些缺點如下:
- 新生成的矩陣的解釋性比較差.比如
-
- {(car), (truck), (flower)} ↦ {(1.3452 * car + 0.2828 * truck), (flower)}
-
(1.3452 * car + 0.2828 * truck) 可以解釋成 "vehicle"。同時,也有如下的變換
- {(car), (bottle), (flower)} ↦ {(1.3452 * car + 0.2828 * bottle), (flower)}
- 造成這種難以解釋的結果是因為SVD只是一種數學變換,並無法對應成現實中的概念。
- LSA無法撲捉一詞多以的現象。在原始詞-向量矩陣中,每個文檔的每個詞只能有一個含義。比如同一篇文章中的“The Chair of Board"和"the chair maker"的chair會被認為一樣。在語義空間中,含有一詞多意現象的詞其向量會呈現多個語義的平均。相應的,如果有其中一個含義出現的特別頻繁,則語義向量會向其傾斜。
- LSA具有詞袋模型的缺點,即在一篇文章,或者一個句子中忽略詞語的先后順序。
- LSA的概率模型假設文檔和詞的分布是服從聯合正態分布的,但從觀測數據來看是服從泊松分布的。因此LSA算法的一個改進PLSA使用了多項分布,其效果要好於LSA
摘自:http://blog.csdn.net/roger__wong/article/details/41175967