隐式狄利克雷分布(LDA)的变分推断(Variational Inference)算法原理与参数估计过程
题目描述
隐式狄利克雷分布(LDA)是一种生成式概率模型,用于从文本集合中自动发现潜在主题。模型假设每篇文档由多个主题混合而成,每个主题是词表上的概率分布。LDA的推断目标是计算后验分布(即给定文档下主题结构和参数的分布),但后验计算因耦合的隐变量(主题分配)而难以直接求解。变分推断(VI)通过引入一个简化的可分解分布(变分分布)来逼近真实后验,并通过优化变分参数最小化逼近分布与真实后验的KL散度。本题要求详细解释LDA的变分推断算法(又称变分EM),包括模型设定、变分分布设计、证据下界(ELBO)推导、变分参数优化过程,以及变分EM迭代步骤。
解题过程
-
LDA模型生成过程回顾
- 对于每个主题 \(k \in [1, K]\),从狄利克雷分布 \(\text{Dir}(\beta)\) 生成主题-词分布 \(\phi_k\)(\(\beta\) 为超参数)。
- 对于每篇文档 \(d \in [1, M]\):
- 从狄利克雷分布 \(\text{Dir}(\alpha)\) 生成文档-主题分布 \(\theta_d\)(\(\alpha\) 为超参数)。
- 对于文档中的每个词位置 \(n \in [1, N_d]\):
- 从多项式分布 \(\text{Mult}(\theta_d)\) 生成主题编号 \(z_{dn}\)。
- 从多项式分布 \(\text{Mult}(\phi_{z_{dn}})\) 生成词 \(w_{dn}\)。
- 隐变量包括所有 \(z_{dn}\)(主题分配)和 \(\theta_d\)、\(\phi_k\),观测变量为词 \(w_{dn}\)。
-
变分推断核心思想
- 真实后验 \(p(\theta, z, \phi \mid w, \alpha, \beta)\) 因 \(\theta\) 和 \(z\) 的耦合而难以计算。
- 引入变分分布 \(q(\theta, z, \phi \mid \lambda, \gamma, \phi)\),假设其可分解为:
\[ q = \prod_{d=1}^M q(\theta_d \mid \gamma_d) \prod_{n=1}^{N_d} q(z_{dn} \mid \phi_{dn}) \prod_{k=1}^K q(\phi_k \mid \lambda_k) \]
其中 $ \gamma_d $ 是文档 $ d $ 的狄利克雷参数,$ \phi_{dn} $ 是主题分配的多项式参数,$ \lambda_k $ 是主题 $ k $ 的狄利克雷参数。
- 目标是最小化 \(q\) 与真实后验的KL散度,等价于最大化证据下界(ELBO):
\[ \mathcal{L}(q) = \mathbb{E}_q[\log p(w, \theta, z, \phi \mid \alpha, \beta)] - \mathbb{E}_q[\log q(\theta, z, \phi)] \]
- ELBO的具体推导
- 联合概率分布的对数:
\[ \log p(w, \theta, z, \phi \mid \alpha, \beta) = \log p(\phi \mid \beta) + \sum_{d=1}^M \left[ \log p(\theta_d \mid \alpha) + \sum_{n=1}^{N_d} \left( \log p(z_{dn} \mid \theta_d) + \log p(w_{dn} \mid z_{dn}, \phi) \right) \right] \]
- 代入ELBO定义,利用变分分布的可分解性,将期望拆分为对 \(\theta_d\)、\(z_{dn}\)、\(\phi_k\) 的独立积分。
- 最终ELBO表达式为(忽略常数项):
\[ \mathcal{L} = \sum_{d=1}^M \left[ \mathbb{E}_q[\log p(\theta_d \mid \alpha)] - \mathbb{E}_q[\log q(\theta_d \mid \gamma_d)] + \sum_{n=1}^{N_d} \left( \mathbb{E}_q[\log p(z_{dn} \mid \theta_d)] - \mathbb{E}_q[\log q(z_{dn} \mid \phi_{dn})] + \mathbb{E}_q[\log p(w_{dn} \mid z_{dn}, \phi)] \right) \right] + \sum_{k=1}^K \left[ \mathbb{E}_q[\log p(\phi_k \mid \beta)] - \mathbb{E}_q[\log q(\phi_k \mid \lambda_k)] \right] \]
- 其中狄利克雷-多项式分布的期望有解析形式(如 \(\mathbb{E}[\log \theta_{dk}] = \psi(\gamma_{dk}) - \psi(\sum_j \gamma_{dj})\),\(\psi\) 为digamma函数)。
- 变分参数优化(E步)
- 固定全局参数 \(\lambda_k\)(主题分布),优化每个文档的局部参数 \(\gamma_d\) 和 \(\phi_{dn}\):
- 更新 \(\phi_{dn}\):
- 固定全局参数 \(\lambda_k\)(主题分布),优化每个文档的局部参数 \(\gamma_d\) 和 \(\phi_{dn}\):
\[ \phi_{dnk} \propto \exp\left( \mathbb{E}_q[\log \theta_{dk}] + \mathbb{E}_q[\log \phi_{k, w_{dn}}] \right) = \exp\left( \psi(\gamma_{dk}) - \psi(\sum_j \gamma_{dj}) + \psi(\lambda_{k, w_{dn}}) - \psi(\sum_v \lambda_{kv}) \right) \]
需对 $ k $ 归一化使 $ \sum_k \phi_{dnk} = 1 $。
- **更新 $ \gamma_d $**:
\[ \gamma_{dk} = \alpha_k + \sum_{n=1}^{N_d} \phi_{dnk} \]
表示文档 $ d $ 中主题 $ k $ 的预期计数。
- 迭代更新 \(\phi_{dn}\) 和 \(\gamma_d\) 直至收敛(通常少量迭代即可)。
- 全局参数优化(M步)
- 固定局部参数,更新全局主题-词分布参数 \(\lambda_k\):
\[ \lambda_{kv} = \beta_v + \sum_{d=1}^M \sum_{n=1}^{N_d} \phi_{dnk} \cdot \mathbb{I}(w_{dn} = v) \]
其中 $ \mathbb{I} $ 为指示函数,统计词 $ v $ 被分配给主题 $ k $的预期次数。
- 超参数 \(\alpha\) 和 \(\beta\) 可通过经验贝叶斯方法优化(此处略)。
- 变分EM算法整体流程
- 初始化:随机设置 \(\lambda_k\),或从均匀分布开始。
- 循环直至ELBO收敛:
- E步:对每篇文档 \(d\),迭代更新 \(\phi_{dn}\) 和 \(\gamma_d\)。
- M步:用所有文档的统计量更新 \(\lambda_k\)。
- 计算ELBO:监控收敛情况。
- 输出:变分参数 \(\gamma_d\)(文档主题分布)、\(\lambda_k\)(主题词分布),以及主题分配 \(\phi_{dn}\)。
关键点说明
- 变分推断通过可分解假设将复杂推断转化为坐标上升优化,效率高于MCMC但可能低估后验方差。
- ELBO的优化过程交替局部(文档级)和全局(语料级)参数,体现变分EM的特点。
- 实际中常使用更高效的变分方法(如随机VI)处理大规模数据。