からっぽのしょこ

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

5.3:ノイズあり対応トピックモデルの生成モデルの導出【青トピックモデルのノート】

はじめに

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

 この記事では、ノイズあり対応トピックモデルで登場する数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

5.3 ノイズあり対応トピックモデルの生成モデルの導出

 文書集合(単語情報)と依存関係のある補助情報と依存関係のない一般補助情報を扱うノイズあり対応トピックモデル(noisy correspondence topic model)の定義(仮定)を確認する。
 トピックモデルの定義や共通する記号類については「4.1:トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、依存関係のある補助情報のみを扱う場合については「5.2:対応トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

生成過程の設定

 まずは、ノイズあり対応トピックモデルの生成過程(generative process)を数式で確認する。アルゴリズムについては図5.9を参照のこと。

 文書  d の補助情報数を  M_d、補助情報番号(インデックス)を  m \in \{1, 2, \dots, M_d\} とする。
 補助情報の種類(ユニーク補助情報)数を  S、種類番号を  s \in \{1, 2, \dots, S\} とする。

 文書  d に含まれる(出現した)  m 番目の補助情報を  x_{dm} で表す。各補助情報  x_{dm} の値として種類番号  s をとることで、その補助情報の種類を表す。

 \displaystyle
x_{dm}
    \in
      \{1, 2, \dots, S\}

 また、補助情報  x_{dm} が種類  s であることを明示的に  x_{dm} = s と書くこともある。
  M_d 個の補助情報を集合  \mathbf{x}_d として扱い、文書  d の補助情報集合と呼ぶ。

 \displaystyle
\mathbf{x}_d
    = \{x_{d1}, x_{d2}, \cdots, x_{dM_d}\}

 文書ごとに補助情報集合を持ち、 D 個の補助情報集合を集合  \mathbf{X} として扱い、補助情報集合と呼ぶ。

 \displaystyle
\mathbf{X}
    = \{\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_D\}


 補助情報  x_{dm} が持つ(割り当てられた)トピックを  y_{dm} で表す。各補助情報のトピック  y_{dm} の値としてトピック番号  k をとることで、その補助情報のトピックを表す。

 \displaystyle
y_{dm} \in \{1, 2, \dots, K\}

 また、補助情報のトピック  y_{dm} k であることを明示的に  y_{dm} = k と書くこともある。
 文書  d M_d 個の補助情報のトピックを集合  \mathbf{y}_d として扱い、文書  d の補助情報トピック集合と呼ぶ。

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

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

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

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

 各文書の単語トピック集合  \mathbf{z}_d (  N_d 個の単語に割り当てられたトピック)におけるトピックごとの割合をまとめて、 K 次元ベクトル  \bar{\boldsymbol{\theta}}_d とする。

 \displaystyle
\begin{aligned}
\bar{\theta}_{dk}
   &= \frac{N_{dk}}{N_d}
\\
\bar{\boldsymbol{\theta}}_d
   &= (\bar{\theta}_{d1}, \bar{\theta}_{d2}, \cdots, \bar{\theta}_{dK})
\\
   &= \left(
          \frac{N_{d1}}{N_d}, \frac{N_{d2}}{N_d}, \cdots, \frac{N_{dK}}{N_d}
      \right)
\end{aligned}

  \bar{\theta}_{dk} は、文書  d の補助情報  x_{dm} にトピック  k が生成される(割り当てられる)確率に対応する。
  \bar{\boldsymbol{\theta}}_d の各要素は、非負の分子(各トピックの単語数)の総和が分母(全トピックの単語数)と一致  N_d = \sum_{k=1}^K N_{dk} するので、カテゴリ分布のパラメータの条件(非負の値で総和が1になる値)を満たす。

 \displaystyle
0 \leq \bar{\theta}_{dk} \leq 1
,\ 
\sum_{k=1}^K
    \bar{\theta}_{dk}
    = 1

  \bar{\boldsymbol{\theta}}_d は文書  d の補助情報トピック分布のパラメータと言え、カテゴリ分布のパラメータとして用いる。
 各補助情報のトピック  y_{dm} は、 \bar{\boldsymbol{\theta}}_d をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

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


 トピック  k の補助情報に対して種類(内容)  s が生成される(出現する)確率を  \psi_{ks} で表す。
 各種類に対応する  S 個の生成確率をまとめて、 S 次元ベクトル  \boldsymbol{\psi}_k で表す。

 \displaystyle
\boldsymbol{\psi}_k
    = (\psi_{k1}, \psi_{k2}, \cdots, \psi_{kS})

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

 \displaystyle
0 \leq \psi_{ks} \leq 1
,\ 
\sum_{s=1}^S
    \psi_{sk}
    = 1

  \boldsymbol{\psi}_k をトピック  k の補助情報分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 トピックごとに補助情報分布(のパラメータ)を持ち、 K+1 個のパラメータを集合  \boldsymbol{\Psi} として扱い、補助情報分布のパラメータ集合と呼ぶ。

 \displaystyle
\boldsymbol{\Psi}
    = \{\boldsymbol{\psi}_0, \boldsymbol{\psi}_1, \boldsymbol{\psi}_2, \cdots, \boldsymbol{\psi}_K\}

 補助情報に関して、文書の内容と無関係な(単語トピックに依存しない)場合を  k = 0 で表し、 \boldsymbol{\psi}_0 を一般補助情報分布と呼ぶ。

 また、補助情報分布のパラメータ  \boldsymbol{\psi}_k (  \boldsymbol{\Psi} の各要素)は、 \boldsymbol{\gamma} をパラメータとするディリクレ分布に従って独立に生成されると仮定する。

 \displaystyle
\boldsymbol{\psi}_k
    \sim
      \mathrm{Dirichlet}(\boldsymbol{\gamma})

 ディリクレ分布の確率変数は、カテゴリ分布のパラメータの条件(非負の値で総和が1になる値)を満たす。
  \boldsymbol{\gamma} S 次元ベクトルであり、補助情報分布のハイパーパラメータ(超パラメータ)と呼ぶ。

 \displaystyle
\boldsymbol{\gamma}
    = (\gamma_1, \gamma_2, \cdots, \gamma_S)

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

 \displaystyle
\gamma_s \gt 0

  \gamma_s \psi_{0s}, \psi_{1s}, \psi_{2s}, \cdots, \psi_{Ks} に影響する。

 補助情報  x_{dm} と文書内容(単語トピック)の関係の有無を  r_{dm} で表す。 r_{dm} の値として  b \in \{0, 1\} の2値をとることで、その補助情報の文書内容との関係性を表す。

 \displaystyle
r_{dm}
    \in
      \{0, 1\}

 トピックに依存しない(内容に関係しない)場合を  r_{dm} = 0、依存する(内容に関係する)場合を  r_{dm} = 1 の2値変数で表現する。
 文書  d M_d 個の補助情報と文書内容の関係性を集合  \mathbf{r}_d として扱い、文書  d の関係性集合と呼ぶ。

 \displaystyle
\mathbf{r}_d
    = \{r_{d1}, r_{d2}, \cdots, r_{dM_d}\}

 文書ごとに関係性集合を持ち、 D 個の関係性集合を集合  \mathbf{R} として扱い、関係性集合と呼ぶ。

 \displaystyle
\mathbf{R}
    = \{\mathbf{r}_1, \mathbf{r}_2, \cdots, \mathbf{r}_D\}

 文書内容との関係性(単語トピックとの依存関係)も観測できないデータであるため潜在変数として扱う。

 各補助情報に対して文書内容との関係が生成される(関係を持つ)確率を  \lambda で表す。

 \displaystyle
0 \leq \lambda \leq 1

  \lambda を関係性分布のパラメータと呼び、カテゴリ分布のパラメータとして用いる。
 また、関係性分布のパラメータ  \lambda は、 \eta をパラメータとするベータ分布に従い生成されると仮定する。

 \displaystyle
\lambda
    \sim
      \mathrm{Beta}(\eta, \eta)

 ベータ分布の確率変数は、ベルヌーイ分布のパラメータの条件(0から1の値)を満たす。
  \eta はベルヌーイ分布のパラメータなので、非負の値の条件を満たす必要がある。

 \displaystyle
\eta \gt 0

  \eta (1 - \lambda), \lambda に影響する。

 各補助情報の文書内容との関係性  r_{dm} は、 \lambda をパラメータとするベルヌーイ分布に従って独立に生成されると仮定する。

 \displaystyle
r_{dm}
    \sim
      \mathrm{Bernoulli}(\lambda)


 各補助情報  x_{dm} の種類(内容)は、補助情報に割り当てられたトピックに応じた  \boldsymbol{\psi}_0, \boldsymbol{\psi}_{y_{dm}} をパラメータとするカテゴリ分布に従って独立に生成されると仮定する。

 \displaystyle
x_{dm}
    \sim
      \begin{cases}
          \mathrm{Categorical}(\boldsymbol{\psi}_{y_{dm}})
             &\quad
                (r_{dm} = 1) \\
          \mathrm{Categorical}(\boldsymbol{\psi}_0)
             &\quad
                (r_{dm} = 0)
      \end{cases}

 トピックに依存する  r_{dm} = 1 のときトピック  y_{dm} の補助情報分布  \mathrm{Cat}(x_{dm} \mid \boldsymbol{\psi}_{y_{dm}})、トピックに依存しない  r_{dm} = 0 のとき一般補助情報分布  \mathrm{Cat}(x_{dm} \mid \boldsymbol{\psi}_0) に従い補助情報が生成される。
 文書集合  \mathbf{W} とも独立して生成される。

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

記号一覧

 続いて、トピックモデル(4.1節)に加えてノイズあり対応トピックモデル(5.3節)で用いる記号類を表にまとめる。

記号 意味 制約・関係性
 S 補助情報の種類数  S \geq M_d
 s \in \{1, 2, \dots, S\} 補助情報の種類(ユニーク補助情報)インデックス
 M 全文書の補助情報数  M = \sum_{d=1}^D M_d = \sum_{k=1}^K M_k = \sum_{b \in \{0, 1\}} M_b
 M_d 文書  d の補助情報数  M_d = \sum_{k=1}^K M_{dk}
 M_k 全文書におけるトピック  k の補助情報数  M_k = \sum_{d=1}^D M_{dk} = \sum_{s=1}^S M_{ks}
 M_0 全文書における文書内容と関係のない補助情報数  M_0 = \sum_{d=1}^D \sum_{m=1}^{M_d} (1 - r_{dm}) = M - M_1
 M_1 全文書における文書内容と関係のある補助情報数  M_1 = \sum_{d=1}^D \sum_{m=1}^{M_d} r_{dm} = \sum_{k=1}^K M_k
 M_{dk} 文書  d におけるトピック  k の補助情報数
 M_{ks} トピック  k における種類  s の補助情報数
 m \in \{1, 2, \dots, M_d\} 文書  d の補助情報インデックス
 \mathbf{X} = \{\mathbf{x}_1, \cdots, \mathbf{x}_d, \cdots, \mathbf{x}_D\} 補助情報集合
 \mathbf{x}_d = \{x_{d1}, \cdots, x_{dm}, \cdots, x_{dM_d}\} 文書  d の補助情報集合
 x_{dm} \in \{1, 2, \cdots, S\} 文書  d m 番目の補助情報  x_{dm} \sim \mathrm{Cat}(\boldsymbol{\psi}_{y_{dm}})
 \mathbf{Y} = \{\mathbf{y}_1, \cdots, \mathbf{y}_d, \cdots, \mathbf{y}_D\} 補助情報トピック集合
 \mathbf{y}_d = \{y_{d1}, \cdots, y_{dm}, \cdots, y_{dM_d}\} 文書  d の補助情報トピック集合
 y_{dm} \in \{1, 2, \cdots, K\} 補助情報  x_{dm} のトピック  y_{dm} \sim \mathrm{Cat}(\bar{\boldsymbol{\theta}}_d)
 \bar{\boldsymbol{\theta}}_d = (\bar{\theta}_{d1}, \cdots, \bar{\theta}_{dk}, \cdots, \bar{\theta}_{dK}) 文書  d の補助情報トピック分布のパラメータ
 \bar{\theta}_{dk} = \frac{N_{dk}}{N_d} 文書  d における補助情報に対するトピック  k の生成確率  \bar{\theta}_{dk} \geq 0, \sum_{k=1}^K \bar{\theta}_{dk} = 1
 \boldsymbol{\Psi} = \{\boldsymbol{\psi}_0, \boldsymbol{\psi}_1, \cdots, \boldsymbol{\psi}_k, \cdots, \boldsymbol{\psi}_K\} 補助情報分布のパラメータ集合
 \boldsymbol{\psi}_k = (\psi_{k1}, \cdots, \psi_{ks}, \cdots, \psi_{kS}) トピック  k の補助情報分布のパラメータ  \boldsymbol{\psi}_k \sim \mathrm{Dir}(\boldsymbol{\gamma})
 \psi_{ks} トピック  k における種類  s の生成確率  \psi_{ks} \geq 0, \sum_{s=1}^S \psi_{ks} = 1
 \boldsymbol{\gamma} = (\gamma_1, \cdots, \gamma_s, \cdots, \gamma_S) 補助情報分布のハイパーパラメータ
 \gamma_s  \psi_{ks}\ (k = 1, \dots, K) に影響する値  \gamma_s \gt 0
 \mathbf{R} = \{\mathbf{r}_1, \cdots, \mathbf{r}_d, \cdots, \mathbf{r}_D\} 関係性集合
 \mathbf{r}_d = (r_{d1}, \cdots, r_{dm}, \cdots, r_{dM_d}) 文書  d の関係性集合
 r_{dm} \in \{0, 1\} 補助情報  x_{dm} と文書内容の関係性(単語トピックの依存関係)  r_{dm} \sim \mathrm{Bern}(\lambda)
 b \in \{0, 1\} 依存関係の有無 依存しない  b = 0・依存する  b = 1
 \lambda 補助情報とトピックの関係性の生成確率  \lambda \sim \mathrm{Beta}(\eta), 0 \leq \lambda \leq 1
 \eta  \lambda に影響する値  \eta > 0

 ハイパーパラメータ  \boldsymbol{\gamma} が一様な(全て同じ)値の場合  \gamma = \gamma_1 = \cdots = \gamma_S は、 S 次元ベクトル  \boldsymbol{\gamma} をスカラ  \gamma で表す。
 補助情報トピック集合  \mathbf{Y} に対して、 \mathbf{Z} を単語トピック集合と呼ぶ。

 以上の記号を用いて、ノイズあり対応トピックモデルやその推論アルゴリズムを定義する。

尤度関数の導出

 次は、ノイズあり対応トピックモデルにおける尤度関数(likelihood function)を数式で確認する。

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

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{X}
\mid
    \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
)
   &= \prod_{d=1}^D
          p(
              \mathbf{w}_d, \mathbf{x}_d
          \mid
              \boldsymbol{\theta}_d, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
          )
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d}
          p(
              \mathbf{w}_d, \mathbf{x}_d, \mathbf{z}_d
          \mid
              \boldsymbol{\theta}_d, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
          )
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \Bigl[
          p(\mathbf{z}_d \mid \boldsymbol{\theta}_d)
          p(\mathbf{w}_d \mid \mathbf{z}_d, \boldsymbol{\Phi})
          p(\mathbf{x}_d \mid \mathbf{z}_d, \boldsymbol{\Psi}, \lambda)
      \Bigr]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \left\{ \prod_{m=1}^{M_d}
              p(x_{dm} \mid \mathbf{z}_d, \boldsymbol{\Psi}, \lambda)
          \right\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \left\{ \prod_{m=1}^{M_d} \sum_{k=1}^K
              p(x_{dm}, y_{dm} = k \mid \mathbf{z}_d, \boldsymbol{\psi}_0, \boldsymbol{\psi}_k, \lambda)
          \right\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \prod_{m=1}^{M_d} \sum_{k=1}^K \Bigl\{
              p(y_{dm} = k \mid \mathbf{z}_d)
              p(x_{dm} \mid y_{dm} = k, \boldsymbol{\psi}_0, \boldsymbol{\psi}_k, \lambda)
          \Bigr\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \prod_{m=1}^{M_d} \sum_{k=1}^K \left\{
              p(y_{dm} = k \mid \mathbf{z}_d)
              \sum_{b \in \{0, 1\}}
                  p(x_{dm}, r_{dm} = b \mid y_{dm} = k, \boldsymbol{\psi}_0, \boldsymbol{\psi}_k, \lambda)
          \right\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \prod_{m=1}^{M_d} \sum_{k=1}^K \left\{
              p(y_{dm} = k \mid \mathbf{z}_d)
              \sum_{b \in \{0, 1\}} \Bigl(
                  p(r_{dm} = b \mid \lambda)
                  p(x_{dm} \mid r_{dm} = b, y_{dm} = k, \boldsymbol{\psi}_0, \boldsymbol{\psi}_k)
              \Bigr)
          \right\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \left\{ \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_d)
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
      \right.
\\
   &\qquad \qquad \qquad * 
      \Biggl.
          \prod_{m=1}^{M_d} \sum_{k=1}^K \Biggl\{
              p(y_{dm} = k \mid \mathbf{z}_d) \Bigl(
                  p(r_{dm} = 0 \mid \lambda)
                  p(x_{dm} \mid r_{dm} = 0, \boldsymbol{\psi}_0)
                  + p(r_{dm} = 1 \mid \lambda)
                    p(x_{dm} \mid r_{dm} = 1, y_{dm} = k, \boldsymbol{\psi}_k)
              \Bigr)
          \Biggr\}
      \Biggr]
\end{aligned}

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


  • 1: 文書ごとの積に分解する。
  • 2: 周辺化された潜在変数  \mathbf{z}_d を明示する。
  • 3: 観測・潜在変数  \mathbf{w}_d, \mathbf{x}_d, \mathbf{z}_d の項を分割する。
  • 4: 単語・補助情報ごとの積に分解する。
  • 5: 周辺化された潜在変数  y_{dm} を明示する。
  • 6: 補助情報に関する変数  x_{dm}, y_{dm} の項を分割する。
  • 7: 周辺化された潜在変数  r_{dm} を明示する。
  • 8: 補助情報に関する変数  x_{dm}, r_{dm} の項を分割する。
  • 9: 依存関係の有無に関する項の和  \sum_{b \in \{0, 1\}} を展開する。

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

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{X} \mid \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda)
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \prod_{n=1}^{N_d} \Bigl\{
              \theta_{dz_{dn}}
              \phi_{z_{dn}w_{dn}}
          \Bigr\}
          \prod_{m=1}^{M_d} \sum_{k=1}^K \left\{
              \frac{N_{dk}}{N_d} \Bigl(
                  (1 - \lambda) \psi_{0x_{dm}}
                  + \lambda \psi_{kx_{dm}}
              \Bigr)
          \right\}
      \right]
\\
   &= \prod_{d=1}^D \sum_{\mathbf{z}_d} \left[
          \prod_{v=1}^V \Bigl\{
              \theta_{dz_{dn}}
              \phi_{z_{dn}v}
          \Bigr\}^{N_{dv}}
          \prod_{s=1}^S \Bigl\{
              \sum_{k=1}^K
                  \frac{N_{dk}}{N_d} \Bigl(
                      (1 - \lambda) \psi_{0s}
                      + \lambda \psi_{ks}
                  \Bigr)
          \Bigr\}^{M_{ds}}
      \right]
\end{aligned}

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


  • 1: それぞれカテゴリ分布やベルヌーイ分布を仮定しているので、各変数がとる値(インデックス)のパラメータが生成確率に対応する。
 \displaystyle
\begin{aligned}
p(z_{dn} \mid \boldsymbol{\theta}_d)
   &= \mathrm{Cat}(z_{dn} \mid \boldsymbol{\theta}_d)
    = \theta_{dz_{dn}}
\\
p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
   &= \mathrm{Cat}(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
    = \phi_{z_{dn}w_{dn}}
\\
p(y_{dm} = k \mid \mathbf{z}_d)
   &= \mathrm{Cat}(k \mid \bar{\boldsymbol{\theta}}_d)
    = \bar{\theta}_{dk}
    = \frac{N_{dk}}{N_d}
\\
p(r_{dm} = 0 \mid \lambda)
   &= \mathrm{Bern}(0 \mid \lambda)
    = (1 - \lambda)
\\
p(r_{dm} = 1 \mid \lambda)
   &= \mathrm{Bern}(1 \mid \lambda)
    = \lambda
\\
p(x_{dm} \mid r_{dm} = 0, \boldsymbol{\psi}_0)
   &= \mathrm{Cat}(x_{dm} \mid \boldsymbol{\psi}_0)
    = \psi_{0x_{dn}}
\\
p(x_{dm} \mid r_{dm} = 1, y_{dm} = k, \boldsymbol{\psi}_k)
   &= \mathrm{Cat}(x_{dm} \mid \boldsymbol{\psi}_k)
    = \psi_{kx_{dn}}
\end{aligned}
  • 2: 単語番号  n を用いた式から、語彙番号  v を用いた式に変換する。 N_d 個の単語に対応するパラメータ  \sum_{k=1}^K \theta_{dz_{dn}} \phi_{z_{dn}w_{dn}} について、各単語に割り当てられた語彙番号  w_{dn} = v を用いてトピックごとにまとめると、 N_{dv} 個の  \sum_{k=1}^K \theta_{dz_{dn}} \phi_{z_{dn}v} に置き換えられる。
  • 2: 補助情報番号  m を用いた式から、補助情報の種類番号  s を用いた式に変換する。 \lambda_0 = (1 - \lambda), \lambda_1 = \lambda とすると、 M_d 個の補助情報に対応するパラメータ  \sum_{k=1}^K \bar{\theta}_{dk} \sum_{b \in \{0, 1\}} \lambda_b \psi_{(bk),x_{dm}} について、各補助情報に割り当てられた種類番号  x_{dm} = s を用いてトピックごとにまとめると、 M_{ds} 個の  \sum_{k=1}^K \bar{\theta}_{dk} \sum_{b \in \{0, 1\}} \lambda_b \psi_{(bk),s} に置き換えられる。ただし、補助情報トピックに関する添字を  b k で表している。

 ここで、 \sum_{\mathbf{z}_d} \equiv \sum_{z_{d1}=1}^K, \sum_{z_{d2}=1}^K, \cdots, \sum_{z_{dN_d}=1}^K は、全ての単語トピックの組み合わせに関する和を表す。
 トピック分布・単語分布・補助情報分布のパラメータ(と語彙頻度・補助情報頻度)を用いた式が得られた。

生成モデルの導出

 続いて、ノイズあり対応トピックモデルの生成モデル(generative model)を数式で確認する。

 観測変数  \mathbf{W}, \mathbf{X}、潜在変数  \mathbf{Z}, \mathbf{Y}, \mathbf{R}、パラメータ  \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda、ハイパーパラメータ  \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta をそれぞれ確率変数とする結合分布(同時分布)は、生成過程(依存関係)に従い次のように変形できる。ただし、補助情報トピックに関する添字を  k = r_{dm}y_{dm} で表す。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{X}, 
    \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
    \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
)
   &= p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\Phi})
      p(\mathbf{Z} \mid \boldsymbol{\Theta})
      p(\mathbf{X} \mid \mathbf{Y}, \mathbf{R}, \boldsymbol{\Psi})
      p(\mathbf{Y} \mid \mathbf{Z})
      p(\mathbf{R} \mid \lambda)
      p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\alpha})
\\
   &\quad * 
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\beta})
      p(\boldsymbol{\Psi} \mid \boldsymbol{\gamma})
      p(\boldsymbol{\gamma})
      p(\lambda \mid \eta)
      p(\eta)
\\
   &= \prod_{d=1}^D \Bigl[
          p(\mathbf{w}_d \mid \mathbf{z}_d, \boldsymbol{\Phi})
          p(\mathbf{z}_d \mid \boldsymbol{\theta}_d)
          p(\mathbf{x}_d \mid \mathbf{y}_d, \mathbf{r}_d, \boldsymbol{\Psi})
          p(\mathbf{y}_d \mid \mathbf{z}_d)
          p(\mathbf{r}_d \mid \lambda)
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha})
      \Bigr]
      p(\boldsymbol{\alpha})
\\
   &\quad * 
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
      \left\{ \prod_{k=0}^K
          p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma})
      \right\}
      p(\boldsymbol{\gamma})
      p(\lambda \mid \eta)
      p(\eta)
\\
   &= \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}_d)
          \Bigr\}
          \prod_{m=1}^{M_d} \Bigl\{
              p(x_{dm} \mid \boldsymbol{\psi}_{(r_{dm}y_{dm})})
              p(y_{dm} \mid \mathbf{z}_d)
              p(r_{dm} \mid \lambda)
          \Bigl\}
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha})
      \right]
      p(\boldsymbol{\alpha})
\\
   &\quad * 
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
      \left\{ \prod_{k=0}^K
          p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma})
      \right\}
      p(\boldsymbol{\gamma})
      p(\lambda \mid \eta)
      p(\eta)
\end{aligned}

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


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

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

 \displaystyle
\begin{aligned}
&
p(
    \mathbf{W}, \mathbf{X}, 
    \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
    \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
)
\\
   &= p(
          \mathbf{W}, \mathbf{X}, 
          \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
          \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
      \mid
          \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
      )
      p(\boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta)
\\
   &= p(
          \mathbf{W}, \mathbf{X}, 
          \mathbf{Z}, \mathbf{Y}, \mathbf{R}
      \mid
          \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
      )
      p(
          \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
      \mid
          \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
      )
      p(\boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta)
\\
   &= p(
          \mathbf{W}, \mathbf{X}
      \mid
          \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
          \boldsymbol{\Phi}, \boldsymbol{\Psi}
      )
      p(
          \mathbf{Z}, \mathbf{Y}, \mathbf{R}
      \mid
          \boldsymbol{\Theta}, \lambda
      )
      p(
          \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
      \mid
          \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
      )
      p(\boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta)
\end{aligned}

 さらに1つ目の項の、独立な観測変数の項を分割する。

 \displaystyle
p(
    \mathbf{W}, \mathbf{X}
\mid
    \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
    \boldsymbol{\Phi}, \boldsymbol{\Psi}
)
    = p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\Phi})
      p(\mathbf{X} \mid \mathbf{Y}, \mathbf{R}, \boldsymbol{\Psi})

 2つ目の項の、依存関係のない潜在変数と依存関係のある潜在変数の項をそれぞれ分割する。

 \displaystyle
\begin{aligned}
p(
    \mathbf{Z}, \mathbf{Y}, \mathbf{R}
\mid
    \boldsymbol{\Theta}, \lambda
)
   &= p(\mathbf{Y}, \mathbf{Z} \mid \boldsymbol{\Theta})
      p(\mathbf{R} \mid \lambda)
\\
   &= p(\mathbf{Y} \mid \mathbf{Z})
      p(\mathbf{Z} \mid \boldsymbol{\Theta})
      p(\mathbf{R} \mid \lambda)
\end{aligned}

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

 \displaystyle
p(
    \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda
\mid
    \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
)
    = p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
      p(\boldsymbol{\Phi} \mid \boldsymbol{\beta})
      p(\boldsymbol{\Psi} \mid \boldsymbol{\gamma})
      p(\lambda \mid \eta)

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

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

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

  • 2: 文書・トピックごとの積に分解する。
  • 3: 単語・補助情報ごとの積に分解する。

  \boldsymbol{\psi}_{(r_{dm}y_{dm})} の添字(  r_{dm} y_{dm} で1つのインデックス)について、 r_{dm} = 0 のとき  r_{dm} y_{dm} = 0 になり  \boldsymbol{\psi}_0 r_{dm} = 1 のとき  r_{dm} y_{dm} =  y_{dm} になり  \boldsymbol{\psi}_{y_{dm}} となる。

 単語と補助情報のトピックに関して、一般補助情報分布(トピック  k = 0 )のパラメータ  \boldsymbol{\phi}_0 に関する項を  \prod_{k=0}^K から取り出して、次のようにもまとめられる。

 \displaystyle
\left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
      \left\{ \prod_{k=0}^K
          p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma})
      \right\}
      p(\boldsymbol{\gamma})
    = p(\boldsymbol{\phi}_0 \mid \boldsymbol{\beta})\left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
          p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma})
      \right\}
      p(\boldsymbol{\beta})
      p(\boldsymbol{\gamma})

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

グラフィカルモデル

 最後は、ノイズあり対応トピックモデルの生成モデルをグラフィカルモデル表現(graphical model representation)で確認する。

 ノイズあり対応トピックモデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}, \mathbf{X}, 
    \mathbf{Z}, \mathbf{Y}, \mathbf{R}, 
    \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}, \lambda, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma}, \eta
)
   &= 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})
\\
   &\quad * 
      p(\mathbf{X} \mid \mathbf{Y}, \mathbf{R}, \boldsymbol{\Psi})
      p(\mathbf{Y} \mid \mathbf{Z})
      p(\mathbf{R} \mid \lambda)
      p(\lambda \mid \eta)
      p(\eta)
      p(\boldsymbol{\Psi} \mid \boldsymbol{\gamma})
      p(\boldsymbol{\gamma})
\\
   &= \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}_d)
          \Bigr\}
          p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha})
      \right]
      p(\boldsymbol{\alpha})
      \left\{ \prod_{k=1}^K
          p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \right\}
      p(\boldsymbol{\beta})
\\
   &\quad * 
      \prod_{d=1}^D \left[
          \prod_{m=1}^{M_d} \Bigl\{
              p(x_{dm} \mid \boldsymbol{\psi}_{(r_{dm}y_{dm})})
              p(y_{dm} \mid \mathbf{z}_d)
              p(r_{dm} \mid \lambda)
          \Bigl\}
      \right]
      p(\lambda \mid \eta)
      p(\eta)
      \left\{ \prod_{k=0}^K
          p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma})
      \right\}
      p(\boldsymbol{\gamma})
\end{aligned}

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

ノイズあり対応トピックモデルのグラフィカルモデル

 「  z_{dn} \to y_{dm} 」が、各文書の補助情報に対するトピック分布  p(y_{dm} \mid \mathbf{z}_d) に対応し、単語トピック集合(の各トピックの割合)に従って各補助情報のトピック  y_{dm} が生成されることを示している。
 「  y_{dm} \to x_{dm} 」、「  r_{dm} \to x_{dm} 」と「  \boldsymbol{\psi}_k \to x_{dm} 」が、各トピックの補助情報分布  p(x_{dm} \mid \boldsymbol{\psi}_{(r_{dm}y_{dm})}) に対応し、補助情報分布または一般補助情報分布(のパラメータ)に従って各補助情報(の種類)  x_{dm} が生成されることを示している。
 「  \boldsymbol{\gamma} \to \boldsymbol{\psi}_k 」が、補助情報分布のパラメータの事前分布  p(\boldsymbol{\psi}_k \mid \boldsymbol{\gamma}) に対応し、事前分布(のパラメータ)に従って補助情報分布のパラメータ  \boldsymbol{\psi}_k が生成されることを示している。
 「  [K+1] 」が、 \prod_{k=0}^K に対応し、(一般補助情報分布を含めた)  K+1 個の補助情報分布のパラメータ  \boldsymbol{\psi}_k が繰り返し生成されることを示している。
 「  [M_d] 」が、 \prod_{m=1}^{M_d} に対応し、 M_d 個のトピック  y_{dm} と関係性  r_{dm}、補助情報  x_{dm} が繰り返し生成されることを示している。
 「  [D] 」が、 \prod_{d=1}^D に対応し、 D 個のトピック集合  \mathbf{z}_d, \mathbf{y}_d と関係性集合  \mathbf{r}_d、単語集合  \mathbf{w}_d、補助情報集合  \mathbf{x}_d、またトピック分布のパラメータ  \boldsymbol{\theta}_d が繰り返し生成されることを示している。

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

 この記事では、ノイズあり対応トピックモデルで用いる記号や定義を確認した。次の記事では、崩壊型ギブスサンプリングによるパラメータの計算式を導出する。

参考書籍

おわりに

 だいぶ慣れてきた気がします。これを変分ベイズで解くという遊び方を思いついてしましました。さてどうしましょう。

 2020年10月24日は、アンジュルムの上國料萌衣さんの21歳のお誕生日!おめでとうございます!

 この記事の投稿1時間前に投稿された最新の動画です!

  • 2024.12.18:加筆修正の際に「ノイズあり対応トピックモデルの崩壊型ギブスサンプリングの導出:一様なハイパーパラメータの場合」を記事から独立しました。

 次の記事の崩壊型ギブスサンプリングに対しての変分ベイズという話でした。挑戦することはないでしょうが、多様版はやってみました。

 初稿のときには対応トピックモデルより少し複雑になった(手間が増えた)くらいの気楽さでサラッと書いた(書けた)はずなのですが、今回の修正(二稿)では補助情報トピックと関係性の扱い方がどうなっているのかにとてもとても悩みました。
 その部分だけで2か月以上だらだらと書いては消しての投げて他の記事を書いてを繰り返していました。なんとか整理して表現できたんじゃないでしょうか。まぁあくまで途中式の話で、最終的な式は本の通りなので変わらないのですが。
 ぱっと見で一番分かりやすい成長は、DiagrammeRパッケージの使い方が上手くなって意図通りのグラフィカルモデルを描けるようになったことですね。これまでは矢印がとっ散らかった酷いもので、パワポで作り直そうか悩んでいました。

 そんなこんなな試行錯誤の過程に抱いた感想を最後にメモとして残しておきます。

 単語トピック集合zに応じて1からKのトピックから補助情報トピックyが決まり、関係性rによって0かyのどちらか1つのトピックに応じて補助情報xが決まります。これは、xはyとrに依存し、yはzに依存していますね。
 それを、xはyに依存し、yはzとrに依存することにしたらどうなるのでしょうか?つまり、zとrに応じて0からKのトピックからyを決めて、yのみに応じてxが決まるようにするというわけです。こっちの方が式がスッキリするように感じたのですがどうなんでしょうか。

【次節の内容】

  • 数式読解編

 ノイズあり対応トピックモデルに対する周辺化ギブズサンプリングを数式で確認します。

www.anarchive-beta.com

www.anarchive-beta.com

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

www.anarchive-beta.com