隐式狄利克雷分布(LDA)的在线变分贝叶斯(Online Variational Bayes)算法原理与参数更新过程
题目描述
在线变分贝叶斯(Online Variational Bayes, OVB)是隐式狄利克雷分布(Latent Dirichlet Allocation, LDA)的一种高效推断算法,用于从大规模文档流中动态学习主题模型。传统批处理变分推断(如随机变分推断SVI)需多次遍历全数据集,而OVB通过增量更新变分参数,每次仅使用小批量文档,逐步优化主题-词分布和文档-主题分布。本题将详细讲解OVB的数学模型、在线更新步骤及其收敛性保证。
解题过程(循序渐进)
1. 背景与问题形式化
LDA的生成过程为:
- 每个主题 \(k\) 生成一个词分布 \(\beta_k \sim \text{Dir}(\eta)\)。
- 每篇文档 \(d\) 生成主题比例 \(\theta_d \sim \text{Dir}(\alpha)\)。
- 对文档 \(d\) 的每个词位置 \(n\):
- 采样主题 \(z_{dn} \sim \text{Multinomial}(\theta_d)\),
- 采样词 \(w_{dn} \sim \text{Multinomial}(\beta_{z_{dn}})\)。
目标:给定文档集 \(\mathcal{D}\),推断后验分布 \(p(\beta, \theta, z | \mathcal{D})\)。由于后验难解,变分推断用可分解的分布 \(q(\beta, \theta, z) = \prod_k q(\beta_k) \prod_d q(\theta_d, z_d)\) 近似,其中:
- \(q(\beta_k) = \text{Dir}(\lambda_k)\)(主题-词变分参数 \(\lambda_{kv}\) 表示词 \(v\) 在主题 \(k\) 中的权重),
- \(q(\theta_d) = \text{Dir}(\gamma_d)\)(文档-主题变分参数 \(\gamma_{dk}\) 表示文档 \(d\) 中主题 \(k\) 的权重),
- \(q(z_{dn}) = \text{Multinomial}(\phi_{dn})\)(主题分配变分参数 \(\phi_{dnk}\) 表示词 \(n\) 属于主题 \(k\) 的概率)。
传统变分推断需迭代更新所有文档的 \(\{\gamma_d, \phi_d\}\) 和全局参数 \(\lambda\),计算成本随文档数量线性增长。在线变分贝叶斯(OVB)的核心思想是:将全局参数 \(\lambda\) 的更新拆分为基于小批量的随机梯度下降。
2. 变分下界的分解
变分下界(Evidence Lower Bound, ELBO)可分解为全局部分和局部部分:
\[\mathcal{L} = \sum_{d=1}^D \mathcal{L}_d(\lambda, \gamma_d, \phi_d) + \log p(\lambda | \eta), \]
其中 \(\mathcal{L}_d\) 是文档 \(d\) 对ELBO的贡献,依赖于全局参数 \(\lambda\) 和局部参数 \(\gamma_d, \phi_d\)。
在在线设置中,每次仅处理一个小批量文档 \(\mathcal{B} \subset \{1, \dots, D\}\),通过随机优化逐步更新 \(\lambda\)。
3. 在线变分贝叶斯算法步骤
步骤1:初始化全局参数
- 初始化主题-词变分参数 \(\lambda_{kv}\):可设为均匀值(如 \(\lambda_{kv} = 1 + \eta\))或基于小批量数据粗略估计。
- 设置学习率衰减参数 \(\kappa \in (0.5, 1]\) 和延迟参数 \(\tau \geq 0\),用于控制步长衰减速度。
步骤2:循环处理小批量文档
对每个小批量 \(\mathcal{B}\)(大小 \(|\mathcal{B}| \ll D\)):
- 局部变分推断:对每个文档 \(d \in \mathcal{B}\),固定全局参数 \(\lambda\),迭代更新局部参数直至收敛(通常几次迭代足够):
- 更新主题分配 \(\phi_{dnk}\):
\[ \phi_{dnk} \propto \exp\left( \Psi(\gamma_{dk}) + \Psi(\lambda_{k, w_{dn}}) - \Psi(\textstyle\sum_v \lambda_{kv}) \right), \]
其中 $\Psi$ 是Digamma函数。
- 更新文档-主题分布 \(\gamma_{dk}\):
\[ \gamma_{dk} = \alpha_k + \sum_{n=1}^{N_d} \phi_{dnk}. \]
- 计算自然梯度:基于当前小批量,计算全局参数 \(\lambda\) 的自然梯度(相对于狄利克雷分布的自然参数)。记小批量文档的局部变量为 \(\{\gamma_d, \phi_d\}_{d \in \mathcal{B}}\),则自然梯度方向为:
\[ \hat{g}(\lambda)_{kv} = \eta + \frac{D}{|\mathcal{B}|} \sum_{d \in \mathcal{B}} \sum_{n=1}^{N_d} \phi_{dnk} \cdot \mathbb{I}[w_{dn} = v] - \lambda_{kv}, \]
其中 \(\mathbb{I}[\cdot]\) 是指示函数。该梯度可解释为:用小批量中词的主题分配统计量,按比例放大到全数据集规模后,对当前 \(\lambda\) 的修正方向。
- 更新全局参数:
\[ \lambda_{kv} \leftarrow (1 - \rho_t) \lambda_{kv} + \rho_t \cdot \left( \eta + \frac{D}{|\mathcal{B}|} \sum_{d \in \mathcal{B}} \sum_{n=1}^{N_d} \phi_{dnk} \cdot \mathbb{I}[w_{dn} = v] \right), \]
其中 \(\rho_t = (t + \tau)^{-\kappa}\) 是第 \(t\) 次小批量迭代的学习率,满足 Robbins-Monro 条件(\(\sum_t \rho_t = \infty, \sum_t \rho_t^2 < \infty\)),确保收敛到局部最优。
- 直观理解:新 \(\lambda\) 是旧 \(\lambda\) 与小批量估计的加权平均,小批量估计将词频按主题分配 \(\phi_{dnk}\) 加权求和,并缩放至全数据集规模。
步骤3:判断收敛
- 监控在独立验证集上的困惑度(Perplexity)或变分下界的变化,若变化小于阈值或达到预设迭代次数,则停止。
4. 算法关键点解释
-
随机优化的合理性:
全数据集的ELBO关于 \(\lambda\) 的梯度可写为所有文档梯度的平均。OVB用无偏小批量梯度估计代替全批量梯度,通过递减学习率平滑噪声,保证收敛到平稳点。 -
自然梯度的意义:
在概率分布的流形上,标准梯度更新可能破坏参数约束(如 \(\lambda_{kv} > 0\))。自然梯度考虑分布空间的几何结构,在指数族分布下简化为上述形式,确保更新后的 \(\lambda\) 仍为有效的狄利克雷分布参数。 -
与随机变分推断(SVI)的关系:
OVB是SVI的特例,通常将SVI的“小批量+自然梯度”框架称为在线变分贝叶斯。二者核心区别仅在于:SVI更强调通过采样文档子集估计梯度,而OVB常指数据以流式到达、模型持续更新的场景。 -
超参数选择:
- 小批量大小 \(|\mathcal{B}|\):平衡方差与计算效率,通常取数十到数百篇文档。
- 学习率参数 \((\kappa, \tau)\):典型设置 \(\kappa=0.7, \tau=100\),保证初期快速更新、后期稳定。
5. 收敛性与扩展
- 理论保证:在凸问题下,OVB的迭代可收敛到全局最优;对LDA非凸问题,仍可收敛到局部最优。
- 扩展应用:
- 可结合稀疏优化处理大规模词表(如截断变分推断)。
- 支持动态主题模型(Dynamic Topic Models),通过时间窗滑动更新主题演变。
总结
在线变分贝叶斯(OVB)将LDA的变分推断转化为随机优化问题,通过小批量文档逐步更新全局主题-词分布。其核心步骤为:局部变分推断(更新 \(\phi_d, \gamma_d\)) → 计算自然梯度 → 以递减学习率更新 \(\lambda\)。该算法显著降低了内存和计算开销,适用于流式数据或大规模语料库的主题建模。