LDA-math-认识Beta/Dirichlet分布(3)

2. LDA-math-认识Beta/Dirichlet分布(3)
2.3 Dirichlet-Multinomial 共轭

对于魔鬼变本加厉的新的游戏规则,数学形式化如下:

  1. $X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}} {\sim}}Uniform(0,1)$,
  2. 排序后对应的顺序统计量 $X_{(1)},X_{(2)},\cdots, X_{(n)}$,
  3. 问 $(X_{(k_1)}, X_{(k_1+k_2)})$的联合分布是什么;

游戏3

完全类似于第一个游戏的推导过程,我们可以进行如下的概率计算(为了数学公式的简洁对称,我们取$x_3$满足$x_1+x_2+x_3 = 1$,但只有$x_1,x_2$是变量)

dirichlet-game
$(X_{(k_1)}, X_{(k_1+k_2)})$的联合分布推导

\begin{align*}
& P\Bigl(X_{(k_1)}\in(x_1,x_1+\Delta x),X_{(k_1+k_2)}\in(x_2,x_2+\Delta x)\Bigr) \\
& = n(n-1)\binom{n-2}{k_1-1,k_2-1}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2}(\Delta x)^2 \\
& = \frac{n!}{(k_1-1)!(k_2-1)!(n-k_1-k_2)!}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2}(\Delta x)^2
\end{align*}
于是我们得到 $(X_{(k_1)}, X_{(k_1+k_2)})$的联合分布是
\begin{align*}
f(x_1,x_2,x_3) & = \frac{n!}{(k_1-1)!(k_2-1)!(n-k_1-k_2)!}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2} \\
& = \frac{\Gamma(n+1)}{\Gamma(k_1)\Gamma(k_2)\Gamma(n-k_1-k_2+1)}x_1^{k_1-1}x_2^{k_2-1}x_3^{n-k_1-k_2}
\end{align*}
熟悉 Dirichlet的同学一眼就可以看出,上面这个分布其实就是3维形式的 Dirichlet 分布$Dir(x_1,x_2,x_3|k_1,k_2,n-k_1-k_2+1)$。令 $\alpha_1=k_1,\alpha_2=k_2,\alpha_3=n-k_1-k_2+1$,于是分布密度可以写为
\begin{equation}
\displaystyle f(x_1,x_2,x_3) = \frac{\Gamma(\alpha_1 + \alpha_2 + \alpha_3)}
{\Gamma(\alpha_1)\Gamma(\alpha_2)\Gamma(\alpha_3)}x_1^{\alpha_1-1}x_2^{\alpha_2-1}x_3^{\alpha_3-1}
\end{equation}

这个就是一般形式的3维 Dirichlet 分布,即便 $\overrightarrow{\alpha}=(\alpha_1,\alpha_2, \alpha_3)$ 延拓到非负实数集合,以上概率分布也是良定义的。

从形式上我们也能看出,Dirichlet 分布是Beta 分布在高维度上的推广,他和Beta 分布一样也是一个百变星君,密度函数可以展现出多种形态。

dirichlet-distribution不同 $\alpha$ 下的Dirichlet 分布

类似于魔鬼的游戏2,我们也可以调整一下游戏3,从魔盒中生成$m$个随机数$Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$ 并让魔鬼告诉我们$Y_i$和$(X_{(k_1)}, X_{(k_1+k_2)})$相比谁大谁小。于是有如下游戏4

  1.  $X_1,X_2,\cdots,X_n {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$,排序后对应的顺序统计量 $X_{(1)},X_{(2)},\cdots, X_{(n)}$
  2. 令$p_1=X_{(k_1)}, p_2=X_{(k_1+k_2)},p_3 = 1-p_1-p_2$(加上$p_3$是为了数学表达简洁对称),我们要猜测 $\overrightarrow{p}=(p_1,p_2,p_3)$;
  3. $Y_1,Y_2,\cdots,Y_m {\stackrel{\mathrm{iid}}{\sim}}Uniform(0,1)$, $Y_i$中落到$[0,p_1),[p_1,p_2),[p_2,1]$ 三个区间的个数分别为 $m_1,m_2,m_3$,$m=m_1+m_2+m3$;
  4.  问后验分布 $P(\overrightarrow{p}|Y_1,Y_2,\cdots,Y_m)$ 的分布是什么。

游戏4

为了方便,我们记
$$ \overrightarrow{m}=(m_1,m_2,m_3),\quad \overrightarrow{k}=(k_1,k_2,n-k_1-k_2+1) $$
由游戏中的信息,我们可以推理得到 $p_1, p_2$在$X_1,X_2,\cdots,X_n,$ $Y_1,Y_2,\cdots,Y_m$ ${\stackrel{\mathrm{iid}}{\sim}} Uniform(0,1)$这 $m+n$个数中分别成为了第 $k_1+m_1, k_2+m_2$大的数,于是后验分布 $P(\overrightarrow{p}|Y_1,Y_2,\cdots,Y_m)$ 应该是 $Dir(\overrightarrow{p}|k_1+m_1,k_1+m_2,n-k_1-k_2+1+m_3)$,即$Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})$。按照贝叶斯推理的逻辑,我们同样可以把以上过程整理如下:

  1.  我们要猜测参数 $\overrightarrow{p}=(p_1,p_2,p_3)$,其先验分布为$Dir(\overrightarrow{p}|\overrightarrow{k})$;
  2.  数据$Y_i$落到$[0,p_1), [p_1,p_2),[p_2,1]$三个区间的个数分别为 $m_1,m_2,m_3$,所以$\overrightarrow{m}=(m_1,m_2,m_3)$ 服从多项分布$Mult(\overrightarrow{m}|\overrightarrow{p})$
  3.  在给定了来自数据提供的知识$\overrightarrow{m}$后,$\overrightarrow{p}$ 的后验分布变为 $Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})$

贝叶斯推理过程

以上贝叶斯分析过程的简单直观的表述就是
$$ Dir(\overrightarrow{p}|\overrightarrow{k}) + MultCount(\overrightarrow{m}) = Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m}) $$
令 $\overrightarrow{\alpha}=\overrightarrow{k}$,把$\overrightarrow{\alpha}$从整数集合延拓到实数集合,更一般的可以证明有如下关系
\begin{equation}
Dir(\overrightarrow{p}|\overrightarrow{\alpha}) + MultCount(\overrightarrow{m})
= Dir(p|\overrightarrow{\alpha}+\overrightarrow{m})
\end{equation}
以上式子实际上描述的就是 Dirichlet-Multinomial 共轭,而我们从以上过程可以看到,Dirichlet 分布中的参数$\overrightarrow{\alpha}$都可以理解为物理计数。类似于 Beta 分布,我们也可以把 $Dir(\overrightarrow{p}|\overrightarrow{\alpha})$作如下分解
$$ Dir(\overrightarrow{p}|\overrightarrow{1}) + MultCount(\overrightarrow{m}-\overrightarrow{1})
= Dir(\overrightarrow{p}|\overrightarrow{\alpha}) $$
此处$\overrightarrow{1}=(1,1,\cdots,1)$。自然,上式我们也可以类似地用纯粹贝叶斯的观点进行推导和解释。

以上的游戏我们还可以往更高的维度上继续推,譬如猜测 $X_{(1)},X_{(2)},\cdots, X_{(n)}$ 中的4、5、…等更多个数,于是就得到更高纬度的 Dirichlet 分布和 Dirichlet-Multinomial 共轭。一般形式的 Dirichlet 分布定义如下
\begin{equation}
\displaystyle Dir(\overrightarrow{p}|\overrightarrow{\alpha}) =
\displaystyle \frac{\Gamma(\sum_{k=1}^K\alpha_k)}
{\prod_{k=1}^K\Gamma(\alpha_k)} \prod_{k=1}^K p_k^{\alpha_k-1}
\end{equation}
对于给定的 $\overrightarrow{p}$和 $N$,多项分布定义为
\begin{equation}
\displaystyle Mult(\overrightarrow{n} |\overrightarrow{p},N) = \binom{N}{\overrightarrow{n}}\prod_{k=1}^K p_k^{n_k}
\end{equation}
而 $Mult(\overrightarrow{n} |\overrightarrow{p},N)$ 和 $Dir(\overrightarrow{p}|\overrightarrow{\alpha})$这两个分布是共轭关系。

Beta-Binomail 共轭和 Dirichlet-Multinomail 共轭都可以用纯粹数学的方式进行证明,我们在这两个小节中通过一个游戏来解释这两个共轭关系,主要是想说明这个共轭关系是可以对应到很具体的概率物理过程的。

2.4 Beta/Dirichlet 分布的一个性质

如果 $p\sim Beta(t|\alpha,\beta)$, 则
\begin{align*}
E(p) & = \int_0^1 t*Beta(t|\alpha,\beta)dt \\
& = \int_0^1 t* \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} t^{\alpha-1}(1-t)^{\beta-1}dt \\
& = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \int_0^1 t^{\alpha}(1-t)^{\beta-1}dt
\end{align*}
上式右边的积分对应到概率分布 $Beta(t|\alpha+1,\beta)$,对于这个分布,我们有
$$
\int_0^1 \frac{\Gamma(\alpha+\beta+1)}{\Gamma(\alpha+1)\Gamma(\beta)} t^{\alpha}(1-t)^{\beta-1}dt = 1
$$
把上式带入$E(p)$的计算式,得到
\begin{align}
E(p) & = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}
\cdot \frac{\Gamma(\alpha+1)\Gamma(\beta)}{\Gamma(\alpha+\beta+1)} \notag \\
& = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha+\beta+1)}\frac{\Gamma(\alpha+1)}{\Gamma(\alpha)} \notag \\
& = \frac{\alpha}{\alpha+\beta}
\label{beta-mean}
\end{align}
这说明,对于Beta 分布的随机变量,其均值可以用$\frac{\alpha}{\alpha+\beta}$来估计。Dirichlet 分布也有类似的结论,如果$\overrightarrow{p} \sim Dir(\overrightarrow{t}|\overrightarrow{\alpha})$,同样可以证明
\begin{equation}
E(\overrightarrow{p}) = \Bigl(\frac{\alpha_1}{\sum_{i=1}^K\alpha_i},\frac{\alpha_2}{\sum_{i=1}^K\alpha_i},\cdots, \frac{\alpha_K}{\sum_{i=1}^K\alpha_i} \Bigr)
\label{dir-mean}
\end{equation}
以上两个结论很重要,因为我们在后面的 LDA 数学推导中需要使用这个结论。

此条目发表在自然语言处理分类目录,贴了, 标签。将固定链接加入收藏夹。

LDA-math-认识Beta/Dirichlet分布(3)》有 9 条评论

  1. J. V. King说:

    赞啊,能否写篇文章介绍一下Dirichlet process呢

    [回复]

    rickjin 回复:

    把这个魔鬼的游戏推广到无穷维度,应该和 stick breanking 就是等价的,也就是 Dirichlet Process

    [回复]

    rickjin 回复:

    我先把 LDA 讲清楚, 再考虑 DP 吧, LDA 的系列已经拖的时间太长了

    [回复]

  2. Earthson Lu说:

    推导了一下,似乎Beta分布的极大值是$\frac{\alpha – 1}{\alpha + \beta – 2}$(当alpha和beta都大于1的时候)。这个值和频率导出的概率估计是一样的。
    而lz给除了使用均值的估计,似乎和Laplace平滑的结果一致啊,这很神奇~~

    [回复]

    rickjin 回复:

    你确定那个是 beta 分布的 MLE(极大似然估计)吗? beta/dirichlet 分布的 MLE 的精确值应该是没有显示解的。 有不少论文谈论如何求解 dirichlet 分布的 MLE, 通常需要使用到类似 EM 算法的迭代计算, wikipedia 上 beta distribution 上的词条中也有一个 MLE 求解的说明。

    [回复]

  3. Ethan说:

    其实通读了这篇文章,加之搜索引擎的学习,至今为止仍然没有找到Dirichlet分布中的\alpha向量的取值如何得到(也就是文中提到的先验伪计数),是采用EM算法的迭代还是基于Markov Chain收敛定理的迭代?

    [回复]

  4. ryyral说:

    有两个问题不大明白
    1,alpha是一个向量,上面有三副图给出不同alpha下的Dirichlet分布,alpha怎么是这个形式呢 :{alphak}=0.1
    2. algorithm3推导出的是n个统计量里面的两个统计量的联合分布。如果给定n个统计两,就求这n个统计量的联合分布会出现什么情况呢?这时候应该有alpha1=alpha2=…=alphan=1 代入公式12 变量的幂为为0,没有变量,这怎么解释呢?纠结中,想不通,希望前辈解惑

    [回复]

  5. cmdblock说:

    楼主的公式计算错了吧!
    应该是
    $$\begin{array}{ll}
    n ( n-1 ) \left( \begin{array}{c}
    n-2\\
    k_{1} -1,k_{2} -1
    \end{array} \right) & =n ( n-1 ) \frac{( n-2 ) !}{( k_{1} -1 ) !} \times
    \frac{( n-2- ( k_{1} -1 ) ) !}{( k_{2} -1 ) !}\\
    & = \frac{n! ( n-1-k_{1} ) !}{( k_{1} -1 ) ! ( k_{2} -1 ) !}
    \end{array}$$

    [回复]

  6. jenni说:

    在第四个游戏中,p1,p2成了x1,x2,x3……xn,y1,y2……,ym中 第k1+m1,k2+m2大的数。这里不应该是p2成了第k1+m1+k2+m2大的数吗??初学没怎么看懂请老师帮忙~

    [回复]

发表评论

电子邮件地址不会被公开。 必填项已用*标注