スマートフォンでGoogle翻訳などの翻訳機能を使えば、わからない外国語もすぐに調べることができますよね。例えば、英語能力テストのTOEICを受ける人にとっては、初めて目にする英単語もスマートフォンですぐに調べられる翻訳機能は大変便利です。
そんな便利な翻訳機能には、自然言語処理という技術が使用されています。自然言語処理とは、AI(人工知能)に人間の言葉を理解させるための技術です。
そして、自然言語処理技術の一つになるのが、トピックモデルのLDA。LDAは文書の検索などで使われている技術で、これを実現するためにはAI(人工知能)に機械学習で仕組みを学習させます。
つまりLDAは、機械学習に関連します。そのため機械学習の初心者は、ぜひ学んでおきましょう。というわけで今回は、トピックモデルのLDAについてお伝えします。
そもそもトピックモデルって何
トピックモデルとは、複数の文書を分析して少数のトピックにまとめるモデル(計算方法)です。例えば、次の2つのニュースが報道されたとします。
「アメリカのApple社から新型のスマートフォン、iPhone13が発売されました。」
「アメリカのApple社はiPhone OSの最新バージョン、iOS15の配布を開始しました。」
記事を読むと、何となくでも2記事を「Apple社」というトピックでまとめることができますよね。トピックモデルはこれと同じようなことを行います。
しかし、AI(人工知能)は人間と同じように、文の流れや言葉の意味から内容を理解できません。そこでAI(人工知能)が文書のトピック(話題)を判別できるように考えだされたのがトピックモデルです。
トピックモデルでは「文書は、潜在的にトピックを持っている複数の単語の集まり」と捉えます。その分析方法は文書を単語に分解し、各単語のトピックを分析していくことで文書のトピックをわかりやすくし、複数の文書を似ている者同士を明らかにします。
そして、今回紹介するLDAは、そんなトピックモデルの手法の一つです。
LDA(Latent Dirichlet Allocation)とは
LDAは日本語で潜在的ディリクレ配分法といい、トピックモデルの1つです。LDAでは、文書のトピックを表す方法に確率を使用する方法です。例えば、3つのニュース記事で、それぞれが「スポーツ」「経済」「IT」「政治」のトピックを含む場合、各記事でトピックが該当する割合を確率で次のように表します。
ニュース記事1・・・「スポーツ:10%」「経済:50%」「IT:10%」「政治:30%」
ニュース記事2・・・「スポーツ:70%」「経済:10%」「IT:10%」「政治:10%」
ニュース記事3・・・「スポーツ:30%」「経済:10%」「IT:50%」「政治:10%」
上記は各記事の単語のトピックを分析して、4つのトピックに属している割合を表しました。つまり、LDAは確率を使って複数の文書のトピックを明らかにする手法です。
そして、LDAのほかにもトピックモデルは2種類あります。では次に、それらの種類の説明を含めて、トピックモデルとLDAの関係について紹介しましょう。
トピックモデルとLDAの関係
トピックモデルには、3つの種類があります。その中で、一番新しいタイプのトピックモデルがLDA。
そして、LDA以外のトピックモデルは次の2種類になります。
LSA(Latent Semantic Analysis)
LSAとはトピックモデルの初期の手法で、1990年にスコット・ダーウェスターらによって開発されました。別名でLSI (Latent Semantic Index)ともいい、日本語で潜在的意味解析と訳されます。
LSAでは文書を単語に分解して、「自動車」と「車」、「家」「住宅」など、言葉は違っても同じ意味の単語をまとめ、同じ内容になる複数の文書をトピックに当てはめて、わかりやすくまとめる技術です。
まず、次のように文書を単語に分けます。
例:私はスズメバチに刺された → 私は|スズメバチ|に|刺された
そして、4つの文書で「赤リンゴ、ミツバチ、スズメバチ、青リンゴ」の単語が出ていた場合、その単語の頻出度をわかりやすくするために下記の表にします。
トピック → 赤リンゴ ミツバチ スズメバチ 青リンゴ
文書1 △ × × 〇
文書2 × 〇 △ ×
文書3 × △ 〇 ×
文書4 〇 × × △〇・・・文書に出ている単語
△・・・類似している単語
×・・・出ていない単語
実際は数学の行列を使い数値で表しますが、今回はわかりやすくするために、〇、△、×で表しています。最初は4つの文書で4つのトピックがある状態ですが、「赤リンゴと青リンゴ」「ミツバチとスズメバチ」は類似しているので、2つのトピックにまとめられます。
トピック → リンゴ ハチ
文書1 〇 ×
文書2 × 〇
文書2 × 〇
文書1 〇 ×
上のように、4つあったトピックを「リンゴとハチ」の2つにまとめることで、文書1は文書4と、文書2は文書3と、似ていることが明らかになりました。このように複数の文書を分析し、それぞれに使われている単語で同じ意味のものをまとめ、トピックに当てはめて文書同士の関連性を明らかにするのがLSAです。
PLSA(Probabilistic Latent Semantic Analysis)
PLSAは確率的潜在意味解析といい、LSAに確率を用いた手法で、1999年にトーマス・ホフマン氏によって発明されました。
例えば、ニュース記事5000件とそれらに単語10000語が使われていた場合、最初のトピック数は10000になります。それをPLSA で5000件のニュース記事を4つのトピックに要約することが可能で、各文書がそれぞれのトピックにどれくらい該当しているのかを確率で表せます。
自動車 テニス バナナ ネコ
文書1 0.10% 0.03% 0.01% 0.07%
文書2 0.08% 0.05% 0.02% 0.09%
文書3 0.11% 0.06% 0.01% 0.03%
文書4 0.02% 0.07% 0.12% 0.04%
:
:
そして3つ目のトピックモデルがLDA。LDAは2000年に考案され、2003年に機械学習に初めて使用されました。LDAも確率を用いた手法ですが、PLSAとは違いベイズの定理を使用しています。では、そんなLDAで何ができるのかを次に紹介します。
LDAで何ができるのか
LDAはベイズの定理を用いたトピックモデルで、扱った経験がない文書でも分析が可能です。PLSAの場合は扱った経験がない、新しい文書に対応できない問題がありました。
そこで、その問題を克服するために、ベイズの定理を用いて開発されたのがLDAです。ベイズの定理には、データがなくても確率が求められる特徴があります。
例えば、コインを投げて表面が出る確率は50%ですよね。そして、実際にコインを投げて、表面が出たら確率は100%、裏面だと0%になります。このようにベイズの定理では、最初に確率を仮定して実測データが得られたら、それをもとに確率を更新することができます。
LDAでも同じように、文書は複数のトピックの混合率で構成されていると仮定します。例えば次のように、最初に1つの文書にトピックを3つと、それぞれの割合を設定。
仮定:「スポーツ:10%」「経済:50%」「政治:30%」
そして文書内に登場する単語を、「スポーツに入りそうな単語」「経済に入りそうな単語」、と割り振っていき、それに伴って仮定の確率は変化します。
分析後:「スポーツ:30%」「経済:50%」「政治:10%」
この例では経済の割合が大きいので、この文書のトピックは経済になります。このようにLDAでは、扱ったことがない新しい文書にも対応が可能です。では次に、LDAを使う方法を紹介します。
LDAを使うには
一般的にLDAは、プログラミング言語のPythonの機械学習ライブラリを使い、Pythonプログラムを作成して使われています。そして、LDAのプログラム作成によく用いられているライブラリは、gensimとScikit-learnです。
- gensim:gensimはトピックモデルを使いやすくするために開発され、主にSNSやWebサイトなどの文章を対象に使われている
- Scikit-learn:Scikit-learnは機械学習全般のアルゴリズム(計算プログラム)が備えられたライブラリで、機械学習に必要なサンプルデータも用意されている
LDAのプログラムは、主にこれらのライブラリを使用して作成します。そのためLDAのプログラムを作成するために、Pythonのプログラミング知識と2つのライブラリの使い方を勉強しておきましょう。
そして、LDAについて理解しておくことが必要です。そこで次は、LDAについてさらに学ぶためのおすすめ書籍を3冊紹介します。
LDAをさらに学ぶためのおすすめ書籍
LDAについてもっと詳しく学びたい人に向けて、ここでは3冊の書籍を紹介します。
トピックモデルによる統計的潜在意味解析
「トピックモデルによる統計的潜在意味解析」はタイトルにこそLDAと書かれていませんが、ほぼLDAを主体に解説してある書籍です。第1章で潜在意味解析について、そして第2章からLDAの概要から始まり、ベイズの定理や線形代数など、トピックモデルにはもちろん、機械学習にも必要な計算について解説しています。
初心者にはレベルの高い内容ですが、丁寧に説明してあるので、時間をかけて学べばLDAとトピックモデルについて、しっかり理解できます。LDAについて詳しく知りたい人におすすめです。
トピックモデル
「トピックモデル」は、トピックモデル全般について学習できる書籍です。この本の第1章では、LDAを理解するために必要なベイズの定理を含めた確率について解説しています。
そして、トピックモデルで使用する手法の最尤推定、ギブスサンプリングなど、必要な知識が網羅してあります。LDAに特化した解説書ではありませんが、LDAの前にトピックモデルについて初歩から学習したい人におすすめします。
いちばんやさしいベイズ統計入門
「いちばんやさしいベイズ統計入門」では、LDAに使用されているベイズの定理を学習できます。ベイズの定理は、迷惑メールを判別するフィルタリングにも使われている計算で、LDAにも用いられています。
タイトルのベイズ統計とは、ベイズの定理だけを使って行う統計です。そのためベイズ統計について解説してあるこの本で、ベイズの定理を詳しく学ぶことができます。
解説は、図やイラストで分かりやすくしてあるので、理解しやすくなっています。そのため、初心者でLDAを理解するためにベイズの定理について学習したい人におすすめです。
トピックモデルおよびLDAについて解説してある書籍は少ないですが、今回はその中でLDAとトピックモデルの学習に適した2冊と、ベイズの定理について学べる1冊を紹介しました。
「いちばんやさしいベイズ統計入門」は、LDAで使っているベイズの定理について、初心者でも理解しやすい内容です。「トピックモデルによる統計的潜在意味解析」と「トピックモデル」は、専門的な内容になっているので数学知識が少ないと難しく感じるかもしれません。しかし、初心者でも時間をかけて学習すれば理解することも可能なので、ぜひ書籍を使って勉強しましょう。
さて今回は、トピックモデルのLDAについてお伝えしました。
トピックモデルは、複数の文書を分析して少数のトピック(話題)にまとめる手法です。トピックモデルでは、文書を単語に分解し各単語のトピックを分析して、それぞれの文書にトピックを当てはめて、複数の文書で似ているもの同士を明らかにします。
そして、LDAはトピックモデルの一種になります。LDAでは、文書の分析に確率を使用します。LDAは2008年に初めて機械学習に使用されはじめた、トピックモデルの中で一番新しい手法で、LDA以外にも2種類のトピックモデルがあります。
- LSA:同じ意味の単語をまとめ、単語の数だけあるトピックを少数化し文書を分類する手法
- PLSA:LSAに確率を用いた手法
トピックモデルの中でも一番新しいLDAにできることは、扱った経験がない新しい文書でも分析が可能なことです。これはPLSAではできませんでした。しかし、トピックモデルの中でLDAは、ベイズの定理を用いることで扱った経験がない文書の分析を実現しています。
そんな一般的にLDAを使うためには、プログラミング言語のPythonの機械学習ライブラリであるgensimとScikit-learnを使用してプログラムを作成します。そのため、Pythonのプログラミング知識と2つのライブラリの使い方の勉強が必要です。
そして、今回はLDAにさらに学習できる書籍を3冊紹介しました。
- トピックモデルによる統計的潜在意味解析:LDAをメインに解説してあり、LDAについて詳しく知りたい人におすすめ
- トピックモデル:トピックモデル全般について解説、トピックモデルをについて初歩から学習したい人におすすめ
- いちばんやさしいベイズ統計入門:LDAに使用しているベイズの定理について学習したい人におすすめ
機械学習の初心者の中には、「初めてトピックモデル、LDAを知った」人もいるでしょう。しかし、トピックモデルおよびLDAは、文書の分類や検索システムにも使われている重要な機械学習技術です。
ぜひ機械学習初心者は今回お伝えした情報や書籍などを参考に、トピックモデルとLDAの技術習得にチャレンジしましょう。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。