からっぽのしょこ

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

2.1:トピックモデルの文書表現【青トピックモデルのノート】

はじめに

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

 この記事では、トピックモデル全般で共通する文書データに関する数式や記号を確認します。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

2.1 トピックモデルの文書表現

 bag-of-words表現で扱われる文書データに関する数式での表記を確認する。
 テキストデータから文書集合を作成する場合は「【R】2.1:トピックモデルの文書集合の作成【青トピックモデルのノート】 - からっぽのしょこ」、真のパラメータ類を設定して生成モデルに従う簡易的な文書データ(トイデータ)を作成する場合は「各種モデルの生成モデルの実装」を参照のこと。

数式での表記

 各種モデルにおいて観測データとして扱う文書集合について数式で確認する。

 同じ文字列の語に関して、各文書で重複を許す場合の1語を単語(word)と呼び、全文書で重複を許さない場合の1語を語彙(vocabulary, ユニーク単語)と呼ぶ。文書中に含まれない語彙は、出現回数や出現確率を0として扱う。

 文書数を  D として、 1 から  D の文書番号(インデックス)を  d で表す。これを  d \in \{1, 2, \dots, D\} と書く。各文書を  d 番目の文書や文書  d と呼ぶ。
 文書  d の単語数を  N_d として、 1 から  N_d の単語番号(インデックス)を  n \in \{1, 2, \cdots, N_d\} で表す。文書ごとに単語数は異なる。
 語彙数(単語の種類数)を  V として、 1 から  V の語彙番号(インデックス)を  v \in \{1, 2, \cdots, V\} で表す。各語彙を  v 番目の語彙や語彙  v と呼ぶ。

 文書  d に含まれる語彙  v の単語数(出現回数)を  N_{dv} で表す。
  V 個(全て)の語彙それぞれ単語数の和をとると文書  d の単語数  N_d が得られる。

 \displaystyle
N_d
    = \sum_{v=1}^V N_{dv}

 全文書に含まれる単語数(総単語数)を  N で表す。
  D 個(全て)の文書それぞれの単語数の和  N で得られる。

 \displaystyle
N   = \sum_{d=1}^D N_d

 総単語数は語彙数以上  N \geq V である。

 文書  d に含まれる(出現した)  n 番目の単語を  w_{dn} で表す。各単語  w_{dn} の値として語彙番号  v をとることでその単語の語彙を表す。これを次のように書く。

 \displaystyle
w_{dn}
    \in
      \{1, 2, \cdots, V\}

 また、単語  w_{dn} が語彙  v であることを明示的に  w_{dn} = v と書くこともある。各単語を文書  d n 番目の単語や単語  w_{dn} と呼ぶ。ただし、実際の出現順(意味の通る文章となる語順)である必要はなく、単語インデックスを入れ替えてもモデル(推論)上は問題ない。
 各文書は、 N_d 個の単語の集合(多重集合)  \mathbf{w}_d として扱い、単語集合とも呼ぶ。

 \displaystyle
\mathbf{w}_d
    = \{w_{d1}, w_{d2}, \cdots, w_{dN_d}\}

 1語を長さ1とすると、単語数は文書の長さと言える。
 文書データ全体は、 D 個の文書(単語集合)の集合  \mathbf{W} として扱い、文書集合や観測データとも呼ぶ。

 \displaystyle
\mathbf{W}
    = \{\mathbf{w}_1, \mathbf{w}_2, \cdots, \mathbf{w}_D\}

 (単語に限らず)インデックスが分かりにくい場合は  w_{d,n} とも書く(カンマで区切る)。

 トピックモデルでは、文書データ  \mathbf{W} D \times V 個(文書と語彙ごと)の頻度データ  (N_{11}, \cdots, N_{DV}) に整形(カウント)して扱う(推論に用いる)。単語の語順情報をなくして、文書や語彙の頻度情報にした形式をbag-of-words表現の文書データと呼ぶ。bag-of-words表現にした文書データからは元の文章を再現できない。

 ここまでは、観測データとして得られる情報であり、トピックモデルなどの各種モデルで共通の表記として用いる。パラメータ類の表記はモデルによって異なる。生成モデルや推論アルゴリズムについては次節以降で詳しく扱っていく。
 文書集合  \mathbf{W} としての扱い方は同じだが、モデルによって文書データが生成される仮定が異なる。各種モデルに応じた推論アルゴリズムにより、文書集合(から得られる頻度データ)から未知のパラメータ類を推定する。
 ただし、あくまでパラメータや潜在変数はモデルごとにあると仮定したものであり、データの裏に実際に存在するかは分からない。この資料では、あると仮定した生成過程に基づいてパラメータ類を設定して、人工的に文書集合(に相当するデータ)を作成することで、本来は分かり得ないパラメータ類が手元にある状態で推論を行うことでモデルやアルゴリズムの理解を深める。

 この記事では、トピックモデル全般での文書データの扱いを確認した。次の記事からは、ユニグラムモデルを確認していく。

参考書籍

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

おわりに

  • 2024.04.26:加筆修正の際に「ユニグラムモデルの生成モデルの導出」から記事を分割しました。

 この節の内容は全ての節で共通する表記の説明なので、他の記事と比べて短くなりますが、構成の都合で1つの記事として切り離しました。
 記事の文量が少々気になるのでトピックの話もここでしておこうか迷ったのですが、混合ユニグラムモデルとトピックモデルでトピックの持ち方が異なるなど、先取りして説明するにはややこしいと思ったので止めました。
 一歩ずつ段階を経てトピックモデルやその先まで辿り着くのがこの本の良いところだと思うので、着実にやっていきましょう。

【次節の内容】

 ユニグラムモデルを数式で確認します。

www.anarchive-beta.com

 MeCabを利用してテキストデータから語彙の頻度データをRで作成します。

www.anarchive-beta.com