標籤:
“廟小妖風大,水淺王八多”。還是這句話,這是業餘研究生的文本建模系列之二:關於pLSA。前述就到此。
pLSA:Probabilistic Latent Senmantic Indexing.是Hoffman在1999年提出的基於機率的隱語義分析【1】。之所以說是probabilistic,是因為這個模型中還加入了一個隱變數:主題Z ,也正因為此,它被稱之為主題模型。
在pLSA中,一片文檔可能有多個主題,而一個主題對應著多個單詞的分布,以【2】LDA數學八卦一文中的描述為例,可以比較生動的闡述在pLSA模型中,一篇文檔是如何產生的。
因此,對於文檔d中的一個單詞w,其機率可以描述為:
對於整個語料,那麼其似然函數是:
當然,其對數的似然函數如下:
其中
n(d,w)表示在文檔d中,單詞w出現的次數
帶入第一式可以得到對數的似然函數是:
然後現在的問題是:如何求取P(w|z)和P(z|d).
這種隱變數的求法和之前的高斯混合分布的求法其實是一樣的,很顯然的需要EM演算法來進行求導。回顧之前的EM演算法,我們首先需要求取Q函數的分布的期望,然後另該期望最大化。
根據Jessen不等式:
變成求右邊下界的問題,需要等號成立的話,需要:
因此我們得出:
於是E步就是:
有兩個約束條件:
下面進行M步,也就是求期望最大:
使用拉格朗日乘法求:
使偏導為零可以得出結果:
這就求出了我們需要的參數。
然後就是重複迭代的過程,直至收斂。
好了,模型已經建立完畢,現在的問題是給出一篇新的文檔,如何求取其文檔的主題分布呢。當然最直接的想法就是,將該文檔丟到語料庫中重新爬一遍,然後得出結果,當然這種耗時大一般不建議採用,論文【1】在給出了幾種方法,我覺的主要是fold-in方法比較重要:
將訓練出來的p(w|z)固定不變,在EM演算法中,只有一個文檔q,通過迭代跑p(z|d),之後計算相似度?
OK,這就是pLSA.
求偏導可以參考【3】
參考文獻:
[1]Probabilitic Latent Semantic Indexing.Thomas Hofmann .
[2]LDA數學八卦.靳志輝
[3]基於PLSA主題模型的文本聚類
文本建模系列之二:pLSA