隐式狄利克雷分布(LDA)的吉布斯采样(Gibbs Sampling)推断过程
题目描述
隐式狄利克雷分布(Latent Dirichlet Allocation, LDA)是一种生成概率模型,用于从文档集合中自动发现潜在主题。给定文档集合(每篇文档表示为词袋),LDA假设每篇文档由多个主题混合生成,每个主题是词汇表上的概率分布。推断LDA的参数(即文档-主题分布和主题-词分布)通常使用吉布斯采样(Gibbs Sampling),这是一种马尔可夫链蒙特卡洛(MCMC)方法。本题要求详细讲解LDA的吉布斯采样推断过程,包括模型设定、采样公式推导和具体步骤。
解题过程
-
LDA模型回顾
- 假设有 \(D\) 篇文档、\(K\) 个主题、词汇表大小为 \(V\)。
- 每篇文档 \(d\) 的主题分布 \(\theta_d\) 服从狄利克雷分布 \(\text{Dir}(\alpha)\),其中 \(\alpha\) 是超参数。
- 每个主题 \(k\) 的词分布 \(\phi_k\) 服从狄利克雷分布 \(\text{Dir}(\beta)\),其中 \(\beta\) 是超参数。
- 生成过程:
- 对每篇文档 \(d\),从 \(\theta_d \sim \text{Dir}(\alpha)\) 采样主题分布。
- 对文档 \(d\) 中的每个词位置 \(i\):
- 采样主题 \(z_{d,i} \sim \text{Multinomial}(\theta_d)\)。
- 根据主题 \(z_{d,i}\) 对应的词分布 \(\phi_{z_{d,i}}\),采样词 \(w_{d,i} \sim \text{Multinomial}(\phi_{z_{d,i}})\)。
-
吉布斯采样原理
- 目标:估计后验分布 \(P(\mathbf{z} | \mathbf{w}, \alpha, \beta)\),其中 \(\mathbf{z}\) 是所有词的主题分配,\(\mathbf{w}\) 是所有观测词。
- 吉布斯采样通过迭代更新每个词的主题分配 \(z_{d,i}\),固定其他词的主题,逐步逼近后验分布。
- 核心是计算条件概率 \(P(z_{d,i} = k | \mathbf{z}_{-d,i}, \mathbf{w}, \alpha, \beta)\),其中 \(\mathbf{z}_{-d,i}\) 表示除当前词外所有其他词的主题分配。
-
条件概率推导
- 通过联合概率分布与贝叶斯公式,可得:
\[ P(z_{d,i} = k | \mathbf{z}_{-d,i}, \mathbf{w}, \alpha, \beta) \propto \frac{n_{d,-i}^{(k)} + \alpha_k}{\sum_{k'=1}^K (n_{d,-i}^{(k')} + \alpha_{k'})} \cdot \frac{n_{k,-i}^{(v)} + \beta_v}{\sum_{v'=1}^V (n_{k,-i}^{(v')} + \beta_{v'})} \]
其中:
- $ n_{d,-i}^{(k)} $:文档 $ d $ 中(除当前词 $ i $ 外)被分配给主题 $ k $ 的词数。
- $ n_{k,-i}^{(v)} $:主题 $ k $ 下(除当前词 $ i $ 外)词 $ v $(即 $ w_{d,i} = v $)出现的次数。
- $ \alpha_k, \beta_v $:超参数,通常取对称值(如 $ \alpha_k = \alpha, \beta_v = \beta $)。
- 公式直观解释:
- 第一项正比于文档 \(d\) 中主题 \(k\) 的流行度(考虑先验 \(\alpha\))。
- 第二项正比于主题 \(k\) 生成词 \(v\) 的概率(考虑先验 \(\beta\))。
- 采样步骤
- 初始化:随机为每个词分配一个主题 \(z_{d,i} \in \{1, \dots, K\}\),并初始化计数矩阵 \(n_{d}^{(k)}\)(文档-主题计数)和 \(n_{k}^{(v)}\)(主题-词计数)。
- 迭代采样:
- 遍历每篇文档 \(d\) 中的每个词 \(i\):
- 从当前主题分配中移除词 \(i\) 的计数:
- 遍历每篇文档 \(d\) 中的每个词 \(i\):
\[ n_{d}^{(z_{d,i})} \leftarrow n_{d}^{(z_{d,i})} - 1, \quad n_{z_{d,i}}^{(w_{d,i})} \leftarrow n_{z_{d,i}}^{(w_{d,i})} - 1 \]
- 根据条件概率公式计算新主题 $ k $ 的概率分布:
\[ P(z_{d,i} = k) \propto (n_{d,-i}^{(k)} + \alpha) \cdot \frac{n_{k,-i}^{(w_{d,i})} + \beta}{\sum_{v} n_{k,-i}^{(v)} + V\beta} \]
- 从该多项分布中采样新主题 $ z_{d,i}^{\text{new}} $,并更新计数:
\[ n_{d}^{(z_{d,i}^{\text{new}})} \leftarrow n_{d}^{(z_{d,i}^{\text{new}})} + 1, \quad n_{z_{d,i}^{\text{new}}}^{(w_{d,i})} \leftarrow n_{z_{d,i}^{\text{new}}}^{(w_{d,i})} + 1 \]
2. 重复迭代直到主题分配稳定(或达到预设迭代次数)。
- 参数估计:
- 文档-主题分布: \(\hat{\theta}_{d,k} = \frac{n_{d}^{(k)} + \alpha}{\sum_{k'} n_{d}^{(k')} + K\alpha}\)。
- 主题-词分布: \(\hat{\phi}_{k,v} = \frac{n_{k}^{(v)} + \beta}{\sum_{v'} n_{k}^{(v')} + V\beta}\)。
- 关键点说明
- 吉布斯采样通过局部更新避免直接计算复杂后验,但需足够迭代次数以确保收敛。
- 超参数 \(\alpha, \beta\) 影响主题稀疏性,通常通过经验选择或超参数优化调整。
- 实际应用中需对计数矩阵进行平滑(加先验),避免零概率问题。
通过以上步骤,LDA的吉布斯采样能够有效从文档集合中推断出潜在主题结构。