
Latent Semantic Analysis
介紹
封面是用 Bing 繪製的 text mining
在自然語言處理問題中,我們可以透過文本 (documents) - 單字 (words) 的層級結構來分析文本,根據文本特徵執行主題分類 (topic modeling)。此時我們假設
- 每個文本 (document) 由主題 (topics) 組成
- 每個主題 (topic) 由單字 (words) 組成
也就是將「文本 - 單字」關係拓展成「文本 - 主題 - 單字」,但其中的主題是隱藏的 (latent),主題建模的目標就在於找出其中的主題 (隱藏變數)。能應用於搜尋引擎,將文本轉換至主題層級,也將用戶搜尋的單字轉換至主題層級,以此搜尋「相同的主題」的資訊。
這邊會介紹到 3 種常用的模型
- LSA: 將「文本 - 單字」矩陣分解 (SVD) 成「文本 - 主題」和「主題 - 單字」矩陣
- pLSA: 在 LSA 上引入 Multinomial distribution
- 將「文本 - 主題」視為一個 Multinomial distribution
- 將「主題 - 單字」視為另一個 Multinomial distribution
- LDA: 在 pLSA 上引入 Dirichlet distribution
- 將文本視為主題的混合機率分佈 Dirichlet distribution
- 對每個字視為是一個 pLSA 過程
符號
- 單字 (words) 是每個文本的基本單位,將單字依照 編號,每個字視為一個 向量,對第 個單字定義 且 對
- 文本 (documents) 是由 個單字組成,寫作 ,其中 是文本中的第 個單字
- 語料庫 (corpus) 是由 個文本組成,寫作 ,用集合表達,即文本的先後順序不影響機率分佈
Latent Semantic Analysis (LSA)
LSA 的目標是將「文本 - 單字」 矩陣拆分成「文本 - 主題」 和「主題 - 單字」 矩陣兩個矩陣。擁有中間層的主題做為媒介,就能計算出
- 文本間的相似度
- 單字間的相似度
原始版本中的 定義為第 個文本中,第 個單字出現的次數,然而原始的 沒有考慮文件中每個單字的重要性,即
- Term frequency (tf, 詞頻): 評估單字在當前文本的重要性,若單字在當前文檔出現越多次,TF 越高
- Inverse document frequency (idf, 逆文件頻率): 評估單字在全部文本的重要性,若單字在越多文檔中都出現,IDF 越低;若單字在越少文檔中都出現,IDF 越高
IDF i j = ln ( N 包含單字 j 的文檔數 + 1 ) \begin{align*} \text{IDF}_{ij} = \ln \left( \frac{N}{\text{包含單字 的文檔數 + 1}} \right) \end{align*}j j
因此常用 term frequency-inverse document frequency (TF-IDF) 取代原始的「文本 - 單字」矩陣
其中的
Probabilistic Latent Semantic Analysis (pLSA)
pLSA 使用機率模型取代 SDV,以此解釋每個主題中,文字出現的機率。而 pLSA 將原始假設做了以下描述
- 每個文本由主題組成:給定文本
,主題d d 在此文本中出現的機率為z z P ( z ∣ d ) P (z | d) - 每個主題由單字組成:給定主題
,文字z z 在該主題中出現的機率為w w P ( w ∣ z ) P (w | z)
聯合機率分佈為
其中的
- 第一式視為:從文本出發,某文本出現機率有多高,然後根據該文本的主題分佈,在該文本中找到某個單字的機率有多大。
- 第二式式為:從主題出發,然後獨立生成文本
與單字d d 。w w
降維比較
參見整合文章 Latent Dirichlet Allocation (LDA) 應用
參考資料
- Latent Dirichlet Allocation, David M. Blei, Andrew Y. Ng, Michael I. Jordan
- Topic Modeling with LSA, PLSA, LDA & lda2Vec