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