潜在语义分析(Latent Semantic Analysis,LSA)
文章目錄
- 1. 單詞向量空間、話題向量空間
- 1.1 單詞向量空間
- 1.2 話題向量空間
- 2. 潛在語義分析算法
- 2.1 例子
- 3. 非負矩陣分解算法
- 4. TruncatedSVD 潛在語義分析實踐
- 一種無監督學習方法,主要用于文本的話題分析
- 其特點是通過矩陣分解發現文本與單詞之間的基于話題的語義關系
- 最初應用于文本信息檢索,也被稱為潛在語義索引(latent semantic indexing,LSI),在推薦系統、圖像處理、生物信息學等領域也有廣泛應用
文本信息處理中:
- 傳統的方法以單詞向量表示文本的語義內容,以單詞向量空間的度量表示文本之間的語義相似度
- 潛在語義分析 旨在 解決這種方法不能準確表示語義的問題,試圖從大量的文本數據中發現潛在的話題
- 以話題向量表示文本的語義內容,以話題向量空間的度量更準確地表示文本之間的語義相似度
潛在語義分析使用的是非概率的話題分析模型
- 將文本集合表示為單詞-文本矩陣
- 對單詞-文本矩陣進行奇異值分解,從而得到話題向量空間,以及文本在話題向量空間的表示
非負矩陣分解(non-negative matrix factorization,NMF)是另一種矩陣的因子分解方法,其特點是分解的矩陣非負。非負矩陣分解也可以用于話題分析。
1. 單詞向量空間、話題向量空間
1.1 單詞向量空間
文本信息處理的一個核心問題是對文本的語義內容進行表示,并進行文本之間的語義相似度計算。
- 利用向量空間模型(vector space model,VSM),也就是單詞向量空間模型(word vector space model)。
- 基本想法:用一個向量表示文本的“語義”,向量的每一維對應一個單詞,其數值為該單詞在該文本中出現的頻數或權值
- 基本假設:
文本中所有單詞的出現情況表示了文本的語義內容;
文本集合中的每個文本都表示為一個向量,存在于一個向量空間;
向量空間的度量,如內積或標準化內積表示文本之間的“語義相似度”。
- 單詞文本矩陣是稀疏矩陣,元素為頻數或權值
- 權值:常用單詞頻率-逆文本頻率(term frequency-inverse document frequency,TF-IDF)表示,其定義是
單詞向量空間模型的優點:
- 是模型簡單,計算效率高。因為單詞向量通常是稀疏的,兩個向量的內積計算只需要在其同不為零的維度上進行即可,需要的計算很少,可以高效地完成
單詞向量空間模型也有一定的局限性:
- 內積相似度未必能夠準確表達兩個文本的語義相似度上
- 因為自然語言的單詞具有一詞多義性(polysemy)及多詞一義性(synonymy),所以基于單詞向量的相似度計算存在不精確的問題
1.2 話題向量空間
話題(topic),就是指文本所討論的內容或主題。
- 一個文本一般含有若干個話題
- 如果兩個文本的話題相似,那么兩者的語義應該也相似
- 話題由若干個語義相關的單詞表示
- 同義詞(如“airplane”與“aircraft”)可以表示同一個話題
- 而多義詞(如“apple”)可以表示不同的話題
這樣,基于話題的模型就可以解決上述基于單詞的模型存在的問題。
定義一種話題向量空間模型(topic vector space model)
- 給定一個文本,用話題空間的一個向量表示該文本,該向量的每一分量對應一個話題,其數值為該話題在該文本中出現的權值
- 用兩個向量的內積或標準化內積表示對應的兩個文本的語義相似度
- 注意話題的個數通常遠遠小于單詞的個數,話題向量空間模型更加抽象
- 潛在語義分析正是構建話題向量空間的方法(即話題分析的方法)
- 單詞向量空間模型與話題向量空間模型互為補充,兩者可以同時使用
單詞-文本矩陣XXX 近似為:單詞-話題矩陣TTT & 話題-文本矩陣YYY 的乘積形式,X≈TYX \approx TYX≈TY
2. 潛在語義分析算法
潛在語義分析 利用 矩陣奇異值分解(SVD),對單詞-文本矩陣進行奇異值分解
- 左矩陣 作為話題向量空間
- 對角矩陣 與 右矩陣的乘積 作為 文本在話題向量空間的表示
潛在語義分析 根據 確定的話題個數k 對單詞-文本矩陣XXX進行截斷奇異值分解
2.1 例子
3. 非負矩陣分解算法
非負矩陣分解 也可以用于 話題分析
- 對單詞-文本矩陣進行非負矩陣分解
- 左矩陣作為話題向量空間
- 右矩陣作為文本在話題向量空間的表示。注意通常單詞-文本矩陣是非負的(所有元素 >= 0)
定義:找到兩個非負矩陣乘積近似表示一個非負矩陣
X≈WH,X≥0,W≥0,H≥0X \approx WH,X \ge 0, W\ge 0, H \ge 0X≈WH,X≥0,W≥0,H≥0
WWW 為基矩陣,表示話題空間,HHH 為系數矩陣,是文本在話題空間的表示。
非負矩陣分解 旨在 用較少的基向量、系數向量 來 表示較大的數據矩陣
非負矩陣分解 可以表為以下的最優化問題:
min?∣∣X?WH∣∣2st.W,H≥0\min ||X-WH||^2\\ st. \quad W,H \ge 0min∣∣X?WH∣∣2st.W,H≥0
非負矩陣分解的算法是迭代算法
- 乘法更新規則的迭代算法,交替地對WWW和HHH進行更新。
- 本質是梯度下降法,通過定義特殊的步長和非負的初始值,保證迭代過程及結果的矩陣WWW和HHH均為非負
4. TruncatedSVD 潛在語義分析實踐
基于sklearn.decomposition.TruncatedSVD的潛在語義分析實踐
總結
以上是生活随笔為你收集整理的潜在语义分析(Latent Semantic Analysis,LSA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 624. 数组列表中的
- 下一篇: LeetCode 167. 两数之和 I