自然語言處理 LSA與pLSA(2)

2021-08-08 01:17:50 字數 3240 閱讀 2249

em求解

在似然值

l的表示式中存在對數內部的加運算,所以球plsa最大似然解的問題沒有閉式解,我們只能求助於em演算法,下面我們從最簡單的啟發式的角度推導出plsa的求解過程。

既然似然值

l無法直接求解最大值,那麼我們轉而優化其下界

f,並通過迭代不斷的將此下界提高,那麼最終得到的解即為

l近似最大解, 當然,此過程中尋求的下界

f要求盡量緊確。因為:

0zk|d

i,wj

)<1,

∑kk=

1p(z

k|di

,wj)

=1利用琴生不等式和概率小於1的性質,我們可以得到如下推導:l=

∑ni=

1∑mj

=1n(

di,w

j)logp(d

i,wj

) =∑

ni=1

∑mj=

1n(d

i,wj

)log(∑

kk=1

p(wj

|zk)

p(zk

)p(d

i|zk

))>∑n

i=1∑

mj=1

n(di

,wj)

log(∑k

k=1p

(zk|

di,w

j)p(

wj|z

k)p(

zk)p

(di|

zk))

≥∑ni=1∑

mj=1

n(di

,wj)

∑kk=

1p(z

k|di

,wj)

log(p(

wj|z

k)p(

zk)p

(di|

zk))

這樣,我們就把

∑拿到了

log外面來,接下來我們就可以對

f直接求解了。注意這個最大化問題的約束條件是:∑p

(w|z

)=1,

∑p(z

)=1,

∑p(d

|z)=

1 利用拉格朗日法,我們可以得到優化目標:f=

∑ni=

1∑mj

=1n(

di,w

j)∑k

k=1p

(zk|

di,w

j)log(p(

wj|z

k)p(

zk)p

(di|

zk))

+∑kk=1λ

k[∑n

i=1p

(di|

zk)?

1]+∑

kk=1

μk[∑

mj=1

p(wj

|zk)

?1]+

ξ[∑k

k=1p

(zk)

?1]

對此目標函式求導,我們可以得到em演算法中的m-step:p(

wj|z

k)∝∑

dn(d

i,wj

)p(z

k|di

,wj)

p(di|zk

)∝∑w

n(di

,wj)

p(zk

|di,

wj)

p(zk

)∝∑d

∑wn(

di,w

j)p(

zk|d

i,wj

) 而em演算法中的e-step也就是求已知di

,wj時隱含變數zk

的後驗概率:p(

zk|d

i,wj

)=p(

wj|z

k)p(

zk)p

(di|

zk)∑

k′p(

wj|z

k′)p

(zk′

)p(d

i|zk

′)觀察可以得到,e-step與m-step互相依賴,可以證明每一步都使得下界

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)

plsa的優勢

定義了概率模型,而且每個變數以及相應的概率分布和條件概率分布都有明確的物理解釋;

相比於lsa隱含了高斯分布假設,plsa隱含的multi-nomial分布假設更符合文字特性;

plsa的優化目標是是kl-divergence最小,而不是依賴於最小均方誤差等準則;

可以利用各種model selection和complexity control準則來確定topic的維數;

plsa的不足

概率模型不夠完備:在document層面上沒有提供合適的概率模型,使得plsa並不是完備的生成式模型,而必須在確定document i的情況下才能對模型進行隨機抽樣;

隨著document和term 個數的增加,plsa模型也線性增加,變得越來越龐大;

當乙個新的document來到時,沒有乙個好的方式得到$p(d_i)$;

em演算法需要反覆的迭代,需要很大計算量;

針對plsa的不足,研究者們又提出了各種各樣的topic based model, 其中包括大名鼎鼎的latent dirichlet allocation (lda),在此就不再多說了。

4. 參考文獻

thomas hofmann, 「unsupervised learning by probabilistic latent semantic analysis,」 machine learning 42, no. 1 (january 1, 2001): 177-196.

自然語言處理

自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...

自然語言處理

前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...

自然語言處理

一 字串操作 去空格及特殊符號 s hello,world 預設把左右空格去掉 print s.strip print s.lstrip hello,print s.rstrip 查詢字元 0 為未找到 sstr1 strchr sstr2 tr 找到返回目標子串開始下標 npos sstr1.in...