wjianjun的个人博客分享 http://blog.sciencenet.cn/u/wjianjun

博文

话题模型之LDA(Latent Dirichlet Allocation)介绍

已有 8472 次阅读 2014-6-4 22:39 |系统分类:科研笔记

  最近我阅读了文献[1]的一部分,在这里说说自己对LDA的理解,希望有助于读者对LDA的学习。有不正确的地方,请留言赐教。

  LDA是一种话题建模的方法,他认为每个文档是按如下算法产生的:

其中 $\pmb{\alpha},\pmb{\theta}$ 都是 $k$ 维向量, $k$ 是预设的话题个数, $\theta_i$ 表示本文档属于话题 $i$ 的概率。 $N$ 是当前文档的单词总数。 $z_n$ 表示第 $n$ 个单词来自哪个话题。 $\pmb{\beta}_i$ 是 $V$ 维向量, $V$ 表示由全体单词组成的词库中的单词总数。接下来令 $\pmb{\beta}=[\pmb{\beta}_1^T,\pmb{\beta}_2^T,\ldots,\pmb{\beta}_k^T]$ , $w_n$ 表示文档中华第 $n$ 个单词是词库中的第几个词。 词库中第 $j$ 个单词出现在话题 $i$ 中的概率为 $\beta_{ij}$ 。从而有如下联合概率:

$p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})=p(\pmb{\theta}|\pmb{\alpha})p(\pmb{z}|\pmb{\theta})p(\pmb{w}|\pmb{z},\pmb{\beta})=p(\pmb{\theta}|\pmb{\alpha})\prod_{n=1}^{N}\left( p(z_n|\pmb{\theta})p(w_n|\pmb{\beta}_{z_n})\right) \quad (1)$

其中, $\pmb{z}$ 是 $N$ 长的向量, $z_n$ 表示第 $n$ 个单词来自哪个话题。 $\pmb{w}$ 是 $N$ 长的向量,表示当前文档的所有单词, $w_n$ 表示文档的第 $n$ 个单词。并且,

$p(\pmb{\theta}|\pmb{\alpha}) \sim Dirichlet(\pmb{\alpha})\quad (2)$

$p(z_n|\pmb{\theta}) \sim multinomial(\pmb{\theta})\Rightarrow p(z_n=i|\pmb{\theta})=\theta_i \quad (3)$

$p(w_n|\pmb{\beta}_{z_n}) \sim multinomial(\pmb{\beta}_{z_n}) \Rightarrow p(w_n=j|\pmb{\beta}_{i})=\beta_{ij}\quad (4)$

    $Dirichlet$ 表示Dirichlet分布, $multinomial$ 表示多项分布(multinomial distribution),Dirichlet分布的具体形式如下:

$p(\pmb{\theta}|\pmb{\alpha}) \sim Dirichlet(\pmb{\alpha})=\frac{\Gamma(\sum_{i=1}^{k}\alpha_i)}{\prod_{i=1}^{k}\Gamma(\alpha_i)}\theta_1^{\alpha_1-1}\cdots \theta_k^{\alpha_k-1} \quad (5)$

我们的目的是给定文档 $\pmb{w}$ 时,求出该文档每种话题分布的概率以及文档中每个单词来自于每个话题的概率,也就是要求解概率分布 $p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta})$ 。因为,

$p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta})=\frac{p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})}{p(\pmb{w}|\pmb{\alpha},\pmb{\beta})}$

其中,

$\begin{aligned} p(\pmb{w}|\pmb{\alpha},\pmb{\beta})&=\int\sum_{\pmb{z}}p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})d\pmb{\theta} \\ &=\int\sum_{\pmb{z}}p(\pmb{\theta}|\pmb{\alpha})\prod_{n=1}^{N}\left( p(z_n|\pmb{\theta})p(w_n|\pmb{\beta}_{z_n})\right)d\pmb{\theta} \\ \end{aligned}$

其中涉及到很大的求和( $\pmb{z}$ 的维数可能很高)和复杂的积分,精确计算比较困难的。所以我们采用变分法(variational methods)近似计算。这里所谓的变分法的主要是思想是用带参数(变分参数)的简单分布去逼近一个复杂分布,我们可以不断调整变分参数使逼近得更好。

$\begin{aligned} \log p(\pmb{w}|\pmb{\alpha},\pmb{\beta})=&\log \int\sum_{\pmb{z}}p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})d\pmb{\theta} \\ =& \log \int\sum_{\pmb{z}}\frac{p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta}) q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})}{q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})}d\pmb{\theta}\\ \geq& \int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log \frac{p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})}{q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})}d\pmb{\theta}\\ =&\int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})d\pmb{\theta}\\ &-\int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})d\pmb{\theta}\\ & \triangleq L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta}) \quad (6)\\ \end{aligned}$

Jesen不等式使得其中的 $\geq$ 成立, $\triangleq$ 表示定义为。 $q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})$ 是一个带参数的任意分布。可以很容易地获得如下结论:

$\log p(\pmb{w}|\pmb{\alpha},\pmb{\beta})-L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})=KL(q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi}) \| p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta}))$

其中, $KL(q \| p)$ 表示两个分布之间的KL散度(Kullback–Leibler divergence)。将KL散度的定义带入便可以验证这个结论。我们可以看出 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 越大, $KL(q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi}) \| p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta}))$ 就越小,那么 $q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})$ 就越接近 $p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta})$ 。至此,我们得到了如下结论:

    因为 $p(\pmb{\theta},\pmb{z}|\pmb{w},\pmb{\alpha},\pmb{\beta})$ 难以计算,故我们用一个简单分布 $q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})$ 逼近他。逼近的效果,我们用这两个分布的KL距离 $KL(q \| p)$ 表示,我们希望最小化这个距离,而最小化这个距离等价于最大化 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 。于是我们需要调整变分参数 $\pmb{\gamma},\pmb{\phi}$ 使得$ $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 最大。

   那么我们究竟采用什么样的 $q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})$ 呢?我们采用最简单的形式:

$q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})=q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})=q(\pmb{\theta}|\pmb{\gamma})\prod_{i=1}^{N}q(z_n|\phi_n) \quad (7)$

$\pmb{\gamma}$ 是 $k$ 维向量。 $\pmb{\phi}$ 是 $k \times N$ 的矩阵, $\phi_n$ 是其第 $n$ 列。并且,

$q(\pmb{\theta}|\pmb{\gamma}) \sim Dirichlet(\pmb{\gamma}) \quad (8)$

$q(z_n|\phi_n) \sim multinomial(\phi_n)\Rightarrow q(z_n=i|\phi_n)=\phi_{ni} \quad (9)$

接下来,我们展开 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 的第一项,因为

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log p(\pmb{\theta},\pmb{z},\pmb{w}|\pmb{\alpha},\pmb{\beta})d\pmb{\theta}\\ &=\int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log p(\pmb{\theta}|\pmb{\alpha})p(\pmb{z}|\pmb{\theta})p(\pmb{w}|\pmb{z},\pmb{\beta})d\pmb{\theta}\\ &=\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{\theta}|\pmb{\alpha})p(\pmb{z}|\pmb{\theta})p(\pmb{w}|\pmb{z},\pmb{\beta})d\pmb{\theta}\\ &=\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{\theta}|\pmb{\alpha})d\pmb{\theta}\\ &+\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{z}|\pmb{\theta})d\pmb{\theta}\\ &+\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{w}|\pmb{z},\pmb{\beta})d\pmb{\theta} \quad (10)\\ \end{aligned}$

第一个等号是因为带入式(1)而得到的。第二个等号是因为带入式(7)而得到的。第三个等号则是由对数函数的和差公式而得到的。类似地,我们展开第二项,

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})\log q(\pmb{\theta},\pmb{z}|\pmb{\gamma},\pmb{\phi})d\pmb{\theta}\\ &=\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})d\pmb{\theta}\\ &=\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log q(\pmb{\theta}|\pmb{\gamma})d\pmb{\theta}\\ &+\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log q(\pmb{z}|\pmb{\phi})d\pmb{\theta} \quad (11)\\ \end{aligned}$

现在我们把 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 展开成五项,接下来我们继续化简这五项。继续化简前,我们先介绍两个定理。

    定理1.可以表示成

$p(\pmb{x})=h(\pmb{x})exp\left( \sum_{j=1}^{k}\eta_jT_j(\pmb{x})-A(\pmb{\eta})\right)$

的概率分布称为指数族分布,对于指数族分布有,

$E(T_j(\pmb{x}))=\int p(\pmb{x})T_j(\pmb{x})d\pmb{x} =\frac{\partial A(\pmb{\eta})}{\partial \eta_j}$

    定理1说的是指数族分布的一个重要性质,他的证明比较复杂。因为,

$\begin{aligned} &q(\pmb{\theta}|\pmb{\gamma})=\exp \left( \log q(\pmb{\theta}|\pmb{\gamma}) \right)\\ &=\exp \left( \log \frac{\Gamma(\sum_{i=1}^{k}\gamma_i)}{\prod_{i=1}^{k}\Gamma(\gamma_i)}\theta_1^{\gamma_1-1}\cdots \theta_k^{\gamma_k-1} \right)\\ &=\exp \left( \sum_{i=1}^{k}(\gamma_i-1)\log\theta_i+\log \frac{\Gamma(\sum_{i=1}^{k}(\gamma_i-1+1))}{\prod_{i=1}^{k}\Gamma(\gamma_i-1+1)} \right)\\ \end{aligned}$

如果,我们令 $\eta_i=\gamma_i-1,\log\theta_i=T_i(\pmb{\theta})$ ,那么Dirichlet分布也是指数族分布,且由定理1还有,

$\begin{aligned} \int q(\pmb{\theta}|\pmb{\gamma}) \log\theta_id\pmb{\theta}&= \frac{\partial }{\partial \gamma_i} \left( -\log \frac{\Gamma(\sum_{i=1}^{k}\gamma_i)}{\prod_{i=1}^{k}\Gamma(\gamma_i)} \right)\\ &=-\frac{\partial }{\partial \gamma_i} \log \Gamma(\sum_{i=1}^{k}\gamma_i)+\frac{\partial }{\partial \gamma_i}\sum_{i=1}^{k}\ \log \Gamma(\gamma_i) \\ &= \Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i) \quad (12)\\ \end{aligned}$

其中, $\Psi(\cdot)$ 是Digamma函数,是 $\log \Gamma(\cdot)$ 的一阶导数。

     接着,我们介绍另外一个定理,

    定理2.设$q(\pmb{z}),p(\pmb{w})$是两个$N$维的概率密度函数,且满足

$q(\pmb{z})=\prod_{n=1}^{N}q(z_n),p(\pmb{w})=\prod_{n=1}^{N}p(w_n)$

 那么,

$\sum_{\pmb{z}}q(\pmb{z})\log p(\pmb{w})=\sum_{n=1}^{N}\sum_{z_n}q(z_n)\log p(w_n)$

该定理的证明比较简单,但是为防止篇幅过大,这里省略(如果有读者希望我具体写一下的话,后续我会加上)。我们再给出一个有用的结论,

$\sum_{z_1}\cdots\sum_{z_N}\left(\prod_{n=1}^{N}p(z_n) \right)=\prod_{n=1}^{N}\left( \sum_{z_n}p(z_n)\right) \quad (13)$

  现在,我们继续化简 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 展开成的五项。我们逐项地化简。

  首先化简第一项,

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{\theta}|\pmb{\alpha})d\pmb{\theta}\\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \log p(\pmb{\theta}|\pmb{\alpha})\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \log p(\pmb{\theta}|\pmb{\alpha})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \log \frac{\Gamma(\sum_{i=1}^{k}\alpha_i)}{\prod_{i=1}^{k}\Gamma(\alpha_i)}\theta_1^{\alpha_1-1}\cdots \theta_k^{\alpha_k-1}d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \log \frac{\Gamma(\sum_{i=1}^{k}\alpha_i)}{\prod_{i=1}^{k}\Gamma(\alpha_i)}d\pmb{\theta}+\sum_{i=1}^{k}(\alpha_i-1)\int q(\pmb{\theta}|\pmb{\gamma}) \log\theta_id\pmb{\theta} \\ &= \log \Gamma(\sum_{i=1}^{k}\alpha_i)-\sum_{i=1}^{k}\log \Gamma(\alpha_i)+\sum_{i=1}^{k}(\alpha_i-1)(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\\ \end{aligned}$

第三个等号成立是因为式(5)。最后一个等号成立是因为式(12)。其他等号成立则是因为概率归一化条件或者对数和差公式。

    再来化简第二项,首先

$\begin{aligned} &\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log p(\pmb{z}|\pmb{\theta}) \\ &= \sum_{z_1}\cdots\sum_{z_N}\prod_{n=1}^{N}q(z_n|\phi_n)\log \prod_{n=1}^{N}p(z_n|\pmb{\theta})\\ &= \sum_{n=1}^{N}\sum_{z_n}q(z_n|\phi_n)\log p(z_n|\pmb{\theta})\\ &= \sum_{n=1}^{N}\sum_{i=1}^{k}q(z_n=i|\phi_n)\log p(z_n=i|\pmb{\theta})\\ &= \sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\log \theta_i\\ \end{aligned}$

第一个等号成立是因为式(1)和式(7)。第二个等号成立是因为定理2。第四个等号成立是因为式(3)和式(9)。那么第二项有,

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{z}|\pmb{\theta})d\pmb{\theta}\\ &=\int q(\pmb{\theta}|\pmb{\gamma})\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log p(\pmb{z}|\pmb{\theta})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma})\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\log \theta_id\pmb{\theta} \\ &=\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\int q(\pmb{\theta}|\pmb{\gamma})\log \theta_id\pmb{\theta} \\ &=\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)) \\ \end{aligned}$

最后一个等号成立是因为式(12)。

   我们现在来化简第三项,

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log p(\pmb{w}|\pmb{z},\pmb{\beta})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log p(\pmb{w}|\pmb{z},\pmb{\beta})d\pmb{\theta} \\ &=\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log p(\pmb{w}|\pmb{z},\pmb{\beta}) \\ &=\sum_{\pmb{z}} \prod_{n=1}^{N}q(z_n|\phi_n)\log \prod_{n=1}^{N}p(w_n|\beta_{z_n}) \\ &=\sum_{n=1}^{N} \sum_{z_n}q(z_n|\phi_n)\log p(w_n|\beta_{z_n}) \\ &=\sum_{n=1}^{N} \sum_{i=1}^{k}\phi_{ni}\sum_{j=1}^{V}w_n^j\log \beta_{ij} \\ \end{aligned}$

第四个等号成立是因为定理2。第五个等号成立是因为式(4)和式(9)。 $w_n^j$ 当本文档中第 $n$ 个单词是词库中第 $j$ 个单词时为1,其他时候为0。

     我们接着来化简第四项。

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log q(\pmb{\theta}|\pmb{\gamma})d\pmb{\theta}\\ &=\int q(\pmb{\theta}|\pmb{\gamma})\log q(\pmb{\theta}|\pmb{\gamma})\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma})\log q(\pmb{\theta}|\pmb{\gamma})d\pmb{\theta} \\ &=\int q(\pmb{\theta}|\pmb{\gamma}) \log \frac{\Gamma(\sum_{i=1}^{k}\gamma_i)}{\prod_{i=1}^{k}\Gamma(\gamma_i)}\theta_1^{\gamma_1-1}\cdots \theta_k^{\gamma_k-1} d\pmb{\theta} \\ &= \log \frac{\Gamma(\sum_{i=1}^{k}\gamma_i)}{\prod_{i=1}^{k}\Gamma(\gamma_i)}+\sum_{i=1}^{k}(\gamma_i-1)\int q(\pmb{\theta}|\pmb{\gamma})\log\theta_id\pmb{\theta}\\ &=\log\Gamma(\sum_{i=1}^{k}\gamma_i)-\sum_{i=1}^{k} \log \Gamma(\gamma_i)+\sum_{i=1}^{k}(\gamma_i-1)(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\\ \end{aligned}$

第三个等号成立是因为式(8)。最后一个等号成立是因为式(12)。

     最后,我们化简第五项,

$\begin{aligned} &\int\sum_{\pmb{z}} q(\pmb{\theta}|\pmb{\gamma})q(\pmb{z}|\pmb{\phi})\log q(\pmb{z}|\pmb{\phi})d\pmb{\theta}\\ &=\int q(\pmb{\theta}|\pmb{\gamma})\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log q(\pmb{z}|\pmb{\phi})d\pmb{\theta} \\ &=\sum_{\pmb{z}} q(\pmb{z}|\pmb{\phi})\log q(\pmb{z}|\pmb{\phi})\\ &=\sum_{n=1}^{N}\sum_{z_n}q(z_n|\phi_n)\log p(z_n|\phi_n) \\ &=\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\log \phi_{ni} \\ \end{aligned}$

第三个等号成立是因为定理2。

      现在,我们终于可以写出 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 的具体表达式了,

$\begin{aligned} L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})&= \log \Gamma(\sum_{i=1}^{k}\alpha_i)-\sum_{i=1}^{k}\log \Gamma(\alpha_i)+\sum_{i=1}^{k}(\alpha_i-1)(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\\ &+ \sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\\ &+ \sum_{n=1}^{N} \sum_{i=1}^{k}\phi_{ni}\sum_{j=1}^{V}w_n^j\log \beta_{ij}\\ &- \log\Gamma(\sum_{i=1}^{k}\gamma_i)+\sum_{i=1}^{k} \log \Gamma(\gamma_i)-\sum_{i=1}^{k}(\gamma_i-1)(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\\ &-\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\log \phi_{ni}\\ \end{aligned}$

现在,我们调整变分参数 $\pmb{\gamma},\pmb{\phi}$ 使 $L(\pmb{\gamma},\pmb{\phi};\pmb{\alpha},\pmb{\beta})$ 达到最大。我们先固定参数 $\pmb{\gamma}$ 使,优化参数 $\pmb{\phi}$ ,则得到如下问题

$\left\{ \begin{aligned} &\max_{\pmb{\phi}} \quad L(\pmb{\phi}) \\ &s.t \quad \sum_{i=1}^{k}\phi_{ni}=1,n=1,2,\ldots,N\\ \end{aligned} \right.$

这个问题的Lagrange函数为:

$\mathcal{L}=L(\pmb{\phi})+\sum_{n=1}^{N}\lambda_n(\sum_{i=1}^{k}\phi_{ni}-1)$

则,容易得到,

$\begin{aligned} &\frac{\partial \mathcal{L}}{\partial \phi_{ni} }=\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)+\sum_{j=1}^{V}w_n^j\log \beta_{ij}-\log \phi_{ni}-1+\lambda_n=0\\ &\Rightarrow \log \phi_{ni}=\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)+\sum_{j=1}^{V}w_n^j\log \beta_{ij}-1+\lambda_n\\ &\Rightarrow \log \phi_{ni}=\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)+\log \beta_{iv}-1+\lambda_n\\ &\Rightarrow \phi_{ni}=\exp(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)+\log \beta_{iv}-1+\lambda_n)\\ &=\exp(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\exp(\log \beta_{iv})\exp(-1+\lambda_n))\\ &\Rightarrow \phi_{ni}= \exp(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i))\beta_{iv}\exp(-1+\lambda_n)\\ &\Rightarrow \phi_{ni}\propto\exp(\Psi(\gamma_i)-\Psi(\sum_{i=1}^{k}\gamma_i)) \beta_{iv}\\ \end{aligned}$

第三步我们令 $v=\arg_{j}(w_n^j=1)$ 。而最后一步则是将第六步得到的 $\phi_{ni}$ 带入下述约束条件得到的,

$\sum_{i=1}^{k}\phi_{ni}=1$

    接着,我们先固定参数使 $\pmb{\phi}$ ,优化参数 $\pmb{\gamma}$ 。则得到如下问题

$\left\{ \begin{aligned} &\max_{\pmb{\gamma}} \quad L(\pmb{\gamma}) \\ \end{aligned} \right.$

$\begin{aligned} &\frac{\partial L(\pmb{\gamma})}{\partial \gamma _i}=(\alpha_i-1)\Psi'(\gamma_i)-\sum_{i=1}^{k}(\alpha_i-1)\Psi'(\sum_{i=1}^{k}\gamma_i)\\ &+\sum_{n=1}^{N}\phi_{ni}\Psi'(\gamma_i)-\sum_{n=1}^{N}\sum_{i=1}^{k}\phi_{ni}\Psi'(\sum_{i=1}^{k}\gamma_i)\\ &- \Psi(\sum_{i=1}^{k}\gamma_i)+ \Psi(\gamma_i)-\Psi(\gamma_i)-(\gamma_i-1)\Psi'(\gamma_i)+\sum_{i=1}^{k}(\gamma_i-1)\Psi'(\sum_{i=1}^{k}\gamma_i)+\Psi(\sum_{i=1}^{k}\gamma_i)\\ &=\Psi'(\gamma_i)(\alpha_i+\sum_{n=1}^{N}\phi_{ni}-\gamma_i)-\Psi'(\sum_{i=1}^{k}\gamma_i)\sum_{i=1}^{k}(\alpha_i+\sum_{n=1}^{N}\phi_{ni}-\gamma_i)) \\ \end{aligned}$

从而,观察上述最后一步,我们可以发现一个零点,即,

$\frac{\partial L(\pmb{\gamma})}{\partial \gamma _i}=0 \Rightarrow \gamma_i=\alpha_i+\sum_{n=1}^{N}\phi_{ni}$

  至此,我们完成了变分近似的算法推导。然而参数 $\pmb{\alpha},\pmb{\beta}$ 目前未知,所以接下来,我们需要继续推导求解 $\pmb{\alpha},\pmb{\beta}$ 的算法。我们采用MLE来估计这两个参数。因为直接最大化似然函数比较困难,不过我们有,

$\begin{aligned} \mathcal{L}(\pmb{\alpha},\pmb{\beta})&=\sum_{d=1}^{M}\log p(\pmb{w}_d|\pmb{\alpha},\pmb{\beta})\\ &\geq \sum_{d=1}^{M}L(\pmb{\gamma}_d,\pmb{\phi}_d;\pmb{\alpha},\pmb{\beta})\triangleq L(D) \\ \end{aligned}$

其中 $\pmb{w}_d$ 是文档集 $D$ 中第 $d$ 个文档的单词向量, $\pmb{\gamma}_d,\pmb{\phi}_d$ 则是第 $d$ 个文档对应的变分参数。一共 $M$ 个文档。所以我们可以最大化似然函数的下界进而最大化似然函数,不过问题是上述下界中还有变分参数。所以,我们交替执行下面两个步骤,

其中,E步就是计算每个文档的最优变分参数,我们前面已经推导完成了。现在,我们来看M步。先固定参数 $\pmb{\alpha}$ ,那么再加上 $\beta_{ij}$ 上的概率归一化条件,

$\sum_{j=1}^{V}\beta_{ij}=1$

我们最大化Lagrange函数,

$\begin{aligned} &\mathcal{L}(D)=\sum_{d=1}^{M}\sum_{n=1}^{N_d} \sum_{i=1}^{k}\phi_{dni}\sum_{j=1}^{V}w_{dn}^j\log \beta_{ij}+\sum_{i=1}^{k}\lambda_i(\sum_{j=1}^{V}\beta_{ij}-1)+c \\ \end{aligned}$

$c$ 表示常数项, $N_d$ 表示第 $d$ 个文档中的单词个数,则,

$\begin{aligned} &\frac{\partial\mathcal{L}(D)}{\partial \beta_{ij} }=\frac{1}{\beta_{ij}}\sum_{d=1}^{M}\sum_{n=1}^{N_d} \phi_{dni}w_{dn}^j+\lambda_i=0 \\ &\Rightarrow \beta_{ij}=\frac{\sum_{d=1}^{M}\sum_{n=1}^{N_d} \phi_{dni}w_{dn}^j}{-\lambda_i}\\ \end{aligned}$

带入 $\beta_{ij}$ 上的概率归一化条件,有

$\beta_{ij}\propto\sum_{d=1}^{M}\sum_{n=1}^{N_d} \phi_{dni}w_{dn}^j$

    接下里,我们固定参数 $\pmb{\beta}$ ,优化参数 $\pmb{\alpha}$ ,则

$\begin{aligned} &\mathcal{L}(D)=\sum_{d=1}^{M}\left(\log \Gamma(\sum_{i=1}^{k}\alpha_i)-\sum_{i=1}^{k}\log \Gamma(\alpha_i)+\sum_{i=1}^{k}(\alpha_i-1)(\Psi(\gamma_{di})-\Psi(\sum_{i=1}^{k}\gamma_{di})) \right)+c \\ \end{aligned}$

最大化上述函数时,没有解析的表示式,所以采用Newton-Raphson方法求解上述函数的最大点。Newton-Raphson的推导我不清楚,不过具体做法比较容易理解,细节在这里省略。

       最后,我们做一个总结。LDA的参数训练算法为算法2。

当完成上述参数训练算法后,我们可以得到文档 $d$ 的话题分布

$Dirichlet(\pmb{\theta}|\pmb{\gamma}_d)$

文档 $d$ 的第 $n$ 个单词的话题分布

$multinomial(z_{dn}|\phi_{dn})$


话题 $i$ 的单词分布

$multinomial(w|\pmb{\beta}_i)$

     结束之际,感谢我所参考的其他资料,包括

     Zhou Li的文档《Latent dirichlet allocation note》(http://code.google.com/p/lsa-lda/),

     中信所徐硕的文档《Topic Model (2): LDA》

     以及持之以恒的博客(http://www.xperseverance.net/blogs/2012/03/17/)

     这些资料来自互联网,所以引用有不规范的地方,请各位见谅。

[1] David M. Blei, Andrew Y. Ng, and Michael I. Jordan. Latent dirichlet allocation. J. Mach. Learn. Res., 3:993–1022, March 2003.

 



https://wap.sciencenet.cn/blog-798994-800488.html

上一篇:Bayes统计分析简述
下一篇:谱聚类简介
收藏 IP: 222.195.92.*| 热度|

1 梁作论

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-29 18:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部