close

轉載自 http://tech.bobgo.net/?author=1 

1. 引子

Bag-of-Words 模型是NLP和IR領域中的一個基本假設。在這個模型中,一個文檔(document)被表示為一組單詞(word/term)的無序組合,而忽略了語法或者詞序的部分。BOW在傳統NLP領域取得了巨大的成功,在計算機視覺領域(Computer Vision)也開始嶄露頭角,但在實際應用過程中,它卻有一些不可避免的缺陷,比如:

  1. 稀疏性(Sparseness): 對於大詞典,尤其是包括了生僻字的詞典,文檔稀疏性不可避免;
  2. 多義詞(Polysem): 一詞多義在文檔中是常見的現象,BOW模型只統計單詞出現的次數,而忽略了他們之間的區別;
  3. 同義詞(Synonym): 同樣的,在不同的文檔中,或者在相同的文檔中,可以有多個單詞表示同一個意思;

從同義詞和多義詞問題我們可以看到,單詞也許不是文檔的最基本組成元素,在單詞與文檔之間還有一層隱含的關係,我們稱之為主題(Topic)。我們在寫文章時,首先想到的是文章的主題,然後才根據主題選擇合適的單詞來表達自己的觀點。在BOW模型中引入Topic的因素,成為了大家研究的方向,這就是我們要講的Latent Semantic Analysis (LSA) 和 probabilitistic Latent Semantic Analysis (pLSA),至於更複雜的LDA和眾多其他的Topic Models,以後再詳細研究。

2. LSA簡介

已知一個文檔數據集D=/{ d_1,d_2,...,d_N/}及相應的詞典W=/{ w_1,w_2,...,w_M/},採用BOW模型假設,我們可以將數據集表示為一個N*W的共生矩陣,N=(n(d_i,w_j))_{i,j},其中,n(d_i,w_j)表示詞典中的第j個單詞在第i個文檔中出現的次數。

LSA的基本思想就是,將document從稀疏的高維Vocabulary空間映射到一個低維的向量空間,我們稱之為隱含語義空間(Latent Semantic Space).

如何得到這個低維空間呢,和PCA採用特徵值分解的思想類似,作者採用了奇異值分解(Singular Value Decomposition)的方式來求解Latent Semantic Space。標準的SVD可以寫為:

 N = U /Sigma V^t
其中,UV均為正交矩陣,有U^t U = V^t V = I/Sigma是包含N所有奇異值的對角矩陣。LSA降維的方式就是只取/Sigma中最大的K個奇異值,而其他置為0,得到/Sigma的近似矩陣/tilde{/Sigma},於是得到了共生矩陣的近似: 
 /tilde{N} = U /tilde{/Sigma} V^t
注意到如果我們利用內積來計算文檔與文檔之間的的相似度,即N的自相關矩陣,可以得到:/tilde{N}/tilde{N}^t = U /tilde{/Sigma}^2 U^t。於是,我們可以把U /tilde{/Sigma}解釋為文檔樣本在Latent Space上的坐標,而V^t則是兩個空間之間的變換矩陣。下圖形象的展示了LSA的過程:

 

image

由LSA在訓練集合上得到的參數,當一個新的文檔向量/vec{x}_{test}到來時,我們可以利用下式將其原始term space映射到latent space:

 /tilde{/vec{x}} = /tilde{/Sigma}^{-1} V^t /vec{x}_{test}

 

LSA的優點

  1. 低維空間表示可以刻畫同義詞,同義詞會對應著相同或相似的主題;
  2. 降維可去除部分噪聲,是特徵更魯棒;
  3. 充分利用冗餘數據;
  4. 無監督/完全自動化;
  5. 與語言無關;

LSA的不足

  1. 沒有刻畫term出現次數的概率模型;
  2. 無法解決多義詞的問題;
  3. SVD的優化目標基於L-2 norm 或者是 Frobenius Norm的,這相當於隱含了對數據的高斯噪聲假設。而term出現的次數是非負的,這明顯不符合Gaussian假設,而更接近Multi-nomial分佈;
  4. 對於count vectors 而言,歐式距離表達是不合適的(重建時會產生負數);
  5. 特徵向量的方向沒有對應的物理解釋;
  6. SVD的計算複雜度很高,而且當有新的文檔來到時,若要更新模型需重新訓練;
  7. 維數的選擇是ad-hoc的;

3. pLSA

類似於LSA的思想,在pLSA中也引入了一個Latent class,但這次要用概率模型的方式來表達LSA的問題,如下圖:

image

在這個probabilitistic模型中,我們引入一個Latent variable z_k /in /{ z_1,z_2,...,z_K /},這對應著一個潛在的語義層。於是,完整的模型為:p(d_i)代表文檔在數據集中出現的概率;p(w_j|z_k)代表當確定了語義z_k時,相關的term(word)出現的機會分別是多少; p(z_k |d_i) 表示一個文檔中語義分佈的情況。利用以上這些定義,我們就可以一個生成式模型(generative model),利用它產生新的數據:

  1. 首先根據分佈p(d_i)隨機抽樣選擇一個文檔d_i;
  2. 選定文檔後,根據 p(z_k|d_i) 抽樣選擇文檔表達的語義z_k
  3. 選定語義後,根據p(w_j|z_k)選擇文檔的用詞;

 

image

 

這樣,我們得到了一個觀測對(d_i, w_j),多次重複這一過程我們就得到了一個類似N的共生矩陣,而潛在的語義z_k在觀測值中並沒有表現出來。為了刻畫(d_i, w_j)的聯合分佈,我們可得到以下公式:

 p(d_i,w_j)=p(d_i)p(w_j | d_i), p(w_j | d_i)=/sum_{k=1}^{K} p(w_j |z_k) p(z_k |d_i)
用圖模型來表示以上公式如Figure3中的(a),而(b)是pLSA模型的另外一種等價形式,公式可寫作: 
 p(d_i,w_j)=/sum_{k=1}^{K} p(w_j |z_k) p(z_k)p(d_i |z_k)
模型確定好了,已知的數據集N,我們可以利用Maximum Likelihood準則來確定模型的參數,目標函數可寫作: 
 /mathcal{L} &= /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /log p(d_i, w_j)// &= /sum_{i=1}^{N} n(d_i) /{/log p(d_i) + /sum_{j=1}^{M} /frac{n(d_i, w_j)}{n(d_i)} /log /sum_{k=1}^{K} p(w_j | z_k) p(z_k | d_i) /}
此目標函數也可以解釋為使p(w_j |d_i)/frac{n(d_i, w_j)}{n(d_i)}兩個分佈之間的K-L Divergence最小,即p(w_j |d_i)更好的刻畫共生矩陣的實際分佈。

 

EM求解

在似然值/mathcal{L}的表達式中存在對數內部的加運算,所以球pLSA最大似然解的問題沒有閉式解,我們只能求助於EM算法,下面我們從最簡單的啟發式的角度推導出pLSA的求解過程。

既然似然值/mathcal{L}無法直接求解最大值,那麼我們轉而優化其下界/mathcal{F},並通過迭代不斷的將此下界提高,那麼最終得到的解即為/mathcal{L}近似最大解, 當然,此過程中尋求的下界/mathcal{F}要求儘量緊確。利用琴生不等式和概率小於1的性質,我們可以得到如下推導:

 /mathcal{L} &= /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /log p(d_i, w_j)   = /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /log (/sum_{k=1}^{K} p(w_j | z_k)p(z_k) p(d_i | z_k )) /}       /ge /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /sum_{k=1}^{K} /log ( p(w_j | z_k) p(z_k) p(d_i | z_k )) /}      > /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /sum_{k=1}^{K} p(z_k | d_i, w_j)/log ( p(w_j | z_k)p(z_k) p(d_i | z_k )) /}
這樣,我們就把/sum拿到了/log外面來,接下來我們就可以對/mathcal{F}直接求解了。注意這個最大化問題的約束條件是: 
/sum p(w|z)=1, /sum p(z)=1, /sum p(d|z)=1
利用拉格朗日法,我們可以得到優化目標: 
 /mathcal{F} &=  /sum_{i=1}^{N}/sum_{j=1}^{M} n(d_i, w_j) /sum_{k=1}^{K} p(z_k | d_i, w_j)/log ( p(w_j | z_k)p(z_k) p(d_i | z_k )) /}             + /sum_{k=1}^K /lambda_k [/sum_{i=1}^N p(d_i | z_k) - 1] + /sum_{k=1}^K /mu_k [/sum_{j=1}^M p(w_j | z_k) - 1] + /xi[/sum_{k=1}^K p(z_k)-1]
對此目標函數求導,我們可以得到EM算法中的M-step: 
 &p(w_j | z_k) /propto /sum_d n(d_i,w_j) p(z_k|d_i, w_j)             p(d_i | z_k) /propto /sum_w n(d_i,w_j) p(z_k|d_i, w_j)                          p(z_k) /propto /sum_d /sum_w n(d_i,w_j) p(z_k|d_i, w_j)   而EM算法中的E-step也就是求已知d_i, w_j時隱含變量z_k的後驗概率: 
 p(z_k|d_i, w_j)= /frac { p(w_j | z_k) p(z_k) p(d_i | z_k )}{/sum_k' p(w_j | z_k') p(z_k') p(d_i | z_k' )}
觀察可以得到,E-step與M-step互相依賴,可以證明每一步都使得下界/mathcal{F}的期望值提高,通過不斷的迭代求解即可最後求得原問題的近似最大似然解。

 

pLSA與LSA的關係

由Figure4可以看到pLSA與LSA之間的對應關係。其中p(z)刻畫了Latent Space也即topic space的信息;p(w|z)刻畫了topic space與term space之間的關係,對應著LSA中的正交基V;在文檔分類是,這兩部分也就是我們在模型訓練結束需要保存的信息,當一個新的文檔的到來時, 我們可以再次利用EM算法得到新的文檔與主題的對應關係p(d|z),並由此得到文檔在topic空間上的表示 p(z|d)

image

pLSA的優勢

  1. 定義了概率模型,而且每個變量以及相應的概率分佈和條件概率分佈都有明確的物理解釋;
  2. 相比於LSA隱含了高斯分佈假設,pLSA隱含的Multi-nomial分佈假設更符合文本特性;
  3. pLSA的優化目標是是KL-divergence最小,而不是依賴於最小均方誤差等準則;
  4. 可以利用各種model selection和complexity control準則來確定topic的維數;

 

pLSA的不足

  1. 概率模型不夠完備:在document層面上沒有提供合適的概率模型,使得pLSA並不是完備的生成式模型,而必須在確定document i的情況下才能對模型進行隨機抽樣;
  2. 隨著document和term 個數的增加,pLSA模型也線性增加,變得越來越龐大;
  3. 當一個新的document來到時,沒有一個好的方式得到$p(d_i)$;
  4. EM算法需要反覆的迭代,需要很大計算量;

針對pLSA的不足,研究者們又提出了各種各樣的topic based model, 其中包括大名鼎鼎的Latent Dirichlet Allocation (LDA),在此就不再多說了。

 

4. 參考文獻

  1. Thomas Hofmann, 「Unsupervised Learning by Probabilistic Latent Semantic Analysis,」 Machine Learning 42, no. 1 (January 1, 2001): 177-196.
arrow
arrow
    全站熱搜

    tiredapple 發表在 痞客邦 留言(0) 人氣()