はじめに
機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。
この記事は、3.4節「変分ベイズ推定」の内容です。
変分ベイズ推定により、混合ユニグラムモデルにおけるパラメータを推定します。
【プログラム編】
www.anarchive-beta.com
www.anarchive-beta.com
【前節の内容】
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
3.4 変分ベイズ
混合ユニグラムモデルをベイズ推定することを考える。ユニグラムモデルでは、共役事前分布であるディリクレ分布を事前分布として用いることで、解析的に事後分布を計算できた。しかし混合ユニグラムモデルでは、解析的に事後分布を計算できない。そこで変分ベイズ推定と呼ばれる方法により、事後分布の近似を計算する。(近似事後分布(変分事後分布)を$q(\cdot)$で表す。)
混合ユニグラムモデルの定義や記号類については3.1-2:混合ユニグラムモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこを参照のこと。
3.4.1 周辺尤度の最大化
変分ベイズ推定では、パラメータ$\mathbf{z},\ \boldsymbol{\theta},\ \boldsymbol{\Phi}$を周辺化した周辺尤度
$$
p(\mathbf{W})
= \int \int \sum_{\mathbf{z}}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
$$
を最大化するトピック集合とパラメータの事後分布$p(\mathbf{z} | \mathbf{W}),\ p(\boldsymbol{\theta} | \mathbf{W}),\ p(\boldsymbol{\Phi} | \mathbf{W})$の近似を求める。ここで$\sum_{\mathbf{z}} \equiv \sum_{z_1=1}^K \sum_{z_2=1}^K \cdots \sum_{z_D=1}^K$は、トピック集合$\mathbf{z}$の全ての組み合わせに関する和を表す。離散値をとるパラメータ$\mathbf{z}$を周辺化している。
この式の対数をとった対数周辺尤度$\log p(\mathbf{W})$は、$\log$の中に$\sum$があり簡単に計算できない。そこでイェンゼンの不等式を用いて、対数周辺尤度の下限を求めて、下限を最大化する。
$$
\begin{align}
\log p(\mathbf{W})
&= \log \int \int \sum_{\mathbf{z}}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \log \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\frac{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&\geq
\int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\equiv F
\tag{3.10}
\end{align}
$$
【途中式の途中式】
- 近似事後分布$q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})$を$\frac{q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})}{q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})} = 1$として、分母分子を分割して掛ける。
- 対数関数$y = \log x$は上に凸な関数であるため、イェンゼンの不等式(1.7)を用いて下限を求める。
変分推論における対数尤度の下限$F$は変分下限と呼ばれる。変分ベイズ推定では、変分下限$F$を最大化する事後分布の近似$q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$を求める。またこの近似事後分布$q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$は変分事後分布と呼ばれる。
計算を簡単にするために、変分事後分布$q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$をトピック集合の変分事後分布$q(\mathbf{z})$とパラメータの変分事後分布$q(\boldsymbol{\theta}),\ q(\boldsymbol{\Phi})$の積に分解できると仮定する。これを因子分解仮定と呼ぶ。
$$
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
= q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\tag{3.11}
$$
対数周辺尤度と変分下限$F$の差は
$$
\begin{align}
\log p(\mathbf{W}) - F
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\log p(\mathbf{W})
d\boldsymbol{\theta} d\boldsymbol{\Phi} \\
&\qquad
- \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}) \Bigl(
\log p(\mathbf{W})
- \log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
+ \log q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
p(\mathbf{W})
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
p(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \mathbf{W})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \mathrm{KL} \Bigl(
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}),
p(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \mathbf{W})
\Bigr)
\end{align}
$$
【途中式の途中式】
- 両式の形を揃えるため、対数周辺尤度に$\int \int \sum_{\mathbf{z}} q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}) d\boldsymbol{\theta} d\boldsymbol{\Phi} = 1$を掛ける。
- $\int \int \sum_{\mathbf{z}} q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}) d\boldsymbol{\theta} d\boldsymbol{\Phi}$で括る。また$\log \frac{A}{B} = \log A - \log B$の変形を行う。
- $\log$の項をまとめる。
- 乗法定理(1.3)より、$\frac{p(A)}{p(A, B)} = \frac{1}{p(B | A)}$の変形を行う。
- 式全体がKLダイバージェンス(1.6)の形をしていることから。
変分事後分布$q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$と真の事後分布$p(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \mathbf{W})$のKLダイバージェンスとなる。
ここまでの内容を整理する。
本来は周辺尤度$p(\mathbf{W})$を用いて、事後分布$p(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \mathbf{W})$を求めたい。しかし対数周辺尤度$\log p(\mathbf{W})$は解析的に計算できない。そこで変分下限$F$に注目する。また変分事後分布(近似事後分布)$q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})$を導入した。
対数周辺尤度と変分下限の差が0のとき、対数周辺尤度と変分下限が等しくなる。つまりこの差を0に近付けることが目標となる。またこの差の式は、変分事後分布と真の事後分布$p(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \mathbf{W})$のKLダイバージェンスとなることが分かった。つまり変分下限の最大化とKLダイバージェンスの最小化(最小値は0)は同じことである。
対数周辺尤度は変分事後分布に対して定数である(そもそも式に含まない)ため、変分事後分布が変化しても変分下限にしか影響しない。また真の事後分布も変分事後分布の影響を受けない。従って変分下限が対数尤度周辺尤度に近付くように変分事後分布を更新することで、変分事後分布を真の事後分布に近付ける(KLダイバージェンスを小さくする)ことができる。
つまり変分ベイズ推定では、変分下限を最大化する$q(\mathbf{z}),\ q(\boldsymbol{\theta}),\ q(\boldsymbol{\Phi})$を求めることで、真の事後分布を近似する。ただし$q(\mathbf{z})$は、負担率$(q_{11}, \cdots, q_{DK})$として扱う。
3.4.2 変分事後分布の推定
トピック集合の変分事後分布$q(\mathbf{z})$の推定を考える(途中まで進める)。制約$\sum_{\mathbf{z}} q(\mathbf{z}) = 1$の下での変分下限$F$の最大化を、ラグランジュの未定乗数法を用いて求める。ラグランジュ乗数$\lambda$を用いて式を立てる。ここでは$q(\mathbf{z})$(による変化)に注目するため、立てた式を$F(q(\mathbf{z}))$と置く。
$$
\begin{aligned}
F(q(\mathbf{z}))
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
+ \lambda \left(
\sum_{\mathbf{z}} q(\mathbf{z}) - 1
\right)
\\
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\mathbf{z})
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
+ \lambda \left(
\sum_{\mathbf{z}} q(\mathbf{z}) - 1
\right)
\end{aligned}
$$
$F(q(\mathbf{z}))$を$q(\mathbf{z})$に関して変分する。
$$
\begin{align}
\frac{\partial F(q(\mathbf{z}))}{\partial q(\mathbf{z})}
&= \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi}) \Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\mathbf{z})
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
\Bigr) \\
&\qquad
+ q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\left(- \frac{1}{q(\mathbf{z})} \right)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
+ \lambda
\\
&= \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\log q(\mathbf{z})
d\boldsymbol{\theta} d\boldsymbol{\Phi} \\
&\qquad
- \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\log q(\boldsymbol{\theta})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\log q(\boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi} \\
&\qquad
- \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
+ \lambda
\\
&= \int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- \log q(\mathbf{z}) \\
&\qquad
- \int
q(\boldsymbol{\theta})
\log q(\boldsymbol{\theta})
d\boldsymbol{\theta}
- \int
q(\boldsymbol{\Phi})
\log q(\boldsymbol{\Phi})
d\boldsymbol{\Phi}
- 1
+ \lambda
\\
&= \mathbb{E}_{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
- \log q(\mathbf{z}) + \lambda - C
\tag{3.12}
\end{align}
$$
【途中式の途中式】
- $F(q(\mathbf{z}))$を$q(\mathbf{z})$に関して変分する。
($q(\mathbf{z})$を変数、その他を定数として微分と同様の操作を行えばよい。)1つずつ確認していく。
括弧から$\log q(\mathbf{z})$を除いた因子を係数として、$q(\mathbf{z})$に関して変分すると
$$
\begin{aligned}
&\left\{
\int \int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\right\}'
\\
&= \sum_{\mathbf{z}}
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\end{aligned}
$$
$q(\mathbf{z})$が1となり、他の項はそのまま残る。
取り出した$\log q(\mathbf{z})$の因子の変分は、(積の微分$(f(x)g(x))' = f'(x) g(x) + f(x) g'(x)$と対数関数の微分$(\log x)' = \frac{1}{x}$のように)
$$
\begin{aligned}
&\left\{
\int \int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigl(
- \log q(\mathbf{z})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\right\}'
\\
&= \int \int \sum_{\mathbf{z}}
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigl(
- \log q(\mathbf{z})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- \int \int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\frac{1}{\log q(\mathbf{z})}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\end{aligned}
$$
となる。右辺の前の因子については、括弧の中に戻している。
後の因子の変分は
$$
\left\{
\lambda \left(
\sum_{\mathbf{z}} q(\mathbf{z}) - 1
\right)
\right\}'
= \left(
\sum_{\mathbf{z}} \lambda q(\mathbf{z})
- \lambda
\right)'
= \lambda
$$
係数の$\lambda$のみが残る。
- 括弧を展開する。
- $\int q(\boldsymbol{\theta}) d\boldsymbol{\theta} = \int q(\boldsymbol{\Phi}) d\boldsymbol{\Phi} = 1$より、式を整理する。
- それぞれ項を置き換える。
- 1つ目の因子は、$q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})$による連続確率変数$\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$の期待値の計算式である。
- $q(\mathbf{z})$に影響しない項を($q(\mathbf{z})$に対する)定数$C$と置く。
$\frac{\partial F(q(\mathbf{z}))}{\partial q(\mathbf{z})} = 0$となる$q(\mathbf{z})$を求める。
$$
\begin{align}
\mathbb{E}_{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
&- \log q(\mathbf{z}) + \lambda - C
= 0
\\
\log q(\mathbf{z})
&= \mathbb{E}_{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
+ \lambda - C
\\
q(\mathbf{z})
&= \exp \Bigr(
\mathbb{E}_{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
+ \lambda - C
\Bigr)
\\
&\propto
\exp \Bigr(
\mathbb{E}_{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
\Bigr)
\tag{3.13}
\end{align}
$$
【途中式の途中式】
- $q(\mathbf{z})$に関して式を整理する。
- 両辺の$\log$を外す。
- $q(\mathbf{z})$と関係のない項を省き、両辺の比例関係に注目する(後で正規化することで対応する)。
トピック集合の変分事後分布についてはここで中断して、パラメータの変分事後分布を考える。
同様に、パラメータの変分事後分布$q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})$の推定を行っていく。$\int q(\boldsymbol{\theta}) q(\boldsymbol{\Phi}) d\boldsymbol{\theta} d\boldsymbol{\Phi} = 1$の制約の下での変分下限$F$の最大化をラグランジュの未定乗数法を用いて求める。
$$
\begin{aligned}
F(q(\boldsymbol{\theta}) q(\boldsymbol{\Phi}))
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z} , \boldsymbol{\theta}, \boldsymbol{\Phi})
\log \frac{
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}{
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
}
d\boldsymbol{\theta} d\boldsymbol{\Phi}
+ \lambda \left(
\int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- 1
\right)
\\
&= \int \int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi}) \Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\mathbf{z})
- \log
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigr)
d\boldsymbol{\theta} d\boldsymbol{\Phi} \\
&\qquad
+ \lambda \left(
\int \int
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
- 1
\right)
\end{aligned}
$$
$F(q(\boldsymbol{\theta}) q(\boldsymbol{\Phi}))$を$q(\boldsymbol{\theta}, \boldsymbol{\Phi})$に関して変分する。
$$
\begin{align}
\frac{
\partial F(q(\boldsymbol{\theta}) q(\boldsymbol{\Phi}))
}{
\partial q(\boldsymbol{\theta}, \boldsymbol{\Phi})
}
&= \sum_{\mathbf{z}}
q(\mathbf{z}) \Bigl(
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \log q(\mathbf{z})
- \log
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\Bigr) \\
&\qquad
- \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
\frac{1}{q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})}
+ \lambda
\\
&= \sum_{\mathbf{z}}
q(\mathbf{z})
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\mathbf{z})
- \sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\boldsymbol{\theta})
- \sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\boldsymbol{\Phi}) \\
&\qquad
- \sum_{\mathbf{z}}
q(\mathbf{z})
+ \lambda
\\
&= \sum_{\mathbf{z}}
q(\mathbf{z})
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
- \sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\mathbf{z})
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
- 1
+ \lambda
\\
&= \mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
- \lambda - C
\tag{3.14}
\end{align}
$$
【途中式の途中式】
- 括弧を展開する。
- $\sum_{\mathbf{z}} q(\mathbf{z}) = 1$より、式を整理する。
- それぞれ項を置き換える。
- 1つ目の因子は、$q(x)$による離散確率変数$\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$の期待値の計算式である。
- $q(\boldsymbol{\theta}),\ q(\boldsymbol{\Phi})$に影響しない項$\sum_{\mathbf{z}} \log q(\mathbf{z}) + 1$を定数$C$と置く。
$\frac{\partial F(q(\boldsymbol{\theta}) q(\boldsymbol{\Phi}))}{\partial q(\boldsymbol{\theta}, \boldsymbol{\Phi})} = 0$となる$q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})$を解く。
$$
\begin{align}
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
&- \log q(\boldsymbol{\theta})
- \log q(\boldsymbol{\Phi})
- \lambda - C
= 0
\\
\log q(\boldsymbol{\theta})
+ \log q(\boldsymbol{\Phi})
&= \mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
- \lambda - C
\\
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
&= \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
- \lambda - C
\Bigr)
\\
&\propto
\exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
\Bigr)
\tag{3.15}
\end{align}
$$
【途中式の途中式】
- $q(\boldsymbol{\theta}) q(\boldsymbol{\Phi})$に関して式を整理する。
- 両辺の$\log$を外す。
- $q(\boldsymbol{\theta}),\ q(\boldsymbol{\Phi})$と関係のない項を省き、両辺の比例関係に注目する。
混合ユニグラムモデルの文書集合とパラメータの同時確率$p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})$は、生成過程より
$$
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
= p(\mathbf{z} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \alpha)
p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
p(\boldsymbol{\Phi} | \beta)
\tag{3.16}
$$
と分解できる。
よって式(3.15)は
$$
\begin{align}
q(\boldsymbol{\theta})
q(\boldsymbol{\Phi})
&\propto
\exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
\Bigr)
\tag{3.15}
\\
&= \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \alpha)
p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
p(\boldsymbol{\Phi} | \beta)
\Bigr]
\Bigr)
\\
&= \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
+ \log p(\boldsymbol{\theta} | \alpha)
+ \log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
+ \log p(\boldsymbol{\Phi} | \beta)
\Bigr]
\Bigr)
\\
&= \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
\Bigr]
+ \log p(\boldsymbol{\theta} | \alpha)
+ \mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
\Bigr]
+ \log p(\boldsymbol{\Phi} | \beta)
\Bigr)
\\
&= \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
\Bigr]
+ \log p(\boldsymbol{\theta} | \alpha)
\Bigr) \\
&\qquad
* \exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
\Bigr]
+ \log p(\boldsymbol{\Phi} | \beta)
\Bigr)
\tag{3.17}
\end{align}
$$
となる。
続いて、この式を用いて各パラメータの変分事後分布(事後分布の近似)を求めていく。
・トピック分布の変分事後分布のパラメータの導出
まずは$q(\boldsymbol{\theta})$を求める。式(3.17)から$\boldsymbol{\theta}$に関する項を取り出して、具体的な式の形状を計算する。
$$
\begin{aligned}
q(\boldsymbol{\theta})
&\propto
\exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
\Bigr]
+ \log p(\boldsymbol{\theta} | \alpha)
\Bigr)
\\
&= \exp \left(
\mathbb{E}_{q(\mathbf{z})} \left[
\log \prod_{d=1}^D \theta_{z_d}
\right]
+ \log \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}
\prod_{k=1}^K \theta_{k}^{\alpha-1}
\right)
\\
&= \exp \left(
\mathbb{E}_{q(\mathbf{z})} \left[
\sum_{d=1}^D \log \theta_{z_d}
\right]+ \log \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}
+ \sum_{k=1}^K \log \theta_{k}^{\alpha-1}
\right)
\\
&\propto
\exp \left(
\sum_{d=1}^D \sum_{k=1}^K q_{dk} \log \theta_k
+ \sum_{k=1}^K \log \theta_{k}^{\alpha-1}
\right)
\\
&= \exp \left(
\sum_{k=1}^K \log \theta_k^{\sum_{d=1}^D q_{dk}}
+ \sum_{k=1}^K \log \theta_{k}^{\alpha-1}
\right)
\\
&= \exp \left(
\sum_{k=1}^K \log \theta_{k}^{\alpha+\sum_{d=1}^D q_{dk}-1}
\right)
\\
&= \prod_{k=1}^K
\theta_{k}^{\alpha+\sum_{d=1}^D q_{dk}-1}
\end{aligned}
$$
【途中式の途中式】
- それぞれ具体的な式に置き換える。
- $p(\mathbf{z} | \boldsymbol{\theta}) = \prod_{d=1}^D p(z_d | \boldsymbol{\theta}) = \prod_{d=1}^D \theta_{z_d}$である。
- トピック分布$\boldsymbol{\theta}$の事前分布はディリクレ分布$p(\boldsymbol{\theta} | \alpha) = \mathrm{Dirichlet}(\boldsymbol{\theta} | \alpha)$を仮定している。
- 対数をとる。
- 前の項は、負担率$q_{dk} \equiv q(z_d = k)$を文書$d$のトピック$z_d$が$k$になる変分事後分布として置き換える。
$$
\begin{aligned}
\mathbb{E}_{q(\mathbf{z})} \left[
\sum_{d=1}^D \log \theta_{z_d}
\right]
&= \mathbb{E}_{q(\mathbf{z})} \Bigl[
\log \theta_{z_1} + \log \theta_{z_2}
+ \cdots + \log \theta_{z_D}
\Bigr]
\\
&= \sum_{k=1}^K q(z_1 = k) \log \theta_k
+ \sum_{k=1}^K q(z_2 = k) \log \theta_k
+ \cdots
+ \sum_{k=1}^K q(z_D = k) \log \theta_k
\\
&= \sum_{k=1}^K q_{1k} \log \theta_k
+ \sum_{k=1}^K q_{2k} \log \theta_k
+ \cdots
+ \sum_{k=1}^K q_{Dk} \log \theta_k
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q_{dk} \log \theta_k
\end{aligned}
$$
また正規化項$\log \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}$は、$\boldsymbol{\theta}$に影響しないため省く。
- $a \log x = \log x^a$より、$\theta_k$の項の形を揃える。
- $\log x^a + \log x^b = \log x^{a+b}$より、$\theta_k$の項をまとめる。
- $\exp$を外す。$\exp(\sum_{x} \log x) = \prod_{x} x$である。
式の形が(正規化項のない)ディリクレ分布であることから、変分事後分布$q(\boldsymbol{\theta})$は事前分布と同じディレクトリ分布になることが分かった。
そこでこの式について
$$
\alpha_k = \alpha + \sum_{d=1}^D q_{dk}
$$
と置き、式全体を正規化する(正規化項を与える)と
$$
q(\boldsymbol{\theta})
= \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
\prod_{k=1}^K
\theta_{k}^{\alpha_k-1}
= \mathrm{Dirichlet}(\boldsymbol{\theta} | \alpha_1, \cdots, \alpha_K)
\tag{3.19}
$$
(ハイパー)パラメータ$\boldsymbol{\alpha} = (\alpha_1, \alpha_2, \cdots, \alpha_K)$を持つディリクレ分布が得られる。
また、上の式がハイパーパラメータの更新式となる。
・単語分布の変分事後分布のパラメータの導出
変分事後分布$q(\boldsymbol{\Phi})$についても同様に、式(3.17)から$\boldsymbol{\Phi}$に関する因子を取り出して、具体的な式をみる。
$$
\begin{aligned}
q(\boldsymbol{\Phi})
&\propto
\exp \Bigl(
\mathbb{E}_{q(\mathbf{z})} \left[
\log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
\right]
+ \log p(\boldsymbol{\Phi} | \beta)
\Bigr)
\\
&= \exp \left(
\mathbb{E}_{q(\mathbf{z})} \left[
\log \prod_{d=1}^D \prod_{v=1}^V
\phi_{kv}^{N_{dv}}
\right]
+ \log \prod_{k=1}^K
\frac{\Gamma \beta V}{\Gamma(\beta)^V}
\prod_{v=1}^V
\phi_{kv}^{\beta-1}
\right)
\\
&= \exp \left(
\mathbb{E}_{q(\mathbf{z})} \left[
\sum_{d=1}^D \sum_{v=1}^V
\log \phi_{kv}^{N_{dv}}
\right]
+ \sum_{k=1}^K
\log \frac{\Gamma \beta V}{\Gamma(\beta)^V}
+ \sum_{k=1}^K \sum_{v=1}^V
\log \phi_{kv}^{\beta-1}
\right)
\\
&\propto
\exp \left(
\sum_{k=1}^K \sum_{d=1}^D \sum_{v=1}^V
q_{dk} \log \phi_{kv}^{N_{dv}}
+ \sum_{k=1}^K \sum_{v=1}^V
\log \phi_{kv}^{\beta-1}
\right)
\\
&= \exp \left(
\sum_{k=1}^K \sum_{v=1}^V
\log \phi_{kv}^{\sum_{d=1}^D q_{dk} N_{dv}}
+ \sum_{k=1}^K \sum_{v=1}^V
\log \phi_{kv}^{\beta-1}
\right)
\\
&= \exp \left(
\sum_{k=1}^K \sum_{v=1}^V
\log \phi_{kv}^{\beta+\sum_{d=1}^D q_{dk} N_{dv}-1}
\right)
\\
&= \prod_{k=1}^K \prod_{v=1}^V
\phi_{kv}^{\beta+\sum_{d=1}^D q_{dk} N_{dv}-1}
\end{aligned}
$$
【途中式の途中式】
- それぞれの項を具体的な式に置き換える。
- 後の項は単語分布の事前分布であり、$\prod_{k=1}^K p(\boldsymbol{\phi}_k | \beta) = \prod_{k=1}^K \mathrm{Dirichlet}(\boldsymbol{\phi}_k | \beta)$を仮定している。
- 前の項は、各単語は独立に生成されると仮定している(3.1節)ことから次のように分解できる。
$$
\begin{align}
p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
&= \prod_{d=1}^D
p(\mathbf{w}_d | z_d, \boldsymbol{\Phi})
\\
&= \prod_{d=1}^D \prod_{d=1}^{N_d}
p(w_{dn} | z_d = k, \boldsymbol{\phi}_k)
\\
&= \prod_{d=1}^D \prod_{d=1}^{N_d}
\phi_{kw_{dn}}
\\
&= \prod_{d=1}^D \prod_{v=1}^V
\phi_{kv}^{N_{dv}}
\tag{1}
\end{align}
$$
- 対数をとる。
- 前の因子について、負担率$q_{dk} \equiv q(z_d = k)$に置き換える。また正規化項を省く。
$$
\begin{aligned}
\mathbb{E}_{q(\mathbf{z})} \left[
\sum_{d=1}^D \sum_{v=1}^V N_{dv} \log \phi_{kv}
\right]
&= \mathbb{E}_{q(\mathbf{z})} \Bigl[
N_{11} \log \phi_{k1} + N_{12} \log \phi_{k2} + \cdots + N_{1V} \log \phi_{kV}
\\
&\qquad
+ N_{21} \log \phi_{k1} + N_{22} \log \phi_{k2} + \cdots + N_{2V} \log \phi_{kV} \\
&\qquad \qquad \qquad \qquad \qquad \qquad \vdots \\
&\qquad
+ N_{D1} \log \phi_{k1} + N_{D2} \log \phi_{k2} + \cdots + N_{DV} \log \phi_{kV}
\Bigr]
\\
&= \sum_{k=1}^K q(z_1 = k) N_{11} \log \phi_{k1}
+ \sum_{k=1}^K q(z_1 = k) N_{12} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q(z_1 = k) N_{1V} \log \phi_{kV} \\
&\qquad
+ \sum_{k=1}^K q(z_2 = k) N_{21} \log \phi_{k1}
+ \sum_{k=1}^K q(z_2 = k) N_{22} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q(z_2 = k) N_{2V} \log \phi_{kV} \\
&\qquad \qquad \qquad \qquad \qquad \qquad \vdots \\
&\qquad
+ \sum_{k=1}^K q(z_D = k) N_{D1} \log \phi_{k1}
+ \sum_{k=1}^K q(z_D = k) N_{D2} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q(z_D = k) N_{DV} \log \phi_{kV}
\\
&= \sum_{k=1}^K q_{1k} N_{11} \log \phi_{k1}
+ \sum_{k=1}^K q_{1k} N_{12} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q_{1k} N_{1V} \log \phi_{kV} \\
&\qquad
+ \sum_{k=1}^K q_{2k} N_{21} \log \phi_{k1}
+ \sum_{k=1}^K q_{2k} N_{22} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q_{2k} N_{2V} \log \phi_{kV} \\
&\qquad \qquad \qquad \qquad \qquad \qquad \vdots \\
&\qquad
+ \sum_{k=1}^K q_{Dk} N_{D1} \log \phi_{k1}
+ \sum_{k=1}^K q_{Dk} N_{D2} \log \phi_{k2}
+ \cdots
+ \sum_{k=1}^K q_{Dk} N_{DV} \log \phi_{kV}
) \\
&= \sum_{k=1}^K \sum_{d=1}^D \sum_{v=1}^V q_{dk} N_{dv} \log \phi_{kv}
\end{aligned}
$$
- $a \log x = \log x^a$の変形を行い、$\phi_{kv}$の項の形を揃える。
- $\log x^a + \log x^b = \log x^{a+b}$であることから、$\phi_{kv}$の項をまとめる。
- 指数をとる。$\exp(\sum \log x) = \prod x$である。
こちらの式も(正規化項のない)ディリクレ分布となっていることから、変分事後分布$q(\boldsymbol{\phi}_k)$は事前分布と同じディリクレ分布になることが分かった。
そこでこの式について
$$
\beta_{kv} = \beta + \sum_{d=1}^D q_{dk} N_{dv}
$$
と置き、$k$について正規化する(正規化項を与える)と
$$
q(\boldsymbol{\Phi})
= \prod_{k=1}^K
\frac{\sum_{v=1}^V \Gamma(\beta_{kv})}{\prod_{v=1}^V \Gamma(\beta_{kv})}
\prod_{v=1}^V
\phi_{kv}^{\beta_{kv}-1}
= \prod_{k=1}^K \mathrm{Dirichlet}(\boldsymbol{\phi}_k | \beta_{k1}, \cdots, \beta_{kV})
\tag{3.20}
$$
(ハイパー)パラメータ$\boldsymbol{\beta} = (\beta_{k1}, \beta_{k2}, \cdots, \beta_{kV})$を持つディリクレ分布が得られる。
また、上の式がハイパーパラメータの更新式となる。
・トピック集合の変分事後分布の導出
続いて、トピック集合の変分事後分布$q(\mathbf{z})$について考える。式(3.13),(3.16)より
$$
\begin{align}
q(\mathbf{z})
&\propto
\exp \Bigl(
\mathbb{E}_{q(\boldsymbol{\theta}, \boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\Bigr]
\Bigr)
\tag{3.13}\\
&= \exp \Bigl(
\mathbb{E}_{q(\boldsymbol{\theta}, \boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
p(\boldsymbol{\theta} | \alpha)
p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
p(\boldsymbol{\Phi} | \beta)
\Bigr]
\Bigr)
\\
&= \exp \Bigl(
\mathbb{E}_{q(\boldsymbol{\theta}, \boldsymbol{\Phi})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
+ \log p(\boldsymbol{\theta} | \alpha)
+ \log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
+ \log p(\boldsymbol{\Phi} | \beta)
\Bigr]
\Bigr)
\\
&\propto
\exp \Bigl(
\mathbb{E}_{q(\boldsymbol{\theta})} \Bigl[
\log p(\mathbf{z} | \boldsymbol{\theta})
\Bigr]
+ \mathbb{E}_{q(\boldsymbol{\Phi})} \Bigl[
p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
\Bigr]
\Bigr)
\\
&= \exp \left(
\mathbb{E}_{q(\boldsymbol{\theta})} \left[
\sum_{d=1}^D \log \theta_{z_d}
\right]
+ \mathbb{E}_{q(\boldsymbol{\Phi})} \left[
\sum_{d=1}^D \sum_{v=1}^V
N_{dv} \log \phi_{z_d v}
\right]
\right)
\\
&= \exp \left\{
\sum_{d=1}^D \left(
\Psi(\alpha_{z_d})
- \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
\right)
+ \sum_{d=1}^D \left(
\sum_{v=1}^V N_{dv}
\Psi(\beta_{z_d v})
- N_d \Psi \Bigl(
\sum_{v=1}^V \beta_{z_d v}
\Bigr)
\right)
\right\}
\\
&= \prod_{d=1}^D
\exp \left(
\Psi(\alpha_{z_d})
- \Psi \Bigl(
\sum_{k=1}^K \alpha_k
\Bigr)
+ \sum_{v=1}^V N_{dv} \Psi(\beta_{z_d v})
+ N_d \Psi \Bigl(
\sum_{v=1}^V \beta_{z_d v}
\Bigr)
\right)
\tag{3.21}
\end{align}
$$
【途中式の途中式】
- 式(3.16)より、項を分解する。
- 対数をとる。
- $\mathbf{z}$に関する項のみを取り出す。
- それぞれの項を具体的な式に置き換える。
- 前の項は、$p(\mathbf{z} | \boldsymbol{\theta}) = \prod_{d=1}^D p(z_d | \boldsymbol{\theta}) = \prod_{d=1}^D \theta_{z_d}$である。
- 後の項は、式(1)である。
- ディリクレ分布に従う変数の対数の期待値(1.17)を用いる。
前の因子は
$$
\begin{aligned}
\mathbb{E}_{q(\boldsymbol{\theta})} \left[
\sum_{d=1}^D \log \theta_{z_d}
\right]
&= \mathbb{E}_{q(\boldsymbol{\theta})} \left[
\log \theta_{z_1} + \log \theta_{z_2} + \cdots + \log \theta_{z_D}
\right]
\\
&= \int
q(\boldsymbol{\theta}) \left(
\log \theta_{z_1} + \log \theta_{z_2} + \cdots + \log \theta_{z_D}
\right)
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta}) \log \theta_{z_1}
d\boldsymbol{\theta}
+ \int
q(\boldsymbol{\theta}) \log \theta_{z_2}
d\boldsymbol{\theta}
+ \cdots
+ \int
q(\boldsymbol{\theta}) \log \theta_{z_D}
d\boldsymbol{\theta}
\\
&= \Psi(\alpha_{z_1}) - \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
+ \Psi(\alpha_{z_2}) - \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
+ \cdots
+ \Psi(\alpha_{z_D}) - \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
\\
&= \sum_{d=1}^D \left(
\Psi(\alpha_{z_d}) - \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
\right)
\end{aligned}
$$
となる。$z_d$は文書$d$に割り当てられたトピックのことで、1から$K$の値をとる。つまり、前の項は各文書が持つ1つのトピックに関するハイパーパラメータを、後の項は全てのハイパーパラメータの和を用いている。
同様に後の因子は
$$
\begin{aligned}
\mathbb{E}_{q(\boldsymbol{\Phi})} \left[
\sum_{d=1}^D \sum_{v=1}^V
N_{dv} \log \phi_{z_d v}
\right]
&= \mathbb{E}_{q(\boldsymbol{\Phi})} \left[
\sum_{d=1}^D \Bigl(
N_{d1} \log \phi_{z_d 1}
+ N_{d2} \log \phi_{z_d 2}
+ \cdots
+ N_{dV} \log \phi_{z_d V}
\Bigr)
\right]
\\
&= \int
q(\boldsymbol{\Phi}) \left\{
\sum_{d=1}^D \Bigl(
N_{d1} \log \phi_{z_d 1}
+ N_{d2} \log \phi_{z_d 2}
+ \cdots
+ N_{dV} \log \phi_{z_d V}
\Bigr)
\right\}
d\boldsymbol{\Phi}
\\
&= \sum_{d=1}^D \left(
N_{d1}
\int
q(\boldsymbol{\phi}_{z_d}) \log \phi_{z_d 1}
d\boldsymbol{\phi}_{z_d}
+ N_{d2}
\int
q(\boldsymbol{\phi}_{z_d}) \log \phi_{z_d 2}
d\boldsymbol{\phi}_{z_d} \right.\\
&\qquad \left.
+ \cdots
+ N_{dV}
\int
q(\boldsymbol{\phi}_{z_d}) \log \phi_{z_d V}
d\boldsymbol{\phi}_{z_d}
\right)
\\
&= \sum_{d=1}^D \left\{
N_{d1} \left(
\Psi(\beta_{z_d 1})
- \Psi \Bigl(\sum_{v=1}^V \beta_{z_d v} \Bigr)
\right)
+ N_{d2} \left(
\Psi(\beta_{z_d 2})
- \Psi \Bigl(\sum_{v=1}^V \beta_{z_d v} \Bigr)
\right) \right.\\
&\qquad \left.
+ \cdots
+ N_{dV} \left(
\Psi(\beta_{z_d V})
- \Psi \Bigl(\sum_{v=1}^V \beta_{z_D v} \Bigr)
\right)
\right\}
\\
&= \sum_{d=1}^D \left\{
\sum_{v=1}^V N_{dv} \left(
\Psi(\beta_{z_d v})
- \Psi \Bigl(\sum_{v'=1}^V \beta_{z_d v'} \Bigr)
\right)
\right\}
\\
&= \sum_{d=1}^D \left\{
\sum_{v=1}^V N_{dv} \Psi(\beta_{z_d v})
- N_d \Psi \Bigl(\sum_{v=1}^V \beta_{z_d v} \Bigr)
\right\}
\end{aligned}
$$
となる。$N_d = \sum_{v=1}^V N_{dv}$は、文書$d$の単語数である。またこちらも、ある文書$d$に与えられたトピックに関する単語分布$\boldsymbol{\phi}_{z_d}$の、前の項は語彙$v$に関するハイパーパラメータを、後の項は全ての語彙に関するハイパーパラメータの和を用いている。
- $\sum_{d=1}^D$を$\exp(\cdot)$の外に出す。
となる。
この式を用いて、各文書においてトピック1から$K$まで計算することで、負担率$(q_{11}, \cdots, q_{DK})$を更新できる。文書$d$のトピックが$k$である確率は、次の比例の式で示される。
$$
q_{dk}
\propto
\exp \left(
\Psi(\alpha_k)
- \Psi \Bigl(
\sum_{k'=1}^K \alpha_{k'}
\Bigr)
+ \sum_{v=1}^V N_{dv} \Psi(\beta_{kv})
+ N_d \Psi \Bigl(
\sum_{v=1}^V \beta_{kv}
\Bigr)
\right)
\tag{3.22}
$$
この比例関係の式は、$k = 1$から$K$までの和が1となるように正規化する(総和で割る)ことで等式関係となる。
EMアルゴリズムを用いた最尤推定では、各文書のトピックは負担率$\boldsymbol{q}_d = (q_{d1}, \cdots, q_{dK})$として分布で推定したが、パラメータ$\boldsymbol{\theta},\ \boldsymbol{\Phi}$は点推定していた。変分ベイズ推定ではハイパーパラメータを点推定することで、パラメータも分布$q(\boldsymbol{\theta}),\ q(\boldsymbol{\Phi})$で推定している。
3.4.3 変分下限
変分事後分布を更新する際に、変分下限が減少することはない。そのため、変分下限を計算することでアルゴリズムが適切に動作しているかを確認できる。
混合ユニグラムモデルの変分下限は、式(3.10),(3.11),(3.16),(3.18)より
$$
\begin{aligned}
F &= \int \int \sum_{\mathbf{z}}
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\log p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \alpha, \beta)
d\boldsymbol{\theta} d\boldsymbol{\Phi} \\
&\qquad
- \int \int \sum_{\mathbf{z}}
q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
\log q(\mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
d\boldsymbol{\theta} d\boldsymbol{\Phi}
\\
&= \overbrace{
\int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
\log p(\mathbf{z} | \boldsymbol{\theta})
d\boldsymbol{\theta}
}^{\rm 1st\ term}
+ \overbrace{
\int
q(\boldsymbol{\theta})
\log p(\boldsymbol{\theta} | \alpha)
d\boldsymbol{\theta}
}^{\rm 2nd\ term}
+ \overbrace{
\int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\Phi})
\log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
d\boldsymbol{\Phi}
}^{\rm 3rd\ term} \\
&\qquad
+ \overbrace{
\int
q(\boldsymbol{\Phi})
\log p(\boldsymbol{\Phi} | \beta)
d\boldsymbol{\Phi}
}^{\rm 4th\ term}
- \overbrace{
\sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\mathbf{z})
}^{\rm 5th\ term}
- \overbrace{
\int
q(\boldsymbol{\theta})
\log q(\boldsymbol{\theta})
d\boldsymbol{\theta}
}^{\rm 6th\ term}
- \overbrace{
\int
q(\boldsymbol{\Phi})
\log q(\boldsymbol{\Phi})
d\boldsymbol{\Phi}
}^{\rm 7th\ term}
\end{aligned}
$$
と分解できる。それぞれの因子は以下のように計算できる。
・第1項
$$
\begin{aligned}
&\int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\theta})
\log p(\mathbf{z} | \boldsymbol{\theta})
d\boldsymbol{\theta}
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q(z_d = k)
\int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log p(z_d = k | \theta_k)
d\boldsymbol{\theta}
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q_{dk}
\int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log \theta_k
d\boldsymbol{\theta}
\\
&= \sum_{d=1}^D \sum_{k=1}^K q_{dk} \left(
\Psi(\alpha_k)
- \Psi \Bigl(\sum_{k'=1}^K \alpha_{k'} \Bigr)
\right)
\end{aligned}
$$
【途中式の途中式】
- それぞれ項を分解、あるいは置き換える。
1つ目の項は
$$
\begin{align}
q(\mathbf{z})
&= \prod_{d=1}^D q(z_d) \\
\sum_{\mathbf{z}} q(\mathbf{z})
&= \prod_{d=1}^D \sum_{k=1}^K q(z_d = k)
\tag{2}
\end{align}
$$
である。
2つ目の項は式(3.19)より、パラメータ$\boldsymbol{\alpha}$を持つディリクレ分布である。
3つ目の項は
$$
\begin{aligned}
\log p(\mathbf{z} | \boldsymbol{\theta})
&= \sum_{d=1}^D \log p(z_d | \boldsymbol{\theta})
\\
\sum_{\mathbf{z}} \log p(\mathbf{z} | \boldsymbol{\theta})
&= \sum_{d=1}^D \sum_{k=1}^K \log p(z_d = k | \boldsymbol{\theta})
\end{aligned}
$$
である。
- 具体的な式に置き換える。
- $q(z_d = k | \boldsymbol{\theta}) = q_{dk}$である。
- $p(z_d = k | \boldsymbol{\theta}) = \theta_k$である。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。
・第2項
$$
\begin{aligned}
&\int
q(\boldsymbol{\theta})
\log p(\boldsymbol{\theta} | \alpha)
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K}
\prod_{k=1}^K \theta_k^{\alpha-1}
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha}) \left\{
\log \Gamma(\alpha K)
- K \log \Gamma(\alpha)
+ \sum_{k=1}^K
(\alpha - 1) \log \theta_k
\right\}
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log \Gamma(\alpha K)
d\boldsymbol{\theta}
- \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
K \log \Gamma(\alpha)
d\boldsymbol{\theta}
+ (\alpha - 1)
\sum_{k=1}^K \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log \theta_k
d\boldsymbol{\theta}
\\
&= \log \Gamma(\alpha K)
- K \log \Gamma(\alpha)
+ (\alpha - 1)
\sum_{k=1}^K \left(
\Psi(\alpha_k)
- \Psi \Bigl(\sum_{k'=1}^K \alpha_{k'} \Bigr)
\right)
\end{aligned}
$$
【途中式の途中式】
- それぞれ項を置き換える。
- 前の項は式(3.19)より、パラメータ$\boldsymbol{\alpha}$を持つディリクレ分布である。
- 後の項は、パラメータ$\alpha$を持つディリクレ分布である。
- 対数をとる。
- 括弧を展開する。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。また$\int q(\boldsymbol{\theta} | \boldsymbol{\alpha}) d\boldsymbol{\theta} = 1$である。
・第3項
$$
\begin{aligned}
&\int \sum_{\mathbf{z}}
q(\mathbf{z})
q(\boldsymbol{\Phi})
\log p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
d\boldsymbol{\Phi}
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q(z_d = k)
\int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_k)
d\boldsymbol{\phi}_k
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q_{dk}
\sum_{v=1}^V N_{dv}
\int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log \phi_{kv}
d\boldsymbol{\phi}_k
\\
&= \sum_{d=1}^D \sum_{k=1}^K q_{dk}
\sum_{v=1}^V N_{dv} \left(
\Psi(\beta_{kv})
- \Psi \Bigl(\sum_{v'=1}^V \beta_{kv'} \Bigr)
\right)
\end{aligned}
$$
【途中式の途中式】
- 式(2),(3.20),(1)より、それぞれ項を置き換える。
- 1つ目の項を負担率$q_{dk}$、3つ目の項を具体的な式に置き換え、$\boldsymbol{\phi}_k$と無関係な項を$\int$の外に出す。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。
・第4項
$$
\begin{aligned}
&\int
q(\boldsymbol{\Phi})
\log p(\boldsymbol{\Phi} | \beta)
d\boldsymbol{\Phi}
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log p(\boldsymbol{\phi}_k | \beta)
d\boldsymbol{\phi}_k
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log \frac{\Gamma(\beta V)}{\Gamma(\beta)^V}
\prod_{v=1}^V \phi_{kv}^{\beta-1}
d\boldsymbol{\phi}_k
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k) \left\{
\log \Gamma(\beta V)
- V \log \Gamma(\beta)
+ (\beta - 1) \sum_{v=1}^V \log \phi_{kv}
\right\}
d\boldsymbol{\phi}_k
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log \Gamma(\beta V)
d\boldsymbol{\phi}_k
- \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
V \log \Gamma(\beta)
d\boldsymbol{\phi}_k
+ (\beta - 1)
\sum_{k=1}^K \sum_{v=1}^V \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log \phi_{kv}
d\boldsymbol{\phi}_k
\\
&= K \log \Gamma(\beta V)
- K V \log \Gamma(\beta)
+ (\beta - 1)
\sum_{k=1}^K \sum_{v=1}^V \left(
\Psi(\beta_{kv})
- \Psi \Bigl(\sum_{v'=1}^V \beta_{kv'} \Bigr)
\right)
\end{aligned}
$$
【途中式の途中式】
- 項を分解し、また前の項を式(3.20)より、置き換える。
- 後の項はパラメータ$\beta$を持つディリクレ分布であるため、具体的な式に置き換える。
- 対数をとる。
- 括弧を展開する。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。また$\int q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k) d\boldsymbol{\phi}_k = 1$である。
・第5項
$$
\begin{aligned}
&\sum_{\mathbf{z}}
q(\mathbf{z})
\log q(\mathbf{z})
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q(z_d = k)
\log q(z_d = k)
\\
&= \sum_{d=1}^D \sum_{k=1}^K
q_{dk}
\log q_{dk}
\end{aligned}
$$
【途中式の途中式】
- 式(2)より、置き換える。
・第6項
$$
\begin{aligned}
&\int
q(\boldsymbol{\theta})
\log q(\boldsymbol{\theta})
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log q(\boldsymbol{\theta} | \boldsymbol{\alpha})
d\boldsymbol{\theta}
\\
&= \int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log
\frac{
\Gamma(\sum_{k=1}^K \alpha_k)
}{
\prod_{k=1}^K \Gamma(\alpha_k)
}
\prod_{k=1}^K \theta_k^{\alpha_k-1}
d\boldsymbol{\theta}
\\
&= \log \Gamma \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
- \sum_{k=1}^K \log \Gamma(\alpha_k)
+ \sum_{k=1}^K (\alpha_k - 1)
\int
q(\boldsymbol{\theta} | \boldsymbol{\alpha})
\log \theta_k
d\boldsymbol{\theta}
\\
&= \log \Gamma \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
- \sum_{k=1}^K \log \Gamma(\alpha_k)
+ \sum_{k=1}^K (\alpha_k - 1)
\left(
\Psi (\alpha_k)
- \Psi \Bigl(\sum_{k'=1}^K \alpha_{k'} \Bigr)
\right)
\end{aligned}
$$
【途中式の途中式】
- 式(3.19)より、パラメータ$\boldsymbol{\alpha}$を持つディリクレ分布に置き換える。
- 後の項を具体的な式に置き換える。
- 対数をとり、また$\boldsymbol{\phi}_k$と関係のない項を$\int$の外に出す。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。
・第7項
$$
\begin{aligned}
&\int
q(\boldsymbol{\Phi})
\log q(\boldsymbol{\Phi})
d\boldsymbol{\Phi}
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
d\boldsymbol{\phi}_k
\\
&= \sum_{k=1}^K \int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log
\frac{
\Gamma(\sum_{v=1}^V \beta_{kv})
}{
\prod_{v=1}^V \Gamma(\beta_{kv})
}
\prod_{v=1}^V \phi_{kv}^{\beta_{kv} -1}
d\boldsymbol{\phi}_k
\\
&= \sum_{k=1}^K \left(
\log \Gamma \Bigl(\sum_{v=1}^V \beta_{kv} \Bigr)
- \sum_{v=1}^V
\log \Gamma(\beta_{kv})
+ \sum_{v=1}^V (\beta_{kv} - 1)
\int
q(\boldsymbol{\phi}_k | \boldsymbol{\beta}_k)
\log \phi_{kv}
d\boldsymbol{\phi}_k
\right)
\\
&= \sum_{k=1}^K \left\{
\log \Gamma \Bigl(\sum_{v=1}^V \beta_{kv} \Bigr)
- \sum_{v=1}^V \log \Gamma(\beta_{kv})
+ \sum_{v=1}^V (\beta_{kv} - 1)
\left(
\Psi(\beta_{kv})
- \Psi \Bigl(\sum_{v'=}^V \beta_{kv'} \Bigr)
\right)
\right\}
\end{aligned}
$$
【途中式の途中式】
- 式(3.20)より、パラメータ$\boldsymbol{\beta}_k$を持つディリクレ分布に置き換える。
- 後の項を具体的な式に置き換える。
- 対数をとり、また$\boldsymbol{\phi}_k$と関係のない項を$\int$の外に出す。
- ディリクレ分布に従う変数の対数の期待値(1.17)より、置き換える。
参考書籍
- 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社
おわりに
最後の方はかなり雰囲気で解きましたので、、、
2019/07/26:加筆修正しました。
2020/07/24:加筆修正しました。
他の節と同じくらいは理解できました!
しかし尤度として用いる分布が、生成モデル(パラメータは条件)のときと観測データとパラメータの同時分布のときがあるような?整理がついていたはずなのに頭がごちゃごちゃしてきた、、
分布の条件としてハイパーパラメータを書いていたりなかったりなのは、その推定方法でのハイパーパラメータの重要度に応じて明示するかしないかの違いだと思います。
この一連の記事では、各節での統一感を重視して本と表記を変えていることがあります。この節だと、パラメータをまとめて$\boldsymbol{\Psi} = \{\boldsymbol{\theta}, \boldsymbol{\Phi}\}$とする表記方法もこの節だけのものなので、まとめずそのまま書いています。(太字かどうかの違いはあるとはいえ)ディガンマ関数と記号が被りますしね。折角パラメータを分けて導出するのであれば、本当はもう少しシンプルに計算できる(と思う)のですが、そこまで変えるのは本との対応を考えて止めました。4章の進め方が参考になると思います。
【次節の内容】
www.anarchive-beta.com