A Beginner’s Guide to Latent Dirichlet Allocation(LDA)

トピックモデリングとは、教師なしで文書を分類する手法で、数値データのクラスタリングと似ており、何を探しているのか分からない場合でも、いくつかの自然な項目群(トピック)を見つけることができます。

各データ ポイントが複数のクラスターに属するファジー クラスタリング (ソフト クラスタリング) のようなものです。

なぜトピック モデリングなのか

トピック モデリングは、大きな電子アーカイブを自動的に整理、理解、検索、要約する方法を提供します。

  • コレクション内の隠れたテーマを発見する
  • 発見されたテーマにドキュメントを分類する
  • ドキュメントを整理/要約/検索するために分類を使用する

たとえば、ドキュメントが食品、犬、健康というテーマに属しているとしましょう。 したがって、ユーザーが「ドッグ フード」とクエリした場合、これらのトピック (他のトピックも含む) をカバーしているので、上記のドキュメントが関連するとわかるかもしれません。

したがって、モデリング手法によって予測されたトピックに基づいて、ドキュメントに注釈を付けることにより、検索プロセスを最適化することができます。 各文書は様々な単語で構成されており、各トピックにも様々な単語が属している。 LDAの目的は、文書に含まれる単語をもとに、文書が属するトピックを見つけることです。 よくわからない? 以下に例を挙げて説明します。

Model definition

div

Each document is a collection of words.

We have 5 documents each containing the words listed in front of them( ordered by frequency of occurrence).

What we want to figure out are the words in different topics, as shown in the table below. Each row in the table represents a different topic and each column a different word in the corpus. Each cell contains the probability that the word(column) belongs to the topic(row).

Each topic contains a score for all the words in the corpus.

Finding Representative Words for a Topic

  • We can sort the words with respect to their probability score.
    各トピックから上位 x 個の単語を選び、そのトピックを代表するようにします。 x = 10 の場合、topic1 のすべての単語をスコアに基づいて並べ替え、上位 10 個の単語をトピックを代表する単語として取り出します。
    コーパスが小さい場合は、すべての単語をスコアでソートして保存できるため、このステップは必ずしも必要ではないかもしれない。
  • あるいは、スコアに閾値を設定することができる。 トピックの中で閾値以上のスコアを持つ単語はすべて、その代表としてスコアの高い順に格納することができる。

iv
Photo by Anusha Barwa on Unsplash

CAT_related と DOG_related に分類される2つのトピックがあるとしましょう。 トピックは各単語に確率を持つので、ミルク、ニャー、子猫などの単語は、CAT_関連トピックではDOG_関連トピックよりも高い確率を持つことになります。

次の文章を含むドキュメントがあるとします。

「犬は骨を噛んで棒を取るのが好き」
「子犬はミルクを飲む」
「両方とも吠えるのが好き」

犬、骨、子犬、吠えるなどの単語が含まれているので、簡単に DOG_related トピックに属すると言うことができます。

前提:

  • 各文書は単語の集まり、つまり「単語の袋」にすぎません。 したがって、単語の順序や文法的役割(主語、目的語、動詞、…)はモデルでは考慮されない。
  • am/is/are/of/a/the/but/…といった単語は「話題」についての情報を持たないので、前処理としてドキュメントから除去することが可能である。 実際、少なくとも 80 ~ 90% のドキュメントに出現する単語を、情報を失うことなく削除できます。
    たとえば、コーパスに医療ドキュメントのみが含まれている場合、human、body、health などの単語はほとんどのドキュメントに存在する可能性があり、ドキュメントを目立たせる特定の情報を追加しないので削除することが可能です。
  • 文書がどのように生成されるかのモデルを使用して、問題の現在の単語を除くすべてのトピックの割り当てが正しく、現在の単語の割り当てを更新する

LDAの仕組み

LDAには2つの部分があります:

  • すでに知っている、文書に属している単語です。

後者を求めるアルゴリズム

  • 各文書を調べ、文書内の各単語をk個のトピック(kは事前に選択)のいずれかにランダムに割り当てます。
  • 各文書 d に対して、各単語 w を調べ、以下を計算する:
  1. p(topic t | document d): 文書 d の単語のうち、トピック t に割り当てられた割合。与えられた文書 d に対して、現在の単語を除いたトピック t に属する単語の数を捉えようとする。
    d の多くの単語が t に属していれば、単語 w が t に属している可能性が高いということだ。
    ( #words in d with t +alpha/ #words in d with any topic+ k*alpha)
  2. p(word w| topic t): この単語wから来るすべての文書に対するトピックtへの割り当ての割合。
    LDAはトピックの混合物として文書を表現する。 同様に、トピックは単語の混合物である。 If a word has high probability of being in a topic, all the documents having w will be more strongly associated with t as well. Similarly, if w is not very probable to be in t, the documents which contain the w will be having very low probability of being in t, because rest of the words in d will belong to some other topic and hence d will have a higher probability for those topic. So even if w gets added to t, it won’t be bringing many such documents to t.
  • Update the probability for the word w belonging to topic t, as
p(word w with topic t) = p(topic t | document d) * p(word w | topic t)

A layman’s example

Suppose you have various photographs(documents) with captions(words). You want to display them in a gallery so you decide to categorize the photographs on various themes(topics) based on which you will create different sections in your gallery.

Photo by Soragrit Wongsa on Unsplash

あなたは、アルバムに自然と都市の2つのセクションを作ることにしました。 当然ながら、街には木や花があり、自然にはビルがあるなど、分類はそれほど明確ではありません。

あなたは、まず、自然または都市の要素のみを含む写真をそれぞれのカテゴリに割り当て、残りはランダムに割り当てることに決定しました。

次に、建物という単語を選び、キャプションに建物という単語があるため、自然の中にある写真がどれだけあるかチェックします。

次に、「木は建物の前と車の後ろにある」というキャプションのある写真を選び、それが現在自然というカテゴリに属していることを確認します。
次に、単語 tree を選択し、最初の確率 p(topic t | document d) を計算します。キャプションの他の単語は建物と車ですが、建物や車を含むキャプションを持つほとんどの写真は city にあるので、低い確率になります。
この2つを掛け合わせることで、自然界に木がある確率が更新されます。 このとき、「木」と「建物」「車」が同じキャプションにあることから、「木」は都市部にもあることがわかるため、「木」のトピックは以前より低い値となります。

すべての写真と各トピックについて何度も繰り返しているうちに、各トピックに関する各単語の正確なスコアが得られるようになります。 文脈から、ビル、歩道、地下鉄などの単語が一緒に表示され、したがって、同じトピックに属するはずだと結論付けられるため、推測はますますうまくいくでしょう(都市は簡単に推測できます)。
山、畑、浜辺などの単語は、多くのキャプションで一緒に出てこないかもしれませんが、都市の単語とは関係なくよく出てくるので、自然を表すスコアが高くなります。

写真については、nature カテゴリから 1 つの単語 (平均的な確率) と city カテゴリから 2 つの単語 (高い確率) があることがわかり、それが nature よりも city に強く属すると結論付け、city に追加することにします。

余談

DA のアプリケーションは自然言語処理に制限する必要があるわけではありません。 私は最近、画像のシーン固有のコンテキストを抽出するために LDA (およびニューラルネットワーク) を使用する論文を発表しました。 もし興味があれば、コメントやメッセージを残してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です