簡(jiǎn)單介紹
LSA和傳統(tǒng)向量空間模型(vector space model)一樣使用向量來(lái)表示詞(terms)和文檔(documents)阐斜,并通過(guò)向量間的關(guān)系(如夾角)來(lái)判斷詞及文檔間的關(guān)系畔裕;不同的是树碱,LSA 將詞和文檔映射到潛在語(yǔ)義空間,從而去除了原始向量空間中的一些“噪音”,提高了信息檢索的精確度。
文本挖掘的兩個(gè)方面應(yīng)用
(1)分類:
a.將詞匯表中的字詞按意思?xì)w類(比如將各種體育運(yùn)動(dòng)的名稱都?xì)w成一類)
b.將文本按主題歸類(比如將所有介紹足球的新聞歸到體育類)
(2)檢索:用戶提出提問(wèn)式(通常由若干個(gè)反映文本主題的詞匯組成)猪杭,然后系統(tǒng)在數(shù)據(jù)庫(kù)中進(jìn)行提問(wèn)式和預(yù)存的文本關(guān)鍵詞的自動(dòng)匹配工作,兩者相符的文本被檢出绎橘。
文本分類中出現(xiàn)的問(wèn)題
(1)一詞多義
比如bank 這個(gè)單詞如果和mortgage, loans, rates 這些單詞同時(shí)出現(xiàn)時(shí)胁孙,bank 很可能表示金融機(jī)構(gòu)的意思〕屏郏可是如果bank 這個(gè)單詞和lures, casting, fish一起出現(xiàn)涮较,那么很可能表示河岸的意思。
(2)一義多詞
比如用戶搜索“automobile”冈止,即汽車狂票,傳統(tǒng)向量空間模型僅僅會(huì)返回包含“automobile”單詞的頁(yè)面,而實(shí)際上包含“car”單詞的頁(yè)面也可能是用戶所需要的熙暴。
LSA原理
通過(guò)對(duì)大量的文本集進(jìn)行統(tǒng)計(jì)分析闺属,從中提取出詞語(yǔ)的上下文使用含義。技術(shù)上通過(guò)SVD分解等處理周霉,消除了同義詞掂器、多義詞的影響,提高了后續(xù)處理的精度俱箱。
流程:
(1)分析文檔集合国瓮,建立詞匯-文本矩陣A。
(2)對(duì)詞匯-文本矩陣進(jìn)行奇異值分解狞谱。
(3)對(duì)SVD分解后的矩陣進(jìn)行降維
(4)使用降維后的矩陣構(gòu)建潛在語(yǔ)義空間
SVD分解乃摹,即奇異值分解,聽起來(lái)很高大上跟衅,其實(shí)就是將一個(gè)矩陣用其他幾個(gè)矩陣的乘積來(lái)表示孵睬。假設(shè)有 m×n 的矩陣 A,那么 SVD 就是要找到如下式的這么一個(gè)分解伶跷,將 A分解為 3 個(gè)矩陣的乘積:
A m x n = Um x k X ∑ k x k X Vk x nT
性質(zhì):對(duì)于奇異值,它跟我們特征分解中的特征值類似掰读,在奇異值矩陣中也是按照從大到小排列,而且奇異值的減少特別的快撩穿,在很多情況下磷支,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上的比例。也就是說(shuō)食寡,我們也可以用最大的k個(gè)的奇異值和對(duì)應(yīng)的左右奇異向量來(lái)近似描述矩陣。即矩陣A只需要灰色的部分的三個(gè)小矩陣就可以近似描述了由于這個(gè)重要的性質(zhì)廓潜,SVD可以用于PCA降維抵皱,來(lái)做數(shù)據(jù)壓縮和去噪善榛。也可以用于推薦算法,將用戶和喜好對(duì)應(yīng)的矩陣做特征分解呻畸,進(jìn)而得到隱含的用戶需求來(lái)做推薦移盆。同時(shí)也可以用于NLP中的算法,比如潛在語(yǔ)義索引(LSI)伤为。
先上圖
(1)詞匯-文本矩陣A是一個(gè)稀疏矩陣咒循,其行代表詞語(yǔ),其列代表文檔绞愚。一般情況下叙甸,詞-文檔矩陣的元素是該詞在文檔中的出現(xiàn)次數(shù),也可以是是該詞語(yǔ)的tf-idf(term frequency–inverse document frequency)位衩。
(2)小矩陣X是對(duì)詞進(jìn)行分類的一個(gè)結(jié)果裆蒸,它的每一行表示一個(gè)詞,每一列表示一個(gè)語(yǔ)義相近的詞類糖驴,這一行中每個(gè)非零元素表示每個(gè)詞在每個(gè)語(yǔ)義類中的重要性(或者說(shuō)相關(guān)性)
如: X =
[0.7 0.15
0.22 0.49
0.3 0.03]
則第一個(gè)詞和第一個(gè)語(yǔ)義類比較相關(guān)僚祷,第二個(gè)詞正好相反,第三個(gè)詞與兩個(gè)語(yǔ)義都相關(guān)性都不強(qiáng)贮缕。
第二個(gè)小矩陣B表示詞的類和文章的類之間的相關(guān)性
如B =
[0.7 0.21
0.18 0.63]
則第一個(gè)詞的語(yǔ)義類和第一個(gè)主題相關(guān)辙谜,和第二個(gè)主題沒(méi)有太多關(guān)系,第二個(gè)詞的語(yǔ)義類則相反
矩陣Y是對(duì)文本進(jìn)行分類的一個(gè)結(jié)果感昼,它的每一行表示一個(gè)主題装哆,每一列表示一個(gè)文本,這一列每個(gè)元素表示這篇文本在不同主題中的相關(guān)性
如Y =
[0.7 0.15 0.22
0 0.92 0.08]
則第一篇文章屬于第一個(gè)主題抑诸,第二篇文章和第二個(gè)主題非常相關(guān)烂琴,第三篇文章與兩個(gè)主題都不相關(guān)
(3)在構(gòu)建好詞-文檔矩陣之后,LSA將對(duì)該矩陣進(jìn)行降維蜕乡,來(lái)找到詞-文檔矩陣的一個(gè)低階近似奸绷。降維的原因有以下幾點(diǎn):
a. 原始的詞-文檔矩陣太大導(dǎo)致計(jì)算機(jī)無(wú)法處理,從此角度來(lái)看层玲,降維后的新矩陣式原有矩陣的一個(gè)近似号醉。
b. 原始的詞-文檔矩陣中有噪音,從此角度來(lái)看辛块,降維后的新矩陣式原矩陣的一個(gè)去噪矩陣畔派。
c. 原始的詞-文檔矩陣過(guò)于稀疏。原始的詞-文檔矩陣精確的反映了每個(gè)詞是否“出現(xiàn)”于某篇文檔的情況润绵,然而我們往往對(duì)某篇文檔“相關(guān)”的所有詞更感興趣线椰,因此我們需要發(fā)掘一個(gè)詞的各種同義詞的情況。
降維的結(jié)果是不同的詞或因?yàn)槠湔Z(yǔ)義的相關(guān)性導(dǎo)致合并尘盼,如:
{(car), (truck), (flower)} --> {(1.3452 * car + 0.2828 * truck), (flower)}
將維可以解決一部分同義詞的問(wèn)題憨愉,也能解決一部分二義性問(wèn)題烦绳。具體來(lái)說(shuō),原始詞-文檔矩陣經(jīng)過(guò)降維處理后配紫,原有詞向量對(duì)應(yīng)的二義部分會(huì)加到和其語(yǔ)義相似的詞上径密,而剩余部分則減少對(duì)應(yīng)的二義分量。
應(yīng)用
低維的語(yǔ)義空間可以用于以下幾個(gè)方面:
在低維語(yǔ)義空間可對(duì)文檔進(jìn)行比較躺孝,進(jìn)而可用于文檔聚類和文檔分類享扔。
在翻譯好的文檔上進(jìn)行訓(xùn)練,可以發(fā)現(xiàn)不同語(yǔ)言的相似文檔植袍,可用于跨語(yǔ)言檢索惧眠。
發(fā)現(xiàn)詞與詞之間的關(guān)系,可用于同義詞奋单、歧義詞檢測(cè)锉试。.
通過(guò)查詢映射到語(yǔ)義空間,可進(jìn)行信息檢索览濒。
從語(yǔ)義的角度發(fā)現(xiàn)詞語(yǔ)的相關(guān)性呆盖,可用于“選擇題回答模型”(multi choice qustions answering model)。
LSA的優(yōu)點(diǎn)
1)低維空間表示可以刻畫同義詞贷笛,同義詞會(huì)對(duì)應(yīng)著相同或相似的主題应又。
2)降維可去除部分噪聲,是特征更魯棒乏苦。
3)充分利用冗余數(shù)據(jù)株扛。
4)無(wú)監(jiān)督/完全自動(dòng)化。
5)與語(yǔ)言無(wú)關(guān)汇荐。
LSA的缺點(diǎn)
1)LSA可以處理向量空間模型無(wú)法解決的一義多詞(synonymy)問(wèn)題洞就,但不能解決一詞多義(polysemy)問(wèn)題。因?yàn)長(zhǎng)SA將每一個(gè)詞映射為潛在語(yǔ)義空間中的一個(gè)點(diǎn)掀淘,也就是說(shuō)一個(gè)詞的多個(gè)意思在空間中對(duì)于的是同一個(gè)點(diǎn)旬蟋,并沒(méi)有被區(qū)分。
2)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 分布匆浙。
3)特征向量的方向沒(méi)有對(duì)應(yīng)的物理解釋。
4)SVD的計(jì)算復(fù)雜度很高厕妖,而且當(dāng)有新的文檔來(lái)到時(shí)首尼,若要更新模型需重新訓(xùn)練。
5)沒(méi)有刻畫term出現(xiàn)次數(shù)的概率模型。
6)對(duì)于count vectors 而言饰恕,歐式距離表達(dá)是不合適的(重建時(shí)會(huì)產(chǎn)生負(fù)數(shù))挠羔。
7)維數(shù)的選擇是ad-hoc的井仰。
8)LSA具有詞袋模型的缺點(diǎn)埋嵌,即在一篇文章,或者一個(gè)句子中忽略詞語(yǔ)的先后順序俱恶。
9)LSA的概率模型假設(shè)文檔和詞的分布是服從聯(lián)合正態(tài)分布的雹嗦,但從觀測(cè)數(shù)據(jù)來(lái)看是服從泊松分布的。因此LSA算法的一個(gè)改進(jìn)PLSA使用了多項(xiàng)分布合是,其效果要好于LSA了罪。
參考資料
https://www.cnblogs.com/bentuwuying/p/6219970.html
https://www.cnblogs.com/pinard/p/6251584.html
https://blog.csdn.net/roger__wong/article/details/41175967
https://blog.csdn.net/callejon/article/details/49811819
https://blog.csdn.net/hlang8160/article/details/81054232