はじめに
『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
本の補助として読んでください。
この記事では、著者トピックモデルに対する崩壊型ギブスサンプリングの数式の行間を埋めます。
【前節の内容】
www.anarchive-beta.com
【他の節の内容】
www.anarchive-beta.com
【この節の内容】
5.4 著者トピックモデルの崩壊型ギブズサンプリング:一様なハイパーパラメータの場合
著者トピックモデル(author topic model)に対する崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、ハイパーパラメータが一様な値の場合を扱う。
著者トピックモデルの定義や記号については「生成モデルの導出」、ハイパーパラメータが多様な値の場合については「多様なハイパーパラメータの場合」を参照のこと。
・サンプリング確率
・パラメータの周辺化
パラメータ$\boldsymbol{\Theta},\ \boldsymbol{\Phi}$を周辺化した、観測データ$\mathbf{W},\ \mathbf{A}$と潜在変数$\mathbf{Z},\ \mathbf{Y}$の周辺同時分布(周辺同時尤度)は、生成過程より
$$
\begin{align}
p(\mathbf{W}, \mathbf{A}, \mathbf{Z}, \mathbf{Y} | \alpha, \beta)
&= \int \int
p(\mathbf{W}, \mathbf{A}, \mathbf{Z}, \mathbf{Y}, \boldsymbol{\Theta}, \boldsymbol{\Phi} | \alpha, \beta)
d\boldsymbol{\Theta} d\boldsymbol{\Phi}
\\
&= \int
p(\mathbf{Z} | \mathbf{Y}, \boldsymbol{\Theta})
p(\boldsymbol{\Theta} | \alpha)
d\boldsymbol{\Theta}
\int
p(\mathbf{W} | \mathbf{Z}, \boldsymbol{\Phi})
p(\boldsymbol{\Phi} | \beta)
d\boldsymbol{\Phi}
p(\mathbf{Y} | \mathbf{A})
p(\mathbf{A})
\\
&= p(\mathbf{Z} | \mathbf{Y}, \alpha)
p(\mathbf{W} | \mathbf{Z}, \beta)
p(\mathbf{Y} | \mathbf{A})
p(\mathbf{A})
\tag{5.4.1}
\end{align}
$$
と分解できる。
分解した各分布の具体的な式を求めていく。1つ目の項$p(\mathbf{Z} | \mathbf{Y}, \alpha)$は、式(4.10)と同様にして
$$
\begin{align}
p(\mathbf{Z} | \mathbf{Y}, \alpha)
&= \int
p(\mathbf{Z} | \mathbf{Y}, \boldsymbol{\Theta})
p(\boldsymbol{\Theta} | \alpha)
d\boldsymbol{\Theta}
\\
&= \int
\left[ \prod_{d=1}^D \prod_{n=1}^{N_d}
p(z_{dn} = k | y_{dn} = m, a_{dm} = s, \boldsymbol{\theta}_s)
\right]
\left[ \prod_{s=1}^S
p(\boldsymbol{\theta}_s | \alpha)
\right]
d\boldsymbol{\Theta}
\\
&= \prod_{s=1}^S \int
\left[ \prod_{k=1}^K
\theta_{sk}^{N_{sk}}
\right]
\frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}
\prod_{k=1}^K
\theta_{sk}^{\alpha-1}
d\boldsymbol{\theta}_s
\\
&= \frac{\Gamma(\alpha K)^S}{\Gamma(\alpha)^{KS}}
\prod_{s=1}^S
\int \prod_{k=1}^K
\theta_{sk}^{N_{sk}+\alpha-1}
d\boldsymbol{\theta}_s
\\
&= \frac{\Gamma(\alpha K)^S}{\Gamma(\alpha)^{KS}}
\prod_{s=1}^S
\frac{
\prod_{k=1}^K \Gamma(N_{sk} + \alpha)
}{
\Gamma(N_s + \alpha K)
}
\tag{5.4.2}
\end{align}
$$
【途中式の途中式】
- 前の項を各文書の単語ごとの積に分解する。
- 具体的な式に置き換える。このとき$p(z_{dn} = k | \boldsymbol{\theta}_s) = \theta_{sk}$であり、$\prod_{d=1}^D \prod_{n=1}^{N_d}$により$N_{sk}$個重複する。
- ここで$y_{dn} = m$は、「文書$d$の$n$番目の単語$w_{dn}$」に「文書$d$における$m$番目の著者$a_{dm}$」が割り当てられたことを意味する。また$a_{dm} = s$は、$a_{dm}$が「文書全体における$s$番目の著者」であることを意味し、これは著者情報(観測データ)として与えられている。
- $y_{dn}$に割り当てられた著者を$a_{dy_{dn}}$、更に$y_{dn}$に割り当てられた著者のトピック分布を$\boldsymbol{\theta}_{a_{dy_{dn}}}$と明示的に表記できる。
- $\boldsymbol{\theta}_s$に影響しない項を$\int$の外に出す。
- ディリクレ分布の正規化項の導出(1.13)より、置き換える。ただし$\sum_{k=1}^K N_{sk} + \alpha = N_s + \alpha K$である。
となる。
2つ目の項$p(\mathbf{W} | \mathbf{Z}, \beta)$は、4.5節で求めた
$$
p(\mathbf{W} | \mathbf{Z}, \beta)
= \frac{\Gamma(\beta V)^K}{\Gamma(\beta)^{VK}}
\prod_{k=1}^K
\frac{
\prod_{v=1}^V \Gamma(N_{kv} + \beta)
}{
\Gamma(N_k + \beta V)
}
\tag{4.11}
$$
である。
3つ目の項$p(\mathbf{Y} | \mathbf{A})$は、各単語の著者は等確率で割り当てられるという定義(仮定)より
$$
\begin{align}
p(\mathbf{Y} | \mathbf{A})
&= \prod_{d=1}^D \prod_{n=1}^{N_d}
p(y_{dn} | \mathbf{a}_d)
\\
&= \prod_{d=1}^D \prod_{n=1}^{N_d}
\frac{1}{M_d}
\\
&= \prod_{d=1}^D
\frac{1}{M_d^{N_d}}
\tag{5.4.3}
\end{align}
$$
となる。
この周辺同時分布(5.4.1)を用いて、各単語のトピックと著者のサンプリング確率を求める。
・単語のトピックと著者のサンプリング式の導出
ある単語のトピック$z_{dn}$が$k$かつ著者$y_{dn}$が$m$となる確率は、周辺同時尤度にベイズの定理を用いて
$$
\begin{aligned}
p(z_{dn} = k, y_{dn} = m | \mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, \alpha, \beta)
&= \frac{
p(\mathbf{W}, \mathbf{A}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn} | \alpha, \beta)
}{
p(\mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn} | \alpha, \beta)
}
\\
&\propto
p(\mathbf{W}, \mathbf{A}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn} | \alpha, \beta)
\\
&= p(w_{dn} | z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta)
p(\mathbf{W}_{\backslash dn} | \mathbf{Z}_{\backslash dn}, \beta) \\
&\qquad *
p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha)
p(\mathbf{Z}_{\backslash dn} | \mathbf{Y}_{\backslash dn}, \alpha) \\
&\qquad *
p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A})
p(\mathbf{Y}_{\backslash dn} | \mathbf{A})
p(\mathbf{A})
\\
&\propto
p(w_{dn} | z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta)
p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha)
p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A})
\end{aligned}
$$
で求められる。適宜$z_{dn},\ y_{dn}$に影響しない項を省いている。
1つ目の項は、4.5節で求めた
$$
p(w_{dn} | \mathbf{W}_{\backslash dn}, \mathbf{Z}, \beta)
= \frac{
N_{kw_{dn} \backslash dn} + \beta
}{
N_{k \backslash dn} + \beta V
}
\tag{4.14}
$$
である。
2つ目の項は、式(5.4.2)を用いて式(4.13)と同様にして
$$
\begin{aligned}
p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha)
&= \frac{
p(z_{dn} = k , \mathbf{Z}_{\backslash dn} | y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha)
}{
p(\mathbf{Z}_{\backslash dn} | y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha)
}
\\
&= \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}
\frac{
\Gamma(N_{a_{dm}k \backslash dn} + 1 + \alpha)
\prod_{k' \neq k}
\Gamma(N_{a_{dm}k' \backslash dn} + \alpha)
}{
\Gamma(N_{a_{dm} \backslash dn} + 1 + \alpha K)
}
\frac{\Gamma(\alpha)^{K}}{\Gamma(\alpha K)}
\frac{
\Gamma(N_{a_{dm} \backslash dn} + \alpha K)
}{
\prod_{k=1}^K
\Gamma(N_{a_{dm}k \backslash dn} + \alpha)
}
\\
&= \frac{
(N_{a_{dm}k \backslash dn} + \alpha)
\Gamma(N_{a_{dm}k \backslash dn} + \alpha)
\prod_{k' \neq k}
\Gamma(N_{a_{dm}k' \backslash dn} + \alpha)
}{
(N_{a_{dm} \backslash dn} + \alpha K)
\Gamma(N_{a_{dm}k' \backslash dn} + \alpha K)
}
\frac{
\Gamma(N_{a_{dm} \backslash dn} + \alpha K)
}{
\prod_{k=1}^K
\Gamma(N_{a_{dm}k \backslash dn} + \alpha)
}
\\
&= \frac{
N_{a_{dm}k \backslash dn} + \alpha
}{
N_{a_{dm} \backslash dn} + \alpha K
}
\end{aligned}
$$
となる。1行目の分母分子において、分母に含まれない$z_{dn} = k$の項を取り出して考えている。また計算過程において、文書$d$以外の文書については約分によって消えている。
3つ目の項は、著者トピックモデルの定義より
$$
p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A})
= \frac{1}{M_d}
$$
である。あるいは式(5.4.3)を用いて
$$
\begin{aligned}
p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A})
&= \frac{
p(y_{dn} = m, \mathbf{Y}_{\backslash dn} | \mathbf{A})
}{
p(\mathbf{Y}_{\backslash dn} | \mathbf{A})
}
\\
&= \frac{1}{M_d^{N_{d \backslash dn} + 1}}
\prod_{d' \neq d}
\frac{1}{M_{d'}^{N_{d' \backslash dn}}}
\prod_{d=1}^D
\frac{M_d^{N_{d \backslash dn}}}{1}
\\
&= \frac{1}{M_d}
\frac{1}{M_d^{N_{d \backslash dn}}}
\frac{M_d^{N_{d \backslash dn}}}{1}
\\
&= \frac{1}{M_d}
\end{aligned}
$$
となる。
それぞれ代入して、$z_{dn},\ y_{dn}$に影響しない項を省くと
$$
\begin{aligned}
p(z_{dn} = k, y_{dn} = m | \mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, \alpha, \beta)
&\propto
\frac{
N_{a_{dm}k \backslash dn} + \alpha
}{
N_{a_{dm} \backslash dn} + \alpha K
}
\frac{
N_{kw_{dn} \backslash dn} + \beta
}{
N_{k \backslash dn} + \beta V
}
\frac{1}{M_d}
\\
&\propto
\frac{
N_{a_{dm}k \backslash dn} + \alpha
}{
N_{a_{dm} \backslash dn} + \alpha K
}
\frac{
N_{kw_{dn} \backslash dn} + \beta
}{
N_{k \backslash dn} + \beta V
}
\end{aligned}
$$
が得られる。
・ハイパーパラメータ推定
ハイパーパラメータの更新式は、周辺同時分布(5.4.1)に対して不動点反復法を用いて求める。
著者トピックモデルの周辺同時分布において、トピック分布のパラメータ$\alpha$に関わる項$p(\mathbf{Z} | \mathbf{Y}, \alpha)$は、基本形のトピックモデル(4.5節)のものと同じ構造である。異なるのは、単語数に関する項の添字が文書インデックス$d$から著者インデックス$s$になっている点である。従ってハイパーパラメータ$\alpha$の更新式は同じ手順で求められ、トピックモデルでの更新式(4.16)の添字を$d$から$s$に変更した式になる。
単語分布のパラメータ$\beta$に関わる項$p(\mathbf{W} | \mathbf{Z}, \beta)$は、基本形のトピックモデルと同じ式であるため、ハイパーパラメータ$\beta$の更新式も同じ式(4.17)である。
参考書籍
おわりに
記事が(まだ前の記事の修正すら)間に合わなかったのでとりあえず改修前の記事の内容を分割だけしておきました…
2024年11月3日は、AMEFURASSHIの結成6周年の日です!
ハロプロときどきエビ中のオタクをしていたらアメフラのフリーイベントの撮可映像が流れてくるようになり、鈴木さんという方が気になるな楽曲も良いなとアメフラを追うようになりました。その後、ばっしょーのリリースイベントの撮可映像が流れてくるようになり、瀬田さんという方が気になるな楽曲も良いなと追うようになり、今ではハロプロ兼スタプラのオタクです。めでたしめでたし。
【次節の内容】
つづく