[nlp] LSA——latent semantic analysis潛在語義分析

參考:https://en.wikipedia.org/wiki/Latent_semantic_analysis
**分佈假設:**具有相似分佈的語言項目具有相似的含義。
在這裏插入圖片描述

一、推導

建立document-term matrix 術語文檔矩陣。
在這裏插入圖片描述
現在是點積  tiT tp{\ {t}} _ {i} ^ {T} {\ {t}} _ {p} 兩個詞向量之間的相關關係 給出了 文檔集中詞之間的相關性

同樣,矩陣  XTX{\ X ^ {T} X} 包含所有文檔向量之間的點積,並賦予它們與以下項的相關性:   djT dq= dqT dj {\ {\ {d}} _ {j} ^ {T} {\ {d}} _ {q} = {\ {d}} _ {q} ^ {T} {\ {d }} _ {j}}

存在一個分解 X 這樣 U 和 V 是正交矩陣,Σ 是對角矩陣。這稱爲奇異值分解(SVD)

X=U ΣVT X = U \ {Σ} V ^ {T}
在這裏插入圖片描述
已知 ΣTΣ 和 ΣΣT 是對角線,U 是XXT的特徵向量組成的矩陣(特徵向量是列),而V是XXT的特徵向量組成的矩陣(特徵向量是列)。而這兩者含有相同的特徵值。
在這裏插入圖片描述
σ1,,σl {\sigma _{1},\dots ,\sigma _{l}} 稱爲奇異值, u1,,ul { }u_{1},\dots ,u_{l} 稱爲左奇異值,v1,,vlv_{1},\dots ,v_{l}稱爲右奇異值。
在這裏插入圖片描述
找到奇異值中的一個σ(k),使得對應的X(k)與X的誤差最小。(這裏我用F範數代表誤差)。

minXkXF min ||X_{k}-X|| _{F}
Xk=Uk ΣkVkT X_ {k} = U_ {k} \ Σ_ {k} V_ {k} ^ {T}

Σk t^p Σ_ {k}{\hat{\ {t}}} _ {p}

  1. 看到有關文檔 j 和 q 是在低維空間中通過比較向量 Σk d^j{ \ Σ_ {k}{\hat{\ {d}}} _ {j}}  Σk d^q{ \ Σ_ {k}{\hat{\ {d}}} _ {q}} (通常由余弦相似性)。(其中dk 可以理解爲Xk)
  2. 比較 i 和 p 通過比較向量 Σk t^i Σ_ {k}{\hat{\ {t}}} _ {i} Σk t^p Σ_ {k}{\hat{\ {t}}} _ {p} 。注意, t^{\hat{\ {t}}}現在是一個列向量。
  3. 文檔和術語向量表示可以使用傳統的聚類算法(如k-means)和相似度度量(如cos)進行聚類。
  4. 給定一個查詢,將其視爲一個迷你文檔,並將其與低維空間中的文檔進行比較。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章