什么是狄利克雷过程(Dirichlet Process)
狄利克雷过程把有限维的狄利克雷分布推广到无穷维,让聚类数量不再需要事先指定。本文用无限割饼、割棍子过程和中餐馆过程三种视角解释它的构造与直观含义,说明集中度参数和基分布各自控制什么,并给出实际使用中的边界。
问题
狄利克雷过程混合模型(Dirichlet Process Mixture Model, DPMM)是机器学习中用于无监督聚类的非参数贝叶斯模型,是传统高斯混合模型(Gaussian Mixture Model, GMM)的推广形式。
它要解决的核心问题是:GMM 必须预先指定聚类数量 $K$,而在真实数据里,我们通常并不知道应该分成几类。DPMM 打破了「$K$ 必须事先给定」这一限制,可以根据数据本身的结构自动推断合适的聚类数量,这也是它被称为「非参数」方法的原因。
它最经典的解释是「中餐馆过程」:把每个数据点看作中餐馆里的客人,把聚类中心看作餐桌上的菜,客人按概率决定坐到已有的桌子旁还是新开一张桌子,最终完成聚类数量自适应的无监督聚类。
核心结论
狄利克雷过程(Dirichlet Process, DP)通常记作 $G \sim DP(\alpha, G_0)$,其中 $G_0$ 是基分布(base distribution),$\alpha$ 是集中度参数(concentration parameter)。
一句话概括它的本质:DP 是有限维概率分布(Dirichlet 分布)向「无穷维空间」的极限拓展,也是一种能够自动确定聚类数量的无限聚类机制。同一个对象有三种等价的视角:
- 维度视角:它是「无限割饼」,是有限维 Dirichlet 分布向无限维空间的延伸;
- 构造视角:它是一根木棍不断按 $Beta(1, \alpha)$ 的比例被折短,再在无限空间里洒下的一系列离散质点;
- 动力学视角:它是自带「抱团」机制的中餐馆过程,是解决「不知道有多少分类」问题时最优雅的贝叶斯非参数工具。
下面依次展开这三种视角。
原理或过程
0. 前置知识:狄利克雷分布
狄利克雷分布(Dirichlet distribution)记作 $Dir(\boldsymbol{\alpha})$,是一族由正实数向量 $\boldsymbol{\alpha} = (\alpha_1, \dots, \alpha_K)$ 参数化的连续多元概率分布,常被用作贝叶斯统计中的先验分布。
从割饼过程理解狄利克雷分布:想象你手头有一块饼,要把它分给 $K$ 个盒子,每个盒子分到的概率权重是 $(p_1, p_2, \dots, p_K)$,且 $\sum_{i=1}^{K} p_i = 1$。Dirichlet 分布 $Dir(\alpha_1, \alpha_2, \dots, \alpha_K)$ 就是这 $K$ 个概率权重的先验分布。
密度函数:当 $K \ge 2$ 时,狄利克雷分布由 $\alpha_1, \dots, \alpha_K > 0$ 这组参数刻画,其密度函数为 \(f(x_1, \dots, x_K; \alpha_1, \dots, \alpha_K) = \frac{1}{B(\boldsymbol{\alpha})}\prod_{i=1}^{K} x_i^{\alpha_i - 1}\)
其中 $\sum_{i=1}^{K} x_i = 1$ 且 $x_i \ge 0$,也就是 $x$ 落在 $(K-1)$ 维单纯形上;$B(\boldsymbol{\alpha})$ 是多元 Beta 函数:
\[B(\boldsymbol{\alpha}) = \frac{\prod_{i=1}^{K} \Gamma(\alpha_i)}{\Gamma\left(\sum_{i=1}^{K} \alpha_i\right)}, \qquad \boldsymbol{\alpha} = (\alpha_1, \dots, \alpha_K)\]1. 维度视角:无限割饼(从有限维到无穷维)
狄利克雷分布的无限维推广就是狄利克雷过程。如果盒子的数量 $K$ 趋近于无穷大($K \to \infty$),会发生什么?
假设总集中度参数为 $\alpha$,我们把这无穷多个盒子的先验参数均匀设定为 $\alpha_i = \alpha / K$。当 $K \to \infty$ 时,原本有限维的概率向量 $(p_1, \dots, p_K)$ 就演变成一个定义在可测空间上的随机概率分布 $G$。
这就是 DP 的第一层本质:它是有限维狄利克雷分布在维度拉到无穷大时的极限状态。 在 $G \sim DP(\alpha, G_0)$ 中,$G_0$ 是基分布,相当于「把饼摊在什么样的几何空间里」;$\alpha$ 是集中度参数,决定「饼的碎块有多集中」。
2. 构造视角:Stick-Breaking Process(割棍子过程)
如果觉得 $K \to \infty$ 的极限还是有些抽象,Sethuraman 在 1994 年提出的割棍子构造(Stick-Breaking Process)给出了 DP 更具体的构造方式。
想象手中有一根长度为 1 的木棍,代表总概率 1:
- 第一刀:随机取一个比例 $\beta_1 \sim Beta(1, \alpha)$,折下整根木棍的 $\beta_1$ 部分,作为第一个点的概率权重 $\pi_1 = \beta_1$;
- 第二刀:对剩下长度为 $1 - \beta_1$ 的木棍,再按比例 $\beta_2 \sim Beta(1, \alpha)$ 折下一段,作为第二个点的权重 $\pi_2 = \beta_2 (1 - \beta_1)$;
- 无限循环:第 $k$ 次折下的绝对长度为
如果只折 $K$ 刀就停手,把剩下那截木棍整段算作第 $K$ 块的权重,此时 $(\pi_1, \dots, \pi_K) \sim Dir(1, \dots, 1, \alpha)$,仍然是狄利克雷分布。DP 就是这种截断构造在 $K \to \infty$ 时的极限。
接着,我们从基分布 $G_0$ 中独立同分布地抽取点 $\theta_1, \theta_2, \dots$,作为这些权重的「位置(坐标)」。最终构造出的随机分布就是
\[G = \sum_{k=1}^{\infty} \pi_k \delta_{\theta_k}\]这个公式看起来吓人,但几何直观极其清晰:DP 生成的分布 $G$ 天生就是离散的,由无穷多个脉冲 $\delta_{\theta_k}$ 组成。
因为木棍越折越短,前面几刀就拿走了绝大部分的「概率质量」。这意味着,尽管 $G$ 由无穷多个点组成,但绝大部分权重都集中在少数几个「大碎片」上,这正是 DP 能够自动控制聚类数量的来源。$\alpha$ 越小,$\beta_k$ 越靠近 1,木棍被折得越快,权重就越集中在最前面的几个碎片上,簇的数量自然也越少。
3. 动力学视角:Chinese Restaurant Process(中餐馆过程)
如果从 DP 中连续抽取数据点,忽略掉具体的概率值,只看样本之间的关系——固定其他样本时,新样本的条件分布——我们就得到了中餐馆过程。
想象一个可以放下无穷多张桌子的中餐馆,菜单由基分布 $G_0$ 给出:
- 第一个客人进来,坐在第一张桌子,这张桌子的「菜」从菜单里抽:$\theta_1 \sim G_0$;
- 第 $n+1$ 个客人进来时,店内已有 $n$ 个客人、坐了人的桌子共 $K$ 张,其中第 $k$ 张桌子的参数是 $\theta_k$、已有 $n_k$ 个人。客人面前只有两个选择:坐到已有的某一桌,或者开一张新桌子。
第一步,选桌子(只关心分组,不关心观测长什么样)。把已有桌子 $k$ 的权重记为 $n_k$,新桌子的权重记为 $\alpha$,二者之和 $n + \alpha$ 就是归一化常数:
\[P(\text{坐到已有桌 } k) = \frac{n_k}{n + \alpha}, \qquad P(\text{开新桌}) = \frac{\alpha}{n + \alpha}\]第二步,加上似然。上面两式只回答了「客人会坐哪一桌」,却没有考虑这位客人长什么样。把客人 $n+1$ 的观测值记作 $x$,把「像不像」写成似然 $f(x \mid \theta)$,两者合起来就是 DP 混合模型的预测分布($\theta_{1:K}$ 是当前 $K$ 张桌子的参数):
\[p(x \mid \theta_{1:K}) = \frac{\alpha}{n + \alpha}\int f(x \mid \theta) \, dG_0(\theta) + \sum_{k=1}^{K} \frac{n_k}{n + \alpha} f(x \mid \theta_k)\]第一项对应「开新桌」:新桌子的参数从 $G_0$ 里抽,所以要对 $G_0$ 积分;第二项对应「坐到已有桌 $k$」:桌子的参数 $\theta_k$ 已经确定,直接乘上似然即可。两项的权重之和为 $1$,而似然是归一化的密度,所以这个表达式本身就是合法的概率密度。
分工要分清楚:权重的来源是中餐馆过程(只看每桌坐了几个人),似然负责「像不像」。中餐馆过程本身只描述划分,不含观测模型;乘上似然后,才得到可以拿来做聚类的混合模型。
在这个几何/动力学映射里:
- 客人 = 数据点
- 桌子 = 聚类簇(cluster)
- $\theta_k$ = 簇的参数(桌上那道「菜」)
- $G_0$ = 新簇参数的先验(菜单)
- $\alpha$ = 产生新簇的控制开关:$\alpha$ 越大,越倾向于开新桌
这就是 DP 的抽样本质:一个自带「马太效应」(富者越富)的随机聚类过程。
看透了这三种视角,狄利克雷过程的蓝图就彻底清晰了:它用极度简洁的 Beta 迭代和极度的维度拓展,解决了一个既抽象又极度现实的问题——如何在无限可能的未知空间里,进行优雅而自适应的有限聚类。
方法局限性
- 可交换性假设:中餐馆过程只依赖每个簇的计数,默认样本顺序无关。如果数据本身带有时间或分组结构,直接套用会丢失这部分信息。
- $\alpha$ 与 $G_0$ 需要设定或推断:$\alpha$ 决定开新桌的倾向,$G_0$ 决定簇的「形状」,结果对两者都敏感,实践中通常给 $\alpha$ 加一个先验(例如 $\text{Gamma}(a, b)$)再做后验推断。
- 「自动确定聚类数量」不等于「自动给出正确簇数」:DP 给出的是关于划分的后验分布,簇数的点估计取决于如何整理后验,也可能退化成「一个大簇 + 若干小簇」。
- 推断算法没有展开:DPMM 的后验没有解析解,需要 MCMC 或变分近似,这部分留待后续文章补充。
参考资料
- 如何通俗理解 Dirichlet Process(知乎回答):本文三种视角的原始思路来源。
- Dirichlet distribution(Wikipedia):狄利克雷分布的密度函数与多元 Beta 函数。
- Ferguson, T. S. (1973). A Bayesian Analysis of Some Nonparametric Problems. The Annals of Statistics, 1(2), 209–230.(DP 的原始定义)
- Blackwell, D., & MacQueen, J. B. (1973). Ferguson Distributions Via Pólya Urn Schemes. The Annals of Statistics, 1(2), 353–355.(中餐馆过程/Pólya 罐)
- Sethuraman, J. (1994). A Constructive Definition of Dirichlet Priors. Statistica Sinica, 4(2), 639–650.(割棍子构造)