LDA主題模型評估方法 Perplexity

2021-06-27 06:37:02 字數 1201 閱讀 7728

原文出處:

在lda主題模型之後,需要對模型的好壞進行評估,以此依據,判斷改進的引數或者演算法的建模能力。

blei先生在**《latent dirichlet allocation》實驗中用的是perplexity值作為評判標準。

一、perplexity定義

源於wiki:

perplexity是一種資訊理論的測量方法,b的perplexity值定義為基於b的熵的能量(b可以是乙個概率分布,或者概率模型),通常用於概率模型的比較

wiki上列舉了三種perplexity的計算:

1.1 概率分布的perplexity

公式:其中h(p)就是該概率分布的熵。當概率p的k平均分布的時候,帶入上式可以得到p的perplexity值=k。

1.2 概率模型的perplexity

公式:公式中的xi為測試局,可以是句子或者文字,n是測試集的大小(用來歸一化),對於未知分布q,perplexity的值越小,說明模型越好。

指數部分也可以用交叉熵來計算,略過不表。

1.3單詞的perplexity

perplexity經常用於語言模型的評估,物理意義是單詞的編碼大小。例如,如果在某個測試語句上,語言模型的perplexity值為2^190,說明該句子的編碼需要190bits

二、如何對lda建模的主題模型

blei先生在**裡只列出了perplexity的計算公式,並沒有做過多的解釋。

在摸索過得知,m代表測試語料集的文字數量(即多少篇文字),nd代表第d篇文字的大小(即單詞的個數),p(wd)代表文字的概率,文字的概率是怎麼算出來的呢?

在解決這個問題的時候,看到rickjin這樣解釋的:

p(z)表示的是文字d在該主題z上的分布,應該是p(z|d)

這裡有個誤區需要注意:blei是從每篇文字的角度來計算perplexity的,而rickjin是從單詞的角度計算perplexity的,不要弄混了。

總結一下:

測試文字集中有m篇文字,對詞袋模型裡的任意乙個單詞w,p(w)=∑z p(z|d)*p(w|z),即該詞在所有主題分布值和該詞所在文字的主題分布乘積。

模型的perplexity就是exp^,∑log(p(w))是對所有單詞取log(直接相乘一般都轉化成指數和對數的計算形式),n的測試集的單詞數量(不排重)

LDA主題模型評估方法 Perplexity

在lda主題模型之後,需要對模型的好壞進行評估,以此依據,判斷改進的引數或者 演算法的建模能力。blei先生在 latent dirichlet allocation 實驗中用的是perplexity值作為評判標準。一 perplexity定義 源於wiki perplexity是一種資訊理論的測量...

LDA主題模型

先定義一些字母的含義 lda以文件集合d作為輸入 會有切詞,去停用詞,取詞幹等常見的預處理,略去不表 希望訓練出的兩個結果向量 設聚成k個topic,voc中共包含m個詞 lda的核心公式如下 p w d p w t p t d 直觀的看這個公式,就是以topic作為中間層,可以通過當前的 d和 t...

主題模型LDA

某隨機實驗如果有k個可能結局a1 a2 ak,分別將他們的出現次數記為隨機變數x1 x2 xk,它們的概率分布分別是p1,p2,pk,那麼在n次取樣的總結果中,a1出現n1次 a2出現n2次 ak出現nk次的這種事件的出現概率p有下面公式 p x1 n 1,xk nk n n1 nk pn1 1.p...