原文:https://segmentfault.com/a/1190000010694630#articleHeader2
首先需要介紹一下狄利克雷過(guò)程。
Dirichlet Process (DP)被稱(chēng)為分布的分布。從DP抽取出的每個(gè)樣本(一個(gè)函數(shù))都可以被認(rèn)為是一個(gè)離散隨機(jī)變量的分布函數(shù),這個(gè)隨機(jī)變量以非零概率值在可數(shù)無(wú)窮個(gè)離散點(diǎn)上取值。比較有意思的是,從DP可以推導(dǎo)出幾個(gè)非常著名的問(wèn)題: Chinese Restaurant Process (CRP)、Polya Urn Scheme和Stick-breaking Process。簡(jiǎn)單的介紹可以見(jiàn)Edwin Chen的博文“Infinite Mixture Models with Nonparametric Bayes and the Dirichlet Process”,這篇詳解了包括dp,crp等好幾個(gè)過(guò)程,但是沒(méi)有講數(shù)學(xué)推導(dǎo)。
DP的特性使得它在非參數(shù)貝葉斯聚類(lèi)模型中可以被用作參數(shù)的先驗(yàn)分布。Dirichlet Process Mixture (DPM)是這種非參數(shù)貝葉斯聚類(lèi)模型中的一個(gè)典型代表。DPM可以認(rèn)為是有限混合(Finite Mixture,F(xiàn)M)模型的一個(gè)推廣,F(xiàn)M(如Gaussian Mixture模型)必須首先給定類(lèi)數(shù),而DPM則不需要,它可以依據(jù)數(shù)據(jù)自行判斷類(lèi)數(shù)。理論上來(lái)說(shuō),DPM的類(lèi)數(shù)隨著log(樣本點(diǎn)數(shù)量)的增長(zhǎng)速度增長(zhǎng)。目前研究者已經(jīng)提出了很多訓(xùn)練DPM的算法,從Gibbs Sampling,到Collapsed Gibbs Sampling,到Variational方法。
想進(jìn)一步了解DP和DPM的同學(xué),可以去Yee W. Teh的主頁(yè)上看看,里面可以找到很多相關(guān)的papers,slides,presentations,以及用Matlab寫(xiě)的DPM開(kāi)源軟件。想仔細(xì)了解DPM的各個(gè)算法及具體推導(dǎo),建議看看Xiaodong Yu的博文,里面也有他總結(jié)的一個(gè)很詳細(xì)的學(xué)習(xí)筆記(雖然里面有一些小筆誤),以及更多的參考資料。
在hlda中將這個(gè)crp推廣到多層級(jí)的topic其實(shí)很簡(jiǎn)單,就是先找一家餐館也就是一個(gè)root_topic,然后在這家餐館里的每個(gè)桌子上放的是別的餐館的名字,一次類(lèi)推,就可以無(wú)限的延續(xù)下去。