からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

6.2:パチンコ配分モデルの生成モデルの導出【青トピックモデルのノート】

はじめに

 『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
 本の補助として読んでください。

 この記事では、パチンコ配分モデルで登場する数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

6.2 パチンコ配分モデルの生成モデルの導出

 パチンコ配分モデル(PAM・pachinko allocation model)の定義(仮定)を確認する。パチンコ配分モデルでは、階層構造を持つトピックを扱う。この記事では、2階層のトピックの場合を扱う。
 トピックモデル(LDA・latent Dirichlet allocation)の定義や共通する記号類については「4.1:トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

生成過程の設定

 まずは、パチンコ配分モデルの生成過程(generative process)を数式で確認する。ただし、基本形のトピックモデルと共通する内容については省略する。アルゴリズムについては図5.5を参照のこと。

 上位トピック数を  S、上位トピック番号(インデックス)を  s \in \{1, 2, \dots, S\} とする。
 下位トピック数を  K、下位トピック番号を  k \in \{1, 2, \dots, K\} とする。

 単語  w_{dn} が持つ(割り当てられた)上位トピックを  y_{dn} で表す。各単語の上位トピック  y_{dn} の値として上位トピック番号  s をとることで、その単語の上位トピックを表す。

 \displaystyle
y_{dn}
    \in
      \{1, 2, \dots, S\}

 単語ごとに上位トピックを持ち、文書  d N_d 個の単語の上位トピックを集合  \mathbf{y}_d として扱い、文書  d の上位トピック集合と呼ぶ。

 \displaystyle
\mathbf{y}_d
    = \{y_{d1}, y_{d2}, \cdots, y_{dN_d}\}

 文書ごとに上位トピック集合を持ち、 D 個の上位トピック集合を集合  \mathbf{Y} として扱い、上位トピック集合と呼ぶ。

 \displaystyle
\mathbf{Y}
    = \{\mathbf{y}_1, \mathbf{y}_2, \cdots, \mathbf{y}_D\}

 文書  d の単語に対して上位トピック  s が生成される(割り当てられる)確率を  \theta_{ds} で表す。
 各上位トピックに対応する  S 個の生成確率をまとめて、 S 次元ベクトル  \boldsymbol{\theta}_d で表す。

 \displaystyle
\boldsymbol{\theta}_d
    = (\theta_{d1}, \theta_{d2}, \cdots, \theta_{dS})

  \boldsymbol{\theta}_d の各要素は確率なので、それぞれ非負の値であり、総和(全ての上位トピックに関する和)が1になる条件を満たす必要がある。

 \displaystyle
0 \leq \theta_{ds} \leq 1
,\ 
\sum_{s=1}^S \theta_{ds}
    = 1

  \boldsymbol{\theta}_d を文書  d の上位トピック分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 文書ごとに上位トピック分布(のパラメータ)を持ち、 D 個のパラメータを集合  \boldsymbol{\theta} として扱い、上位トピック分布のパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\theta}
    = \{\boldsymbol{\theta}_1, \boldsymbol{\theta}_2, \cdots, \boldsymbol{\theta}_D\}

 また、各文書の上位トピック分布のパラメータ  \boldsymbol{\theta}_d (  \boldsymbol{\theta} の各要素)は、 \boldsymbol{\alpha}_0 をパラメータとするディリクレ分布に従って独立に生成されると仮定する。

 \displaystyle
\boldsymbol{\theta}_d
    \sim
      \mathrm{Dirichlet}(\boldsymbol{\alpha}_0)

  \boldsymbol{\alpha}_0 S 次元のベクトルであり、上位トピック分布のハイパーパラメータ(超パラメータ)と呼ぶ。

 \displaystyle
\boldsymbol{\alpha}_0
    = (\alpha_{01}, \alpha_{02}, \cdots, \alpha_{0S})

  \boldsymbol{\alpha}_0 はディリクレ分布のパラメータなので、各要素は非負の値の条件を満たす必要がある。

 \displaystyle
\alpha_{0s} \geq 0

  \alpha_{0s} \theta_{1s}, \theta_{1s}, \cdots, \theta_{Ds} に影響する。

 各単語の上位トピック  y_{dn} は、文書に応じた上位トピック分布のパラメータ  \boldsymbol{\theta}_d をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

 \displaystyle
y_{dn}
    \sim
      \mathrm{Categorical}(\boldsymbol{\theta}_d)


 単語  w_{dn} が持つ(割り当てられた)下位トピックを  z_{dn} で表す。各単語の下位トピック  z_{dn} の値として下位トピック番号  k をとることで、その単語の下位トピックを表す。

 \displaystyle
z_{dn}
    \sim
      \{1, 2, \dots, K\}

 単語ごとに下位トピックを持ち、文書  d N_d 個の単語の下位トピックを集合  \mathbf{z}_d として扱い、文書  d の下位トピック集合と呼ぶ。

 \displaystyle
\mathbf{z}_d
    = \{z_{d1}, z_{d2}, \cdots, z_{dN_d}\}

 文書ごとに下位トピック集合を持ち、 D 個の下位トピック集合を集合  \mathbf{Z} として扱い、下位トピック集合と呼ぶ。

 \displaystyle
\mathbf{Z}
    = \{\mathbf{z}_1, \mathbf{z}_2, \cdots, \mathbf{z}_D\}

 文書  d における上位トピック  s の単語に対して下位トピック  k が生成される(割り当てられる)確率を  \theta_{dsk} で表す。
 各下位トピックに対応する  K 個の生成確率をまとめて、 K 次元ベクトル  \boldsymbol{\theta}_{ds} で表す。

 \displaystyle
\boldsymbol{\theta}_{ds}
    = (\theta_{ds1}, \theta_{ds2}, \cdots, \theta_{dsK})

  \boldsymbol{\theta}_{ds} の各要素は確率なので、それぞれ非負の値であり、総和(全ての下位トピックに関する和)が1になる条件を満たす必要がある。

 \displaystyle
0 \leq \theta_{dsk} \leq 1
,\ 
\sum_{k=1}^K \theta_{dsk}
    = 1

  \boldsymbol{\theta}_{ds} を文書  d における上位トピック  s の下位トピック分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 上位トピックごとに下位トピック分布(のパラメータ)を持ち、 S 個のパラメータを集合  \boldsymbol{\Theta}_d として扱い、文書  d の下位トピック分布のパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\Theta}_d
    = \{\boldsymbol{\theta}_{d1}, \boldsymbol{\theta}_{d2}, \cdots, \boldsymbol{\theta}_{dS}\}

 さらに、文書ごとに下位トピック分布のパラメータ集合を持ち、 D 個のパラメータ集合を集合  \boldsymbol{\Theta} として扱い、下位トピック分布のパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\Theta}
    = \{\boldsymbol{\Theta}_1, \boldsymbol{\Theta}_2, \cdots, \boldsymbol{\Theta}_D\}

 また、各文書における各上位トピックの下位トピック分布のパラメータ  \boldsymbol{\theta}_{ds} (  \boldsymbol{\Theta}_d の各要素)は、 \boldsymbol{\alpha}_s をパラメータとするディリクレ分布に従って独立に生成されると仮定する。

 \displaystyle
\boldsymbol{\theta}_{ds}
    \sim
      \mathrm{Dirichlet}(\boldsymbol{\alpha}_s)

  \boldsymbol{\alpha}_s K 次元のベクトルであり、上位トピック  s の下位トピック分布のハイパーパラメータと呼ぶ。

 \displaystyle
\boldsymbol{\alpha}_s
    = (\alpha_{s1}, \alpha_{s2}, \cdots, \alpha_{sK})

  \boldsymbol{\alpha}_s はディリクレ分布のパラメータなので、各要素は非負の値の条件を満たす必要がある。

 \displaystyle
\alpha_{sk} \geq 0

  \alpha_{sk} \theta_{1sk}, \theta_{1sk}, \cdots, \theta_{Dsk} に影響する。
 上位トピックごとに下位トピック分布のハイパーパラメータを持ち、 S 個のハイパーパラメータを集合  \boldsymbol{\alpha} として扱い、下位トピック分布のハイパーパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\alpha}
    = \{\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_S\}

  \boldsymbol{\alpha}_s \boldsymbol{\theta}_{1s}, \boldsymbol{\theta}_{1s}, \cdots, \boldsymbol{\theta}_{Ds} に影響する。

 各単語の下位トピック  z_{dn} は、文書と上位トピックに応じた下位トピック分布のパラメータ  \boldsymbol{\theta}_{dy_{dn}} をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

 \displaystyle
z_{dn}
    \sim
      \mathrm{Categorical}(\boldsymbol{\theta}_{dy_{dn}})


 上位トピック分布のハイパーパラメータ  \boldsymbol{\alpha}_0 と下位トピック分布のハイパーパラメータ(集合)  \boldsymbol{\alpha} をまとめて、 S+1 個のハイパーパラメータを集合  \mathbf{A} として扱い、トピック分布のハイパーパラメータ集合と呼ぶ。

 \displaystyle
\begin{aligned}
\mathbf{A}
   &= \{\boldsymbol{\alpha}_0, \boldsymbol{\alpha}\}
\\
   &= \{\boldsymbol{\alpha}_0, \boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_S\}
\end{aligned}


 以上で、パチンコ配分モデルの生成過程(定義・仮定)を確認した。生成過程は、変数やパラメータ間の依存関係であり、生成モデルや推論アルゴリズムの導出でも用いる。

スポンサードリンク

記号一覧

 続いて、トピックモデル(4章)に加えてパチンコ配分モデル(6.2節)で用いる記号類を表にまとめる。

記号 意味 制約・関係性
 S 上位トピック数
 s \in \{1, 2, \dots, S\} 上位トピックインデックス
 K 下位トピック数
 k \in \{1, 2, \dots, K\} 下位トピックインデックス
 N_{ds} 文書  d における上位トピック  s の単語数  N_{ds} = \sum_{k=1}^K N_{dsk}
 N_{dsk} 文書  d の上位トピック  s における下位トピック  k の単語数
 \mathbf{Y} = \{\mathbf{y}_1, \cdots, \mathbf{y}_d, \cdots, \mathbf{y}_D\} 上位トピック集合
 \mathbf{y}_d = \{y_{d1}, \cdots, y_{dn}, \cdots, y_{dN_d}\} 文書  d の上位トピック集合
 y_{dn} \in \{1, 2, \dots, S\} 単語  w_{dn} の上位トピック  y_{dn} \sim \mathrm{Cat}(\boldsymbol{\theta}_d)
 \boldsymbol{\theta} = \{\boldsymbol{\theta}_1, \cdots, \boldsymbol{\theta}_d, \cdots, \boldsymbol{\theta}_D\} 上位トピック分布のパラメータ集合
 \boldsymbol{\theta}_d = (\theta_{d1}, \cdots, \theta_{ds}, \cdots, \theta_{dS}) 文書  d の上位トピック分布のパラメータ  \boldsymbol{\theta}_d \sim \mathrm{Dir}(\boldsymbol{\alpha}_0)
 \theta_{ds} 文書  d における上位トピック  s の生成確率  \theta_{ds} \geq 0, \sum_{s=1}^S \theta_{ds} = 1
 \boldsymbol{\alpha}_0 = (\alpha_{01}, \cdots, \alpha_{0k}, \cdots, \alpha_{0K}) 上位トピック分布のハイパーパラメータ
 \alpha_{0s}  \theta_{ds}\ (d = 1, \dots, D) に影響する値  \alpha_{0s} \gt 0
 \mathbf{Z} = \{\mathbf{z}_1, \cdots, \mathbf{z}_d, \cdots, \mathbf{z}_D\} 下位トピック集合
 \mathbf{z}_d = \{z_{d1}, \cdots, z_{dn}, \cdots, z_{dN_d}\} 文書  d の下位トピック集合
 z_{dn} \in \{1, 2, \dots, K\} 単語  w_{dn} の下位トピック  z_{dn} \sim \mathrm{Cat}(\boldsymbol{\theta}_{dy_{dn}})
 \boldsymbol{\Theta} = \{\boldsymbol{\Theta}_1, \cdots, \boldsymbol{\Theta}_d, \cdots, \boldsymbol{\Theta}_D\} 下位トピック分布のパラメータ集合
 \boldsymbol{\Theta}_d = \{\boldsymbol{\theta}_{d1}, \cdots, \boldsymbol{\theta}_{ds}, \cdots, \boldsymbol{\theta}_{dS}\} 文書  d の下位トピック分布のパラメータ集合
 \boldsymbol{\theta}_{ds} = (\theta_{ds1}, \cdots, \theta_{dsk}, \cdots, \theta_{dsK}) 文書  d における上位トピック  s の下位トピック分布のパラメータ  \boldsymbol{\theta}_{ds} \sim \mathrm{Dir}(\boldsymbol{\alpha}_s)
 \theta_{dsk} 文書  d の上位トピック  s における下位トピック  k の生成確率  \theta_{dsk} \geq 0, \sum_{k=1}^K \theta_{dsk} = 1
 \boldsymbol{\alpha} = \{\boldsymbol{\alpha}_1, \cdots, \boldsymbol{\alpha}_s, \cdots, \boldsymbol{\alpha}_S\} 下位トピック分布のハイパーパラメータ集合
 \boldsymbol{\alpha}_s = (\alpha_{s1}, \cdots, \alpha_{sk}, \cdots, \alpha_{sK}) 上位トピック  s の下位トピック分布のハイパーパラメータ
 \alpha_{sk}  \theta_{dsk}\ (d = 1, \dots, D) に影響する値  \alpha_{sk} \gt 0
 \mathbf{A} = \{\boldsymbol{\alpha}_0, \boldsymbol{\alpha}\} トピック分布のハイパーパラメータ集合

 ハイパーパラメータ  \boldsymbol{\beta} が一様な(全て同じ)値の場合  \beta = \beta_1 = \cdots = \beta_v は、 V 次元ベクトル  \boldsymbol{\beta} をスカラ  \beta で表す。

 以上の記号を用いて、パチンコ配分モデルやその推論アルゴリズムを定義する。

スポンサードリンク

尤度関数の導出

 次は、パチンコ配分モデルにおける尤度関数(likelihood function)を数式で確認する。

 パラメータ  \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi} が与えられた(条件とする)ときの観測データ  \mathbf{W} の生成確率(結合分布)は、生成過程(依存関係)に従い次のように変形できる。

 \displaystyle
\begin{aligned}
p(\mathbf{W} \mid \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi})
   &= \prod_{d=1}^D
          p(\mathbf{w}_d \mid \boldsymbol{\theta}_d, \boldsymbol{\Theta}_d, \boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d}
          p(w_{dn} \mid \boldsymbol{\theta}_d, \boldsymbol{\Theta}_d, \boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{s=1}^S
          p(w_{dn}, y_{dn} = s \mid \boldsymbol{\theta}_d, \boldsymbol{\theta}_{ds}, \boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{s=1}^S \Bigl[
          p(y_{dn} = s \mid \boldsymbol{\theta}_d)
          p(w_{dn} \mid y_{dn} = s, \boldsymbol{\theta}_{ds}, \boldsymbol{\Phi})
      \Bigr]
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{s=1}^S \left[
          p(y_{dn} = s \mid \boldsymbol{\theta}_d)
          \sum_{k=1}^K
              p(w_{dn}, z_{dn} = k \mid y_{dn} = s, \boldsymbol{\theta}_{ds}, \boldsymbol{\phi}_k)
      \right]
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{s=1}^S \left[
          p(y_{dn} = s \mid \boldsymbol{\theta}_d)
          \sum_{k=1}^K \Bigl\{
              p(z_{dn} = k \mid y_{dn} = s, \boldsymbol{\theta}_{ds})
              p(w_{dn} \mid z_{dn} = k, \boldsymbol{\phi}_k)
          \Bigr\}
      \right]
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 文書ごとの積に分解する。
  • 2: 単語ごとの積に分解する。
  • 3: 周辺化された潜在変数  y_{dn} を明示する。
  • 4: 観測・潜在変数  w_{dn}, y_{dn} の項を分解する。
  • 5: 周辺化された潜在変数  z_{dn} を明示する。
  • 6: 観測・変数  w_{dn}, z_{dn} の項を分解する。

 さらに、具体的な式に置き換えて、式を整理する。

 \displaystyle
\begin{aligned}
p(\mathbf{W} \mid \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi})
   &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{s=1}^S \left[
          \theta_{ds}
          \sum_{k=1}^K \Bigl\{
              \theta_{dsk} \phi_{kw_{dn}}
          \Bigr\}
      \right]
\\
   &= \prod_{d=1}^D \prod_{v=1}^V \Bigl\{
          \sum_{s=1}^S \Bigl[
              \theta_{ds}
              \sum_{k=1}^K
                  \theta_{dsk} \phi_{kv}
          \Bigr]
      \Bigr\}^{N_{dv}}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: それぞれカテゴリ分布を仮定しているので、各変数がとる値(インデックス)のパラメータが生成確率に対応する。
 \displaystyle
\begin{aligned}
p(y_{dn} = s \mid \boldsymbol{\theta}_d)
   &= \mathrm{Cat}(s \mid \boldsymbol{\theta}_d)
    = \theta_{ds}
\\
p(z_{dn} = k \mid y_{dn} = s, \boldsymbol{\theta}_{ds})
   &= \mathrm{Cat}(k \mid \boldsymbol{\theta}_{ds})
    = \theta_{dsk}
\\
p(w_{dn} \mid z_{dn} = k, \boldsymbol{\phi}_k)
   &= \mathrm{Cat}(w_{dn} \mid \boldsymbol{\phi}_k)
    = \phi_{kw_{dn}}
\end{aligned}
  • 2: 単語番号  n を用いた式から、語彙番号  v を用いた式に変換する。 N_d 個の単語に対応するパラメータ  \sum_{s=1}^S \theta_{ds} \sum_{k=1}^K \theta_{dsk} \phi_{kw_{dn}} について、各単語に割り当てられた語彙番号  w_{dn} = v を用いて語彙ごとにまとめると、 N_{dv} 個の  \sum_{s=1}^S \theta_{ds} \sum_{k=1}^K \theta_{dk} \phi_{kv} に置き換えられる。

 トピック分布・単語分布のパラメータ(と語彙頻度)を用いた式が得られた。

スポンサードリンク

生成モデルの導出

 続いて、パチンコ配分モデルの生成モデル(generative model)を数式で確認する。

 観測変数  \mathbf{W}、潜在変数  \mathbf{Z}, \mathbf{Y}、パラメータ  \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}、ハイパーパラメータ  \mathbf{A}, \boldsymbol{\beta} をそれぞれ確率変数とする結合分布(同時分布)は、生成過程(依存関係)に従い次のように変形できる。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
    \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}, 
    \mathbf{A}, \boldsymbol{\beta}
)
   &= p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\Phi})
      p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\Theta})
      p(\mathbf{Y} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha}_0)
      p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
\\
   &\quad * 
      p(\boldsymbol{\alpha}_0)
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \Bigl[
          p(\mathbf{w}_d \mid \mathbf{z}_d, \boldsymbol{\Phi})
          p(\mathbf{z}_d \mid \mathbf{y}_d, \boldsymbol{\Theta}_d)
          p(\mathbf{y}_d \mid \boldsymbol{\theta}_d)
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0)
          p(\boldsymbol{\Theta}_d \mid \boldsymbol{\alpha})
      \Bigr]
\\
   &\quad * 
      p(\boldsymbol{\alpha}_0)
      \left\{ \prod_{s=1}^S
          p(\boldsymbol{\alpha}_s)
      \right\}
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \left[
          \prod_{n=1}^{N_d} \Bigl\{
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
              p(z_{dn} \mid \boldsymbol{\theta}_{dy_{dn}})
              p(y_{dn} \mid \boldsymbol{\theta}_d)
          \Bigr\}
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0)
          \left\{ \prod_{s=1}^S
              p(\boldsymbol{\theta}_{ds} \mid \boldsymbol{\alpha}_s)
          \right\}
      \right]
\\
   &\quad * 
      p(\boldsymbol{\alpha}_0)
      \left\{ \prod_{s=1}^S
          p(\boldsymbol{\alpha}_s)
      \right\}
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 変数やパラメータごとの項に分割する。

 観測変数、潜在変数、パラメータ、ハイパーパラメータごとに項を分割する。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
    \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}, 
    \mathbf{A}, \boldsymbol{\beta}
)
   &= p(
          \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
          \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}
          \mid
          \mathbf{A}, \boldsymbol{\beta}
      )
      p(\mathbf{A}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi})
      p(\boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi} \mid \mathbf{A}, \boldsymbol{\beta})
      p(\mathbf{A}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\Phi})
      p(\mathbf{Z}, \mathbf{Y} \mid \boldsymbol{\theta}, \boldsymbol{\Theta})
      p(\boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi} \mid \mathbf{A}, \boldsymbol{\beta})
      p(\mathbf{A}, \boldsymbol{\beta})
\end{aligned}

 さらに1つ目の項の、依存関係のある潜在変数の項を分割する。

 \displaystyle
p(\mathbf{Z}, \mathbf{Y} \mid \boldsymbol{\theta}, \boldsymbol{\Theta})
    = p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\Theta})
      p(\mathbf{Y} \mid \boldsymbol{\theta})

 2つ目の項の、独立なパラメータの項を分割する。

 \displaystyle
\begin{aligned}
p(\boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi} \mid \mathbf{A}, \boldsymbol{\beta})
   &= p(\boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}_0, \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\boldsymbol{\theta} \mid \boldsymbol{\alpha}_0)
      p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
\end{aligned}

 3つ目の項の、独立なハイパーパラメータの項を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{A}, \boldsymbol{\beta})
   &= p(\boldsymbol{\alpha}_0, \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\boldsymbol{\alpha}_0)
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\beta})
\end{aligned}

 確率変数と依存関係のない条件を適宜省いている。

  • 2: 文書・上位トピック・下位トピックごとの積に分解する。
  • 3: 単語・上位トピックごとの積に分解する。

 この式自体が変数やパラメータ間の依存関係を表している。

スポンサードリンク

グラフィカルモデル

 最後は、パチンコ配分モデルの生成モデルをグラフィカルモデル表現(graphical model representation)で確認する。

 パチンコ配分モデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
    \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}, 
    \mathbf{A}, \boldsymbol{\beta}
)
   &= p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\Phi})
      p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\Theta})
      p(\mathbf{Y} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha}_0)
      p(\boldsymbol{\alpha}_0)
\\
   &\quad * 
      p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
\\
   &\quad * 
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \left[
          \prod_{n=1}^{N_d} \Bigl\{
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
              p(z_{dn} \mid \boldsymbol{\theta}_{dy_{dn}})
              p(y_{dn} \mid \boldsymbol{\theta}_d)
          \Bigr\}
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0)
      \right]
      p(\boldsymbol{\alpha}_0)
\\
   &\quad * 
      \prod_{s=1}^S \left\{
          \left[ \prod_{d=1}^D
              p(\boldsymbol{\theta}_{ds} \mid \boldsymbol{\alpha}_s)
          \right]
          p(\boldsymbol{\alpha}_s)
      \right\}
\\
   &\quad * 
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

 この式をグラフィカルモデルにすると、次の図になる。

パチンコ配分モデルのグラフィカルモデル

注: S 個の下位トピックを表す2つの囲いは繋がっているものとして見てください。(グラフィカルモデルの作成に利用した DiagrammeR パッケージでは、別のサブグラフ(囲い)の内外を跨るようなサブグラフを描画できないようです。)

 「  \boldsymbol{\alpha}_0 \to \boldsymbol{\theta}_d 」が、上位トピック分布のパラメータの事前分布  p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0) に対応し、事前分布(のパラメータ)に従ってパラメータ  \boldsymbol{\theta}_d が生成されることを示している。
 「  \boldsymbol{\alpha}_s \to \boldsymbol{\theta}_{ds} 」が、下位トピック分布のパラメータの事前分布  p(\boldsymbol{\theta}_{ds} \mid \boldsymbol{\alpha}_s) に対応し、事前分布(のパラメータ)に従ってパラメータ  \boldsymbol{\theta}_{ds} が生成されることを示している。
 「  \boldsymbol{\theta}_d \to y_{dn} 」が、各文書の上位トピック分布  p(y_{dn} \mid \boldsymbol{\theta}_d) に対応し、上位トピック分布(のパラメータ)に従って各単語の上位トピック  y_{dn} が生成されることを示している。
 「  y_{dn} \to z_{dn} 」と「  \boldsymbol{\theta}_{ds} \to z_{dn} 」が、単語に割り当てられた上位トピックの下位トピック分布  p(z_{dn} \mid \boldsymbol{\theta}_{dy_{dn}}) に対応し、下位トピック分布(のパラメータ)に従って各単語の下位トピック  z_{dn} が生成されることを示している。

 「  [N_d] 」が、 \prod_{n=1}^{N_d} に対応し、 N_d 個の上位トピック  y_{dn} と下位トピック  z_{dn}、単語  w_{dn} が繰り返し生成されることを示している。
 「  [S] 」が、 \prod_{s=1}^S に対応し、 S 個の下位トピック分布のパラメータ  \boldsymbol{\theta}_{ds} とハイパーパラメータ  \boldsymbol{\alpha}_s が繰り返し生成されることを示している。
 「  [D] 」が、 \prod_{d=1}^D に対応し、 D 個の上位トピック集合  \mathbf{y}_d と下位トピック集合  \mathbf{z}_d、文書  \mathbf{w}_d、また上位トピック分布のパラメータ  \boldsymbol{\theta}_d と下位トピック分布のパラメータ  \boldsymbol{\Theta}_d が繰り返し生成されることを示している。

 その他の関係(ノードとエッジ)についてはトピックモデル(4.1節)と同じである。

 この記事では、パチンコ配分モデルで用いる記号や定義を確認した。次の記事では、崩壊型ギブスサンプリングによるパラメータの計算式を導出する。

参考書籍

おわりに

 久しぶりにサクっと新規で記事を書けました。いや一応ハイパラ版は新規の記事だったのか。なんにしても5章の加筆修正で悩み抜いたおかげです。他の本に移らず続きを書いてよかった。
 あ、ギブスサンプリング編の修正が済んだものの、変分ベイズ編は全くできていないので6.1節は飛ばしました。変分ベイズ編の修正が済んだらやります。今回調べた関連で知ったのですが、変分ベイズ推定とギブスサンプリングのどちらの手法を使うのかは、モデルとの相性があったんですね(どこかの記事中に書き込んでおきたいのですがとりあえずここにメモ)。

 やっぱり独学で理解を深めるには周回は大事ですね、効率がいいとは言えませんが。普段から自問自答を繰り返して分かった気にならないことにかなり気を付けながら書いているつもりですが(知識に対して誠実でありたいというのが第一の理由ですがマサカリが飛んでくるのも嫌ですし(でも間違いの指摘はしてほしいのですが))、それでも後々に再度精読してみると分かっていなかったということが多々あるので。それも成長であり良いことではあるのですがね、作業としてはやっぱり面倒なんですが。

 久しぶりに数式弄りが楽しくなってきました。5章までの修正作業にダレて全然進まなかったのですが(理解できていなかったとはいえ一応)全部知ってる内容だったのが原因で、今まで手付かずだった6章の新しい内容だったから楽しめたのかもしれません。今後は新規と修正のバランスをとりながら作業していこうと思いました(それも案外難しいのですが)。
 この記事とセットで推論編の記事も書けているのですが、(早急に求めている人もいないでしょうし)折を見て(新曲が出たりなんらかの記念日があったりで)投稿しようと思います。

 さて、この記事の投稿日に公開されたAMEFURASSHIの新MVをどうぞ!

 この曲も収録された新EPも本日リリースされたので各種サブスクなどで聴いてください♩

【次節の内容】

  • 数式読解編

 パチンコ配分モデルに対する周辺化ギブスサンプリングを数式で確認します。

www.anarchive-beta.com