はじめに
『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
本の補助として読んでください。
この記事では、結合トピックモデルに対する崩壊型ギブスサンプリングの数式の行間を埋めます。
【前節の内容】
【他の節の内容】
【この節の内容】
- はじめに
- 5.1 結合トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合
- 参考書籍
- おわりに
5.1 結合トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合
結合トピックモデル(JTM・joint topic model)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、ハイパーパラメータが多様な値の場合を扱う。
トピックモデル(LDA・latent Dirichlet allocation)の定義や記号については「4.1:トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、結合トピックモデルの定義や記号については「5.1:結合トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、ハイパーパラメータが一様な値の場合については「5.1:結合トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
パラメータの周辺化の導出
まずは、サンプリング式や更新式の導出に用いる各変数の周辺分布の式を導出する。
結合周辺分布の設定
パラメータ を周辺化(積分消去)したときの観測変数
と潜在変数
の結合分布(同時分布)を求める。
結合トピックモデルの生成過程(依存関係)に従って、 の結合周辺分布を分割する。
結合トピックモデルの依存関係については「結合トピックモデルの生成モデルの導出」を参照のこと。
に関する周辺分布から得られることが分かった。
トピック集合の結合周辺分布
の結合周辺分布の式(1)の1つ目の項は、トピック分布のパラメータ
の事前分布を用いたトピック集合
の結合周辺分布である。
この式について、パラメータを明示して変形する。
途中式の途中式(クリックで展開)
- 1: 周辺化された
を明示する。
- 2: 潜在変数
とパラメータ
の項を分割する。
- 3: 単語に関する変数
と補助情報に関する変数
の項を分割する。
- 4: 文書ごとの積に分解する。
- 5: 単語・補助情報ごとの積に分解する。
さらに、確率分布を具体的な式に置き換えて、式を整理する。
途中式の途中式(クリックで展開)
- 1: 各単語・補助情報のトピック
はカテゴリ分布、各文書のトピック分布のパラメータ
はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
- 2:
個の単語に対応するパラメータ
について、各単語に割り当てられたトピック番号
を用いてトピックごとにまとめると、
個の
に置き換えられる。
- 2:
個の補助情報に対応するパラメータ
について、各補助情報に割り当てられたトピック番号
を用いてトピックごとにまとめると、
個の
に置き換えられる。
- 3:
と無関係な正規化項を
の外に出し、
の項をまとめる。
- 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
- 5: トピックごとの単語数・補助情報数の関係より、
、
である。
- 6: 不動点反復法を行うために、分母を入れ替えて
の項をそれぞれまとめる。
の結合周辺分布の式が得られた。
文書集合の周辺分布
の結合周辺分布の式(1)の2つ目の項は、単語分布のパラメータ
の事前分布を用いた文書集合
の周辺分布である。
この式は、トピックモデル(4.5節)と同じ式なので、次の式になる。
詳しくは「4.5:トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
の周辺分布の式が得られた。
補助情報集合の周辺分布
の結合周辺分布の式(1)の3つ目の項は、補助情報分布のパラメータ
の事前分布を用いた補助情報集合
の周辺分布である。
この式について、パラメータを明示して変形する。
途中式の途中式(クリックで展開)
- 1: 周辺化された
を明示する。
- 2: 観測変数
とパラメータ
の項を分割する。
- 3: 文書・トピックごとの積に分解する。
- 4: 補助情報ごとの積に分解する。
さらに、確率分布を具体的な式に置き換えて、式を整理する。
途中式の途中式(クリックで展開)
- 1: 各補助情報の種類(内容)
はカテゴリ分布、各トピックの補助情報分布のパラメータ
はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
- 2:
個の補助情報に対応するパラメータ
について、各補助情報に割り当てられたトピック番号
と種類番号
を用いてトピックと種類ごとにまとめると、
個の
に置き換えられる。
- 3:
と無関係な正規化項を
の外に出し、
の項をまとめる。
- 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
- 5: トピックごとの補助情報数の関係より、
である。
- 6: 不動点反復法を行うために、分母を入れ替えて
の項をそれぞれまとめる。
の周辺分布の式が得られた。
結合周辺分布
の結合周辺分布の式(1)に、
の結合周辺分布の式(2')と
の周辺分布の式(4.11')、
の周辺分布の式(3')を代入する。
の結合分布の式が得られた。
以上で、各変数の周辺分布の式と、結合周辺分布の式が得られた。
スポンサードリンク
サンプリング式の導出
次は、各変数の周辺分布を用いて、各潜在変数のサンプリング確率(条件付き分布)を導出する。
文書 の
番目の単語
を除いた文書集合を
、単語トピック集合を
とする。全ての文書集合は
、全ての単語トピック集合は
で表せる。
文書 の
番目の補助情報
を除いた補助情報集合を
、補助情報トピック集合を
とする。全ての補助情報集合は
、全ての補助情報トピック集合は
で表せる。
同様に、 を除く単語数を
、
を除く補助情報数を
で表す。
単語トピックの条件付き分布の設定
全単語の文書集合 と単語
以外のトピック集合
、補助情報集合
と補助情報トピック集合
が与えられた(条件とする)ときの単語
のトピック
の条件付き分布を求める。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、目的の変数
以外の変数
を条件に移した式を立てる。
- 2:
と無関係な項を省く。
- 3: 変数ごとの項に分割する。
単語 に関する変数
と単語
以外に関する変数
、補助情報に関する変数
の項を分割する。
さらに1つ目の項の、観測変数 と潜在変数
の項を分割する。
2つ目の項の、観測変数 と潜在変数
の項を分割する。
3つ目の項の、観測変数 と潜在変数
の項を分割する。
- 4:
と無関係な項を省く。
に影響しない項を省いて比例関係のみに注目すると、
に関する事後周辺分布から得られることが分かった。
単語トピックの事後周辺分布
の条件付き分布の式(4)の前の項は、単語
以外のトピック集合
が与えられたときの単語
のトピック
の周辺分布である。
この式は、 の結合周辺分布の式(2)を用いて求められる。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、目的の変数
以外の変数
を条件に移した式を立てる。
- 2: 式(2)を用いて、分母分子を具体的な式に置き換える。
の周辺分布(分子)は式(2)であり、
の周辺分布(分母)は式(2)から単語
に関して取り除いた式である。
ただし、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。
の周辺分布の式について
を
、
の周辺分布の式について
を
に置き換える。
文書 やトピック
の項のみ形が異なるので、
から取り出しておく。
- 3: ガンマ関数の性質
より、項を変形する。
- 4:
に関する総乗
なので、約分すると
に関する項のみが残る。
の事後周辺分布の式が得られた。
単語の事後周辺分布
の条件付き分布の式(4)の後の項は、単語
以外の文書集合
と全単語のトピック集合
が与えられたときの単語
の周辺分布である。
この式は、トピックモデル(4.5節)と同じ式なので、 の周辺分布の式(4.11)を用いて、次の式になる。
詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合」を参照のこと。
の事後周辺分布の式が得られた。
単語トピックの条件付き分布
の条件付き分布の式(4)に、
の事後周辺分布の式(5)と
の事後周辺分布の式(4.14)を代入する。
に影響しない項を省いた。他のトピックについても同様に計算でき、全てのトピックに関する和で割ると正規化できる。
の条件付き分布の式が得られた。
補助情報トピックの条件付き分布の設定
単語集合 と単語トピック集合
、全ての補助情報集合
と補助情報
以外のトピック集合
が与えられた(条件とする)ときの補助情報
のトピック
の条件付き分布を求める。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、目的の変数
以外の変数
を条件に移した式を立てる。
- 2:
と無関係な項を省く。
- 3: 変数ごとの項に分割する。
単語に関する変数 、補助情報
に関する変数
と補助情報
以外に関する変数
の項を分割する。
さらに1つ目の項の、観測変数 と潜在変数
の項を分割する。
2つ目の項の、観測変数 と潜在変数
の項を分割する。
3つ目の項の、観測変数 と潜在変数
の項を分割する。
- 4:
と無関係な項を省く。
に影響しない項を省いて比例関係のみに注目すると、
に関する事後周辺分布から得られることが分かった。
補助情報トピックの事後周辺分布
の条件付き分布の式(6)の前の項は、補助情報
以外のトピック集合
が与えられたときの補助情報
のトピック
の周辺分布である。
この式は、 の結合周辺分布の式(2)を用いて求められる。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、目的の変数
以外の変数
を条件に移した式を立てる。
- 2: 式(2)を用いて、分母分子を具体的な式に置き換える。
の周辺分布(分子)は式(2)であり、
の周辺分布(分母)は式(2)から補助情報
に関して取り除いた式である。
ただし、次の関係である。詳しくは「一様版」を参照のこと。
の周辺分布の式について
を
、
の周辺分布の式について
を
に置き換える。
文書 やトピック
の項のみ形が異なるので、
から取り出しておく。
- 3: ガンマ関数の性質より、項を変形する。
- 4: 約分すると
に関する項のみが残る。
の事後周辺分布の式が得られた。
補助情報の事後周辺分布
の条件付き分布の式(6)の後の項は、補助情報
以外の補助情報集合
と全補助情報のトピック集合
が与えられたときの補助情報
の周辺分布である。
この式は、 の周辺分布の式(3)を用いて求められる。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、目的の変数
以外の変数
を条件に移した式を立てる。
- 2: 式(3)を用いて、分母分子を具体的な式に置き換える。
の周辺分布(分子)は式(3)であり、
の周辺分布(分母)は式(3)から補助情報
に関して取り除いた式である。
ただし、次の関係である。詳しくは「一様版」を参照のこと。
の周辺分布の式について
を
に置き換える。
トピック や種類
の項のみ形が異なるので、
から取り出しておく。
- 3: ガンマ関数の性質より、項を変形する。
- 4:
に関する総乗
なので、約分すると
に関する項のみが残る。
の事後周辺分布の式が得られた。
補助情報トピックの条件付き分布
の条件付き分布の式(6)に、
の事後周辺分布の式(7)と
の事後周辺分布の式(8)を代入する。
に影響しない項を省いた。他のトピックについても同様に計算でき、全てのトピックに関する和で割ると正規化できる。
のサンプリング確率の式が得られた。
以上で、各潜在変数のトピックのサンプリング式が得られた。
スポンサードリンク
ハイパーパラメータの更新式の導出
続いて、サンプリングしたトピック集合を用いて、全変数の結合周辺分布を最大化するハイパーパラメータを推定する。しかし、解析的に求められない。そこで、不動点反復法により結合周辺分布の下限を繰り返し更新することで最大化を行うための各分布のハイパーパラメータの更新式を導出する。
周辺結合分布の下限の設定
の結合周辺分布の式(2')を
と変形し、また の周辺分布の式(4.11')を
と変形し、 の周辺分布の式(3')を
と変形して、 の結合周辺分布の式(1)を置き換え下限
とおく。
また、次のようにおいた。
途中式の途中式(クリックで展開)
- 1: 対数ガンマとディガンマ関数の不等式を用いて、項を置き換える。
に対して、
、
のとき、次の関係が成り立つ。
また、 に対して、
のとき、次の関係が成り立つ。
現在の値(中心) を
、更新後の値(変数)
を
と対応させて下限の式に変形する。
現在の値を 、更新後の値を
とする(
の添字の
は識別用で計算上の意味はない)。周辺尤度に関して
の周りでテイラー展開(近似)して下限として用いる。
下限への変形については「対数ガンマ関数とディガンマ関数の不等式の導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
の結合周辺分布の下限
の対数をとり対数下限
とおく。
の結合周辺分布の対数下限の式が得られた。
トピック分布のハイパーパラメータ
の結合周辺分布の対数下限
から
に関する項を取り出し(無関係な項を定数
にまとめ)関数
とおく。
関数 を
に関して微分する。
途中式の途中式(クリックで展開)
- 1:
の式全体の偏微分を考える。
に関する微分なので、
は定数として扱う。
- 2: 和の微分
より、項ごとの微分の和に分割する。
- 3:
の係数を
の外に出す。
- 4: 自然対数の微分
を行う。
となる
を求める。
途中式の途中式(クリックで展開)
- 1:
を
とおく。
- 2:
について式を整理する。
- 3:
に式(9)を代入する。
- 4: 括弧を展開する。
不動点反復法によるハイパーパラメータの計算式が得られた。
回目の更新において、
を更新前の値(
回目の更新値)
、
を更新後の値(
回目の更新値)
とする。また、初期値は
とする。
の更新式が得られた。
単語分布のハイパーパラメータ
の結合周辺分布の対数下限
から
に関する項を取り出し関数
とおく。
この式は、トピックモデル(4.5節)と同じ式なので、関数 を
に関して微分して解くと、次の式になる。
回目の更新において、
を更新前の値(
回目の更新値)
、
を更新後の値(
回目の更新値)
とする。また、初期値は
とする。
詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合」を参照のこと。
の更新式が得られた。
補助情報分布のハイパーパラメータ
の結合周辺分布の対数下限
から
に関する項を取り出し関数
とおく。
関数 を
に関して微分する。
途中式の途中式(クリックで展開)
- 1:
の式全体の偏微分を考える。
に関する微分なので、
は定数として扱う。
- 2: 和の微分より、項ごとの微分の和に分割する。
- 3:
係数を
の外に出す。
- 4: 自然対数の微分を行う。
となる
を求める。
途中式の途中式(クリックで展開)
- 1:
を
とおく。
- 2:
について式を整理する。
- 3:
に式(9)を代入する。
- 4: 括弧を展開する。
不動点反復法によるハイパーパラメータの計算式が得られた。
回目の更新において、
を更新前の値(
回目の更新値)
、
を更新後の値(
回目の更新値)
とする。また、初期値は
とする。
の更新式が得られた。
以上で、各分布のハイパーパラメータの更新式が得られた。
スポンサードリンク
事後予測分布の導出
最後は、各変数の周辺分布を用いて、未知(新規)の各変数の事後予測分布を導出する。
既存の文書 において新たに生成される(
番目の)単語(の語彙)を
、トピックを
、新たに生成される(
番目の)補助情報(の種類)を
、トピックを
で表す。
トピックの事後予測分布の設定
トピック集合 が与えられたときの文書
の未知の単語
のトピック
(または補助情報
のトピック
)の予測分布を求める。
途中式の途中式(クリックで展開)
- 1: サンプリングした潜在変数
と事前分布のパラメータ
を条件とする未観測の潜在変数
(または
)とパラメータ
の結合分布を
に関して周辺化した式を立てる。
- 2: 潜在変数
とパラメータ
の項を分割する。
は、
が与えられたときの文書
のトピック分布のパラメータ
の事後分布である。つまり、
は、
の事後分布を用いたトピック
の周辺分布である。
トピックの事後予測分布
の事後予測分布の式は、
の結合周辺分布の式(2)を用いて求められる。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、未知の変数
以外の既知の変数
を条件に移した式を立てる。
- 2: 式(2)を用いて、分母分子を具体的な式に置き換える。
の周辺分布(分子)は式(2)に新たな単語
に関して追加した式であり、
の周辺分布(分母)は式(2)である。
ここで、新規(未知)の単語 を含めた数を
とすると、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。
の周辺分布の式について、
を
に置き換える。(「単語トピックの事後周辺分布」のときとは置き換え方が異なる点に注意。)
文書 やトピック
の項のみ形が異なるので、
から取り出しておく。
- 3: ガンマ関数の性質より、項を変形する。
- 4:約分すると
に関する項のみが残る。
1つの補助情報のトピック を追加した場合を考えても同じ式になる。
または
(に割り当てられるトピック
)の事後予測分布の式が得られた。この式を
とおく。
トピック分布のパラメータ
他のトピックについても同様に求められるので、 の事後予測分布のパラメータは、次の
次元ベクトルになる。
非負の分子の総和が分母に一致するので、カテゴリ分布のパラメータの条件を満たす。
サンプリングデータ から推定したトピック分布のパラメータ
の推定値と言える。
単語の事後予測分布の設定
文書集合 と単語トピック集合
、未知の単語のトピック
が与えられたときの未知の単語(の語彙)
の予測分布を求める。
の事後分布を用いた単語
の周辺分布である。
単語の事後予測分布
この式はトピックモデル(4.5節)と同じ式なので、 の周辺分布の式(4.11)を用いて、次の式になる。
詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合」を参照のこと。
(に割り当てられる語彙
)の事後予測分布の式が得られた。この式を
とおく。
単語分布のパラメータ
他の語彙についても同様に求められるので、 の事後予測分布のパラメータは、次の
次元ベクトルになる。
観測・サンプリングデータ から推定した単語分布のパラメータ
の推定値と言える。
補助情報の事後予測分布の設定
補助情報集合 と補助情報トピック集合
、未知の補助情報のトピック
が与えられたときの未知の補助情報(の種類)
の予測分布を求める。
途中式の途中式(クリックで展開)
- 1: 観測・サンプリングした変数
と事前分布のパラメータ
を条件とする未観測の観測変数
とパラメータ
の結合分布を
に関して周辺化した式を立てる。
- 2: 観測変数
とパラメータ
の項を分割する。
は、
が与えられたときの補助情報分布のパラメータ
の事後分布である。つまり、
は、
の事後分布を用いた補助情報
の周辺分布である。
補助情報の事後予測分布
の事後予測分布の式は、
の周辺分布の式(3)を用いて求められる。
途中式の途中式(クリックで展開)
- 1: 条件付き確率より、未知の変数
以外の既知の変数
を条件に移した式を立てる。
- 2: 式(3)を用いて、分母分子を具体的な式に置き換える。
の周辺分布(分子)は式(3)に新たな補助情報
に関して追加した式であり、
の周辺分布(分母)は式(3)である。
ここで、新規(未知)の補助情報 を含めた数を
とすると、次の関係である。詳しくは「一様版」を参照のこと。
の周辺分布の式について、
を
に置き換える。
トピック や種類
の項のみ形が異なるので、
から取り出しておく。
- 3: ガンマ関数の性質より、項を変形する。
- 4: 約分すると
に関する項のみが残る。
(に割り当てられる種類
)の事後予測分布の式が得られた。この式を
とおく。
補助情報分布のパラメータ
他の種類についても同様に求められるので、 の事後予測分布のパラメータは、次の
次元ベクトルになる。
非負の分子の総和が分母に一致するので、カテゴリ分布のパラメータの条件を満たす。
観測・サンプリングデータ から推定した補助情報分布のパラメータ
の推定値と言える。
以上で、各変数の事後予測分布の式と、各分布のパラメータの推定値の計算式が得られた。
この節では、結合トピックモデルを扱った。次の節では、対応トピックモデルを扱う。
参考書籍
おわりに
トピックモデルまでで書いたこともあり拡張トピックモデルでもやっていこうと、多様版も書きました。書き始めはやったるぞ!と思ってるのはいつものことですが、、あと4つもモデルが残ってる、、、
多様版と一様版で式が微妙に違うわけですが、この微妙な違いのためにどこまで深入りするかはいつも悩みどころです。導出してみたところ、微分の際に多様版だとハイパラが1つだけ残るのに対して、一様版だとハイパラがパラメータ数個残るので、更新式の各項が定数倍される形になるわけですね。
今回はなるほどな!と思えたのでやってみた価値はありましたが、コスパは、、そもそも気付いたのはトピックモデルの導出のときですし、両方実装してみたらまた何か発見がありますかね?
5章の記事は4年近く前に書いた初稿の状態なので今となっては気になる書き方が多く、今回は書き直すことが優先なので実装は後回しで続きを書いていきます。まぁこの記事は新規で書いたものなんですがね。
この記事の投稿日に公開された佐藤優樹さんのMVを絶対に聴いてください!
まーちゃん楽曲でかっけーMVを作るの大好きー!新シングルのリリースが楽しみだーー♪
- 2025.05.20:加筆修正しました。
5章までのギブスサンプリング数式編の記事の加筆修正が済んだので、全体の構成を統一するために再度調整しました。大きな変更はありませんが、端折っていた事後予測分布の途中式の途中式などを追加しました。
ついでにブログの記事カテゴリも弄り始めました。現状は一部の記事だけカテゴリ名などを変更したので、このまま止めてしまうと修正前よりカオスな有様になってしまうが、はたして。
【次節の内容】
- 数式読解編
結合トピックモデルの生成モデルを数式で確認します。