LSA(latent semantic analysis)潛在語義分析,也被稱為 LSI(latent semantic index)永部,是 Scott Deerwester, Susan T. Dumais 等人在 1990 年提出來的一種新的索引和檢索方法。該方法和傳統(tǒng)向量空間模型(vector space model)一樣使用向量來表示詞(terms)和文檔(documents),并通過向量間的關(guān)系(如夾角)來判斷詞及文檔間的關(guān)系;不同的是羔飞,LSA 將詞和文檔映射到潛在語義空間,從而去除了原始向量空間中的一些“噪音”檐春,提高了信息檢索的精確度1逻淌。
引用吳軍老師在 “矩陣計(jì)算與文本處理中的分類問題” 中的總結(jié):
三個(gè)矩陣有非常清楚的物理含義。第一個(gè)矩陣 U 中的每一行表示意思相關(guān)的一類詞疟暖,其中的每個(gè)非零元素表示這類詞中每個(gè)詞的重要性(或者說相關(guān)性)卡儒,數(shù)值越大越相關(guān)。最后一個(gè)矩陣 V 中的每一列表示同一主題一類文章俐巴,其中每個(gè)元素表示這類文章中每篇文章的相關(guān)性骨望。中間的矩陣 D 則表示類詞和文章類之間的相關(guān)性。因此欣舵,我們只要對(duì)關(guān)聯(lián)矩陣 X 進(jìn)行一次奇異值分解擎鸠,我們就可以同時(shí)完成了近義詞分類和文章的分類。(同時(shí)得到每類文章和每類詞的相關(guān)性)2邻遏。
其實(shí)糠亩,有了之前對(duì)SVD理解虐骑,理解起來應(yīng)該相當(dāng)容易准验。
舉個(gè)栗子
傳統(tǒng)向量空間模型使用精確的詞匹配,即精確匹配用戶輸入的詞與向量空間中存在的詞廷没,無法解決一詞多義(polysemy)和一義多詞(synonymy)的問題糊饱。實(shí)際上在搜索中,我們實(shí)際想要去比較的不是詞颠黎,而是隱藏在詞之后的意義和概念另锋。
LSA 的核心思想是將詞和文檔映射到潛在語義空間滞项,再比較其相似性。
我們通過一個(gè)簡單的例子來看一下整個(gè)流程3.
Term-Document 矩陣:這里的一行表示一個(gè)詞在哪些title中出現(xiàn)了夭坪,一列表示一個(gè)title中出現(xiàn)了哪些詞(停詞已去除)文判。比如說T1這個(gè)title中就有g(shù)uide、investing室梅、market戏仓、stock四個(gè)詞,各出現(xiàn)了一次亡鼠。
對(duì) Term-Document 矩陣做SVD分解:
我們可以將左奇異向量和右奇異向量都取后2維(之前是3維的矩陣)赏殃,投影到一個(gè)平面上(潛在語義空間),可以得到:
在圖上间涵,每一個(gè)紅色的點(diǎn)仁热,都表示一個(gè)詞,每一個(gè)藍(lán)色的點(diǎn)勾哩,都表示一篇文檔抗蠢,這樣我們可以對(duì)這些詞和文檔進(jìn)行聚類,比如說 stock 和 market 可以放在一類钳幅,因?yàn)樗麄兝鲜浅霈F(xiàn)在一起物蝙,real 和 estate 可以放在一類,dads敢艰,guide 這種詞就看起來有點(diǎn)孤立了诬乞,我們就不對(duì)他們進(jìn)行合并了。按這樣聚類出現(xiàn)的效果钠导,可以提取文檔集合中的近義詞震嫉,這樣當(dāng)用戶檢索文檔的時(shí)候,是用語義級(jí)別(近義詞集合)去檢索了牡属,而不是之前的詞的級(jí)別票堵。這樣一減少我們的檢索、存儲(chǔ)量逮栅,因?yàn)檫@樣壓縮的文檔集合和PCA是異曲同工的悴势,二可以提高我們的用戶體驗(yàn),用戶輸入一個(gè)詞措伐,我們可以在這個(gè)詞的近義詞的集合中去找特纤,這是傳統(tǒng)的索引無法做到的4。
總結(jié)
LSA可以處理向量空間模型無法解決的一義多詞(synonymy)問題侥加,但不能解決一詞多義(polysemy)問題捧存。因?yàn)長SA將每一個(gè)詞映射為潛在語義空間中的一個(gè)點(diǎn),也就是說一個(gè)詞的多個(gè)意思在空間中對(duì)于的是同一個(gè)點(diǎn),并沒有被區(qū)分昔穴。
另外5镰官,
SVD的優(yōu)化目標(biāo)基于L-2 norm 或者Frobenius Norm的,這相當(dāng)于隱含了對(duì)數(shù)據(jù)的高斯分布假設(shè)吗货。而 term 出現(xiàn)的次數(shù)是非負(fù)的泳唠,這明顯不符合 Gaussian 假設(shè),而更接近 Multi-nomial 分布宙搬;
特征向量的方向沒有對(duì)應(yīng)的物理解釋警检;
SVD的計(jì)算復(fù)雜度很高,而且當(dāng)有新的文檔來到時(shí)害淤,若要更新模型需重新訓(xùn)練扇雕;