3.1 Introduction
生成模型(generative model)一般會按照下面的貝葉斯公式構造分類器:
p ( y = c | x , θ ) ∝ p ( x | y = c , θ ) p ( y = c | θ ) )
中間的 ∝ 符號表示“正比於”,即忽略了常係數。而概率 p ( x | y = c , θ ) 名字叫做 class-conditional density,後一項概率 p ( y = c | θ ) 則叫做 class prior。
3.2 Bayesian concept learning 貝葉斯概念學習
概念學習(Concept learning)其實是一個二分類問題,學習的是一個指示函數(Indicator function),但是和二分類問題不同,我們可以僅僅只從正例中學習。
考慮下面一個數字遊戲。選擇一個簡單的數學概念 C ,如奇數,素數等,給定從概念 C 中提取的樣本集合 D = { x 1 , . . . , x N } ,求測試樣例,即某數字 x ¯ 是否屬於概念 C .
舉個例子,見figure 3.1的第三張圖,給定了集合 D = { 16 , 8 , 2 , 64 } ,對於 x ¯ = 1 , . . . , 100 的範圍,x ¯ 和數據集 D 中的所有數字符合同一個數學概念 C 的概率 p ( x ¯ ) 形成一個經驗分佈(即做實驗讓人們去猜,然後統計)。從分佈中可以看到,人們傾向於把那些 2 的倍數判定爲符合概念 C 的。圖中展示的分佈稱爲後驗預測分佈(posterior predictive distribution) 。
3.2.1 Likelihood 似然
現在考慮一個問題,給定數據集 D = { 16 , 8 , 2 , 64 } ,假設空間(hypothesis space)H 可以取 h t w o ≜ “power of two”,或者 h e v e n ≜ “even number”,然而一般我們會傾向於前一個假設,因爲其似然概率最大,這也符合奧卡姆剃刀原理(Occam’s razor),即認爲相同表達能力和解釋能力的條件下,簡單的理論會比複雜的理論更好。
假設我們做一個強採樣假設(strong sampling assumption),從概念 C 中抽取一個集合,{ 1 , 2 , 3 , . . . , 99 , 100 } ,那麼上述兩種假設的似然概率就是從 100 個數中採樣得到這四個數的概率,有:
p ( D | h t w o ) = ( 1 6 ) 4 > p ( D | h e v e n ) = ( 1 50 ) 4
結論就很明顯了。
3.2.2 Prior 先驗
同樣對於集合 D = { 16 , 8 , 2 , 64 } ,根據上面的似然概率,假設 h ′ = “powers of two except 32” 的概率應該會更大,但是我們可以從“經驗”上判斷,這個概念有點不自然。這個主觀上的(subjective)信息,稱爲先驗,一般代表了該問題的背景知識。
3.2.3 Posterior 後驗
後驗就是似然乘以先驗,再做一個歸一化,如下:
p ( h | D ) = p ( D | h ) p ( h ) ∑ h ′ ∈ H p ( D , h ′ ) = p ( h ) I ( D ∈ h ) / | h | N ∑ h ′ ∈ H p ( h ′ ) I ( D ∈ h ′ ) / | h ′ | N
其中
I ( D ∈ h ) 當且僅當集合中所有的元素都符合假設
h 時才取值爲
1 (iff all the data are in the extension of the hypothesis h)。
當數據量足夠大時,後驗概率 p ( h | D ) 會趨向最大後驗估計(MAP estimate, maximum a posterior estimation),如
p ( h | D ) → δ h ˆ M A P ( h )
其中,右邊的
δ x ( A ) = { 1 0 i f x ∈ A i f x ∉ A
爲 狄拉克測度(Dirac measure),
h ˆ M A P = a r g m a x h p ( h | D ) 爲後驗模式(posterior mode)。
後驗概率公式可以繼續寫下去,
h ˆ M A P = arg max h p ( D | h ) p ( h ) = arg max h [ log p ( D | h ) + log p ( h ) ]
注意到第一個加法項其實是最大似然估計(MLE, maximum likelihood estimate),
h ˆ m l e ≜ arg max h p ( D | h ) = arg max h log p ( D | h )
由於最大似然估計項會隨着數據集的增大而指數增長,而先驗項則爲常數,因此後驗概率是逐漸逼近最大似然估計的。通俗點說,數據壓倒專家(data overwhelms the prior)。
3.2.4 Posterior predictive distribution 後驗預測分佈
再來重新考慮一開始提到的後驗預測分佈,現在我們可以用後驗公式來計算某測試數字 x ˆ 是否屬於概念 C 的概率,如下:
p ( x ˜ ∈ C | D ) = ∑ h p ( y = 1 | x ˜ , h ) p ( h | D )
其實這個公式是說,把每個假設(hypothesis,如素數集,偶數集等)的後驗加權,得到一個概率。權重也是人爲給出的。這種給出後驗預測分佈的方法稱作是貝葉斯模型平均(Beyes model averaging)。
隨着數據集的增大,後驗爲以最大後驗估計爲中心的 delta 函數(脈衝),因此有:
p ( x ˜ ∈ C | D ) = ∑ h p ( x ˜ | h ) δ h ˆ ( h ) = p ( x ˜ | h ˆ )
即,直接用概率最大的那個假設的結果當做最終結果,而非前面的全部假設都有一個權重參與進來。顯然這樣做會簡單一些,但是容易小樣本過擬合。
3.2.5 A more complex prior 一個更復雜的先驗
在數字遊戲中,作者用了兩種先驗,並用參數 π 和 1 − π 把兩個先驗串起來。
3.3 The beta-binomial model 貝塔-二項式模型
下面考慮連續隨機變量中的貝葉斯推斷問題,但是這次我們用一個扔硬幣的例子。
3.3.1 Likelihood 似然
似然函數就是某種假設前提下,一系列事件發生的概率。比如連續扔 N 次的硬幣,每次扔硬幣這個事件是獨立同分布的(比如都是伯努利分佈),所以這 N 次扔硬幣發生的概率就是似然概率,如下:
p ( D | θ ) = θ N 1 ( 1 − θ ) N 0
其中離散隨機變量
X i ∼ B e r ( θ ) ,而
X i = 1 表示硬幣正面朝上,
X i = 0 則相反;
θ 表示硬幣正面朝上的概率。假設投了
N 次硬幣,得到
N 1 = ∑ N i = 1 I ( X i = 1 ) 次正面朝上,得到
N 0 = ∑ N i = 1 I ( X i = 0 ) 次反面朝上。
此外,這兩個數可以稱作是數據集的充分統計量(sufficient statistics),表示爲 D = { N 1 , N 0 } 。當然,也可以是 N 1 和 N = N 1 + N 2 ,即 D = { N 1 , N } 。
當然,如果遇到不考慮次序的問題,那麼數據集 D = { x 1 , . . . , x N } 是由隨機變量從二項分佈中得出的,有 N 1 ∼ B i n ( N , θ ) ,其概率密度函數(pmf)爲,
B i n ( k | n , θ ) ≜ ( n k ) θ k ( 1 − θ ) n − k
因爲二項分佈的係數和 θ 無關,所以得到的似然和伯努利分佈是一樣的。
3.3.2 Prior 先驗
我們考慮把先驗寫成和似然函數一樣的形式,p ( θ ) ∝ θ γ 1 ( 1 − θ ) γ 2 ,這種先驗和後驗也是一樣的形式,稱爲是共軛先驗(conjugate prior )。即後驗爲:
p ( θ | D ) ∝ p ( D | θ ) p ( θ ) = θ N 1 ( 1 − θ ) N 0 θ γ 1 ( 1 − θ ) γ 2 = θ N 1 + γ 1 ( 1 − θ ) N 0 + γ 2
假如考慮伯努利分佈,發現此時的先驗的形式其實就是 Beta 分佈,
B e t a ( θ | a , b ) ∝ θ a − 1 ( 1 − θ ) b − 1
那麼先驗的參數就叫做超參(hyper-parameters),我們可以設置不同的參數來編碼先驗置信(encode our prior beliefs)。超參跟深度學習那些學習率,batchsize等是一樣的,模型訓練前要自己手動設定和選取。
3.3.3 Posterior 後驗
按照上面兩個小節的內容,後驗等於似然乘以先驗,
p ( θ | D ) ∝ B i n ( N 1 | θ , N 0 + N 1 ) B e t a ( θ | a , b ) ∝ B e t a ( θ | N 1 + a , N 0 + b )
且貝葉斯推斷很容易做在線學習(online learning),比如有兩個數據集 D a , D b 在批量學習模式(batch mode):
p ( θ | D a , D b ) = p ( θ | D = D a ∪ D b ) ∝ . . .
而在序列模式下(sequential model),
p ( θ | D a , D b ) ∝ p ( D b | θ ) p ( θ | D a ) ∝ B i n ( N b 1 | θ , N b 1 + N b 0 ) B e t a ( θ | N a 1 + a , N a 0 + b ) ∝ B e t a ( θ | N a 1 + N b 1 + a , N a 0 + N b 0 + b )
3.3.3.1 Posterior mean and mode 後驗的均值和衆數
首先來整理一下衆數的概念。衆數又叫衆位數,英文是 mode,在離散的集合中,表現爲出現次數最多的隨機變量取值。但是在連續的隨機變量中,衆位數指的是使概率密度函數取得最大值的那個取值。
最大後驗估計,通過最大化後驗概率,找出此時參數的取值,即衆數。前面一個小節已經推出後驗概率和 Beta 函數成正比,那麼可以直接代入求 mode 的公式:
θ ˆ M A P = a + N 1 − 1 a + N 1 − 1 + b + N 0 − 1 = a + N 1 − 1 a + b + N − 2
若取均勻的先驗(uniform prior),那麼 a=b=1,最大後驗估計退化成最大似然估計,有
θ ˆ M L E = N 1 N
當然可以直接對似然概率直接求最大似然估計,即求
log ,導數爲零,求出對應的
θ ,發現結果是一樣的。
後驗均值爲
θ ¯ = a + N 1 a + b + N
上面的公式可以繼續轉換,
θ ¯ = E ( θ | D ) = λ m 1 + ( 1 − λ ) θ ˆ M L E
其中
λ = a + b a + b + N , m 1 = a a + b , θ ˆ M L E = N 1 N ,可以發現後驗均值是先驗均值和最大似然估計(MLE)的
凸組合 (convex combination)。凸組合指的是係數非負且和爲零。後驗其實是先驗置信和數據之間的一種折中。而參數
λ 控制這兩者的權重。
3.3.3.2 Posterior variance 後驗方差
前面講的後驗均值和衆數都是點估計 (point estimates),即用樣本的數據估計某個值,從而猜測分佈的某個參數。其他的點估計還有最大似然估計。而後驗方差則可以反映其置信度,Beta後驗的方差爲:
v a r [ θ | D ] = ( a + N 1 ) ( b + N 0 ) ( a + N 1 + b + N 0 ) 2 ( a + N 1 + b + N 0 + 1 )
這個式子太可怕,我們只考慮 N ≫ a , b 的情況(爲什麼呢?),即數據量很大時的意思。此時有:
v a r [ θ | D ] ≈ N 1 N 0 N N N = θ ˆ ( 1 − θ ˆ ) N
而
θ ˆ = N 1 / N 爲最大似然估計(MLE)。那麼我們估計中的後驗標準偏差就是:
σ = v a r [ θ | D ] − − − − − − − √ ≈ θ ˆ ( 1 − θ ˆ ) N − − − − − − − − √
可以發現不確定性(uncertainty)是以 1 / N − − √ 的比率下降的。
3.3.4 Posterior predictive distribution 後驗預測分佈
前面都是在推斷和估計未知參數,而後驗預測分佈講的是預測新的觀測數據。考慮再一次伯努利實驗中(投硬幣),硬幣的分佈符合Beta(a, b)後驗,有:
p ( x ˜ = 1 | D ) = ∫ 1 0 p ( x = 1 | θ ) p ( θ | D ) d θ = ∫ 1 0 θ B e t a ( θ | a , b ) d θ = E [ θ | D ] = a a + b
注意這裏的 a , b 是後驗的參數,不是先驗,因爲這兩個概率都是符合 Beta 分佈,所以書裏這裏沒說清楚,就會很容易弄混。
3.3.4.1 Overfitting and the black swan paradox 過擬合和黑天鵝悖論
這一小結的術語可能有誤,應該是 Black Swan Theory 黑天鵝理論,或者黑天鵝效應,而非悖論。指的是歐洲人在發現澳洲之前,只見過白天鵝,從來沒有見過黑天鵝。多指未觀測到了本來人爲不可能發生的事情,並且這件事給現有的理論帶來了巨大的衝擊。當黑天鵝事件發生後,人們往往又嘗試合理化此事件,並嘗試給出解釋,就是當事後諸葛亮(hindsight)。
考慮投硬幣事件,假如連續投三次硬幣,得到的都是正面,那麼就會預測反面的概率爲零,這個一個黑天鵝事件。概率雖然小,但是仍然發生了。這個問題叫做是 zero count problem or sparse data problem。一般用加一平滑,或者叫拉普拉斯平滑解決。實際的解決方法是取 a = b = 1 ,先驗分佈由 Beta 分佈退化爲爲均勻分佈,那麼後驗預測分佈爲:
p ( x ˜ = 1 | D ) = N 1 + 1 N 1 + N 0 + 2
3.3.4.2 Predicting the outcome of multiple future trials
預測 M 次扔硬幣實驗頭朝上的次數,
p ( x | D , M ) = ∫ 1 0 B i n ( x | θ , M ) B e t a ( θ | a , b ) d θ = ( M x ) 1 B ( a , b ) ∫ 1 0 θ x ( 1 − θ ) M − x θ a − 1 ( 1 − θ ) b − 1 d θ = ( M x ) B e t a ( x + a , M − x + b ) B ( a , b )
定義上面的後驗預測(posterior predictive)爲 貝塔-二項分佈(beta-binomial distribution)
Bb ( x | a , b , M ) ≜ ( M x ) B e t a ( x + a , M − x + b ) B ( a , b )
這個分佈的均值和方差如下:
E ( x ) = M a a + b , v a r [ x ] = M a b ( a + b ) 2 a + b + M a + b + 1
3.4 The Dirichlet-multinomial model
前面講述了投兩面硬幣的問題,現在將這個問題推廣到擲 K 面骰子的問題。
3.4.1 Likelihood 似然
考慮擲 N 次的 K 面骰子的問題,得到觀測結果的集合 D = { x 1 , . . . , x N } ,其中 x i ∈ { 1 , . . . , K } ,假設這 N 次實驗是獨立同分布的,那麼似然概率是,
p ( D | θ ) = ∏ k = 1 K θ N k k
其中
N k = ∑ N i = 1 I ( y i = k ) 表示第
k 面骰子出現的次數。多項式模型和上面的似然具有類似的形式,只是多了一個組合數。
3.4.2 Prior 先驗
對於投硬幣問題,我們用的是貝塔分佈來做二項分佈的共軛先驗,那麼對應多項分佈的問題,就可以用貝塔分佈的推廣——狄利克雷分佈來描述。公式如下:
D i r ( θ | α ) = 1 B ( α ) ∏ k = 1 K θ α k − 1 k I ( x ∈ S K )
其中,B ( α ) 是歸一化常量,I ( x ∈ S K ) 會約束 x 在一個單純形上。
3.4.3 Posterior 後驗
後驗也是符合狄利克雷分佈的,
p ( θ | D ) ∝ p ( D | θ ) p ( θ ) ∝ ∏ k = 1 K θ D k k θ α k − 1 k = ∏ k = 1 K θ α k + N k − 1 k = D i r ( θ | α 1 + N 1 , . . . , α K + N K )
後驗概率在這裏其實是一個分佈,我們可以通過最大後驗估計(MAP, maximum a posterior)來求解使得後驗概率取得最大值時對應的 θ 值,即求
θ ˆ M A P = arg max θ p ( θ | D )
注意上面的狄利克雷分佈有個約束,∑ k θ k = 1 ,我們可以通過構造拉格朗日函數(Lagrangian)來求解這個約束最優化問題。
ℓ ( θ , λ ) = ∑ k N k log θ k + ∑ k ( α k − 1 ) log θ k + λ ( 1 − ∑ k θ k )
爲什麼和會直接得到這個拉格朗日等式呢?這個用到了複合函數的性質。因爲要求的
θ ˆ 使得 Dirichlet 分佈取得最值,因爲 log 函數是增函數,因此等價於求此複合函數的參數最大化。
θ ˆ M A P = arg max θ p ( θ | D ) = arg max θ log p ( θ | D ) = arg max θ ℓ ( θ , λ )
對 λ 求偏導,有
∂ ℓ ∂ λ = ( 1 − ∑ k θ k ) = 0
對 θ k 求偏導,記 N ′ k = N k + α k − 1 有
∂ ℓ ∂ θ k = N ′ k θ k − λ = 0 ⇒ N ′ k = λ θ k ⇒ ∑ k N ′ k = ∑ k λ θ k = λ
即 N + α 0 − K = λ ,其中 α 0 ≜ ∑ K k = 1 a k ,綜合上面的幾個等式可得,最大後驗估計的結果爲:
θ ˆ k = N k + α k − 1 N + α 0 − K
若用均勻先驗,即 α k = 1 ,那麼有 θ k = N k / N ,和最大似然估計的結果一樣。
3.4.4 Posterior predictive 後驗預測
後驗預測分佈指的是進行單詞的多努利實驗(multinoulli trial)得到的概率,如投一次 K 面的骰子,第 k 面朝上的概率爲:
p ( X = j | D ) = ∫ p ( X = j | θ ) p ( θ | D ) d θ = α j + N j α 0 + N
3.4.4.1 Worked example: language models using bag of words 詞袋語言模型
詞袋語言模型就是直接統計一下每個詞的詞頻,套用前面的公式,就可以得到後驗概率分佈。具體的看書裏給的例子。
3.5 Naive Bayes classification 樸素貝葉斯分類器
樸素貝葉斯分類器是一種生成模型(generative model),輸入爲離散的特徵向量表示爲
x ∈ { 1 , . . . , . K } D
其中
K 表示特徵向量的取值範圍(如果是連續的隨機變量就是區間而非現在的集合了),
D 是維度(dimension),即特徵向量的個數。
NBC模型需要求解class conditional distribution,即
p ( x | y = c , θ ) = ∏ j = 1 D p ( x j | y = c , θ j c )
上面之所以可以連乘是因爲有個樸素的假設,即特徵之間都是相互獨立的,雖然這個假設很強,但是因爲參數很少故不容易過擬合,因此NBC模型應用也很廣泛。
上面的概率密度函數因爲特徵服從的分佈不同而不同,主要有下面的幾種:
1. 對於實數值的特徵,用高斯分佈,
p ( x | y = c , θ ) = ∏ j = 1 D N ( x j | μ j c , σ 2 j c )
其中,
μ j c 表示第 c 類的第 j 個特徵的均值,對應
σ 2 j c 則是方差。
2. 對於二元特徵,
x j ∈ { 0 , 1 } ,用伯努利分佈,
p ( x | y = c , θ ) = ∏ j = 1 D B e r ( x j | μ j c )
其中
μ j c 表示第 j 個特徵在第 c 類中出現的概率。這個可以叫做是多元伯努利樸素貝葉斯模型(multivariate Bernoulli naive Bayes model)。
3. 對於 categorical features,即多分類特徵,
x j ∈ { 1 , . . . , K } ,用多努力分佈(multinomial distribution):
p ( x | y = c , θ ) = ∏ j = 1 D C a t ( x j | μ j c )
其中,
μ j c 表示類 c 中
x j 的
K 種值的直方圖(就是統計一下每個類別出現的次數的意思)。
3.5.1 Model fitting
訓練樸素貝葉斯模型,用 MAP 或者 MLE 估計模型中的參數即可。
3.5.1.1 MLE for NBC 樸素貝葉斯中的極大似然估計
要求數據集上的似然概率,先考慮一個樣本的全概率公式,
p ( x i , y i | θ ) = p ( y i | θ ) p ( x i | y i , θ ) = p ( y i | π ) ∏ j p ( x i j | θ j ) = ∏ c π I ( y i = c ) c ∏ j ∏ c p ( x i j | θ j c ) I ( y i = c )
當然上面的公式用指示函數表示,看起來很嚇人,其實表達的意思很簡單,就是標籤取某個類別的概率乘以該標籤下某些特徵取特定值的概率,帶
c 的連乘項只有
y i = c 那一項有取值,其他的項都可以忽略。
那麼整個數據集上的 log 似然爲,
log p ( D | θ ) = ∑ c = 1 C N c log π c + ∑ j = 1 D ∑ c = 1 C ∑ i : y i = c log p ( x i j | θ j c )
上面的兩個參數 π c 和 θ j c (用 θ 表示)可以分別優化,其中第一項是 class prior,可以用 MLE 的到,
π ˆ = N c N
其中
N c ≜ ∑ i I ( y i = c ) 表示訓練集中標籤爲
c 類的樣本個數。
第二項是 class-conditional density,對參數的極大似然估計取決於其概率密度函數的種類,舉個例子,假設所有的例子都是二元的,即符合伯努利分佈,p ( x j | y = c ) ∼ B e r ( θ j c ) ,此時MLE結果爲:
θ ˆ j c = N j c N c
3.5.1.2 Bayesian naive Bayes
MLE 和 MAP 都是點估計,給出令似然或者後驗概率最大的參數取值即可;而貝葉斯則不一樣,則會給出整個參數的概率分佈。
有時候爲了緩解過擬合的問題,會用可因式分解的先驗(factored prior):
p ( θ ) = p ( π ) ∏ j = 1 D ∏ c = 1 C p ( θ j c )
可以考慮
p ( π ) ∼ Dir ( α ) 和
p ( θ j c ) ∼ Beta ( β 0 , β 1 ) 當參數
α = β = 1 就是加一平滑,或者叫拉普拉斯平滑。
所以後驗爲
p ( θ | D ) = p ( π | D ) ∏ j = 1 D ∏ c = 1 C p ( θ j c | D ) = Dir ( N 1 + α 1 , . . . , N C + α C ) ∏ j = 1 D ∏ c = 1 C Beta ( ( N c − N j c ) + β 0 , N j c + β 1 )
3.5.2 Using the model for prediction 預測
對於生成模型,直接套用貝葉斯公式和貝葉斯那個樸素的條件獨立假設,公式如下:
p ( y = c | x , D ) ∝ p ( y = c | D ) ∏ j = 1 D p ( x j | y = c , D )
而事實上正確的貝葉斯統計估計的參數是個分佈,不像 MLE,MAP那樣只是點估計,求一個最大的就好了。貝葉斯要在所有的位置參數上求積分。
p ( y = c | x , D ) ∝ [ ∫ Cat ( y = c | π ) p ( π | D ) d π ] ∏ j = 1 D [ ∫ Ber ( x j | y = c , θ j c ) p ( θ j c | D ) ]
上面的兩個後驗概率,假如符合狄利克雷分佈,直接用前面講過的MAP估計參數的結論即可:
p ( y = c | x , D ) ∝ π ¯ ∏ i = 1 D ( θ ¯ j c ) I ( x j = 1 ) ( 1 − θ ¯ j c ) I ( x j = 0 )
其中,
θ ¯ = N j c + β 1 N c + β 0 + β 1 , π ¯ c = N c + α c N + α 0
3.5.3 The log-sum-exp trick
實際的計算中,由於連乘項比較多,因此常多一步 log,以防止數值下溢。比如計算 p ( x | y = c ) 時,由於我們約束了 ∑ x p ( x|y ) = 1 ,所以連乘的結果必然遠遠小於 1。
還有一個技巧是說,算 log 值的時候,可以把共有的項提取出來,以減少計算,如:
log ( e − 120 + e − 121 ) = log ( e 0 + e − 1 ) − 120
這個技巧就叫做 log-sum-exp trick。然而在生成模型中,只有計算
p ( x ) 才需要用這個技巧,所以說了等於白說。
因爲特徵有可能是冗餘的,所以可以用互信息(mutual information)來篩選有用的特徵。通過計算特徵 X j 和類別標籤 Y 的互信息來估算其相關度(relevance):
I ( X j , Y ) = ∑ x j ∑ y p ( x j , y ) log p ( x j , y ) p ( x j ) p ( y )
特別的,對於二元的特徵,
I j = ∑ c [ θ j c π c log θ j c θ j + ( 1 − θ j c ) π c log 1 − θ j c 1 − θ j ]
其中
π c = p ( y = c ) , θ j c = p ( x j = 1 | y = c ) 且
θ j = p ( x j = 1 ) = ∑ c π c θ j c
3.5.5 Classifying documents using bag of words 用詞袋模型做文檔分類
詞袋模型使用一個矩陣,x i j 表示第 i 篇文檔中是否有第 j 個單詞,有的話取 1 否則取 0. 這個問題的 class conditional density 爲:
p ( x i | y i = c , θ ) = ∏ j = 1 D Ber ( x i j | θ j c ) = ∏ j = 1 D θ I ( x i j ) j c ( 1 − θ j c ) I ( 1 − x i j )
當然,如果是統計每個單詞出現的次數,而非每個單詞是否出現,可以用多努力模型代替伯努利模型,
p ( x i | y i = c , θ ) = Mu ( x i | N i , θ c ) = N i ! ∏ D j = 1 x i j ! ∏ j = 1 D θ x i j j c
由於上面的模型不能很好的處理單詞出現的突發性(burstiness),因此有改進的模型 Dirhlet Compound Multinomial or DCM,
p ( x i | y i = c , α ) = ∫ Mu ( x i | N i , θ c ) Dir ( θ c | α c ) d | θ c = N i ! ∏ D j = 1 x i j ! B ( x i + α c ) B ( α c )