機器學習 主題模型(二) pLSA和LDA

2021-06-26 19:12:46 字數 3907 閱讀 2460

-----plsa概率潛在語義分析、lda潛在狄瑞雷克模型

plsa:    -------有過擬合問題,就是求d, z, w

plsa由lsa發展過來,而早期lsa的實現主要是通過svd分解。plsa的模型圖如下:

公式中的意義如下:

具體可以參考2010龍星計畫:機器學習中對應的主題模型那一講

在**《googlenews personalization scalable online cf》一文中提級針對使用者聚類,利用相似使用者性資訊計算喜歡的news。其中包含min-hash以及plsi,plsi是model-based 推薦演算法,屬於topic(aspect) model,其在nlp領域中用途很大。

引入:在文字挖掘時,計算文件相似性是很基礎的操作,通常,對文字進行分詞,構建vsm,通過jaccard或者cosin計算距離或者相似性,這是基於corpus的思路,僅僅考慮片語,並未考慮文字的語義資訊。針對下面情況,基於cropus很難處理:

*如果時間回到2023年,馬雲和楊致遠的手還會握在一起嗎

*阿里巴巴集團和雅虎就股權回購一事簽署了最終協議

如果採用基於corpus的jaccard距離等演算法,那麼這兩個文字的完全不相關,但是事實上,馬雲和阿里巴巴集團,楊致遠和雅虎有著密切的聯絡,從語義上看,兩者都和「阿里巴巴"有關係。

此外,另乙個case:

*富士蘋果真好,趕快買

*蘋果四代真好,趕快買

從corpus上來看,兩者非常相似,但是事實上,2個句子從語義上來講,沒有任何關係,乙個是」水果「另乙個是」手機"。

通過上面的例子,差不多也看出來topic model是什麼以及解決什麼問題。

概念:topic model是針對文字隱含主題的建模方法,針對第乙個case,馬雲對應的主題是阿里巴巴,阿里巴巴集團也隱含阿里巴巴主題,這樣兩個文字的主題匹配上,認為他們是相關的,針對第二個,分別針對水果以及手機主題,我們認為他們是不相關的。

究竟什麼是主題?

[接下來參考

搜尋研發部官方部落格中對語義主題的定義

]主題就是乙個概念、乙個方面。它表現為一系列相關的詞,能夠代表這個主題。比如如果是

」阿里巴巴

「主題,那麼」馬雲

「」電子商務

「等詞會很高的頻率出現,而設計到」「

主題,那麼

「馬化騰

」「遊戲

」「qq」

會以較高的頻率出現。如果用數學來描述一下的話,主題就是詞彙表上詞語的條件概率分布,與主題密切相關的詞,條件概率

p(w|z)

越大。主題就像乙個桶,裝了出現頻率很高的詞語,這些詞語和主題有很強的相關性,或者說這些詞語定義了這個主題。同時,乙個詞語,可能來自於這個桶,也可能來自那個桶,比如

「電子商務

」可以來自

「阿里巴巴

」主題,也可以來自「京東

「主題,所以一段文字往往包含多個主題,也就是說,一段文字不只有乙個主題。

上面介紹了主題的概念,我們最為關心的是如何得到這些主題?這就是topic model要解決的問題。

define:d

表示文件,

w表示詞語,

z表示隱含的主題。

其中 p(w|d)表示w在文件d中出現的概率,針對訓練語料,對文字進行分詞,w的頻度除以文件所有詞語的頻度和,可以求出,對於未知資料,model用來計算該value.

p(w|z)表示在給定主題情況下詞語的出現的概率是多少,刻畫詞語和主題的相關程度。

p(z|d)表示文件中每個主題出現的概率

所以主題模型就是 利用大量已知的

p(w|d)詞語-

文件資訊,訓練出來主題-文件

p(z|d)

以及詞語-主題

p(w|z)。

plsa模型:

plsa是一種topic model,它屬於生成模型(不是很理解),給定文件d後,以一定的概率選擇d對應的主題z,然後以一定概率選擇z中的詞語w.

plsa提供了一種模型求解的方法,採用之前介紹的em演算法,em演算法在之前已經介紹,現在不作處理,直接利用em資訊對topic model進行求解。

其中q是z的分布函式,表示在給定引數的情況下(w,d),z的後驗概率。

根據em演算法,我們最後求解:

符合上面約束的情況下,求解最大值,

其中θ代表期望估計的引數,p(wj|zk),p(zk|di),λz,λd

求l(θ)的最大值,需要對各個引數求偏導,令其等於0,

首先求解p(wj|zk)對其求導後,

已知有約束

最後可以求得引數:

基於同樣的方式,求p(zk|di),求偏導後有:

利用約束,可以求得:

em是迭代演算法,所以針對 p(zk|dip(wj|zk)都需要給出乙個初始值,而q(zk|di,wj) 表示在引數已知(上一輪迭代結果)時z的分布,所以每次迭代式q(zk|di,wj) 是利用之前的結果直接算出來。

主題模型的用途:

1.計算文字的相似性,考慮到文字語義,更好的刻畫文字相似性,避免多義詞,同義詞的影響

2.文字聚類,使用者聚類(rs)

3.去除噪音,只保留最重要的主題,更好的刻畫文件

這樣可以看出來描述的完全是同樣的問題,求解p(s|u)=∑zp(s|z)p(z|u),模型引數為p(s|z)?p(z|u),裡面上面的推導過程可以求得。

具體的可以參考:

unsupervised learning by probabilisticlatent semantic analysis

latent semantic models for collaborativefiltering

google news personalization scalable onlinecf

lda:主題模型,概率圖如下:

和plsa不同的是lda中假設了很多先驗分布(

dirichlet

),且一般引數的先驗分布都假設為dirichlet

分布,其原因是共軛分布時先驗概率和後驗概率的形式相同。

機器學習 主題模型 LSA

上圖是乙個term document矩陣,x代表該單詞出現在對應的檔案裡,星號表示該詞出現在查詢 query 中,當使用者輸入查詢 idf in computer based information look up 時,使用者是希望查詢與資訊檢索中idf 文件頻率 相關的網頁,按照精確詞匹配的話,文...

機器學習 潛在語義分析LSA和PLSA

3.plsa 基於概率的lsa 在自然語言處理nlp領域中,詞袋模型 bag of words,bow 是經典的模型之一。它考慮所有的詞彙都裝在乙個袋子中,任何一篇文件中的單詞都可以用袋子中的詞彙來描述。如果有10萬個詞彙,那麼每篇文件都可以表示為乙個10萬維的向量。得到文件向量之後,我們通過可以通...

機器學習之LDA主題模型演算法

2 知道beta分布和dirichlet分布數學含義 3 了解共軛先驗分布 4 知道先驗概率和後驗概率 5 知道引數 值的大小對應的含義 6 掌握lda主題模型的生成過程 7 知道超引數 等值的參考值 8 lda總結 知道lda說的降維代表什麼含義 將一篇分詞後的文章降維為乙個主題分布 即如20個特...