からっぽのしょこ

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

3.1:混合ユニグラムモデルの生成モデルの導出【青トピックモデルのノート】

はじめに

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

 この記事では、混合カテゴリモデルで登場する数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

3.1 混合ユニグラムモデルの生成モデルの導出

 混合ユニグラムモデル(mixture of unigram models)の定義(仮定)を確認する。
 bag-of-words表現の文書データについては「2.1:トピックモデルの文書表現【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

生成過程の設定

 まずは、混合ユニグラムモデルの生成過程(generative process)を数式で確認する。アルゴリズムについては図3.1を参照のこと。

 文書数を  D、文書番号(インデックス)を  d \in \{1, 2, \dots, D\} とする。
 語彙数を  V、語彙番号を  v \in \{1, 2, \dots, V\} とする。
 トピック数を  K、トピック番号を  k \in \{1, 2, \dots, K\} とする。

 文書  d が持つ(割り当てられた)トピックを  z_d で表す。各文書のトピック  z_d の値としてトピック番号  k をとることでその文書のトピックを表す。これを次のように書く。

 \displaystyle
z_d
    \in
      \{1, 2, \cdots, K\}

 また、文書のトピック  z_d k であることを明示的に  z_d = k と書くこともある。
  D 個の文書のトピックを集合  \mathbf{z} として扱い、トピック集合と呼ぶ。

 \displaystyle
\mathbf{z}
    = \{z_1, z_2, \cdots, z_D\}

 トピックは観測できないデータであるため潜在変数や潜在トピックとも呼ばれる。

 文書にトピック  k が生成される(割り当てられる)確率(選ばれやすさ)を  \theta_k で表す。
 各トピックに対応する  K 個(全て)の生成確率をまとめて、 K 次元ベクトル  \boldsymbol{\theta} で表す。

 \displaystyle
\boldsymbol{\theta}
    = (\theta_1, \theta_2, \cdots, \theta_K)

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

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

  \boldsymbol{\theta} をトピック分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 ある文書に割り当てられたトピック  z_d の生成(割当)確率を  \theta_{z_d} と書くこともある。例えば、文書5にトピック4が割り当てられた  z_5 = 4 のとき、対応するパラメータ(確率)は  \theta_{z_5} = \theta_4 である。

 また、カテゴリ分布のパラメータ  \boldsymbol{\theta} は、 \boldsymbol{\alpha} をパラメータとするディリクレ分布に従って生成されると仮定する。

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

 ディリクレ分布の確率変数は、カテゴリ分布のパラメータの条件(非負の値で総和が1になる値)を満たす。
  \boldsymbol{\alpha} K 次元ベクトルである。

 \displaystyle
\boldsymbol{\alpha}
    = (\alpha_1, \alpha_2, \cdots, \alpha_K)

 パラメータのパラメータをハイパーパラメータ(超パラメータ)と言い、 \boldsymbol{\alpha} をトピック分布のハイパーパラメータと呼ぶ。
  \boldsymbol{\alpha} の各要素は、非負の値の条件を満たす必要がある。

 \displaystyle
\alpha_k \gt 0

  \alpha_k \theta_k に影響する。

 各文書のトピック  z_d は、 \boldsymbol{\theta} をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

 \displaystyle
z_d
    \sim
      \mathrm{Categorical}(\boldsymbol{\theta})


 トピック  k の文書において語彙  v が生成される(出現する)確率を  \phi_{kv} で表す。
 各語彙に対応する  V 個(全て)の生成確率をまとめて、 V 次元ベクトル  \boldsymbol{\phi}_k で表す。

 \displaystyle
\boldsymbol{\phi}_k
    = (\phi_{k1}, \phi_{k2}, \cdots, \phi_{kV})

  \boldsymbol{\phi}_k の各要素は確率なので、それぞれ非負の値であり、総和(全ての語彙に関する和)が1になる条件を満たす必要がある。

 \displaystyle
0 \leq \phi_{kv} \leq 1
,\ 
\sum_{v=1}^V \phi_{kv}
    = 1

  \boldsymbol{\phi}_k をトピック  k の単語分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 ある文書に割り当てられたトピック  z_d の単語分布のパラメータを  \boldsymbol{\phi}_{z_d}、ある単語  w_{dn} として出現した語彙の生成(出現)確率を  \phi_{kw_{dn}} と書くこともある。例えば、文書5にトピック4が割り当てられた  z_5 = 4 のとき、対応するパラメータは  \boldsymbol{\phi}_{z_5} = \boldsymbol{\phi}_4 であり、6番目の単語として語彙3が観測された(出現した)  w_{5,6} = 3 のとき、対応する確率は  \phi_{4,w_{5,6}} = \phi_{4,3} である。
 トピックごとに単語分布を持ち、 K 個のトピックの単語分布のパラメータを集合  \boldsymbol{\Phi} として扱い、単語分布のパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\Phi}
    = \{\boldsymbol{\phi}_1, \boldsymbol{\phi}_2, \cdots, \boldsymbol{\phi}_K\}


 また、カテゴリ分布のパラメータ  \boldsymbol{\phi}_k (  \boldsymbol{\Phi} の各要素)は、 \boldsymbol{\beta} をパラメータとするディリクレ分布に従って独立に生成されると仮定する。

 \displaystyle
\boldsymbol{\phi}_k
    \sim
      \mathrm{Dirichlet}(\boldsymbol{\beta})

 こちらもディリクレ分布の確率変数として定義されるので、カテゴリ分布のパラメータの条件を満たす。
  \boldsymbol{\beta} V 次元ベクトルである。

 \displaystyle
\boldsymbol{\beta}
    = (\beta_1, \beta_2, \cdots, \beta_V)

  \boldsymbol{\beta} を単語分布のハイパーパラメータと呼ぶ。
 こちらもディリクレ分布のパラメータとして定義されるので、 \boldsymbol{\beta} の各要素は、ディリクレ分布のパラメータの条件(非負の値)を満たす必要がある。

 \displaystyle
\beta_v \gt 0

  \beta_v \phi_{1v}, \phi_{2v}, \cdots, \phi_{Kv} に影響する。

 各単語  w_{dn} の語彙は、文書に割り当てられたトピックに応じた  \boldsymbol{\phi}_{z_d} をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

 \displaystyle
w_{dn}
    \sim
      \mathrm{Categorical}(\boldsymbol{\phi}_{z_d})


 以上で、混合ユニグラムモデルの生成過程を確認した。生成過程を生成モデルとして定義して利用する。

数式での表記

 混合ユニグラムモデル(3章)で用いる記号類を表にまとめる。

記号 意味 制約・関係性
 D 文書数  D = \sum_{k=1}^K D_k
 D_k トピック  k の文書数
 d \in \{1, 2, \dots, D\} 文書インデックス
 V 語彙数(単語の種類数)  N \geq V
 v \in \{1, 2, \dots, V\} 語彙インデックス
 K トピック数
 k \in \{1, 2, \dots, K\} トピックインデックス
 N 全文書の単語数  N = \sum_{d=1}^D N_d = \sum_{v=1}^V N_v = \sum_{k=1}^K N_k
 N_d 文書  d の単語数  N_d = \sum_{v=1}^V N_{dv}
 N_v 全文書における語彙  v の単語数  N_v = \sum_{d=1}^D N_{dv} = \sum_{k=1}^K N_{kv}
 N_{dv} 文書  d における語彙  v の単語数
 N_k トピック  k の文書の単語数  N_k = \sum_{v=1}^V N_{kv}
 N_{kv} トピック  k の文書における語彙  v の単語数
 n \in \{1, 2, \dots, N_d\} 文書  d の単語インデックス
 \mathbf{W} = \{\mathbf{w}_1, \cdots, \mathbf{w}_d, \cdots, \mathbf{w}_D\} 文書集合
 \mathbf{w}_d = \{w_{d1}, \cdots, w_{dn}, \cdots, w_{dN_D}\} 文書  d の単語集合
 w_{dn} \in \{1, 2, \dots, V\} 文書  d n 番目の単語  w_{dn} \sim \mathrm{Cat}(\boldsymbol{\phi}_{z_d})
 \mathbf{z} = \{z_1, \cdots, z_d, \cdots, z_D\} トピック集合
 z_d \in \{1, 2, \dots, K \} 文書  d のトピック  z_d \sim \mathrm{Cat}(\boldsymbol{\theta})
 \boldsymbol{\theta} = (\theta_1, \cdots, \theta_k, \cdots, \theta_K) トピック分布のパラメータ  \boldsymbol{\theta} \sim \mathrm{Dir}(\boldsymbol{\alpha})
 \theta_k トピック  k の生成確率  \theta_k \geq 0, \sum_{k=1}^K \theta_k = 1
 \boldsymbol{\alpha} = (\alpha_1, \cdots, \alpha_k, \cdots, \alpha_K) トピック分布のハイパーパラメータ
 \alpha_k  \theta_k に影響する値  \alpha_k \gt 0
 \boldsymbol{\Phi} = \{\boldsymbol{\phi}_1, \cdots, \boldsymbol{\phi}_k, \cdots, \boldsymbol{\phi}_K\} 単語分布のパラメータ集合
 \boldsymbol{\phi}_k = (\phi_{k1}, \cdots, \phi_{kv}, \cdots, \phi_{kV}) トピック  k の単語分布のパラメータ  \boldsymbol{\phi}_k \sim \mathrm{Dir}(\boldsymbol{\beta})
 \phi_{kv} トピック  k における語彙  v の生成確率  \phi_{kv} \geq 0, \sum_{v=1}^V \phi_{kv} = 1
 \boldsymbol{\beta} = (\beta_1, \cdots, \beta_v, \cdots, \beta_V) 単語分布のハイパーパラメータ
 \beta_v  \phi_{kv}\ (k = 1, \dots, K) に影響する値  \beta_v \gt 0
 \mathbf{q} = \{\mathbf{q}_1, \cdots, \mathbf{q}_d, \cdots, \mathbf{q}_D\} 負担率の集合
 \mathbf{q}_d = (q_{d1}, \cdots, q_{dk}, \cdots, q_{dK}) 文書  d の負担率
 q_{dk} 文書  d がトピック  k である確率  q_{dk} \geq 0, \sum_{k=1}^K q_{dk} = 1

 ハイパーパラメータ  \boldsymbol{\alpha} が一様な(全て同じ)値の場合  \alpha_1 = \cdots = \alpha_K = \alpha はスカラ  \alpha で表す。
 同様に、ハイパーパラメータ  \boldsymbol{\beta} が一様な値の場合  \beta_1 = \cdots = \beta_v = \beta \beta と書く。

 以上の記号を用いて、混合ユニグラムモデルやその推論アルゴリズムを定義する。

尤度関数の導出

 次は、混合ユニグラムモデルにおける文書集合の尤度関数(likelihood function)を数式で確認する。パラメータが与えられたときのデータの生成確率(観測された全ての単語の同時確率)を尤度と呼ぶ。

事前分布なしの場合

 最尤推定(3.3節)では、事前分布を導入せずに、尤度関数のみを扱う。

 トピック分布のパラメータ  \boldsymbol{\theta} と単語分布のパラメータ  \boldsymbol{\Phi} が与えられたときの文書集合  \mathbf{W} の生成確率  p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi}) を具体的な式に変形する。

 \displaystyle
\begin{aligned}
p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= \prod_{d=1}^D
          p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D
          \sum_{k=1}^K
              p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_{z_d})
\\
   &= \prod_{d=1}^D 
          \sum_{k=1}^K \Bigl\{
              p(z_d = k | \boldsymbol{\theta})
              p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_{z_d})
          \Bigr\}
\\
   &= \prod_{d=1}^D 
          \sum_{k=1}^K \Bigl\{
              p(z_d = k | \boldsymbol{\theta})
              p(\mathbf{w}_d | \boldsymbol{\phi}_k)
          \Bigr\}
\\
   &= \prod_{d=1}^D
          \sum_{k=1}^K \left\{
              p(z_d = k | \boldsymbol{\theta})
              \prod_{n=1}^{N_d}
                  p(w_{dn} | \boldsymbol{\phi}_k)
          \right\}
\\
   &= \prod_{d=1}^D
          \sum_{k=1}^K \left\{
              \theta_k
              \prod_{n=1}^{N_d}
                  \phi_{kw_{dn}}
          \right\}
\\
   &= \prod_{d=1}^D
          \sum_{k=1}^K \left\{
              \theta_k
              \prod_{v=1}^V
                  \phi_{kv}^{N_{dv}}
          \right\}
\end{aligned}

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


  • 1:  D 個の文書は独立に生成されることから、文書集合の生成確率は、各文書の生成確率の積に分解できる。
 \displaystyle
\begin{aligned}
p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{w}_1, \mathbf{w}_2, \cdots, \mathbf{w}_D | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &= p(\mathbf{w}_1 | \boldsymbol{\theta}, \boldsymbol{\Phi})
      * p(\mathbf{w}_2 | \boldsymbol{\theta}, \boldsymbol{\Phi})
      * \cdots
      * p(\mathbf{w}_D | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D
          p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi})
\end{aligned}
  • 2: 各文書の生成確率について、周辺化されたトピック(潜在変数)  z_d \in \{1, \dots, K\} を明示する。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{w}_d, z_d = 1 | \boldsymbol{\theta}, \boldsymbol{\Phi})
      + p(\mathbf{w}_d, z_d = 2 | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &\qquad
      + \cdots
      + p(\mathbf{w}_d, z_d = K | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &= \sum_{k=1}^K
          p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\Phi})
\end{aligned}

 また、各項のトピックと依存関係のない単語分布のパラメータを条件から省ける。

 \displaystyle
\begin{aligned}
p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_1, \boldsymbol{\phi}_2, \cdots, \boldsymbol{\phi}_K)
\\
   &= p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_{z_d})
\end{aligned}

 文書の生成確率は、全てのトピックの可能性を考慮した値と言える。

  • 3:  \mathbf{w}_d, z_d の依存関係(生成過程)に従い、条件付きの乗法定理  p(A, B | C) = p(A | B, C) p(B | C) より、項を分割する。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_{z_d})
   &= p(z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_{z_d})
      p(\mathbf{w}_d | z_d = k, \boldsymbol{\theta}, \boldsymbol{\phi}_{z_d})
\\
   &= p(z_d = k | \boldsymbol{\theta})
      p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_{z_d})
\end{aligned}

  z_d, \boldsymbol{\Phi} \mathbf{w}_d, \boldsymbol{\theta} はそれぞれ依存関係がないので条件から省ける。

  • 4: 条件部分のトピックの表記について、 p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_{z_d}) = p(\mathbf{w}_d | \boldsymbol{\phi}_k) で置き替える。
  • 5: 各文書(単語集合)の  N_d 個の単語は独立に生成されることから、単語集合の生成確率は、各単語の生成確率の積に分解できる。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d | \boldsymbol{\phi}_k)
   &= p(w_{d1}, w_{d2}, \cdots, w_{dN_d} | \boldsymbol{\phi}_k)
\\
   &= p(w_{d1} | \boldsymbol{\phi}_k)
      * p(w_{d2} | \boldsymbol{\phi}_k)
      * \cdots
      * p(w_{dN_d} | \boldsymbol{\phi}_k)
\\
   &= \prod_{n=1}^{N_d}
          p(w_{dn} | \boldsymbol{\phi}_k)
\end{aligned}
  • 6: 各文書のトピック  z_d と各単語の語彙  w_{dn} はそれぞれカテゴリ分布に従い生成されることから、 z_d のトピックと  w_{dn} の語彙それぞれに関するパラメータが生成確率に対応する。
 \displaystyle
\begin{aligned}
p(z_d = k | \boldsymbol{\theta})
   &= \theta_k
\\
p(w_{dn} | \boldsymbol{\phi}_k)
   &= \phi_{kw_{dn}}
\end{aligned}
  • 7: 各単語の語彙  w_{dn} = v と各文書での各語彙の出現回数  N_{dv} を用いて、文書番号  d と単語番号  n を用いた式(表現)から、語彙番号  v を用いた式(表現)に変換する。
 \displaystyle
\begin{aligned}
\prod_{n=1}^{N_d}
    \phi_{kw_{dn}}
   &= \underbrace{
          \phi_{kw_{d1}} * \phi_{kw_{d2}} * \cdots * \phi_{kw_{dN_d}}
      }_{N_d}
\\
   &= \overbrace{
          \underbrace{
              \phi_{k1} * \cdots \phi_{k1}
          }_{N_{d1}}
          * \underbrace{
              \phi_{k2} * \cdots \phi_{k2}
          }_{N_{d2}}
          * \cdots
          * \underbrace{
              \phi_{kV} * \cdots \phi_{kV}
          }_{N_{dV}}
      }^{N_d}
\\
   &= \underbrace{
          \phi_{k1}^{N_{d1}} * \phi_{k2}^{N_{d2}} * \cdots * \phi_{kV}^{N_{dV}}
      }_{V}
\\
   &= \prod_{v=1}^V
          \phi_{kv}^{N_{dv}}
\end{aligned}

 各単語の語彙  w_{dn} = v に対応する  N_d 個の  \phi_{k,\cdot} を、単語番号  n の順番に並んだ状態から、語彙番号  v の順番に並べ替えて語彙ごとにまとめている。


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

事前分布ありの場合

 変分ベイズ推定(3.4節)では、事前分布を導入して、尤度関数のパラメータを周辺化した周辺尤度関数(marginal likelihood function)として扱う。ただし、こちらの式は使わない。

 トピック分布のパラメータ  \boldsymbol{\theta} とハイパーパラメータ  \boldsymbol{\alpha}、単語分布のパラメータ  \boldsymbol{\Phi} とハイパーパラメータ  \boldsymbol{\beta} が与えられたときの  \boldsymbol{\theta}, \boldsymbol{\Phi} を周辺化した文書集合  \mathbf{W} の生成確率  p(\mathbf{W} | \boldsymbol{\alpha}, \boldsymbol{\beta}) を変形する。

 \displaystyle
\begin{aligned}
p(\mathbf{W} | \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= \iint \sum_{\mathbf{z}}
          p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}
\\
   &= \iint
          \prod_{d=1}^D
              \sum_{z_d=1}^K
                  p(\mathbf{w}_d, z_d, \boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}
\\
   &= \iint
          \prod_{d=1}^D 
              \sum_{z_d=1}^K \Bigl[
                  p(z_d | \boldsymbol{\theta})
                  p(\boldsymbol{\theta} | \boldsymbol{\alpha})
                  p(\mathbf{w}_d | z_d, \boldsymbol{\phi}_{z_d})
                  p(\boldsymbol{\Phi} | \boldsymbol{\beta})
              \Bigr]
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}
\\
   &= \iint
          \prod_{d=1}^D 
              \sum_{k=1}^K \Bigl[
                  p(z_d = k | \boldsymbol{\theta})
                  p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_{z_d})
              \Bigr]
\\
   &\qquad
            * p(\boldsymbol{\theta} | \boldsymbol{\alpha})
              p(\boldsymbol{\Phi} | \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}
\\
   &= \iint
          \prod_{d=1}^D 
              \sum_{k=1}^K \left[
                  p(z_d = k | \boldsymbol{\theta})
                  \left\{
                      \prod_{n=1}^{N_d}
                          p(w_{dn} | z_d = k, \boldsymbol{\phi}_{z_d})
                  \right\}
              \right]
\\
   &\qquad
            * p(\boldsymbol{\theta} | \boldsymbol{\alpha})
              \left\{
                  \prod_{k=1}^K
                      p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
              \right\}
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}
\end{aligned}

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


  • 1: 周辺化されたパラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi} とトピック集合  \mathbf{z} を明示する。各文書に対する全てのトピックに関する和をまとめて  \sum_{\mathbf{z}} \equiv \sum_{z_d=1}^K \cdots \sum_{z_D=1}^K で表す。
  • 2: 文書集合の生成確率を各文書の生成確率の積に分解する。
  • 3:  \mathbf{w}_d, z_d, \boldsymbol{\theta}, \boldsymbol{\Phi} の依存関係に従い、項を分割する。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d, z_d, \boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{w}_d, z_d| \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{w}_d| z_d, \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(z_d| \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{w}_d| z_d, \boldsymbol{\phi}_{z_d})
      p(z_d| \boldsymbol{\theta})
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\Phi} | \boldsymbol{\beta})
\end{aligned}

 確率変数と依存関係がない場合は条件から省ける。より詳しくは「生成モデルの導出」で確認する。

  • 4: 各文書のトピックについてトピック番号を明示して、 \prod_{d=1}^D \sum_{k=1}^K の影響を受けない項を括弧の外に出す。
  • 5: 単語集合の生成確率を各単語の生成確率の積に分解する。
  • 5:  K 個の単語分布のパラメータは独立に生成されることから、パラメータ集合の生成確率は、各パラメータの生成確率の積に分解できる。

 この式は、積分の中に総和があり簡単に計算できない。そこで変分ベイズ推定では、イェンゼンの不等式を用いて推定を行う。

生成モデルの導出

 続いて、混合ユニグラムモデルの生成モデル(generative model)を数式で確認する。文書集合やパラメータを全て確率変数とみなした同時分布(結合分布)を生成モデルと呼ぶ。

事前分布なしの場合

 先に、事前分布を含めない場合を考える。ただし以降の節では、こちらの式は使わない。

 変数  \mathbf{W} と潜在変数  \mathbf{z}、パラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi} をそれぞれ確率変数として、同時分布を依存関係(生成過程)に従って分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
      p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
\\
   &= \left[
          \prod_{d=1}^D
              p(\mathbf{w}_d | z_d, \boldsymbol{\phi}_{z_d})
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\\
   &= \left[
          \prod_{d=1}^D
              \left\{
                  \prod_{n=1}^{N_d}
                      p(w_{dn} | z_d, \boldsymbol{\phi}_{z_d})
              \right\}
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\end{aligned}

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


  • 1:  \mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} の依存関係に従い、項を分割する。

 乗法定理  p(A, B) = p(A | B) p(B) より、パラメータを分割する。

 \displaystyle
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
    = p(\mathbf{W}, \mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi})

 さらに前の項から、条件付きの乗法定理より、潜在変数を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})
\\
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
\end{aligned}

  \mathbf{W}, \boldsymbol{\theta} \mathbf{z}, \boldsymbol{\Phi} はそれぞれ依存関係がないので条件から省ける。
 後の項の  \boldsymbol{\theta}, \boldsymbol{\Phi} は無関係なので分割する。

 \displaystyle
p(\boldsymbol{\theta}, \boldsymbol{\Phi})
    = p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
  • 2: 文書集合の生成確率を各文書の生成確率の積に分解する。
  • 2: 単語分布のパラメータ集合の生成確率を各パラメータの生成確率の積に分解する。
  • 3: 単語集合の生成確率を各単語の生成確率の積に分解する。

 単語レベルに項を分解した。

事前分布ありの場合

 変分ベイズ推定(3.4節)と周辺化ギブスサンプリング(3.5節)では、事前分布を導入する。

 変数  \mathbf{W} と潜在変数  \mathbf{z}、パラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi}、ハイパーパラメータ  \boldsymbol{\alpha}, \boldsymbol{\beta} をそれぞれ確率変数として、同時分布を依存関係(生成過程)に従って分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\Phi} | \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \left[
          \prod_{d=1}^D
              p(\mathbf{w}_d | z_d, \boldsymbol{\phi}_{z_d})
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      \left\{
          \prod_{k=1}^K
              p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\\
   &= \left[
          \prod_{d=1}^D
              \left\{
                  \prod_{n=1}^{N_d}
                      p(w_{dn} | z_d, \boldsymbol{\phi}_{z_d})
              \right\}
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      \left\{
          \prod_{k=1}^K
              p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

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


  • 1:  \mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta} の依存関係に従い、項を分割する。

 乗法定理より、ハイパーパラメータとパラメータを分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W}, \mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W}, \mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\end{aligned}

 さらに、1つ目の項を「事前分布なしの場合」と同様にして、項を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta}, \boldsymbol{\Phi})

\\
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
\end{aligned}

 2つ目の項は、 \boldsymbol{\theta}, \boldsymbol{\Phi} が無関係なので分割する。

 \displaystyle
\begin{aligned}
p(\boldsymbol{\theta}, \boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\Phi} | \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\Phi} | \boldsymbol{\beta})
\end{aligned}

 3つ目の項は、 \boldsymbol{\alpha}, \boldsymbol{\beta} が無関係なので分割する。

 \displaystyle
p(\boldsymbol{\alpha}, \boldsymbol{\beta})
    = p(\boldsymbol{\alpha})
      p(\boldsymbol{\beta})

 確率変数と依存関係のないに条件を省く。

  • 2-3: 「事前分布なしの場合」のときと同様にして、文書集合の項と単語分布の項をそれぞれ分解する。

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

グラフィカルモデル

 最後は、混合ユニグラムモデルの生成モデルをグラフィカルモデル表現(graphical model representation)で確認する。グラフィカルモデルについては4.2節(図4.3)を参照のこと。

事前分布なしの場合

 最尤推定(3.3節)では、こちらのモデルが対応する。

 事前分布を設定しない場合の混合ユニグラムモデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
      p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
\\
   &= \left[
          \prod_{d=1}^D
              \left\{
                  \prod_{n=1}^{N_d}
                      p(w_{dn} | z_d, \boldsymbol{\phi}_{z_d})
              \right\}
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\end{aligned}

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

混合ユニグラムモデルのグラフィカルモデル:事前分布なし

 「  \boldsymbol{\theta} \to z_d 」が、トピック分布  p(z_d | \boldsymbol{\theta}) に対応し、トピック分布(のパラメータ)に従って各文書のトピック  z_d が生成されることを示している。
 「  z_d \to w_{dn} 」と「  \boldsymbol{\phi}_k \to w_{dn} 」が、各トピックの単語分布  p(w_{dn} | \boldsymbol{\phi}_k) に対応し、単語分布(のパラメータ)に従って各単語(の語彙)  w_{dn} が生成されることを示している。
 「  [N_d] 」が、 \prod_{n=1}^{N_d} に対応し、 N_d 個の単語  w_{dn} が繰り返し生成されることを示している。
 「  [D] 」が、 \prod_{d=1}^D に対応し、 D 個のトピック  z_d と文書  \mathbf{w}_d が繰り返し生成されることを示している。
 「  [K] 」が、 \prod_{k=1}^K に対応し、 K 個の単語分布(のパラメータ)  \boldsymbol{\phi}_k が繰り返し生成されることを示している。

事前分布ありの場合

 変分ベイズ推定(3.4節)と周辺化ギブスサンプリング(3.5節)では、こちらのモデルが対応する。

 事前分布を設定する場合は、次の式になった。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{W} | \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} | \boldsymbol{\theta})
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\Phi} | \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \left[
          \prod_{d=1}^D
              \left\{
                  \prod_{n=1}^{N_d}
                      p(w_{dn} | z_d, \boldsymbol{\phi}_{z_d})
              \right\}
              p(z_d | \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta} | \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      \left\{
          \prod_{k=1}^K
              p(\boldsymbol{\phi}_k | \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

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

混合ユニグラムモデルのグラフィカルモデル:事前分布あり

 「  \boldsymbol{\alpha} \to \boldsymbol{\theta} 」が、トピック分布のパラメータの事前分布  p(\boldsymbol{\theta} | \boldsymbol{\alpha}) に対応し、事前分布(のパラメータ)  \boldsymbol{\alpha} に従ってパラメータ  \boldsymbol{\theta} が生成されることを示している。
 「  \boldsymbol{\beta} \to \boldsymbol{\phi} 」が、単語分布のパラメータの事前分布  p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) に対応し、ハイパーパラメータ  \boldsymbol{\beta} に従ってパラメータ  \boldsymbol{\phi}_k が生成されることを示している。

 この記事では、混合ユニグラムモデルで用いる記号や定義を確認した。次の記事では、混合ユニグラムモデルの生成モデルを実装して、各種アルゴリズムに用いる人工データを作成する。

参考書籍

  • 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社

おわりに

2020.07.02:加筆修正の際に「混合ユニグラムモデルのEMアルゴリズム」から記事を分割しました。

 2020年7月2日は、ハロープロジェクトのグループ「Juice=Juice」のリーダー金澤朋子さん!の25歳のお誕生日!


  • 2024.05.26:加筆修正しました。

 なんでお祝いコメントを書いてないんだろ?全く覚えてないけど忙しかったのかな。基本的に記念日ネタは新規記事でして加筆修正ではしない(何回かした記憶はある)というマイルールでやってるんだけど、この日は新規記事を用意できないくらいには余裕がなかったと思われる。

【次節の内容】

  • スクラッチ実装編

 混合ユニグラムモデルの生成モデルをプログラムで確認します。

www.anarchive-beta.com


  • 数式読解編

 混合ユニグラムモデルに対する最尤推定を数式で確認します。

www.anarchive-beta.com

 トピックモデルの生成モデルを数式で確認します。

www.anarchive-beta.com