からっぽのしょこ

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

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

はじめに

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

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

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

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

 混合ユニグラムモデル(mixture of unigram models)の定義(仮定)を確認する。
 文書集合(語彙頻度データ)については「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} はディリクレ分布のパラメータなので、各要素は非負の値の条件を満たす必要がある。

 \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} の各要素は、ディリクレ分布のパラメータの条件(非負の値)を満たす必要がある。

 \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}, \boldsymbol{\beta} が一様な(全て同じ)値の場合  \alpha_1 = \cdots = \alpha_K = \alpha \beta_1 = \cdots = \beta_v = \beta はそれぞれスカラ  \alpha, \beta で表す。

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

尤度関数の導出

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

尤度の場合

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

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

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

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


 依存関係のない場合は条件付き独立  p(A, B \mid C) = p(A \mid C) p(B \mid C)、依存関係のある場合は条件付きの乗法定理  p(A, B \mid C) = p(A \mid B, C) p(B \mid C) により、式を変形していく。

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

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

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

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

  • 3: 依存関係のある  \mathbf{w}_d, z_d の項を分割する。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d, z_d = k \mid \boldsymbol{\theta}, \boldsymbol{\phi}_k)
   &= p(z_d = k \mid \boldsymbol{\theta}, \boldsymbol{\phi}_k)
      p(\mathbf{w}_d \mid z_d = k, \boldsymbol{\theta}, \boldsymbol{\phi}_k)
\\
   &= p(z_d = k \mid \boldsymbol{\theta})
      p(\mathbf{w}_d \mid z_d = k, \boldsymbol{\phi}_k)
\end{aligned}

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

  • 4: 各文書(単語集合)の  N_d 個の単語は独立に生成されることから、単語集合  \mathbf{w}_d の生成確率は、各単語  w_{dn} の生成確率の積に分解できる。
 \displaystyle
\begin{aligned}
p(\mathbf{w}_d \mid \boldsymbol{\phi}_k)
   &= p(w_{d1}, w_{d2}, \cdots, w_{dN_d} \mid z_d = k, \boldsymbol{\phi}_k)
\\
   &= p(w_{d1} \mid z_d = k, \boldsymbol{\phi}_k)
      * p(w_{d2} \mid z_d = k, \boldsymbol{\phi}_k)
      * \cdots
      * p(w_{dN_d} \mid z_d = k, \boldsymbol{\phi}_k)
\\
   &= \prod_{n=1}^{N_d}
          p(w_{dn} \mid z_d = k, \boldsymbol{\phi}_k)
\end{aligned}

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

 \displaystyle
\begin{aligned}
p(\mathbf{W} \mid \boldsymbol{\theta}, \boldsymbol{\Phi})
   &= \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: 各文書のトピック  z_d と各単語の語彙  w_{dn} はそれぞれカテゴリ分布を仮定しているので、 z_d のトピック(インデックス)と  w_{dn} の語彙(インデックス)のパラメータが生成確率に対応する。
 \displaystyle
\begin{aligned}
p(z_d = k \mid \boldsymbol{\theta})
   &= \mathrm{Cat}(k \mid \boldsymbol{\theta})
    = \theta_k
\\
p(w_{dn} \mid z_{dn} = k, \boldsymbol{\phi}_k)
   &= \mathrm{Cat}(w_{dn} \mid \boldsymbol{\phi}_k)
    = \phi_{kw_{dn}}
\end{aligned}
  • 2: 各単語の語彙  w_{dn} = v と各文書での各語彙の出現回数  N_{dv} を用いて、単語番号  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 の順番に並べ替えて語彙ごとにまとめている。 N_d = \sum_{v=1}^V N_{dv} なので、全体の要素数は変わっていない。


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

周辺尤度の場合

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

 ハイパーパラメータ  \boldsymbol{\alpha}, \boldsymbol{\beta} が与えられた(条件とする)ときのパラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi} を周辺化した観測データ  \mathbf{W} の生成確率  p(\mathbf{W} \mid \boldsymbol{\alpha}, \boldsymbol{\beta}) は、生成過程(依存関係)に従い次のように変形できる。

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

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


  • 1: 周辺化されたトピック分布・単語分布のパラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi} とトピック(潜在変数)  \mathbf{z} を明示する。
  • 2:  \mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} の項に分割する。
 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W} \mid \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
\end{aligned}

 詳しくは「生成モデルの導出」で確認する。

  • 3: 全文書に関する集合  \mathbf{W}, \mathbf{z} の生成確率を、文書ごとの集合・要素  \mathbf{w}_d, z_d の生成確率の積に分解する。
  • 3:  K 個の単語分布のパラメータは独立に生成されることから、パラメータ集合  \boldsymbol{\Phi} の生成確率を、各トピックのパラメータ  \boldsymbol{\phi}_k の生成確率の積に分解する。
  • 4: 各文書のトピック  z_d についてトピック番号  k を明示する。
  • 5: 各文書に関する集合  \mathbf{w}_d の生成確率を、単語ごと要素  w_{dn} の生成確率の積に分解する。

 ここで、 \sum_{\mathbf{z}} \equiv \sum_{z_1=1}^K \cdots \sum_{z_{N_d}=1}^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} \mid \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D \Bigl[
          p(\mathbf{w}_d \mid \boldsymbol{\phi}_{z_d})
          p(z_d \mid \boldsymbol{\theta})
      \Bigr]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\\
   &= \prod_{d=1}^D \left[
          \left\{ \prod_{n=1}^{N_d}
              p(w_{dn} \mid \boldsymbol{\phi}_{z_d})
          \right\}
          p(z_d \mid \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\end{aligned}

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


 依存関係のない場合は独立な関係  p(A, B) = p(A) p(B)、依存関係のある場合は乗法定理  p(A, B) = p(A \mid B) p(B) により、式を変形していく。

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

 依存関係のある変数とパラメータの項を分割する。

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

 さらに前の項の、依存関係のある観測変数と潜在変数の項を分割する。

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

  \mathbf{W} \boldsymbol{\theta} \mathbf{z} \boldsymbol{\Phi} はそれぞれ無関係なので条件から省ける。
 後の項の、独立なパラメータの項を分割する。

 \displaystyle
p(\boldsymbol{\theta}, \boldsymbol{\Phi})
    = p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
  • 2: 全文書に関する  \mathbf{W}, \mathbf{z} の項を、各文書に関する  \mathbf{w}_d, z_d の項の積に分解する。
  • 2: 全トピックに関する  \boldsymbol{\Phi} の項を、各トピックに関する  \boldsymbol{\phi}_k の項の積に分解する。
  • 3: 全単語に関する  \mathbf{w}_d の項を、各単語に関する  w_{dn} の項の積に分解する。

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

事前分布を設定する場合

 変分ベイズ推定(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} \mid \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \Bigl[
          p(\mathbf{w}_d \mid \boldsymbol{\phi}_{z_d})
          p(z_d \mid \boldsymbol{\theta})
      \Bigr]
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \left[
          \left\{ \prod_{n=1}^{N_d}
              p(w_{dn} \mid \boldsymbol{\phi}_{z_d})
          \right\}
          p(z_d \mid \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
\\
   &\qquad * 
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

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


 依存関係のない場合は条件付き独立  p(A, B \mid C) = p(A \mid C) p(B \mid C)、依存関係のある場合は条件付きの乗法定理  p(A, B \mid C) = p(A \mid B, C) p(B \mid C) により、式を変形していく。

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

 依存関係のある変数、パラメータ、ハイパーパラメータの項を分割する。

 \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} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\theta}, \boldsymbol{\Phi}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\\
   &= p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\theta}, \boldsymbol{\Phi})
      p(\boldsymbol{\theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\boldsymbol{\alpha}, \boldsymbol{\beta})
\end{aligned}

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

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

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

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

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

 \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} \mid \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta})
      p(\boldsymbol{\Phi})
\\
   &= \prod_{d=1}^D \left[
          \left\{ \prod_{n=1}^{N_d}
              p(w_{dn} \mid \boldsymbol{\phi}_{z_d})
          \right\}
          p(z_d \mid \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta})
      \prod_{k=1}^K
          p(\boldsymbol{\phi}_k)
\end{aligned}

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

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

 「  \boldsymbol{\theta} \to z_d 」が、トピック分布  p(z_d \mid \boldsymbol{\theta}) に対応し、トピック分布(のパラメータ)に従って各文書のトピック  z_d が生成されることを示している。
 「  z_d \to w_{dn} 」と「  \boldsymbol{\phi}_k \to w_{dn} 」が、各トピックの単語分布  p(w_{dn} \mid \boldsymbol{\phi}_{z_d}) に対応し、単語分布(のパラメータ)に従って各単語(の語彙)  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} \mid \mathbf{z}, \boldsymbol{\Phi})
      p(\mathbf{z} \mid \boldsymbol{\theta})
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\beta})
\\
   &= \prod_{d=1}^D \left[
          \left\{ \prod_{n=1}^{N_d}
              p(w_{dn} \mid \boldsymbol{\phi}_{z_d})
          \right\}
          p(z_d \mid \boldsymbol{\theta})
      \right]
      p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
\\
   &\qquad * 
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\end{aligned}

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

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

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

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

参考書籍

おわりに

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