はじめに
『トピックモデルによる統計的潜在意味解析』の学習時のメモです。基本的な内容は、数式の行間を読んで埋めたものになります。本と併せて読んでください。
この記事では、3.2.3節のLDAのギブスサンプリングについて書いています。
数学よく解らない自分が理解できるレベルまで落として数式を書き下していますので、分かる人にはかなりくどいです。
【実装編】
www.anarchive-beta.com
【前節の内容】
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
3.2.3 LDAのギブスサンプリング
LDAのギブスサンプリングを導出する。
結合分布は生成過程より
$$
\begin{align*}
p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
&= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi})
p(\boldsymbol{z} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \boldsymbol{\alpha})
p(\boldsymbol{\phi} | \boldsymbol{\beta})
\\
&= \prod_{d=1}^M \prod_{i=1}^{n_d}
p(w_{d,i} | z_{d,i}, \boldsymbol{\phi})
p(z_{d,i} | \boldsymbol{\theta}_d)
\prod_{d=1}^M
p(\boldsymbol{\theta}_d | \boldsymbol{\alpha})
\prod_{k=1}^K
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
\tag{3.27}
\end{align*}
$$
と分解できる。
・潜在トピックのサンプリング式の導出
$$
\begin{align*}
&p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
&= \frac{
p(z_{d,i} = k, w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}{
p(w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}
\\
&\propto
p(z_{d,i} = k, w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
&= p(w_{d,i} = v | z_{d,i} = k, \boldsymbol{\phi})
p(z_{d,i} = k | \boldsymbol{\theta}_d)
p(\boldsymbol{w}^{\backslash d,i} | \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi})
p(\boldsymbol{z}^{\backslash d,i} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \boldsymbol{\alpha})
p(\boldsymbol{\phi} | \boldsymbol{\beta})
\\
&\propto
p(w_{d,i} = v | z_{d,i} = k, \boldsymbol{\phi})
p(z_{d,i} = k | \boldsymbol{\theta}_d)
\\
&= \phi_{k,v}
\theta_{d,k}
\tag{3.28}
\end{align*}
$$
条件付き独立性から
$$
p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})
= p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{\phi}, \boldsymbol{\theta})
\tag{3.30}
$$
である。
これを正規化すると
$$
p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{\phi}, \boldsymbol{\theta})
= \frac{
\phi_{k,v}
\theta_{d,k}
}{
\sum_{k'=1}^K
\phi_{k',v}
\theta_{d,k'}
}
\tag{3.29}
$$
が得られる。
・トピック分布のサンプリング式の導出
$$
\begin{aligned}
p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
&= \frac{
p(\boldsymbol{\theta}_d, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}{
p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}
\\
&\propto
p(\boldsymbol{\theta}_d, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
&= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi})
p(\boldsymbol{z}_d | \boldsymbol{\theta}_d)
p(\boldsymbol{z}^{\backslash d} | \boldsymbol{\theta}^{\backslash d})
p(\boldsymbol{\theta}_d | \boldsymbol{\alpha})
p(\boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha})
p(\boldsymbol{\phi} | \boldsymbol{\beta})
\\
&\propto
p(\boldsymbol{z}_d | \boldsymbol{\theta}_d)
p(\boldsymbol{\theta}_d | \boldsymbol{\alpha})
\end{aligned}
$$
更に、正規化項を省いたDirichlet分布$p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) \propto \prod_{k=1}^K \theta_{d,k}^{\alpha_k-1}$を用いて
$$
\begin{align*}
p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
&\propto
p(\boldsymbol{z}_d | \boldsymbol{\theta}_d)
p(\boldsymbol{\theta}_d | \boldsymbol{\alpha})
\\
&= \prod_{k=1}^K
\theta_{d,k}^{n_{d,k}}
\prod_{k=1}^K
\theta_{d,k}^{\alpha_k-1}
\\
&= \prod_{k=1}^K
\theta_{d,k}^{n_{d,k}+\alpha_k-1}
\tag{3.31}
\end{align*}
$$
となる。
また、条件付き独立性から
$$
p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
= p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha})
\tag{3.32}
$$
である。
よって、$p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha})$は、$n_{d,k} + \alpha_k$をパラメータを持つ正規化項のないDirichlet分布であることが分かる。従って、正規化する(Dirichlet分布の正規化項を与える)と
$$
p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha})
= \frac{
\Gamma(\sum_{k=1}^K n_{d,k} + \alpha_k)
}{
\prod_{k=1}^K \Gamma(n_{d,k} + \alpha_k)
}
\prod_{k=1}^K \theta_{d,k}^{n_{d,k} + \alpha_k}
\tag{3.36}
$$
が得られる。
・単語分布のサンプリング式の導出
$$
\begin{aligned}
p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})
&= \frac{
p(\boldsymbol{\phi}_k, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}{
p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
}
\\
&\propto
p(\boldsymbol{\phi}_k, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
&= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}_k, \boldsymbol{\phi}^{\backslash k})
p(\boldsymbol{z} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \boldsymbol{\alpha})
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
p(\boldsymbol{\phi}^{\backslash k} | \boldsymbol{\beta})
\\
&\propto
p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi})
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
\end{aligned}
$$
更に、正規化項を省いたDirichlet分布$p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \propto \prod_{v=1}^V \phi_{k,v}^{\beta_v-1}$を用いて
$$
\begin{align*}
p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})
&\propto
p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi})
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
\\
&= \left[
\prod_{d=1}^M \prod_{i=1}^{n_d} \prod_{k=1}^K
p(w_{d,i} | z_{d,i} = k, \boldsymbol{\phi}_k)
\right]
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
\\
&\propto
\left[
\prod_{d=1}^M \prod_{i=1}^{n_d}
p(w_{d,i} | z_{d,i} = k, \boldsymbol{\phi}_k)
\right]
p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
\\
&\propto
\prod_{v=1}^V
\phi_{k,v}^{n_{k,v}}
\prod_{v=1}^V
\phi_{k,v}^{\beta_v-1}
\\
&= \prod_{v=1}^V
\phi_{k,v}^{n_{k,v}+\beta_v-1}
\tag{3.34}
\end{align*}
$$
となる。
また、条件付き独立性から
$$
p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})
= p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta})
\tag{3.35}
$$
である。
よって、$p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta})$は、パラメータ$n_{k,v} + \beta_v$を持つ正規化項のないDirichlet分布であることが分かる。従って、正規化すると
$$
p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta})
= \frac{
\Gamma(\sum_{v=1}^V n_{k,v} + \beta_v)
}{
\prod_{v=1}^V \Gamma(n_{k,v} + \beta_v)
}
\prod_{v=1}^V \phi_{k,v}^{n_{k,v}+\beta_v-1}
\tag{3.37}
$$
が得られる。
参考文献
- 佐藤一誠『トピックモデルによる統計的潜在意味解析』(自然言語処理シリーズ 8)奥村学監修,コロナ社,2015年.
おわりに
【次節の内容】
www.anarchive-beta.com