はじめに
『トピックモデルによる統計的潜在意味解析』の学習時のメモです。基本的な内容は、数式の行間を読んで埋めたものになります。本と併せて読んでください。
この記事では、3.4.3節のLDAの変分ベイズ法に自然勾配法を用いて確率的最適化する手法について書いています。
数学よく解らない自分が理解できるレベルまで落として数式を書き下していますので、分かる人にはかなりくどいです。
【実装編】
www.anarchive-beta.com
【前節の内容】
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
3.4.3 LDAの確率的変分ベイズ法
単語分布の近似事後分布$q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})$を逐次学習により更新する。
・フィッシャー情報行列の導出
まずは、フィッシャー情報行列を求めるために$\nabla^2_{\xi} \log q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})$を求める。
$$
\begin{align}
\frac{
\partial^2
}{
\partial \xi_{k,v}^{\phi}
\partial \xi_{k,v'}^{\phi}
}
\log p(\boldsymbol{\phi}_k | \boldsymbol{\xi}_{k}^{\phi})
&= \frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\prod_{v=1}^V \phi_{k,v}^{\xi_{k,v}^{\phi} - 1}
\\
&= \frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}} \left(
\log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
+ \sum_{v=1}^V
(\xi_{k,v}^{\phi} - 1)
\log \phi_{k,v}
\right)
\\
&= \frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
+ \frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\sum_{v=1}^V
(\xi_{k,v}^{\phi} - 1)
\log \phi_{k,v}
\tag{3.152}
\end{align}
$$
後の因子は
$$
\frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\sum_{v=1}^V
(\xi_{k,v}^{\phi} - 1)
\log \phi_{k,v}
= \frac{\partial}{\partial \xi_{k,v}^\phi}
\log \phi_{k,v'}
= 0
$$
であるため
$$
\begin{aligned}
\frac{
\partial^2
}{
\partial \xi_{k,v}^{\phi}
\partial \xi_{k,v'}^{\phi}
}
\log p(\boldsymbol{\phi}_k | \boldsymbol{\xi}_{k}^{\phi})
&= \frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\\
&= \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\frac{\partial}{\partial \xi_{k,v'}^{\phi}}
\log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\end{aligned}
$$
となる。更に、式(3.103)を用いて期待値に置き換える。
$$
\begin{align}
\frac{
\partial^2
}{
\partial \xi_{k,v}^{\phi}
\partial \xi_{k,v'}^{\phi}
}
\log p(\boldsymbol{\phi}_k | \boldsymbol{\xi}_{k}^{\phi})
&= - \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\frac{\partial}{\partial \xi_{k,v'}^{\phi}} \left(
- \log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\right)
\\
&= - \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\frac{\partial}{\partial \xi_{k,v'}^{\phi}} \left(
\sum_{v=1}^V
\log \Gamma(\xi_{k,v}^{\phi})
- \log \Gamma \Bigl(\sum_{v=1}^V \xi_{k,v}^{\phi} \Bigr)
\right)
\\
&= - \frac{\partial}{\partial \xi_{k,v}^{\phi}} \left(
\Psi(\xi_{k,v'}^{\phi})
- \Psi \Bigl(\sum_{v=1}^V \xi_{k,v}^{\phi} \Bigr)
\right)
\\
&= - \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} [
\log \phi_{k,v'}
]
\tag{3.153}
\end{align}
$$
従って、式(3.144)より$q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})$のフィッシャー情報行列$G(\boldsymbol{\xi}_k^{\phi})$の$v, v'$要素は
$$
\begin{align}
G_{v,v'} (\boldsymbol{\xi}_k^{\phi})
&= - \int
q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})
\frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\log q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})
d\boldsymbol{\phi}_k
\\
&= - \mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} \left[
\frac{\partial^2}{\partial \xi_{k,v}^{\phi} \partial \xi_{k,v'}^{\phi}}
\log q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})
\right]
\\
&= - \mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} \left[
- \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} [
\log \phi_{k,v'}
]
\right]
\\
&= \frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} [
\log \phi_{k,v'}
]
\tag{3.154}
\end{align}
$$
となる。
・変分下限の勾配の導出
LDAの変分下限は3.3.6項の式(3.102)を用いる。
$$
\begin{align}
F[q(\boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\xi}^{\theta}, \boldsymbol{\xi}^{\phi})]
&= \sum_{k=1}^K \left[
\log \frac{
\Gamma(\sum_{v=1}^V \beta_v)
}{
\prod_{v=1}^V \Gamma(\beta_v)
}
- \log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\right]
+ \sum_{k=1}^K \sum_{v=1}^V (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_v - \xi_{k,v}^{\phi}
)
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
] \\
&\qquad
+ \sum_{d=1}^M \left[
\log \frac{
\Gamma(\sum_{k=1}^K \alpha_k)
}{
\prod_{k=1}^K \Gamma(\alpha_k)
}
- \log \frac{
\Gamma(\sum_{k=1}^K \xi_{d,k}^{\theta})
}{
\prod_{k=1}^K \Gamma(\xi_{d,k}^{\theta})
}
\right]
+ \sum_{d=1}^M \sum_{k=1}^K (
\mathbb{E}_{q(\boldsymbol{z}_d)}[
n_{d,k}
]
+ \alpha_k - \xi_{d,k}^{\theta}
)
\mathbb{E}_{q(\boldsymbol{\theta}_d | \boldsymbol{\xi}_d^{\theta})}[
\log \theta_{d,k}
] \\
&\qquad
- \sum_{d=1}^M \sum_{i=1}^{n_d} \sum_{k=1}^K
q(z_{d,i} = k)
\log q(z_{d,i} = k)
\tag{3.102}
\end{align}
$$
変分下限の勾配$\nabla_{\xi_{k,v}^{\phi}} F[q(\boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\xi}^{\theta}, \boldsymbol{\xi}^{\phi})]$を求める。
$$
\begin{align}
\frac{
\partial
}{
\partial \xi_{k,v}^{\phi}
}
F[q(\boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\xi}^{\theta}, \boldsymbol{\xi}^{\phi})]
&= \frac{\partial}{\partial \xi_{k,v}^{\phi}} \left(
- \log \frac{
\Gamma(\sum_{v=1}^V \xi_{k,v}^{\phi})
}{
\prod_{v=1}^V \Gamma(\xi_{k,v}^{\phi})
}
\right)
+ \frac{\partial}{\partial \xi_{k,v}^{\phi}} \left(
- \xi_{k,v}^{\phi}
\right)
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
] \\
&\qquad
+ \sum_{v=1}^V (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\\
&= \mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
- \mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
] \\
&\qquad
+ \sum_{v=1}^V (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\\
&= \sum_{v=1}^V (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\tag{3.104}
\end{align}
$$
・更新式の導出
従って、式(3.150)より自然勾配を用いた更新式は、ステップサイズを$\nu_s$として
$$
\begin{align}
\boldsymbol{\xi}_k^{\phi (s+1)}
&= \boldsymbol{\xi}_k^{\phi (s)}
+ \nu_s
G^{-1}(\boldsymbol{\xi}_k^{\phi})
\nabla_{\boldsymbol{\xi}_k^{\phi}}
F[q(\boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\xi}^{\theta}, \boldsymbol{\xi}^{\phi})]
\tag{3.156}
\\
&= \boldsymbol{\xi}_k^{\phi (s)}
+ \nu_s
G^{-1}(\boldsymbol{\xi}_k^{\phi})
\sum_{v=1}^V (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\end{align}
$$
となる。
また、各成分は、式(3.154)より
$$
\begin{align}
\xi_{k,v}^{\phi (s+1)}
&= \xi_{k,v}^{\phi (s)}
+ \nu_s
G_{v,v'}(\boldsymbol{\xi}_k^{\phi})^{-1}
(
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\\
&= \xi_{k,v}^{\phi (s)}
+ \nu_s
\frac{
1
}{
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})} [
\log \phi_{k,v}
]
} (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\frac{\partial}{\partial \xi_{k,v}^{\phi}}
\mathbb{E}_{q(\boldsymbol{\phi}_k | \boldsymbol{\xi}_k^{\phi})}[
\log \phi_{k,v}
]
\\
&= \xi_{k,v}^{\phi (s)}
+ \nu_s (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v} - \xi_{k,v}^{\phi}
)
\\
&= \xi_{k,v}^{\phi (s)}
- \nu_s \xi_{k,v}^{\phi}
+ \nu_s (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
)
\\
&= (1 - \nu_s)
\xi_{k,v}^{\phi}
+ \nu_s (
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
)
\tag{3.157}
\end{align}
$$
となる。
この更新式が$\nu_s = 1$のとき
$$
\xi_{k,v}^{\phi (s+1)}
= \mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
\tag{3.95}
$$
となり、変分ベイズ法での更新式となることが確認できる。
・確率的最適化
文書dに含まれる同一単語vの中でトピックkが割り当てられた単語数を$n_{d,k,v}$とすると、その期待値は
$$
\mathbb{E}_{q(\boldsymbol{z})} [n_{d,k,v}]
= \sum_{i=1}^{n_d}
q(z_{d,i} = k)
\delta(w_{d,i} = v)
$$
である。全文書における同一単語vの中でトピックkが割り当てられた単語数$n_{k,v}$の期待値は
$$
\mathbb{E}_{q(\boldsymbol{z})} [n_{k,v}]
= \sum_{d=1}^M
\mathbb{E}_{q(\boldsymbol{z})} [n_{d,k,v}]
$$
となる。
これを用いて、式(3.157)の(3行目の)勾配を
$$
\mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
- \xi_{k,v}^{\phi}
= \sum_{d=1}^M
\frac{1}{M} \left(
M \mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
- \xi_{k,v}^{\phi}
\right)
\tag{3.158}
$$
と変形する。$p(d) = \frac{1}{M}$として、確率的最適化による更新式
$$
\xi_{k,v}^{\phi (s+1)}
= \xi_{k,v}^{\phi (s)}
+ \nu_s (
M \mathbb{E}_{q(\boldsymbol{z})}[
n_{k,v}
]
+ \beta_{v}
- \xi_{k,v}^{\phi (s)}
)
\tag{3.159}
$$
が得られる。
参考文献
- 佐藤一誠『トピックモデルによる統計的潜在意味解析』(自然言語処理シリーズ 8)奥村学監修,コロナ社,2015年.
おわりに
この記事で勾配法の節が終了です。
概ね解けたのですが、それぞれの数式で何をしているのかいまいち理解できていません。腹落ちしないまま書き終わってしまったというか…。ですが、今は納得感よりもまず先へ進みます。2週目する頃には理解できるようになってるといーなー。
あと、本の誤植を見付けたのですが、果たして本当に誤植なのか自信がない。
次も全く知らない手法が出てくるようなので、また日が空くかもしれませんがよろしくお願いします。
【次節の内容】
www.anarchive-beta.com