Topic Model Series [2]: 向Bayesian轉變

本文為Topic model series第二篇-- 向Bayesian轉變.

上一篇介紹了屬於頻率學派的pLSA. pLSA的建模思路較為簡單,重點部分在於對E-M演算法的運用. 從本章起將進入Bayesian的世界,為最終的LDA建模推導打下基礎.

首先是耳熟能詳的貝葉斯公式:

p(theta | x) = frac{p(x | theta)  p(theta)}{p(x)} propto p(x | theta)  p(theta)

其中,p(theta)為先驗分布(prior distribution),p(theta | x)為後驗分布(posterior distribution),而p(x | theta)則是常說的似然函數(likelihood function).

這裡可以看出極大後驗概率估計(MAP)和極大似然估計的區別(MLE):

theta_{MAP} = argmax_{theta}p(x|theta)p(theta)

theta_{MLE} = argmax_{theta}p(x|theta)

MAP在本質上就是MLE與先驗概率的結合. 加先驗是Bayesian最基本的思想. 如果先驗概率p(theta)是均勻分布,則可看成一個常數,MAP也就退化成了MLE。所以從一定程度上說可將頻率學派考慮成Bayesian學派的一種特殊情況.

現在有一個問題:在某種情況下,先驗後驗是否可以服從同樣的分布呢?如果能夠保持不變,在先驗分布中被賦予的物理意義就可以延伸到後驗分布中去解釋,先驗到後驗的變換中從數據中得到的補充知識也很容易被解釋.

答案是可以的. 如果服從,那麼該分布與p(x)的分布被稱為共軛分布(conjugate distribution). 此時的先驗分布稱為似然函數的共軛先驗分布(conjugate prior).

我們首先從常見的二項分布來考察:

投擲m次一枚非均勻硬幣,令theta sim Uniform(0,1)為正面先驗概率. 計算後驗概率:

&p(theta|m_1, m_2) &= nfrac{ p(m_1, m_2|theta) p(theta) }n{ p(m_1, m_2) }  n&&= frac{ p(m_1, m_2|theta) * 1 }n{ int_0^1 p(m_1, m_2|t) mathrm{d}t }n&&= frac{ binom{m}{m_1} theta ^ {m_1} (1-theta) ^ {m_2}}n{ int_0^1 binom{m}{m_1} t^{m_1} (1-t) ^{m_2} mathrm{d}t }n&&= frac{ theta ^ {m_1} (1-theta) ^ {m_2}}n{ int_0^1 t^{m_1} (1-t) ^{m_2} mathrm{d}t }

現在引入著名的Beta分布:

Beta(theta|alpha, beta) =  frac{ theta ^ {alpha-1} (1-theta) ^ {beta-1}}n{ int_0^1 theta^{alpha-1} (1-theta) ^{beta-1} mathrm{d}t }

隨著參數的變化,Beta分布的概率密度函數性質會有很大的分別,可以是凹的、凸的、單調上升、單調下降的…如下圖所示:

從Beta分布的視角去看此前的後驗與先驗. 易知p(theta|m_1, m_2) sim Beta(theta|m_1 + 1, m_2 + 1),且p(theta) sim Beta(theta|1,1).

故Beta分布與二項分布為共軛分布,稱為Beta-Binomial共軛.

上面舉的例子是二項分布的情況,那多項分布呢?下面我們利用Gamma函數將Beta-Binomial共軛推廣至Dirichlet-Multinomial共軛.

首先引入Gamma函數Gamma(x) = int _0 ^{infty} t^{x-1} e^{-t} mathrm{d}t.

通過分部積分可知其遞歸性質:Gamma(x+1) = xGamma(x)。實際上,可以將Gamma函數看成階乘在mathrm{R}上的延拓。即Gamma(n) = (n-1)!.

基於Gamma函數引入Dirichlet分布,其定義在(k-1)維上的單純形:

Dir(vec{p} | vec{alpha}) = nfrac{Gamma(sum_k alpha_k)}n{Pi_k Gamma(alpha_k)}nPi_kp_k^{alpha_k-1}n=frac{1}n{Delta(vec{alpha})}nPi_kp_k^{alpha_k-1}

其中Delta(vec{alpha}) = frac{Pi_k Gamma(alpha_k)}n{Gamma(sum_k alpha_k)}n.

若將多項分布看成二項分布的擴展,Dirichlet分布則可以看做是Beta分布的擴展,從而構成更被廣泛使用的Dirichlet-Multinomial共軛. 與Beta函數類似,Dirichlet分布的概率密度函數也隨著參數vec{alpha}的變化而展現不同形態:

如上圖所示,就像均勻分布可以看成Beta分布的special case, 高維的Dirichlet分布對應的special case稱為Symmetric Dirichlet Distribution. 此時,各元素沒有先驗偏好,Dirichlet分布參數也可以簡單用數值(scalar value)alpha表示.

對Bayesian基礎理論介紹至此,下一章將對LDA中涉及到的另一個大問題——採樣(sampling)進行闡述。


推薦閱讀:

用戶超1億的語言學習App - Duolingo
10686 一次 CTC-RNN 調參經歷
什麼是自編碼 Autoencoder
集成學習(Ensemble Learning)

TAG:主题模型 | 自然语言处理 | 机器学习 |