トピックモデルとディリクレ分布

LSA → PLSA → LDA の進化と NMF を図表で理解

初心者
初心者

トピックモデルの手法って全体でどういう関係になってるの?

上級者
上級者

トピックモデルには歴史的な進化の流れがあるんだ。LSA → PLSA → LDA という順に改良されていった系統と、別アプローチのNMFがある:

トピックモデルの進化の流れ

LSA
1990年

行列分解
(SVD)

PLSA
1999年

確率モデル化
(学習データ限定)

LDA
2003年

完全な確率モデル
(新規文書も対応)

NMF
1999年〜

非負制約の行列分解
(別アプローチ)

💡 進化のポイント
LSA「行列をそのまま分解」→ PLSA「確率で考えよう」→ LDA「新しい文書にも使えるようにしよう」
NMFは別系統で「マイナスを使わない分解」というアプローチ
初心者
初心者

それぞれの手法の前に、トピックモデルの入力データってどうなってるの?

上級者
上級者

どの手法も基本的に「文書-単語行列」を入力にするよ。各文書に各単語が何回出てきたかを数えた表だね:

📊 文書-単語行列(入力データ)

ボール 試合 選手 株価 投資 市場 レシピ
文書153400000
文書200045300
文書300000045
文書432123100

↑ この行列から「スポーツ」「金融」「料理」という隠れたトピックを発見したい!
文書4はスポーツと金融が混ざっている ← これも見抜きたい

初心者
初心者

じゃあ最初のLSAから教えて!

📘 LSA(潜在意味解析)

次元削減で学んだSVDを、テキストに応用したもの

文書-単語 行列 (文書 × 単語) = U 文書×トピック 「各文書の トピック配分」 × Σ 特異値 「重要度」 × Vᵀ トピック×単語 「各トピックの 単語配分」
✅ メリット
シンプルで高速。同義語にも対応できる
❌ デメリット
確率的な解釈ができない。マイナス値が出て解釈しづらい
初心者
初心者

PLSAはLSAにどんな改良を加えたの?

上級者
上級者

PLSA(Probabilistic LSA / 確率的潜在意味解析)は、LSAの「ただ行列を分解する」というやり方を「確率で考える」に変えた手法だよ。

LSAが「数学的に分解しただけ」なのに対して、PLSAは「文書がトピックを選び、トピックが単語を選ぶ」という確率的な生成プロセスを仮定するんだ。

📗 PLSA(確率的潜在意味解析)

「文書→トピック→単語」の確率的な流れを仮定

📄 文書を選ぶ(例:文書4)
🎲 その文書のトピック分布に従って、トピックを選ぶ
例:スポーツ60%、金融40% → 今回は「スポーツ」が選ばれた
🎲 そのトピックの単語分布に従って、単語を選ぶ
例:スポーツ → ボール40%、試合30%、選手30% → 「ボール」が選ばれた
📝 これを全単語分繰り返して文書が生成されたと考える
✅ LSAからの改善点
確率として解釈できる(トピック配分が%で出る)
❌ 残った問題
学習に使った文書にしか適用できない。新しい文書のトピックを推定できない。パラメータが多く過学習しやすい
初心者
初心者

で、PLSAの問題を解決したのがLDA?

上級者
上級者

そう!LDAはPLSAにディリクレ分布という「事前分布」を追加したことで、新しい文書にも対応できるようにした完全版だよ。ここがディリクレ分布の出番!

📙 LDA(潜在的ディリクレ配分法)

PLSAの流れ + 「ディリクレ分布」で事前知識を追加

🎰 ディリクレ分布から各文書のトピック配分を生成
例:文書4 → [スポーツ: 0.6, 金融: 0.3, 料理: 0.1]
← ここがPLSAにはなかった!新しい文書にも配分を生成できる
🎰 ディリクレ分布から各トピックの単語配分を生成
例:スポーツ → [ボール: 0.4, 試合: 0.3, 選手: 0.3, ...]
🎲 文書ごとに:トピック配分に従ってトピックを選ぶ
🎲 選んだトピックの単語配分に従って単語を選ぶ
📝 これを繰り返して文書が生成されたと考える

🟣 紫のステップ = LDAで追加された部分(ディリクレ分布)

✅ PLSAからの改善点
新しい文書にも対応できる。過学習しにくい。トピックモデルの標準手法
📌 G検定ポイント
トピックモデルで最も重要。PLSAとの違い(ディリクレ分布の有無)は頻出
初心者
初心者

PLSAとLDAの違いをもっとわかりやすく教えて!

PLSA vs LDA の核心的な違い

PLSA

学習した文書A, B, C
→ トピック配分がわかる ✅
新しい文書D が来た!
🤷
「Dは知らない…」
学習データにないので対応不可

LDA

学習した文書A, B, C
→ トピック配分がわかる ✅
新しい文書D が来た!
💡
「ディリクレ分布から
Dの配分を生成できる!」
事前分布があるので新規対応OK
💡 たとえ話
PLSAは「名簿に載ってる生徒しか席が決められない先生」。
LDAは「転校生が来ても、性格や成績を見て適切な班を割り当てられる先生」。
この違いを生んでいるのがディリクレ分布(事前分布)
初心者
初心者

そのディリクレ分布って結局何なの?

上級者
上級者

ディリクレ分布は「割合の組み合わせ」を生み出す確率分布だよ。

例えば「スポーツ・金融・料理の3トピックの配分」って、合計が100%になる必要があるよね?「60%, 30%, 10%」とか「10%, 10%, 80%」とか。ディリクレ分布はこの「合計100%になる配分」をランダムに生成してくれるんだ。

🎰 ディリクレ分布とは

「合計1.0(100%)になる配分」をランダムに作る確率分布
パラメータ α(アルファ) で配分の偏り具合をコントロール

α が大きい(例:α=10)
34%
31%
35%

均等に近い配分が出やすい
「どのトピックもまんべんなく含む」

α = 1
50%
15%
35%

ばらついた配分が出やすい
「偏りも均等もいろいろ出る」

α が小さい(例:α=0.1)
90%
5%
5%

1つに偏った配分が出やすい
「ほぼ1トピックに特化」

💡 LDAでのディリクレ分布の役割
LDAではディリクレ分布を2箇所で使う:
文書ごとのトピック配分を生成(α が小さい → 各文書は少数のトピックに絞られる)
トピックごとの単語配分を生成(β が小さい → 各トピックは少数の単語で特徴づけられる)

このαとβが「事前分布のパラメータ」で、これがあるから新しい文書にも配分を割り当てられる。
初心者
初心者

なるほど!サイコロの「目の出やすさ」をコントロールするようなものだね。

上級者
上級者

いい例えだね!まさにそう。αが大きい = 全面が均等な「普通のサイコロ」、αが小さい = 一面だけやたら出やすい「イカサマサイコロ」みたいなイメージだよ。

初心者
初心者

最後にNMFを教えて!別アプローチってどういうこと?

📕 NMF(非負値行列因子分解)

「マイナスを使わない」という制約で行列を分解

文書-単語 行列 (すべて ≧ 0) W 文書 × トピック 「各文書のトピック配分」 すべて ≧ 0 ✓ × H トピック × 単語 「各トピックの単語配分」 すべて ≧ 0 ✓
💡 なぜ「非負」が大事?
LSAのSVDだとマイナスの値が出ることがある。「スポーツ度が -0.3」って言われても意味がわからない。NMFはすべて0以上なので「スポーツ度 0.6、金融度 0.3」のように直感的に解釈しやすい
✅ メリット
結果がすべて正の値で解釈しやすい。実装がシンプル
❌ デメリット
確率モデルではない。初期値によって結果が変わる
初心者
初心者

LSAとNMFってどっちも行列分解だよね?違いがよくわからない…

LSA vs NMF:同じ行列分解でもここが違う

LSA(SVD)

📐
分解結果にマイナスあり
例:スポーツ度 = -0.3 ???
数学的には最適だが
人間には解釈しづらい

NMF

📊
分解結果がすべて0以上
例:スポーツ度 = 0.6 👍
制約がある分、
人間には解釈しやすい
初心者
初心者

4つ全部まとめて比較して!

トピックモデル4手法の完全比較表

項目 LSA PLSA LDA NMF
正式名 潜在意味解析 確率的潜在
意味解析
潜在的ディリクレ
配分法
非負値行列
因子分解
年代 1990 1999 2003 1999〜
アプローチ 行列分解
(SVD)
確率モデル 確率モデル
+事前分布
行列分解
(非負制約)
確率的?
新規文書への
対応

射影は可能

学習データ限定

事前分布で対応

射影は可能
マイナス値 出る 出ない 出ない 出ない
解釈のしやすさ
過学習 しにくい しやすい しにくい 普通
G検定重要度 ★★☆ ★★☆ ★★★ ★☆☆
初心者
初心者

結局、トピックモデルの出力ってどんな感じなの?

📊 トピックモデルの出力イメージ(LDAの例)

出力①:各トピックの単語配分

ボール試合選手株価投資市場レシピ
トピック1
→ スポーツ?
0.350.300.25 0.030.020.020.010.02
トピック2
→ 金融?
0.020.030.01 0.300.350.250.020.02
トピック3
→ 料理?
0.020.010.02 0.010.020.020.400.45

※太字が高確率の単語。「スポーツ」「金融」「料理」という名前は人間がつけた解釈

出力②:各文書のトピック配分

文書1
スポーツ 90%
ほぼスポーツ
文書2
金融 90%
ほぼ金融
文書3
料理 90%
ほぼ料理
文書4 ← 混合!
スポーツ
金融
スポーツ55% + 金融35%
上級者
上級者

G検定で押さえるポイントをまとめるね!

💡 G検定で押さえるポイント