3-2-2-3 トピックモデル

トピックモデルとは

トピックモデルは、たくさんの文章をまとめて眺めながら、その奥にひそんでいる「話題のまとまり(トピック)」を見つけ出す手法です。
一つひとつの文を読むのではなく、単語の出方や組み合わせから、「この文章たちは、だいたい同じテーマっぽい」「ここには別の話題の流れがある」と、構造を浮かび上がらせていきます。

ニュース記事、レビュー、SNSなど、大量のテキストの中から「何が語られているのか」を整理したいときに、力を貸してくれる存在です。

潜在的意味解析

潜在的意味解析は、たくさんの文章と単語の関係をまとめて眺めながら、「この言葉たち、同じ話題の気配がある」「この文章、あのテーマと近そう」と、目に見えない意味のまとまりを見つけ出す方法です。
まず、潜在的意味解析は、
・行:文章
・列:単語
という大きな表(行列)を作ります。
そこには、「この文章に、この単語がどれくらい出てきたか」という数字が並びます。
でも、そのままだと世界はごちゃごちゃ。
ここで登場するのが、特異値分解(SVD)
潜在的意味解析はこの特異値分解を使って、ノイズらしい細かい情報を削り、大きな流れだけを残すということをします。

特異値分解によって次元を減らすと、「車」「エンジン」「タイヤ」「病院」「医師」「薬」のように、一緒に現れやすい単語たちが、自然と近い場所に集まります。その結果、「ここは乗り物の話題」「ここは医療の話題」といった、潜在的なトピックが浮かび上がってきます。
誰も「これは医療の記事です」と教えていないのに。まさしく、教師なし学習ですね。

潜在的意味解析の大きな特徴は、
・単語の共起のみで意味を推測している
・数学的(線形代数的)な手法
・SVDによる次元削減が核
という点です。
確率は使わず、あくまで「構造」から意味を読むのです。

確率的潜在的意味解析

潜在的意味解析は、特異値分解を使って、文章の世界を整理し、意味の骨組みを取り出す方法です。
でも潜在的意味解析には、ひとつ弱点がありました。それは、意味を「確率」として扱っていないこと。

そこで登場したのが、確率的潜在的意味解析です。
確率的潜在的意味解析は、考え方が少し変わります。
文章と単語の関係を、「この単語は、このトピックから、何%くらい生まれている?」「この文章は、どのトピックが、どれくらい混ざっている?」という確率の世界で表現するのです。

確率的潜在的意味解析は、文章を「話題のブレンド」として読むAI、とでも言いましょうか。
ひとつの記事は、ひとつの話題だけじゃありません。
たとえばニュースなら、
・60% 経済
・30% 政治
・10% 国際
のように、複数のトピックが混ざっていると考えられます。
確率的潜在的意味解析は、
・単語
・文章
・トピック
この三者の関係を、確率モデルとして組み立てていきます。
ここが潜在的意味解析との大きな違いです。
潜在的意味解析 → 数学的に構造を削り出す
確率的潜在的意味解析 → 確率で意味の混ざり具合を表す

ただし確率的潜在的意味解析にも課題があって、
・新しい文章が来ると、モデルを作り直す必要がある
・文書ごとのパラメータが増えすぎる
という、少し不器用な一面があります。この弱点を解決するために生まれたのが、次の潜在的ディレクレ配分法です。

潜在的ディリクレ配分法

確率的潜在的意味解析は、文章を「話題のブレンド」として読む、とてもきれいな発想です。
でも、ひとつ困ったことがありました。
新しい文章が来るたびに、モデルを作り直さなければなりません。つまり、未来の文章に弱いのです。

そこで生まれたのが、潜在的ディリクレ配分法です。
潜在的ディリクレ配分法は、確率的潜在的意味解析の考え方を引き継ぎつつ、「文章は、あらかじめ決まった話題の世界から、確率的に生まれてくる」という、もう一段深いモデルを作りました。

見えない「話題の宇宙」を先に用意して、そこから文章が降ってくると考えるAI、とでも言いましょうか。
潜在的ディリクレ配分法の世界では、各文章は複数トピックの混合各トピックは単語の確率分布として表されます。
たとえばある記事は、
・40%テクノロジー
・40%ビジネス
・20%教育。
別の記事は、
・70%医療
・30%社会。
そんなふうに、すべての文章が「話題のレシピ」を持っています。
そして大事なのが、潜在的ディリクレ配分法は、新しい文章が来ても、既存のトピック構造を使って解析できるという点です。
ここが確率的潜在的潜在的ディリクレ配分法との決定的な違いです。

潜在的ディリクレ配分法は、安定して、汎用的で、現実のデータにも強い、トピックモデルの完成形として、今も広く使われています