狄利克雷过程总结

本文主要摘自 Yee Whye Teh 的《Dirichlet Processes: Tutorial and Practical Course》,以该文章中介绍的狄利克雷过程为中心,往前往后记录、总结最近在文本处理方面的收获。


前言

简单考虑这样一类问题:根据已知观测数据集 $X=\{x_{i}\}_{i=1}^{|X|}$,预测新的数据集 $\tilde{X}$ 的条件概率分布,即 $p(\tilde{X}|X)$。

若我们认为 $x_{i}$ 是满足 i.i.d 条件的参数为 $\theta$ 的随机变量,则将问题转化为:

$p(\tilde{X}|X)=\int_{\theta \in \Theta}p(\tilde{X}|\theta)p(\theta|X)d\theta$

$=\int_{\theta \in \Theta}p(\tilde{X}|\theta)\frac{p(X|\theta) \cdot p(\theta)}{p(X)}d\theta$

其中,$p(\theta|X)$ 称为 $\theta$ 的后验分布,$p(\theta)$ 称为 $\theta$ 的先验分布,$p(X|\theta)$ 称为似然分布,$p(x)$ 称为边缘分布


为求解上述积分式,则可将问题转化为:

  • 选择一个模型来用表示 $\theta$ 与 $x$ 的关系,即公式化似然函数 $p(x|\theta)$
  • 选择一个模型来表示超参数 $\alpha$ 与 $\theta$ 的关系,即公式化先验函数 $p(\theta):=p(\theta|\alpha)$
  • 根据选择的似然函数和先验函数,表示出 $x$ 的分布函数 $p(x)=\int p(x|\theta)p(\theta)d\theta$

由上述分析可知,求解 $p(\tilde{X}|X)$ 需要解决似然和先验建模的问题。


假设我们已经找到了一个似然模型函数 $F$,即:

$x|\theta \sim F(\cdot | \theta)$

在选定该似然模型函数 $F$ 后,我们通常选用能与该 $F$ 相乘后的函数形成共轭关系的函数 ${F}'$ 作为先验模型的函数,即:

$\theta|\alpha \sim {F}'(\cdot |\alpha),\ F(\cdot|\theta){F}'(\cdot|\alpha) \ conjugate \ {F}'(\cdot|\alpha)$

这样选择 ${F}'$ 的目的是为了方便求解原积分式。以投骰子为例,若 $x$ 代表着骰子投掷的值,则可以考虑如下模型

  • $x|\theta \sim Discrete(\theta), \theta = \{\theta_{1},...,\theta_{6}\}$

  • $(\theta_{1},...,\theta_{6}) \sim Dirichlet(\alpha_{1},...,\alpha_{6})$

  • 似然分布:$F=P(x|\theta)=\sum_{i=1}^{6}\theta_{i}\delta_{i}(x)$

  • 先验分布:${F}'=P(\theta)=\frac{1}{B(\alpha)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i}-1}$

其中,$\delta_{i}(x)$ 代表当 $x$ 取第 $i$ 个值时值为1,否则为0;$B(\alpha)$ 为Beta函数。

若选用上述似然以及先验函数模型,通过共轭函数的性质我们能得到:

  • $x \sim Discrete(\frac{\alpha_{1}}{\sum \alpha_{i}},...,\frac{\alpha_{6}}{\sum \alpha_{i}})$

  • $\theta|x \sim Dirichlet(\alpha_{1} + \delta_{1}(x),...,\alpha_{6} + \delta_{6}(x))$

  • 边缘分布:$p(x)=\sum_{i=1}^{6} \frac{\alpha_{i}}{\sum \alpha_{i}}\delta_{i}(x)$

  • 后验分布:$p(\theta|x)=\frac{1}{B(\alpha + \delta)}\prod_{i=1}^{6}\theta_{i}^{\alpha_{i} + \delta_{i}(x) -1}$

同样根据共轭函数的性质,最终我们得到原积分表达式的值:

$p(\tilde{X}|X)=\sum_{i=i}^{6}\frac{\alpha_{i}+\delta_{i}(X)}{\sum_{j=1}^{6}\alpha_{j}+\delta_{j}(X)}\delta_{i}(\tilde{X})$

$\tilde{X}|X \sim Discrete(\frac{\alpha_{1}+\delta_{1}(X)}{\sum_{j=1}^{6}\alpha_{j}+\delta_{j}(X)},...,\frac{\alpha_{6}+\delta_{6}(X)}{\sum_{j=1}^{6}\alpha_{j}+\delta_{j}(X)})$

至此我们便能解答掷骰子的概率分布问题。


通过上述例子,我们知道了采用能产生共轭关系的似然以及先验函数模型能较方便的计算出 $\tilde{X}|X$ 的分布。

现在让我们来思考一个更复杂的问题,如果这枚投掷的骰子不是一个正常的6面骰子,而是不知道多少个面的骰子的时候,我们又应该如何对似然和先验函数建模呢?

至此,我们可以引入狄利克雷过程来解决该问题。


狄利克雷过程

考虑上述投掷骰子的例子,由于不知道骰子有多少个面,即不知道 $\theta$ 有多少个离散值,那么,我们考虑用定义域为实数的函数 $G$ 来表示 $x$ 取不同值时的概率值,即:

$x \sim G, \ G:\mathbb{X} \to \mathbb{R}$

即 $x$ 和 $\theta$ 的似然函数是 $G(x)$。根据上述分析思路,在似然函数给定后,我们需要找到一个先验函数,使得其与似然的乘积能和自身是共轭函数。

那么如何寻找这样的似然函数 $G$ 以及对应的先验函数呢?


仍考虑上述投骰子的例子,假设我们已经找了能很好反映数据本身性质的似然函数 $G$,若该骰子正好为6面的,则函数 $G(x)$ 的图形(或者说$p(x)$)应该很好的反映了骰子是6个面的性质,如下图:

即 $x$ 在 $1,2,...,6$ 的附近时取值的概率 $p(x)$ (即$G(x)$)很大。亦即有

$\int_{-\infty}^{1+\delta}G(x)dx \approx p(x=1),\int_{1+\delta}^{2+\delta}G(x)dx \approx p(x=2),...$

所以若函数 $G$ 能较好的反映6面骰子的性质,则有:

$(\int_{-\infty}^{1+\delta}G(x)dx,...,\int_{6+\delta}^{+\infty}G(x)dx) \sim Dirichlet(\alpha_{1},...,\alpha_{6})$

即找到一个划分,将实数域划分成6个区域,这6个区域分别包含1到6,则按该划分后的6个区域的积分值满足狄利克雷分布。


同理,若骰子实际上是 $K$ 个面的,我们按上述规则划分 $K$ 个区域,则该 $K$ 个区域的积分值需同样满足狄利克雷分布。

考虑到问题中 $G$ 要良好的反映 $K$ 取任意值有限值时函数的性质,不失一般性,考虑 $x$ 的取值范围为 $\mathbb{X}$,则可知函数 $G$ 必须有如下性质:

$\forall\ A_{1}\dot{\cup}...\dot{\cup}A_{K}=\mathbb{X},\ (G(A_{1}),...,G(A_{K})) \sim Dirichlet(\alpha_{1},...,\alpha_{K})$

其中,$\forall i \neq j, A_{i} \cap A_{j} = \phi$。

考虑到 ${A_{i}}$ 为任意有限划分,所以对应的狄利克雷分布参数 ${\alpha_{i}}$ 应为自变量为 $A_{i}$ 的函数,即:

$\alpha_{i}:=f(A_{i})$


那么 $f$ 应该满足什么条件呢?

考虑狄利克雷分布 $(\pi_{1},...,\pi_{K}) \sim Dirichlet(\alpha_{1},...,\alpha_{K})$ 有如下性质:

  • $l_{1} \cup...\cup l_{j}=\{1,...,K\},\forall i \neq j, l_{i} \cap l_{j}=\phi \Rightarrow (\sum_{i \in l_{1}}\pi_{i},...,\sum_{i \in l_{j}}\pi_{i}) \sim Dirichlet (\sum_{i \in l_{i}}\alpha_{i},...,\sum_{i \in l_{j}}\alpha_{i})$

  • $\forall (\tau_{1},\tau_{2}) \sim Dirichlet(\alpha_{m}\beta_{1},\alpha_{m}\beta_{2}),\beta_{1}+\beta_{2}=1 \Rightarrow (\pi_{1},...,\pi_{m}\tau_{1},\pi_{m}\tau_{2},...,\pi_{K})\sim(\alpha_{1},...,\alpha_{m}\beta_{1},\alpha_{m}\beta_{2},...,\alpha_{K})$

则 $f$ 有如下性质:

$\sum_{i \in l} \alpha_{i} = f(\sum_{i \in l} A_{i}), l \subset \mathbb{R}$

则可令 $f:=\alpha H$,即:

$\alpha_{i}:=\alpha H(A_{i})$

其中,$H$ 为 $x$ 的分布函数,记为基分布。$\alpha$ 与基分布的乘积即为狄利克雷分布的参数,称 $\alpha$ 为强度参数


至此,我们可以记:

$G \sim DP(\alpha, H)$

表示若函数 $G$ 服从参数为 $\alpha,H$ 的狄利克雷过程,则有在定义域 $\mathbb{X}$ 上的任意有限划分 ${A_{1},...,A_{K}}$,函数 $G$ 有如下特性:

$(G(A_{1}),...,G(A_{K})) \sim Dirichlet(\alpha H(A_{1}),...,\alpha H(A_{K}))$

根据狄利克雷分布的性质,我们有:

  • $E[G(A_{i})]=\frac{\alpha H(A_{i})}{\sum \alpha H(A_{j})}=H(A_{i})$

通过上述分析,考虑掷骰子的例子,假设似然和先验模型如下:

  • $x \sim G$

  • $G \sim DP(\alpha, H)$

那么我们需要求解积分:

$p(\tilde{X}|X)=\int p(\tilde{X}|G)p(G|X)dG=\int G(\tilde{X})p(G|X)dG$

根据上述对似然函数 $G$ 性质的分析,知对于任意有限分割 ${A_{i}}$,有:

$G|X \sim Dirichlet(\alpha H(A_{1}) + \delta_{A_{1}}(X),...,\alpha H(A_{K}) + \delta_{A_{K}}(X))$

为了和之前关于 $DP$ 的符号统一,记为:

$G|X \sim DP(\alpha + 1, \frac{\alpha H + \delta(X)}{\alpha + 1})$

又考虑边缘分布:

$P(x \in A_{i})=\int P(x \in A_{i}|G)p(G)dG$

$=\int G(x \in A_{i})p(G)dG=E[G(x \in A_{i})]=H(x \in A_{i})$

即:

$X \sim H$

xiehao

Read more posts by this author.