LSA → PLSA → LDA の進化と NMF を図表で理解
トピックモデルの手法って全体でどういう関係になってるの?
トピックモデルには歴史的な進化の流れがあるんだ。LSA → PLSA → LDA という順に改良されていった系統と、別アプローチのNMFがある:
行列分解
(SVD)
確率モデル化
(学習データ限定)
完全な確率モデル
(新規文書も対応)
非負制約の行列分解
(別アプローチ)
それぞれの手法の前に、トピックモデルの入力データってどうなってるの?
どの手法も基本的に「文書-単語行列」を入力にするよ。各文書に各単語が何回出てきたかを数えた表だね:
| ボール | 試合 | 選手 | 株価 | 投資 | 市場 | レシピ | 味 | |
|---|---|---|---|---|---|---|---|---|
| 文書1 | 5 | 3 | 4 | 0 | 0 | 0 | 0 | 0 |
| 文書2 | 0 | 0 | 0 | 4 | 5 | 3 | 0 | 0 |
| 文書3 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 5 |
| 文書4 | 3 | 2 | 1 | 2 | 3 | 1 | 0 | 0 |
↑ この行列から「スポーツ」「金融」「料理」という隠れたトピックを発見したい!
文書4はスポーツと金融が混ざっている ← これも見抜きたい
じゃあ最初のLSAから教えて!
次元削減で学んだSVDを、テキストに応用したもの
PLSAはLSAにどんな改良を加えたの?
PLSA(Probabilistic LSA / 確率的潜在意味解析)は、LSAの「ただ行列を分解する」というやり方を「確率で考える」に変えた手法だよ。
LSAが「数学的に分解しただけ」なのに対して、PLSAは「文書がトピックを選び、トピックが単語を選ぶ」という確率的な生成プロセスを仮定するんだ。
「文書→トピック→単語」の確率的な流れを仮定
で、PLSAの問題を解決したのがLDA?
そう!LDAはPLSAにディリクレ分布という「事前分布」を追加したことで、新しい文書にも対応できるようにした完全版だよ。ここがディリクレ分布の出番!
PLSAの流れ + 「ディリクレ分布」で事前知識を追加
🟣 紫のステップ = LDAで追加された部分(ディリクレ分布)
PLSAとLDAの違いをもっとわかりやすく教えて!
そのディリクレ分布って結局何なの?
ディリクレ分布は「割合の組み合わせ」を生み出す確率分布だよ。
例えば「スポーツ・金融・料理の3トピックの配分」って、合計が100%になる必要があるよね?「60%, 30%, 10%」とか「10%, 10%, 80%」とか。ディリクレ分布はこの「合計100%になる配分」をランダムに生成してくれるんだ。
「合計1.0(100%)になる配分」をランダムに作る確率分布
パラメータ α(アルファ) で配分の偏り具合をコントロール
均等に近い配分が出やすい
「どのトピックもまんべんなく含む」
ばらついた配分が出やすい
「偏りも均等もいろいろ出る」
1つに偏った配分が出やすい
「ほぼ1トピックに特化」
なるほど!サイコロの「目の出やすさ」をコントロールするようなものだね。
いい例えだね!まさにそう。αが大きい = 全面が均等な「普通のサイコロ」、αが小さい = 一面だけやたら出やすい「イカサマサイコロ」みたいなイメージだよ。
最後にNMFを教えて!別アプローチってどういうこと?
「マイナスを使わない」という制約で行列を分解
LSAとNMFってどっちも行列分解だよね?違いがよくわからない…
4つ全部まとめて比較して!
| 項目 | LSA | PLSA | LDA | NMF |
|---|---|---|---|---|
| 正式名 | 潜在意味解析 | 確率的潜在 意味解析 |
潜在的ディリクレ 配分法 |
非負値行列 因子分解 |
| 年代 | 1990 | 1999 | 2003 | 1999〜 |
| アプローチ | 行列分解 (SVD) |
確率モデル | 確率モデル +事前分布 |
行列分解 (非負制約) |
| 確率的? | ✕ | ○ | ◎ | ✕ |
| 新規文書への 対応 |
△ 射影は可能 |
✕ 学習データ限定 |
◎ 事前分布で対応 |
△ 射影は可能 |
| マイナス値 | 出る | 出ない | 出ない | 出ない |
| 解釈のしやすさ | △ | ○ | ○ | ◎ |
| 過学習 | しにくい | しやすい | しにくい | 普通 |
| G検定重要度 | ★★☆ | ★★☆ | ★★★ | ★☆☆ |
結局、トピックモデルの出力ってどんな感じなの?
| ボール | 試合 | 選手 | 株価 | 投資 | 市場 | レシピ | 味 | |
|---|---|---|---|---|---|---|---|---|
| トピック1 → スポーツ? |
0.35 | 0.30 | 0.25 | 0.03 | 0.02 | 0.02 | 0.01 | 0.02 |
| トピック2 → 金融? |
0.02 | 0.03 | 0.01 | 0.30 | 0.35 | 0.25 | 0.02 | 0.02 |
| トピック3 → 料理? |
0.02 | 0.01 | 0.02 | 0.01 | 0.02 | 0.02 | 0.40 | 0.45 |
※太字が高確率の単語。「スポーツ」「金融」「料理」という名前は人間がつけた解釈
G検定で押さえるポイントをまとめるね!