潛在語義分析LSA


潛在語義分析通過矢量語義空間來分析文檔和詞的關系。

基本假設:如果兩個詞多次出現在同個文檔中,則兩個詞在語義上具有相似性。

LSA使用大量文本構成矩陣,每行表示一個詞,一列表示一個文檔,矩陣元素可以是詞頻或TF-IDF,然后使奇異值分解SVD進行矩陣降維,得到原矩陣的近似,此時兩個詞的相似性可通過其向量cos值。

 

降維原因:

- 原始矩陣太大,降維后新矩陣是原矩陣的近似。

- 原始矩陣有噪音,降維也是去噪過程。

- 原始矩陣過於稀疏

- 降維可以解決一部分同義詞與二義性的問題。

 

推導:

對於文檔集可以表示成矩陣X,行為詞,列為文檔

詞向量\textbf{t}_i^T \textbf{t}_p的點乘可以表示這兩個單詞在文檔集合中的相似性。矩陣X X^T 包含所有詞向量點乘的結果

降維的過程其實是奇異值分解,矩陣X可分解成正交矩陣U、V,和一個對角矩陣\Sigma的乘積

\begin{matrix}X = U \Sigma V^T\end{matrix}

因此,詞與文本的相關性矩陣可表示為:

\begin{matrix}X X^T &=& (U \Sigma V^T) (U \Sigma V^T)^T = (U \Sigma V^T) (V^{T^T} \Sigma^T U^T) = U \Sigma V^T V \Sigma^T U^T = U \Sigma \Sigma^T U^T \\X^T X &=& (U \Sigma V^T)^T (U \Sigma V^T) = (V^{T^T} \Sigma^T U^T) (U \Sigma V^T) = V \Sigma^T U^T U \Sigma V^T = V \Sigma^T \Sigma V^T\end{matrix}

因為 \Sigma \Sigma^T\Sigma^T \Sigma是對角矩陣,因此 U 肯定是由 X X^T的特征向量組成的矩陣,同理 VX^T X特征向量組成的矩陣。
這些特征向量對應的特征值即為 \Sigma \Sigma^T中的元素。綜上所述,這個分解看起來是如下的樣子:
 
\begin{matrix}  & X & & & U & & \Sigma & & V^T \\ & (\textbf{d}_j) & & & & & & & (\hat{\textbf{d}}_j) \\ & \downarrow & & & & & & & \downarrow \\(\textbf{t}_i^T) \rightarrow &\begin{bmatrix} x_{1,1} & \dots & x_{1,n} \\\\\vdots & \ddots & \vdots \\\\x_{m,1} & \dots & x_{m,n} \\\end{bmatrix}&=&(\hat{\textbf{t}}_i^T) \rightarrow&\begin{bmatrix} \begin{bmatrix} \, \\ \, \\ \textbf{u}_1 \\ \, \\ \,\end{bmatrix} \dots\begin{bmatrix} \, \\ \, \\ \textbf{u}_l \\ \, \\ \, \end{bmatrix}\end{bmatrix}&\cdot&\begin{bmatrix} \sigma_1 & \dots & 0 \\\vdots & \ddots & \vdots \\0 & \dots & \sigma_l \\\end{bmatrix}&\cdot&\begin{bmatrix} \begin{bmatrix} & & \textbf{v}_1 & & \end{bmatrix} \\\vdots \\\begin{bmatrix} & & \textbf{v}_l & & \end{bmatrix}\end{bmatrix}\end{matrix}
\sigma_1, \dots, \sigma_l  被稱作是奇異值,而  u_1, \dots, u_l  和 v_1, \dots, v_l 則叫做左奇異向量和右奇異向量。
通過矩陣分解可以看出,原始矩陣中的 \textbf{t}_i  只與U矩陣的第i行有關,我們則稱第i行為  \hat{\textrm{t}}_i
同理,原始矩陣中的 \hat{ \textrm{d}}_j 只與 V^T 中的第j列有關,我們稱這一列為 \hat{ \textrm{d}}_j \textbf{t}_i \hat{ \textrm{d}}_j 並非特征值,但是其由矩陣所有的特征值所決定。
 
 
當我們選擇k個最大的奇異值(這里就進行了特征提取),和它們對應的U與V中的向量相乘,則能得到一個X矩陣的k階近似,此時該矩陣和X矩陣相比有着最小誤差(即殘差矩陣的Frobenius范數)。
但更有意義的是這么做可以將詞向量和文檔向量映射到語義空間。向量 \hat{\textbf{t}}_i與含有k個奇異值的矩陣相乘,實質是從高維空間到低維空間的一個變換,可以理解為是一個高維空間到低維空間的近似。
同理,向量  \hat{\textbf{d}}_j也存在這樣一個從高維空間到低維空間的變化。這種變換用公式總結出來就是這個樣子:
X_k = U_k \Sigma_k V_k^T
 
 
有了這個變換,則可以做以下事情:
  • 判斷文檔 j 與 q 在低維空間的相似度。比較向量 \Sigma_k \hat{\textbf{d}}_j  與向量\Sigma_k \hat{\textbf{d}}_q  (比如使用余弦夾角)即可得出。
  • 通過比較\Sigma_k \hat{\textbf{t}}_i^T  與 \Sigma_k \hat{\textbf{t}}_p^T 可以判斷詞i和詞p的相似度。 
  • 有了相似度則可以對文本和文檔進行聚類。
  • 給定一個查詢字符串,算其在語義空間內和已有文檔的相似性。
要比較查詢字符串與已有文檔的相似性,需要把文檔和查詢字符串都映射到語義空間,對於原始文檔,由以下公式可以進行映射:
\hat{\textbf{d}}_j = \Sigma_k^{-1} U_k^T \textbf{d}_j
其中對角矩陣 \Sigma_k 的逆矩陣可以通過求其中非零元素的倒數來簡單的得到。
同理,對於查詢字符串,得到其對應詞的向量后,根據公式  \hat{\textbf{q}} = \Sigma_k^{-1} U_k^T \textbf{q}將其映射到語義空間,再與文檔進行比較。
 
 

低維的語義空間可以用於以下幾個方面:

  • 在低維語義空間可對文檔進行比較,進而可用於文檔聚類和文檔分類。
  • 在翻譯好的文檔上進行訓練,可以發現不同語言的相似文檔,可用於跨語言檢索。
  • 發現詞與詞之間的關系,可用於同義詞、歧義詞檢測。.
  • 通過查詢映射到語義空間,可進行信息檢索。
  • 從語義的角度發現詞語的相關性,可用於“選擇題回答模型”(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM