LDA 原理第二部分:文本分析的参数估计(上)

本篇博客为对 LDA 的原理解读第二篇的上半部分,参考论文《Parameter estimation for text analysis》的前半部分(version 2.9)。

参数估计方法

总的来说,我们面对着两大类推理问题:

  1. 估计分布的参数集 \(\vartheta\) 的值,使其能够最好地解释观察到的数据集合 \(\mathcal{X}\)
  2. 给定先前的观察结果,计算新的观察数据 \(\tilde{x}\) 的概率,即 \(p(\tilde{x} | \mathcal{X})\)

我们将第一类问题称为估计问题,第二类问题称为预测(或回归)问题。

数据集 \(\mathcal{X} \triangleq\left\{x_{i}\right\}_{i=1}^{|\mathcal{X}|}\) 可以看做一系列独立同分布的随机变量 \(X\),参数集 \(\vartheta\) 依赖于某种概率分布。

对于这些数据与参数,在贝叶斯统计中有许多与之相关的概率函数,我们可以通过贝叶斯规则将这些函数联系起来,如下所示: \[ p(\vartheta | \mathcal{X})=\frac{p(\mathcal{X} | \vartheta) \cdot p(\vartheta)}{p(\mathcal{X})} \tag{1} \] 上式可以对应到如下的术语: \[ \text { posterior }=\frac{\text { likelihood } \cdot \text { prior }}{\text { evidence }} \tag{2} \] 下面我们会介绍三种不同的估计方法,首先是最简单的极大似然估计,然后是引入参数先验分布的最大后验估计,最后会使用贝叶斯规则推理出完整的后验分布。

极大似然估计

极大似然估计(ML)尝试去找到使似然函数最大的参数: \[ L(\vartheta | \mathcal{X}) \triangleq p(\mathcal{X} | \vartheta)=\bigcap_{\mathcal{X} \in X}\{X=x | \vartheta\}=\prod_{x \in \mathcal{X}} p(x | \vartheta) \tag{3} \] 关于似然函数的思考:在数据为离散变量时,似然函数对应为概率质量函数(即变量在各特定取值上的概率)的乘积;而在数据为连续变量时,似然函数对应为概率密度函数的乘积,此时单点的取值没有意义,但可以看做在以该店为中心的极小区间内的概率的估计,我们希望由观察到的数据(真实值)对应的概率(可能性)最大。

为了简化计算,我们通常会对似然函数取对数(不影响其单调性),即可得到下面的极大似然估计问题: \[ \hat{\vartheta}_{\mathrm{ML}}=\underset{\vartheta}{\operatorname{argmax}} \mathcal{L}(\vartheta | \mathcal{X})=\underset{\vartheta}{\operatorname{argmax}} \sum_{x \in \mathcal{X}} \log p(x | \vartheta) \tag{4} \] 常用的求解方法有直接求导、梯度下降等方法。 \[ \frac{\partial \mathcal{L}(\vartheta | \mathcal{X})}{\partial \vartheta_{k}} \stackrel{!}{=} 0 \quad \forall \vartheta_{k} \in \vartheta \tag{5} \] 基于上述估计的结果,我们可以求解之前所述的预测问题: \[ \begin{align*} p(\tilde{x} | \mathcal{X}) &=\int_{\vartheta \in \Theta} p(\tilde{x} | \vartheta) p(\vartheta | \mathcal{X}) \mathrm{d} \vartheta \tag{6} \\ & \approx \int_{\vartheta \in \Theta} p(\tilde{x} | \hat{\vartheta}_{\mathrm{ML}}) p(\vartheta | \mathcal{X}) \mathrm{d} \vartheta=p(\tilde{x} | \hat{\vartheta}_{\mathrm{ML}}) \tag{7}\end{align*} \] 即新样本是基于估计参数 \(\hat{\vartheta}_{\mathrm{ML}}\) 分布的。

为了方便与之后的估计进行对比,下面给出一个极大似然估计的实例。

对于一个包含 \(N\) 个伯努利试验(以抛一个畸形硬币为例)的集合 \(C\),其参数为 \(p\),则对于单个试验来说: \[ p(C=c | p)=p^{c}(1-p)^{1-c} \triangleq \operatorname{Bern}(c | p) \] 其中定义 \(c=1\) 为正面,\(c=0\) 为反面。

对参数 \(p\) 构建极大似然估计,如下所示: \[ \begin{align*} \mathcal{L} &=\log \prod_{i=1}^{N} p\left(C=c_{i} | p\right)=\sum_{i=1}^{N} \log p\left(C=c_{i} | p\right) \tag{9}\\ &=n^{(1)} \log p(C=1 | p)+n^{(0)} \log p(C=0 | p) \\ &=n^{(1)} \log p+n^{(0)} \log (1-p) \tag{10}\end{align*} \] 上式可以直接通过求导求解,结果如下: \[ \frac{\partial \mathcal{L}}{\partial p}=\frac{n^{(1)}}{p}-\frac{n^{(0)}}{1-p} \stackrel{!}{=} 0 \quad \Leftrightarrow \quad \hat{p}_{\mathrm{ML}}=\frac{n^{(1)}}{n^{(1)}+n^{(0)}}=\frac{n^{(1)}}{N} \tag{11} \] 我们假设进行了 20 次试验后,正面向上次数 \(n^{(1)} = 12\),反面向上次数 \(n^{(0)} = 8\),则极大似然估计的结果为 \(\hat{p}_{\mathrm{ML}} = 12/20 = 0.6\)

最大后验估计

最大后验估计(MAP)与极大似然估计非常相似,区别在于其引入了参数的先验估计,尝试去最大化给定数据时参数的后验分布: \[ \hat{\vartheta}_{\text{MAP}}=\underset{\vartheta}{\operatorname{argmax}} p(\vartheta | \mathcal{X}) \tag{12} \] 使用贝叶斯规则,我们可以得到: \[ \begin{align*} \hat{\vartheta}_{\mathrm{MAP}} &=\underset{\vartheta}{\operatorname{argmax}} \frac{p(\mathcal{X} | \vartheta) p(\vartheta)}{p(\mathcal{X})} \quad \quad \mid p(\mathcal{X}) \neq f(\vartheta) \\ &=\underset{\vartheta}{\operatorname{argmax}} p(\mathcal{X} | \vartheta) p(\vartheta)=\underset{\vartheta}{\operatorname{argmax}}\{\mathcal{L}(\vartheta | X)+\log p(\vartheta)\} \\ &=\underset{\vartheta}{\operatorname{argmax}}\left\{\sum_{x \in \mathcal{X}} \log p(x | \vartheta)+\log p(\vartheta)\right\} \tag{13}\end{align*} \] 与 (4) 式相比,上式在似然函数的基础上添加了一个先验分布。在实际应用中,该先验分布可以用来加入额外的知识以及防止过拟合(选择更简单的模型)。

通过引入 \(p(\vartheta)\),MAP 遵循了贝叶斯方法,将参数 \(\vartheta\) 看作随机变量,其满足由超参数 \(\alpha\) 构成的某种概率分布 \(p(\vartheta):=p(\vartheta | \alpha)\),这种方法创建了一种参数之间的分层结构。

通过使用与之前类似的方法最大化 \(\mathcal{L}(\vartheta | \mathcal{X})+\log p(\vartheta)\),我们可以得到 MAP 参数。那么对于一个新的观察值 \(\tilde{x}\),给定数据 \(\mathcal{X}\),可以基于下式进行估计: \[ p(\tilde{x} | \mathcal{X}) \approx \int_{\vartheta \in \Theta} p(\tilde{x} | \hat{\vartheta}_{\mathrm{MAP}}) p(\vartheta | \mathcal{X}) \mathrm{d} \vartheta=p(\tilde{x} | \hat{\vartheta}_{\mathrm{MAP}}) \tag{14} \] 与 ML 类似,我们使用之前的试验作为实例,看看 MAP 会给出什么样的结果。

对于参数 \(p\),我们选择 beta 分布为其先验分布,beta 分布的概率密度函数为:: \[ p(p | \alpha, \beta)=\frac{1}{\mathrm{B}(\alpha, \beta)} p^{\alpha-1}(1-p)^{\beta-1} \triangleq \operatorname{Beta}(p | \alpha, \beta) \tag{15} \] 其中 \(\mathrm{B}(\alpha, \beta)=\frac{\Gamma(\alpha) \Gamma(\beta)}{\Gamma(\alpha+\beta)}\)\(\Gamma(x)\) 表示 Gamma 函数,可以理解为实数范围内的阶乘 \(x! = \Gamma(x+1)\),beta 分布支持的变量范围为 \([0,1]\),因此很适合用来表示概率值的分布,对于不同的超参数,beta 分布的形状不一,如下图所示:

在本实例中,我们相信硬币是公平的,因此设置 \(\alpha = \beta = 5\),即概率为 0.5 的可能性最大。则优化问题可以通过下述过程求解: \[ \begin{align*} \frac{\partial}{\partial p} \mathcal{L}+\log p(p) &=\frac{n^{(1)}}{p}-\frac{n^{(0)}}{1-p}+\frac{\alpha-1}{p}-\frac{\beta-1}{1-p} \stackrel{!}{=} 0 \tag{16}\\ \Leftrightarrow \; \hat{p}_{\mathrm{MAP}}&=\frac{n^{(1)}+\alpha-1}{n^{(1)}+n^{(0)}+\alpha+\beta-2}=\frac{n^{(1)}+4}{n^{(1)}+n^{(0)}+8} \tag{17}\end{align*} \] 上式表明 MAP 估计的结果由实际计数和先验分布决定,实际计数 \(n^{(c)}\) 的影响被先验分布 \(\hat{p}_{\text{MAP}} = 4/8 = 0.5\) 削弱,随着超参数 \(\alpha\)\(\beta\) (也被称为伪计数)的增大,需要更多的观察值来减弱先验分布的影响。

与之前一样,假设进行了 20 次试验后,正面向上次数 \(n^{(1)} = 12\),反面向上次数 \(n^{(0)} = 8\),则最大后验估计的结果为 \(\hat{p}_{\mathrm{ML}} = 16/28 = 0.571\),与之前的 0.6​ 相比更接近于先验分布对应的 0.5 的峰值,表明其受到了对于硬币公平性的先验信念的影响。

贝叶斯推理

贝叶斯推理是对 MAP 的扩展,它并不是直接估计一个确定的值,而是给出参数的分布,基于分布来决定参数的值(一般选择期望作为估计值)。其计算方法主要基于贝叶斯规则: \[ p(\vartheta | \mathcal{X})=\frac{p(\mathcal{X} | \vartheta) \cdot p(\vartheta)}{p(\mathcal{X})} \tag{18} \] 由于并不局限于找到最大值,所以我们需要计算分母的 \(p(\mathcal{X})\),其值可以通过如下公式计算: \[ p(\mathcal{X})=\int_{\vartheta \in \Theta} p(\mathcal{X} | \vartheta) p(\vartheta) \mathrm{d} \vartheta \tag{19} \] 在贝叶斯推理中,\((19)\) 式(又称为边际似然)通常是难以计算的,之后我们将通过共轭分布的概念巧妙地解决这一难题。

对于预测问题,贝叶斯推理的计算公式如下: \[ \begin{align*} p(\tilde{x} | \mathcal{X}) &=\int_{\vartheta \in \Theta} p(\tilde{x} | \vartheta) p(\vartheta | \mathcal{X}) \mathrm{d} \vartheta \\ &=\int_{\vartheta \in \Theta} p(\tilde{x} | \vartheta) \frac{p(\mathcal{X} | \vartheta) p(\vartheta)}{p(\mathcal{X})} \mathrm{d} \vartheta \end{align*} \] 下面我们将针对之前的实例,给出贝叶斯推理下的结果。先验分布采用与 MAP 一样的设定,但会选择给出参数 \(p\) 的均值与方差,而非最大后验估计值。后验分布的计算如下: \[ \begin{align*} p(p | C, \alpha, \beta) &=\frac{\prod_{i=1}^{N} p\left(C=c_{i} | p\right) p(p | \alpha, \beta)}{\int_{0}^{1} \prod_{i=1}^{N} p\left(C=c_{i} | p\right) p(p | \alpha, \beta) \mathrm{d} p} \tag{22}\\ &=\frac{p^{n^{(1)}}(1-p)^{n^{(0)}} \frac{1}{\mathrm{B}(\alpha, \beta)} p^{\alpha-1}(1-p)^{\beta-1}}{Z} \tag{23}\\ &=\frac{p^{\left[n^{(1)}+\alpha\right]-1}(1-p)^{\left[n^{(0)}+\beta\right]-1}}{\mathrm{B}\left(n^{(1)}+\alpha, n^{(0)}+\beta\right)} \tag{24}\\ &=\operatorname{Beta}\left(p | n^{(1)}+\alpha, n^{(0)}+\beta\right) \tag{25}\end{align*} \] 可以看到,后验分布仍然是 beta 分布。而对于参数为 \((\alpha,\beta)\) 的 beta 分布,其均值为 \(\langle p | \alpha, \beta\rangle=\alpha(\alpha+\beta)^{-1}\),方差为 \(\mathrm{V}\{p | \alpha, \beta\}=\alpha \beta(\alpha+\beta+1)^{-1}(\alpha+\beta)^{-2}\),因此我们可以得到: \[ \begin{align*}\langle p | C\rangle &=\frac{n^{(1)}+\alpha}{n^{(1)}+n^{(0)}+\alpha+\beta}=\frac{n^{(1)}+5}{N+10} \tag{26}\\ \mathrm{V}\{p | C\} &=\frac{\left(n^{(1)}+\alpha\right)\left(n^{(0)}+\beta\right)}{(N+\alpha+\beta+1)(N+\alpha+\beta)^{2}}=\frac{\left(n^{(1)}+5\right)\left(n^{(0)}+5\right)}{(N+11)(N+10)^{2}} \tag{27}\end{align*} \] 基于之前的结果,我们可以得到贝叶斯估计值为 \(\langle p | C\rangle = 17/30 = 0.567\),方差 \(\mathrm{V}\{p | C\} = 0.0079\)

可以看到,与 MAP 的结果相比,估计值更接近与先验分布的峰值 0.5,下图给出了三种估计方法的对比:

共轭分布

因为边际似然的复杂性,贝叶斯模型的计算通常是十分困难的。而得益于贝叶斯方法对先验分布的自由性,我们可以采用共轭先验分布的方法来简化计算。

共轭性

共轭先验分布 \(p(\vartheta)\) 的特点是:其与似然函数 \(p(x|\vartheta)\) 所构成的后验分布 \(p(\vartheta|x)\) 将具有与先验分布同样的概率分布,只是超参数有所不同(超参数融入了观察值)。贝叶斯推理章节中的 \((25)\) 式即体现了这一点,后验分布与先验分布一样均为 beta 分布,只是后验分布的超参数中添加了观察值。

共轭分布的最大好处是简化了计算,同时也有利于理解超参数的意义(如之前实例中将超参数理解为伪计数)。

进一步,共轭先验-似然对可以帮助将似然函数直接表示为超参数的形式(积分可解),如对于 beta-伯努利共轭,似然函数如下: \[ \begin{align*} p(C | \alpha, \beta) &=\int_{0}^{1} p(C | p) p(p | \alpha, \beta) \mathrm{d} p \tag{28}\\ &=\int_{0}^{1} p^{n^{(1)}}(1-p)^{n^{(0)}} \frac{1}{\mathrm{B}(\alpha, \beta)} p^{\alpha-1}(1-p)^{\beta-1} \mathrm{d} p \tag{29}\\ &=\frac{1}{\mathrm{B}(\alpha, \beta)} \int_{0}^{1} p^{n^{(1)}+\alpha-1}(1-p)^{n^{(0)+\beta-1} \mathrm{d} p} \tag{30}\\ &=\frac{\mathrm{B}\left(n^{(1)}+\alpha, n^{(0)}+\beta\right)}{\mathrm{B}(\alpha, \beta)}=\frac{\Gamma\left(n^{(1)}+\alpha\right) \Gamma\left(n^{(0)}+\beta\right)}{\Gamma\left(n^{(1)}+n^{(0)}+\alpha+\beta\right)} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} \tag{31}\end{align*} \] 上式中使用了 \(\int_{0}^{1} x^{a}(1-x)^{b} \mathrm{d} x=\mathrm{B}(a+1, b+1)\) 这一性质(第一类欧拉积分)。上述结果可以用于对未来发生的伯努利试验作出预测,仅基于先前的观察,而不需要精确的参数 \(p\),如下所示: \[ \begin{align*} p(\tilde{c}=1 | C, \alpha, \beta) &=\frac{p(\tilde{c}=1, C | \alpha, \beta)}{p(C | \alpha, \beta)}=\frac{\frac{\Gamma\left(n^{(1)}+1+\alpha\right)}{\Gamma\left(n^{(1)}+1+n^{(0)}+\alpha+\beta\right)}}{\frac{\Gamma\left(n^{(1)}+\alpha\right)}{\Gamma\left(n^{(1)}+n^{(0)}+\alpha+\beta\right)}} \tag{32}\\ &=\frac{n^{(1)}+\alpha}{n^{(1)}+n^{(0)}+\alpha+\beta} \tag{33}\end{align*} \] 上式中使用了 \(\Gamma(x+1)=x \Gamma(x)\) 这一性质。

除了beta-伯努利共轭,还有一些重要的先验-似然共轭对,可以用来简化版贝叶斯推理的过程。其中之一就是beta-二项共轭。二项分布给出了对于 \(N\) 个伯努利试验(参数为 \(p\)),其中出现 \(n^{(1)}\) 次正面向上的概率: \[ p(n^{(1)} | p, N)=\left(\begin{array}{c}{N} \\ {n^{(1)}}\end{array}\right) p^{n^{(1)}}(1-p)^{n^{(0)}} \triangleq \operatorname{Bin}(n^{(1)} | p, N) \tag{34} \] 因为其参数 \(p\) 与伯努利分布的意义相同,所以其共轭先验分布同样为 beta 分布。同理,其他与伯努利试验相关的分布也与 beta 分布共轭,如负二项分布。

多元情况

之前讨论的均为二元情况,如果我们将事件从 2 种推广至 K 种(有限),就可以得到一个 K-维伯努利(或多项)试验,例如掷骰子。重复这一试验,我们就可以得到多项分布,其给出 \(N\) 次试验下各事件的发生次数的概率分布: \[ p(\vec{n} | \vec{p}, N)=\left(\begin{array}{c}{N} \\ {\vec{n}}\end{array}\right) \prod_{k=1}^{K} p_{k}^{n^{(k)}} \triangleq \operatorname{Mult}(\vec{n} | \vec{p}, N) \tag{35} \] 其中多项式因子 \(\left(\begin{array}{c}{N} \\ {\vec{n}}\end{array}\right)=\frac{N !}{\prod_{k} n^{(k)}!}\),元素 \(\vec{p}\)\(\vec{n}\) 满足约束 \(\Sigma_{k} p_{k}=1\) 以及 \(\sum_{k} n^{(k)}=N\)

对于单次的多项试验,其概率分布如下: \[ p(\vec{n} | \vec{p})=\prod_{k=1}^{K} p_{k}^{n^{(k)}}=\operatorname{Mult}(\vec{n} | \vec{p}, 1) \tag{36} \] 其中 \(\vec{n}\) 中仅有一项元素为 1,其他均为 0(表示该次试验对应的发生事件 \(n^{(z)} = 1\)),我们可以对上式进行简化,使用非 0 元素 \(z\) 替换向量 \(\vec{n}\),如下所示: \[ p(z | \vec{p})=p_{z} \triangleq \operatorname{Mult}(z | \vec{p}) \tag{37} \] 基于上式,对于 N 次重复的多项试验,观察集 \(C\) 的似然函数可以表示为: \[ p(C | \vec{p})=\prod_{n=1}^{N} \operatorname{Mult}\left(C=z_{i} | \vec{p}\right)=\prod_{n=1}^{N} p_{z i}=\prod_{k=1}^{K} p_{k}^{n^{(k)}} \tag{38} \] 其结果恰好为多项分布省略多项式因子,产生这一区别的原因在于上式中我们给定了一个 \(N\) 次试验的输出序列,而不是计算特定的多项式向量 \(\vec{n}\) 的概率(任意向量),其对应了 \(\left(\begin{array}{c}{N} \\ {\vec{n}}\end{array}\right)\) 种不同情况(二元情况下对应于多次重复伯努利试验观察与多次试验中 \(n^{(1)}\) 次正面向上的概率)。

对于多项分布中的参数 \(\vec{p}\),其对应的共轭先验为狄利克雷分布,即 beta 分布在多维空间的推广: \[ \begin{align*} p(\vec{p} | \vec{\alpha})=\operatorname{Dir}(\vec{p} | \vec{\alpha}) & \triangleq \frac{\Gamma\left(\sum_{k=1}^{K} \alpha_{k}\right)}{\prod_{k=1}^{K} \Gamma\left(\alpha_{k}\right)} \prod_{k=1}^{K} p_{k}^{\alpha_{k}-1} \tag{39}\\ & \triangleq \frac{1}{\Delta(\vec{\alpha})} \prod_{k=1}^{K} p_{k}^{\alpha_{k}-1}, \quad \Delta(\vec{\alpha})=\frac{\prod_{k=1}^{\operatorname{dim} \vec{\alpha}} \Gamma\left(\alpha_{k}\right)}{\Gamma\left(\sum_{k=1}^{\operatorname{dim} \vec{\alpha}} \alpha_{k}\right)} \tag{40}\end{align*} \] 其中 \(\vec{\alpha}\) 为超参数,\(\Delta(\vec{\alpha})\) 用于简化表达,下图给出了三维空间下狄利克雷分布的一个示例:

在很多的应用中,会使用对称狄利克雷分布,其基于一个标量参数 \(\alpha=\sum \alpha_{k} / K\) 和维数 \(K\) 定义: \[ \begin{align*} p(\vec{p} | \alpha, K)=\operatorname{Dir}(\vec{p} | \alpha, K) & \triangleq \frac{\Gamma(K \alpha)}{\Gamma(\alpha)^{K}} \prod_{k=1}^{K} p_{k}^{\alpha-1} \tag{41}\\ & \triangleq \frac{1}{\Delta_{K}(\alpha)} \prod_{k=1}^{K} p_{k}^{\alpha-1}, \quad \Delta_{K}(\alpha)=\frac{\Gamma(\alpha)^{K}}{\Gamma(K \alpha)} \tag{42}\end{align*} \]

文本建模

下面我们将上述知识应用于文本建模之中,考虑从一个大小为 \(V\) 的词库 \(\mathcal{V}\) 中抽取 \(N\) 个单词,单词集合记为 \(\mathcal{W}\) ,则样本的似然函数为: \[ L(\vec{p} | \mathcal{W})=p(\mathcal{W} | \vec{p})=\prod_{t=1}^{V} p_{t}^{n^{(t)}}, \quad \sum_{t=1}^{V} n^{(t)}=N, \quad \sum_{t=1}^{V} p_{t}=1 \tag{43} \] 其中 \(n^{(t)}\) 是样本中单词 \(t\) 的出现次数。该模型即为 unigram model,其给出了词库 \(\mathcal{V}\) 的概率分布 \(\operatorname{Mult}(t \in \mathcal{V} | \vec{p})\),仅仅考虑了整个语料库的似然函数。基于 unigram model,我们可以提出更多复杂的模型。

如果我们引入贝叶斯推理,考虑参数 \(\vec{p}\) 的先验分布,则基于共轭理论,其先验分布可以使用狄利克雷分布 \(\vec{p} \sim \operatorname{Dir}(\vec{p} | \vec{\alpha})\),类比 \((25)\) 式,我们可以得到参数的狄利克雷后验分布,其将观察值 \(\mathcal{W}\) 与先验伪计数进行了结合: \[ \begin{align*} p(\vec{p} | \mathcal{W}, \vec{\alpha}) &=\frac{\prod_{n=1}^{N} p\left(w_{n} | \vec{p}\right) p(\vec{p} | \vec{\alpha})}{\int_{p} \prod_{n=1}^{N} p\left(w_{n} | \vec{p}\right) p(\vec{p} | \vec{\alpha}) \mathrm{d} \vec{p}} \tag{44}\\ &=\frac{1}{Z} \prod_{t=1}^{V} p^{n^{(t)}} \frac{1}{\Delta(\vec{\alpha})} p^{\alpha_{t}-1} \tag{45}\\ &=\frac{1}{\Delta(\vec{\alpha}+\vec{n})} \prod_{t=1}^{V} p^{\alpha_{t}+n^{(t)}-1} \tag{46}\\ &=\operatorname{Dir}(\vec{p} | \vec{\alpha}+\vec{n}) \tag{47}\end{align*} \] 对于新的文本,我们希望能够基于先验观察直接进行建模,绕过参数 \(\vec{p}\),即使用超参数来表示似然函数: \[ p(\mathcal{W} | \vec{\alpha})=\int_{\vec{p} \in \mathcal{P}} p(\mathcal{W} | \vec{p}) p(\vec{p} | \vec{\alpha}) \mathrm{d}^{V} \vec{p} \tag{48} \] 注意上式的积分区间受 \(\sum_{k} p_{k}=1\) 约束,实际为 \((K-1)\) 维空间。使用狄利克雷第一类积分性质,可以得到: \[ \begin{align*} p(\mathcal{W} | \vec{\alpha}) &=\int_{\vec{p} \in \mathcal{P}} \prod_{n=1}^{N} \operatorname{Mult}\left(W=w_{n} | \vec{p}, 1\right) \operatorname{Dir}(\vec{p} | \vec{\alpha}) \mathrm{d} \vec{p} \tag{49}\\ &=\int_{\vec{p} \in \mathcal{P}} \prod_{v=1}^{V} p_{v}^{n^{(v)}} \frac{1}{\Delta(\vec{\alpha})} \prod_{v=1}^{V} p_{v}^{\alpha_{v}-1} \mathrm{d}^{V} \vec{p} \tag{50}\\ &=\frac{1}{\Delta(\vec{\alpha})} \int_{\vec{p} \in \mathcal{P}} \prod_{v=1}^{V} p_{v}^{n^{(v)}+\alpha_{v}-1} \mathrm{d}^{V} \vec{p} \tag{51}\\ &=\frac{\Delta(\vec{n}+\vec{\alpha})}{\Delta(\vec{\alpha})}, \quad \vec{n}=\{n^{(v)}\}_{v=1}^{V} \tag{52}\end{align*} \] 结果与 beta-伯努利案例类似,似然函数仅由观察值与先验伪计数构成。式 \((52)\) 又称为狄利克雷-多项分布。

贝叶斯网络和生成过程

本章节将介绍两种表达系统概率行为的方法:贝叶斯网络和生成过程。

贝叶斯网络

贝叶斯网络(BN)是一种正式的图语言,用于表达一个系统或现象的联合分布,形式为基于随机变量及其条件依赖的有向图。BN 是图模型的一种,图模型还包括无向图模型(马尔科夫随机场)、混合模型等。贝叶斯网络简化了推理计算,只考虑最相关的依赖关系。

具体来说,贝叶斯网络为一个有向无环图,其中节点表示随机变量,边表示对应的条件概率分布。位于一条有向边起点的条件变量被称为父节点,位于边终点的依赖变量被称为子节点。贝叶斯网络区分证据节点隐藏节点,其中证据节点表示被观察(或假定被观察)的变量,隐藏节点表示潜在变量。证据节点以双圆圈表示,隐藏节点以单圆圈表示。

在很多模型中,存在共享父节点(或子节点)的节点,这些节点可以理解为独立同分布。这种重复可以通过方框表示,右下角给出重复数。

下图给出了狄利克雷-多项模型中的贝叶斯网络。

条件独立和可交换性

贝叶斯网络通过图的拓扑结构来编码随机变量间的依赖结构。基于这种拓扑结构,我们提出独立性中的一个重要概念:条件独立。给定一个条件 \(Z\),如果两个变量 \(X\)\(Y\) 满足 \(p(X, Y | Z)=p(X | Z) \cdot p(Y | Z)\),则称这两个变量条件独立,记作 \(X \perp Y | Z\)。一个对于条件独立的口头表述是:已知 \(Z\),任何关于变量 \(X\) 的信息都不会添加到关于变量 \(Y\) 的信息之中,反之亦然。这里的信息包括观察值或参数(变量)。

在贝叶斯网络中,关于一个节点的条件独立性,有两条通用的规则(马尔科夫条件):

  1. 马尔科夫毯(Markov blanket):其定义为一个贝叶斯网络的子图,其中包含一个节点的父节点、子节点以及其子节点的父节点。对于一个节点 \(X_i\) ,给定其马尔科夫毯 \(B(X_i)\),其与所有其他的节点 \(X_{\neg i}\) 条件独立:\(X_{i} \perp X_{\neg i} | B\left(X_{i}\right)\).

  2. 非后代节点(non-descendants):在一个以拓扑顺序(没有节点出现在其父节点之前)排列的贝叶斯网络节点序列中,一个节点的所有非父节点的前置节点均为其非后代节点。对于一个节点 \(X_i\),给定其父节点 \(P(X_i)\) 其总是与其非后代节点 \(N(X_i)\) 条件独立:\(X_{i} \perp N(X_i) | P\left(X_{i}\right)\).

为了判断在一个贝叶斯网络中任意节点之间的条件独立性 \(X \perp Y | Z\),一个直接的方法就是贝叶斯球,其尝试去从节点 \(X\) 向节点 \(Y\) 传递一个消息(贝叶斯球),给定节点 \(Z\)。当且仅当无法从 \(X\) 将球传递至 \(Y\) (反之也需成立)时,我们有 \(X \perp Y | Z\)。该方法对节点集合同样适用,\(\left\{X_{i}\right\} \perp\left\{Y_{j}\right) |\left\{Z_{k}\right\}\) 成立当且仅当所有的节点对 \((X_i,Y_i)\) 均被节点集合 \(\{Z_k\}\) 隔离,即没有贝叶斯球的传递路径。

下图给出了贝叶斯球的判断规则(部分),可以分为三种情况:子节点、父节点以及传递节点。弯箭头表示隔离,直箭头表示可通过。总结起来即对于子节点来说,当且仅当其为隐藏节点时会阻碍传递;对于父节点和传递节点来说,当且仅当其为证据节点(或作为条件)时会阻碍传递。

以狄利克雷-多项模型为例,给定参数 \(\vec{p}\)(传递节点),由于其作为条件(注意在原网络中其为隐藏节点),所以会阻碍传递,因此观察 \(\vec{w}\) 和超参数 \(\alpha\) 并条件独立。

下图给出了一种更加直观的贝叶斯球判断规则:

截止箭头表示贝叶斯球无法通过。基于上述规则,给出下面两个案例:

在贝叶斯网络中,比条件独立更强力也更重要的独立关系就是可交换性。任意随机变量样本的有限序列 \(\{X_n\}_n\) 被认为可交换,当且仅当其联合分布与其排列顺序无关:\(p\left(\left\{X_{n}\right\}_{n=1}^{N}\right)= p\left(\left\{X_{\mathrm{Perm}(n)}\right\}_{n=1}^{N}\right)\). 对于一个无限序列,当其任意有限序列满足上述条件,则该无限序列也具有可交换性。

可交换性的重要性在于其引出了 de Finetti 定理:一个随机变量的无限可交换序列的联合分布等价于基于某个先验分布采样一个随机参数,然后以该参数为条件,采样生成独立同分布的随机变量序列。该联合分布(下式为有限序列)即为: \[ p\left(\left\{x_{m}\right\}_{m=1}^{M}\right)=\prod_{m=1}^{M} p\left(x_{m} | \vartheta\right) \] 在贝叶斯网络中,给定父节点下的可交换性可以使用方框来表示,可以理解为变量在给定条件(父节点)下满足独立同分布。在贝叶斯文本建模中,可交换性对应于词袋模型假设。

生成过程

贝叶斯网络对一个观察现象的生成过程给出了直观的描述。生成过程用于表示观察值是如何通过隐藏变量生成并传递的,以狄利克雷-多项模型为例,一个词语的生成过程如下所示: \[ \begin{align*}\vec{p} &\sim \operatorname{Dir}(p | \alpha) \tag{53}\\ w &\sim \operatorname{Mult}(w | \vec{p})\tag{54} \end{align*} \] 其表明,参数 \(\vec{p}\) 采样自狄利克雷分布,之后词语 \(w\) 采样自以 \(\vec{p}\) 的多项分布。

贝叶斯推理的任务是转置生成过程,基于给定的观察值生成参数值(后验分布),注意只有在特殊情况(比如共轭)下才能推导出完整的后验分布。

基于上述基础知识,下半部分将给出 LDA 的完整概述。