承接“浅谈主题模型(一)”中的主题模型的历史,本文着重介绍LDA模型的相关概率知识,为接下来介绍LDA模型打下基础。
在LDA模型中,涉及到相当多的数学尤其是概率统计方面的知识,在具体介绍LDA模型之前,首先对这些概率知识进行一个总结归纳。
在LDA模型框架下,我们认为文本是一系列服从一定概率分布的词项的样本集合:每个文档中词的Topic分布服从Multinomial分布,其先验选取共轭先验即Dirichlet分布;每个Topic下词的分布服从Multinomial分布,其先验也同样选取共轭先验即Dirichlet分布。
接下来主要介绍Dirichlet分布以及其中涉及到的Gamma函数的相关知识。
Gamma 函数
Gamma函数:
通过分部积分的方法,可以推导出这个函数有着如下的递归性质:
可以证明得到,$\Gamma(x)$函数可以当成是阶乘在实数集上的延拓,具有如下性质:
下面简要地介绍下gamma函数的一些应用
求函数的分数阶导数
Gamma 函数可以用于求分数阶导数:
对于 $x^n$ 的各阶导数:
first derivative: $n x^{n - 1}$
second derivative: $n (n - 1) x^{n - 2}$
···
k-th derivative: $ \frac{n!}{(n - k)!} x^{n - k}$
由于k阶导数可以用阶乘表示,于是我们用Gamma函数表达为:
k可以表示为分数,即可求得分数阶导数。
Bohr-Mullerup 定理
若$f: (0,\infty) \rightarrow (0,\infty)$ 且满足:
- $f(1) = 1$
- $f(x + 1) = xf(x)$
- $\log {f(x)}$ 是凸函数
那么$f(x) = \Gamma(x)$
Digamma 函数
Digamma函数在涉及求Dirichlet分布相关的参数的极大似然估计时,往往要用到。
Digamma函数具有以下性质:
Gamma 分布
对gamma函数的定义做一个变形:
将积分部分视为概率密度,得到Gamma分布密度函数
$x = \beta t$得到一个一般形式:
在实际应用中, 指数分布和$\chi^2$分布都是特殊的Gamma分布
Dirichlet 分布
如果说要用一句话来简要介绍Dirichlet分布的话,那就是分布之上的分布。下面从Beta分布来引入对Dirichlet分布的介绍。
Beta 分布
用一个比较实际的情况来解释beta分布:
- $X_1,X_2,…,X_n \sim Uniform(0,1)$
- 把这n个随机变量排序,$X_{(k)}$的分布式Beta分布
如何确定?
通过计算$X_{k}$落在一个区间$[x, x + \Delta x]$的概率,其中$[0,x)$有 k-1 个数, $(x,1]$有n-k 个数
$X_{k}$的概率密度函数为
利用gamma函数,可以表示为
取$\alpha = k$, $\beta = n - k + 1$
即是beta分布。
Beta-Binomial 共轭
用一个比较实际的情况来解释Beta-Binomial共轭:
- $X1,X_2,…,X_n \sim Uniform(0,1)$ ,排序后对应顺序统计量$X{(1)}, X{(2)}, … , X{(n)} $我们要猜测 $p = X_{(k)}$
- $Y_1, Y_2, …, Y_m \sim Uniform(0,1), Y_i$中有$m_1$个比p小,$m_2$个比p大
- 问$P(p|Y_1, Y2, …, Y_m)$ 的分布是什么。
根据beta分布,上面情况中的 1 可以推导出 p 的分布为Beta分布 $f(p) = Beta(p|k, n - k + 1)$,也称为p的先验分布
根据上述中的 2, 相当于是做了m次伯努利实验,所以 $ m_1 $服从二项分布
在给定了来自数据提供的 $(m_1 , m_2)$知识后,p的后验分布变为 $f(p|m_1, m_2) = Beta(p|k+m_1, n - k + 1 + m_2)$
根据贝叶斯参数估计的基本过程:
以上贝叶斯分析的简单直观的表述就是
所以Beta-Binomial共轭式为:
此处共轭的意思就是数据符合二项分布的时候,参数的先验分布和后验分布都能保持Beta分布的形式。
Dirichlet - Multinomial 共轭
首先我们需要先了解下什么是Dirichlet分布
用一个比较实际的情况来解释Dirichlet分布:
- $X_1,X_2,…,X_n \sim Uniform(0,1)$
- 排序后对应顺序统计量$X{(1)}, X{(2)}, … , X_{(n)} $
- 问$(X{(k_1)}, X{(k_1 + k_2)})$ 的联合分布是什么。
通过类似Beta分布的推导,我们可以得到联合分布为:
该分布就是3维形式的Dirichlet分布,令$\alpha1 = k_1, \alpha_2 = k_2, \alpha_3 = n - k! - k_2 + 1$,概率密度可以写成:
Dirichlet分布,其参数是两个标量:维数K和参数向量各维均值$\alpha = \frac{\sum \alpha_l}{K}$ 其分布律的一般形式为:
那么什么是Dirichlet - Multinomial 共轭呢?
用一个比较实际的情况来解释Dirichlet - Multinomial 共轭:
- $X1,X_2,…,X_n \sim Uniform(0,1)$ , 排序后对应顺序统计量$X{(1)}, X{(2)}, … , X{(n)} $
- 令$p1 = X{(k1)}$, $p_2 = X{(k_1 + k_2 )}$, $p_3 = 1 - p_1 - p_2 $, 我们要猜测 $p^{\rightarrow} = (p_1, p_2, p_3 )$
- $Y_1, Y_2, …, Y_m \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 + m_3$
- 问后验分布$P(p^{\rightarrow} | Y_1, Y_2, … , Y_m)$ 的分布是什么。
以上贝叶斯分析的简单直观的表述就是
描述的就是Dirichlet - Multinomial 共轭
下一节将开始介绍LDA模型