Dirichlet分布(Dirichelt Distribution)和Dirichlet过程 (Dirichlet Process)广泛应用于信息检索、自然语言处理等领域,是理解主题模型的重要一步。而且它作为一种非参数模型(non-paramatric model),和参数模型一样有着越来越广泛的应用。
文本提供了一种对Dirichlet 过程的理解。本文适合了解高斯过程,对Dirichlet过程有一定了解,但又有些困惑的同学。希望读完这篇文章能进一步提升对Dirichlet的理解。
随机过程
粗略地说,随机过程是概率分布的扩展。我们一般讲概率分布,是有限维的随机变量的概率分布,而随机过程所研究的对象是无限维的。因此,也把随机过程所研究的对象称作随机函数。
随机变量之于概率分布,就像随机函数之于随机过程。
机器学习领域常见的随机过程有:Gaussian Process, Dirichlet Process, Beta Process, Gamma Process等等。
高斯过程
理解Dirichlet过程,可以类比高斯过程。高斯过程(GP)是定义在函数上的概率分布。
这里的f(x)被称作随机函数,每一个x对应的f(x)都是一个随机变量,可以将这个随机函数看做是多维随机变量的扩展。由于我们一般考虑的函数的定义域都包含无限个自变量(如定义域为实数域),无法显式地写出其联合概率密度函数,因普通的多维随机变量的定义无法表示高斯过程的定义。
所以,一般的随机过程包括高斯过程,都是通过一个边缘概率密度函数(f(x1), f(x2), ..., f(xn))来定义的。
这相当于我们无法一次看完一个无限的东西,所以想了个办法,对它的局部照相。对于任何局部(x1, x2, ..., xn),我们都有一个相片(f(x1), f(x2), ..., f(xn))。这里,均值m和协方差c唯一地决定一个GP。
Dirichlet分布
Dirichlet分布是定义在K维概率单纯形(K-dimentional probability simplex)上的分布。
K维概率单纯形,说的好像很复杂,其实就是和为1,因此可以将pi看作是一个概率分布。
Dirichlet分布的概率密度函数是
Dirichlet有很多优美的性质,比如将这里的随机变量的元素拆分或者合并,结果还是服从Dirichelt分布。如下
Dirichlet过程
Dirichlet过程(DP)是定义在概率测度上的分布。
概率测度也就是概率,它是定义在样本空间的sigam域上的函数,满足一定的性质。样本空间就是我们要研究的空间 ,比如主题模型中所有的词构成的空间就是我们的样本空间。sigma域也很简单,就是该空间的所有的子集构成的空间。对于有n个元素的样本空间 ,它的sigma域有2^n个元素。这里的“满足一定的性质”,主要指可列可加性。通俗地说,即一些不相交集合的并的概率等于对每个集合的概率作和。
和GP类似,我们无法显式地定义DP。那只能对DP的局部“照相”。如何照相呢?
设G是一个随机概率测度,对样本空间做一个划分(A1, A2, ..., Ak),(G(A1), G(A2), ..., G(Ak))就可以看做一张相片。这里的 G(A1), G(A2), ..., G(Ak)也是一个多维随机变量,和高斯过程中的f(x1), f(x2), ..., f(xn)相当。而且由于G是概率测度,我们还能得出G(A1)+G(A2)+...+G(Ak)=1,即一个划分和一个概率测度唯一地决定了一个概率分布。
如果对样本空间的任意一个划分(A1, A2, ..., Ak),都有(G(A1), G(A2), ..., G(Ak))满足Dirichlet分布。那么我们称G是一个Dirichlet过程。
记为
H是一个基分布(base distribution),可以看做G的期望;alpha是系数,可以看做G的方差的“倒数”。
参考文献
https://www.stats.ox.ac.uk/~teh/teaching/npbayes/mlss2007.pdf