からっぽのしょこ

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

3.1-2:混合ユニグラムモデル【『トピックモデル』の勉強ノート】

はじめに

 機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。

 この記事は、3.1節「混合ユニグラムモデル」と3.2節「混合モデル」の内容です。3章で用いるデータやパラメータ関にする表記方法と混合ユニグラムモデル(生成モデル,尤度)の定義を説明します。

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】


3.1 混合ユニグラムモデル

 2章のユニグラムモデルでは、1つの単語分布から全ての文書(に含まれる単語)が生成されるとした。しかし実際の文書では、文書ごとにトピック(主題)があり、トピックごとに語彙の出現しやすさが異なる(と考えられる)。このトピックという概念を導入した生成モデル(確率モデル)が、混合ユニグラムモデルである。
 混合ユニグラムモデルでは、各文書が複数のトピックの中から1つのトピックを持ち、またそのトピックが持つ単語分布に従って各単語が確率的に生成されると仮定する。

 生成モデルの定義の前に、まずは2章から追加される表記について確認する。

 トピック数を$K$として、トピック番号(インデックス)を$k$で表す。トピックは1から$K$まであるので、トピックインデックスも1から$K$の値をとる。これを$k \in \{1, 2, \cdots, K\}$と書く。
 そして各トピックに対応した単語分布がある。トピック$k$の単語分布を$\boldsymbol{\phi}_k = (\phi_{k1}, \phi_{k2}, \cdots, \phi_{kV})$とする。ここで$\phi_{kv}$は、トピック$k$における語彙$v$の生成(出現)確率のことである。ある文書において単語分布$\boldsymbol{\phi}_k$に従って語彙$v$が出現する確率を$p(w_{dn} = v | \boldsymbol{\phi}_k)$と表記することもある。$w_{dn} = v$は、ある単語$w_{dn}$が語彙$v$であることを明示する表現である。
 また$\boldsymbol{\phi}_k$は、次のように定義される。

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

 全てのトピックの単語分布$\boldsymbol{\phi}_1, \cdots, \boldsymbol{\phi}_K$をまとめたものを、太字の大文字を使って$\boldsymbol{\Phi} = (\boldsymbol{\phi}_1, \boldsymbol{\phi}_2, \cdots, \boldsymbol{\phi}_K)$と表記する。

 文書$d$が持つ(に割り当てられる)トピックを$z_d$で表す。これは観測できないデータであるため、潜在変数(潜在トピック)とも呼ばれる。トピックは1から$K$まであるので、$z_d \in \{1, 2, \cdots, K\}$である。またある文書のトピック(番号)を$z_d = k$のように明示的に表記することもある。他にも、文書$d$のトピック$z_d$の単語分布を$\boldsymbol{\phi}_{z_d}$と表記することもある。例えば文書2に3番目のトピックが割り当てられる$z_2 = 3$とき、対応する単語分布は$\boldsymbol{\phi}_{z_2} = \boldsymbol{\phi}_3$である。
 全ての文書のトピックをまとめたものを、太字の小文字を使って$\mathbf{z} = (z_1, z_2, \cdots, z_D)$と表記する。これをトピック集合と呼ぶ。

 文書にあるトピック$k$が割り当てられる確率(選ばれやすさ)を$\theta_k$とする。トピック1となる確率$\theta_1$からトピック$K$となる確率$\theta_K$までをまとめたものをトピック分布と呼び、太字の小文字を使って$\boldsymbol{\theta} = (\theta_1, \theta_2, \cdots, \theta_K)$と表記する。
 トピック分布$\boldsymbol{\theta}$の各要素は、次の定義に従う。

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


 その他3章で用いる記号類を次の表にまとめた。

・記号一覧

3章で用いる記号類一覧


 以上の表記を用いて、混合ユニグラムモデルを定義する。

・生成モデル

 混合ユニグラムモデルは、各トピックが持つ単語分布に従って(BOW表現の)文書集合$\mathbf{W}$が生成されると仮定した確率モデルであった。ここでは、その具体的な生成過程(定義)を確認する。

 文書$d$のトピック$z_d$は、トピック分布$\boldsymbol{\theta}$をパラメータとするカテゴリ分布に従って割り当てられる。

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

そして、与えられたトピックの単語分布$\boldsymbol{\phi}_{z_d}$をパラメータとするカテゴリ分布に従って単語が生成される。

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

 またパラメータ$\boldsymbol{\theta},\ \boldsymbol{\Phi}$も確率的に生成されると仮定する。トピック分布$\boldsymbol{\theta}$は、$\alpha$を(ハイパー)パラメータとするディリクレ分布に従い生成される。各単語分布$\boldsymbol{\phi}_k$も(ハイパー)パラメータ$\beta$を持つディリクレ分布から生成される。

$$ \begin{aligned} \boldsymbol{\theta} &\sim \mathrm{Dirichlet}(\alpha) \\ \boldsymbol{\phi}_k &\sim \mathrm{Dirichlet}(\beta) \end{aligned} $$


 以上の生成過程に従うと、パラメータ$\boldsymbol{\theta},\ \boldsymbol{\Phi}$が与えられたときの文書集合$\mathbf{W}$の生成確率$p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi})$は、次のようになる。

$$ \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}_k) \\ &= \prod_{d=1}^D \left( \sum_{k=1}^K p(z_d = k | \boldsymbol{\theta}) p(\mathbf{w}_d | \boldsymbol{\phi}_k) \right) \\ &= \prod_{d=1}^D \left( \sum_{k=1}^K p(z_d = k | \boldsymbol{\theta}) \prod_{n=1}^{N_d} p(w_{dn} | \boldsymbol{\phi}_k) \right) \\ &= \prod_{d=1}^D \left( \sum_{k=1}^K \theta_k \prod_{n=1}^{N_d} \phi_{kw_{dn}} \right) \\ &= \prod_{d=1}^D \left( \sum_{k=1}^K \theta_k \prod_{n=1}^V \phi_{kv}^{N_{dv}} \right) \end{aligned} $$

【途中式の途中式】

  1. 各文書は独立に生成される(と仮定している)ことから、各文書の生成確率の積になる。
$$ p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi}) = p(\mathbf{w}_1, \cdots, \mathbf{w}_D | \boldsymbol{\theta}, \boldsymbol{\Phi}) = p(\mathbf{w}_1 | \boldsymbol{\theta}, \boldsymbol{\Phi}) * \cdots * p(\mathbf{w}_1 | \boldsymbol{\theta}, \boldsymbol{\Phi}) = \prod_{d=1}^D p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi}) $$
  1. 文書$d$の生成確率$p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi})$は、全てのトピックの可能性を考慮した平均と言える。

 文書$d$が、単語ベクトル$\mathbf{w}_d = (w_{d1}, w_{d2}, \cdots, w_{dN_d})$で構成されており、かつあるトピック$z_d = k$を持つとする。これは単語ベクトル$\mathbf{w}_d$と$z_d$の同時確率$p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\Phi})$で表現できる。
 $p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi})$は、トピック$z_d$について1から$K$までの全ての場合を含めた生成確率と言える。つまり$z_d$に関して周辺化したものである。

$$ p(\mathbf{w}_d | \boldsymbol{\theta}, \boldsymbol{\Phi}) = \sum_{k=1}^K p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_k) $$
  1. 文書(集合)の生成過程(と乗法定理)より、文書の生成確率とトピックの割り当て確率の積になる。
    • 文書$d$のトピック$z_d$は、トピック分布$\boldsymbol{\theta}$に従って生成される。
    • 文書$d$の単語ベクトル$\mathbf{w}_d$は、与えられたトピックが持つ単語分布$\boldsymbol{\phi}_k$に従って生成される。
$$ \begin{aligned} p(\mathbf{w}_d, z_d = k | \boldsymbol{\theta}, \boldsymbol{\phi}_k) &= p(\mathbf{w}_d | z_d = k, \boldsymbol{\phi}_k) p(z_d = k | \boldsymbol{\theta}) \\ &= p(\mathbf{w}_d | \boldsymbol{\phi}_{z_d}) p(z_d = k | \boldsymbol{\theta}) \\ &= p(\mathbf{w}_d | \boldsymbol{\phi}_k) p(z_d = k | \boldsymbol{\theta}) \end{aligned} $$
  1. 単語分布$\boldsymbol{\phi}_k$に従い単語が独立に生成される(と仮定する)ことから、各単語の生成確率の積になる。
$$ p(\mathbf{w}_d | \boldsymbol{\phi}_k) = p(w_{d1}, \cdots, w_{dN_d} | \boldsymbol{\phi}_k) = p(w_{d1} | \boldsymbol{\phi}_k) * \cdots * p(w_{dN_d} | \boldsymbol{\phi}_k) = \prod_{n=1}^{N_d} p(w_{dn} | \boldsymbol{\phi}_k) $$
  1. どちらの項もカテゴリ分布を仮定していることから、それぞれ具体的な式に置き換える。
    • トピック分布$\boldsymbol{\theta}$に従ってトピックが割り当てられる確率は、$p(z_d = k | \boldsymbol{\theta}) = \theta_k$である。
    • 与えられたトピックの単語分布$\boldsymbol{\phi}_k$に従う単語の生成確率は、$p(w_{dn} | \boldsymbol{\phi}_k) = \phi_{kw_{dn}}$である。
  2. 各語彙の出現回数$N_v$を用いて、単語$n$の形式から語彙$v$を使った形式に変換する。

 単語$w_{dn}$は重複を許す形式の表現である。そのため、文書1の1番目の単語$w_{11}$から文書$D$の$N_D$番目の単語$w_{DN_D}$までの生成確率の積$\prod_{d=1}^D \prod_{n=1}^{N_d} \phi_{w_{dn}}$で文書集合の生成確率を表し、特定の語に注目しない(できない)。
 一方語彙$v$は重複しない形式の表現である。そのため、語彙の出現回数$N_{dv}$を指数として使うことで、語彙1から語彙$V$までの生成確率の積$\prod_{d=1}^D \prod_{v=1}^V \phi_{z_dv}^{N_{dv}}$で文書集合の生成確率を表せる。

 例えば文書1において、1番目の単語$w_{11}$と5番目の単語$w_{15}$と8番目の単語$w_{18}$が同じ語だったとする。これは文書1において、(文書全体での)1番目の語彙が3回出現したことになる。このとき(文書1のトピックが$k$だったとすると)単語$w_{11},\ w_{15},\ w_{18}$の3語の生成確率$p(w_{11}, w_{15}, w_{18} | \boldsymbol{\phi}_k)$は

$$ \phi_{kw_{11}} * \phi_{kw_{15}} * \phi_{kw_{18}} = \phi_{k1} * \phi_{k1} * \phi_{k1} = \phi_{k1}^3 $$

になる。このとき、指数の3が$N_{dv}$に当たる。



 この節では、各文書はトピック分布に従いトピックが割り当てられ、そのトピックに対応する単語分布に従って単語ベクトル$\mathbf{w}_d$の各単語が生成されるという混合ユニグラムモデルの定義(文書集合の生成過程を各単語あるいは各語彙とトピックの同時確率によって記述した生成モデル)を確認した。
 この生成過程は、図3.1の疑似コード、図4.3のグラフィカルモデルでも確認できる。

 文書集合$\mathbf{W}$の生成過程に注目するとき$p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi})$を生成モデルと呼ぶが、実際に得た文書集合(観測データ)$\mathbf{W}$をどれだけパラメータ$\boldsymbol{\theta},\ \boldsymbol{\Phi}$で説明できるのかに注目するとき、$p(\mathbf{W} | \boldsymbol{\theta}, \boldsymbol{\Phi})$を尤度と呼ぶのは、ユニグラムモデルのときと同様である。

 3.3節以降では、文書集合(観測データ)$\mathbf{W}$を得たときに、未知のパラメータ$\boldsymbol{\theta},\ \boldsymbol{\Phi}$を推定する3つの手法を確認する。

3.2 混合モデル

 混合モデルとは、複数の確率モデルの中から1つのモデルに従ってデータが生成されると仮定するモデルのことである。(混合ユニグラムモデルでは、複数のトピックに対応する単語分布の中から、各文書が1つ持つトピックの単語分布から単語(データ)が生成されると仮定している。)これを式にすると、次のように書ける。

$$ p(\mathbf{w}) = \sum_{k=1}^K p(k) p(\mathbf{w} | k) $$

 $p(k)$は混合比と呼ばれ、どのモデルが選ばれるかの確率である。(混合ユニグラムモデルでは、各トピックが選ばれる確率のことである。)$p(\mathbf{w} | k)$は、モデル$k$が選ばれたときの観測データ$\mathbf{w}$が生成される確率を表す。(混合ユニグラムモデルでは、トピック$k$が選ばれたときに生成される文書$\mathbf{w}_d$の確率のことである。また混合ユニグラムモデルの場合は、$p(\mathbf{w} | k)$はユニグラムモデルである。)

 混合モデルは、データを複数のグループに分けるクラスタリングによく利用される。混合ユニグラムモデルでは、各文書に割り当てられるトピックによって、文書をグループ化していると解釈できる。

参考書籍

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

おわりに

2020.07.02:加筆修正の際に記事を分割しました。

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


【次節の内容】

www.anarchive-beta.com