トピックモデルを俯瞰して学ぶ

本記事は,自然言語処理 Advent Calendar 2019 - Qiita です.

はじめに

本記事ではトピックモデルと呼ばれるモデル・分野の中で最も有名なLatent Dirchlet Allocation, 通称LDA*1 とその周りのトピックモデルに関して,どんな資料があるのか?,どういった研究があるのか? といったことに主眼をおいてトピックモデルの研究とかを昔していた私の独断と偏見によるリストアップを行いました.

私の頭は2017年くらいで止まっているので、間違っている点があったり、今の主流とは異なる可能性もありますが、 暖かくご指摘いただけると助かります.

Latent Dirchlet Allocation[Blei+,03]を始めとするトピックモデルを学ぶに当たって

  • 何が参考になるのか
  • どういった研究があるのか?
  • 実際にどうやって使うのか?(まだ出来てないよ・・・)

といったことに焦点をあててサクッと解説していきたいと思います.

  

トピックモデルとは

トピックモデルとは生成モデルの一種であり,各文書は複数のトピックから確率的に生成されたものとして捉えるモデルのことで, ニュース記事から「政治」「経済」「スポーツ」などのトピックを抽出することができるモデルとして説明されることがあります. トピックモデルに関する説明はあらゆるところでされているので自分の腑に落ちる捉え方をしていただくのがいいと思います.

以下では,参考となる書籍・Webページを紹介します

参考資料

書籍

機械学習自然言語処理に関する入門的な書籍であれば,トピックモデルについて数ページ割いて説明がされることがあると思いますが, トピックモデルだけを扱った書籍は以下の2つだけかと思います.

  • トピックモデル (機械学習プロフェッショナルシリーズ)岩田 具治*2

    • LDAに入る前の導入(ユニグラムモデル,混合ユニグラムモデルにも触れています)が丁寧な本でさーっと目を通すことができるため, 軽く勉強したい人にはおすすめです.
  • トピックモデルによる統計的潜在意味解析 (自然言語処理シリーズ)佐藤 一誠*3

    • 東大の佐藤さんによる書籍です。上の本よりも少し難しいですが、自分で手を動かしたりする際にはこちらの書籍の方が参考になりました。

Webページ

H24:Introduction to Statistical Topic Models

統計数理研究所の持橋さんと当時NTTCS研の石黒さんによるトピックモデルに関するチュートリアルスライドです. 非常に網羅的な資料であり,トピックモデルとその拡張,そして言語データ以外への適用についても触れられており, どういった研究が行われてきたのかを把握するのに便利です.

https://shuyo.hatenablog.com/category/LDA

サイボウズの中谷さんによるブログです. 複数回に渡りトピックモデルについて記されており,研究を始めた頃に式の気持ちを把握するのにたいへん助かった記憶があります.

http://www.ccs.neu.edu/home/jwvdm/teaching/cs6220/fall2016/assets/pdf/blei-kdd-tutorial.pdf

Latent Dirchlet Allocationの著者であるDavid Blei氏によるチュートリアル資料です. こちらもトピックモデルについて網羅的な記載があります.

Vol.27 No.3 (2012/05) Latent Topic Model (潜在的トピックモデル) – 人工知能学会 (The Japanese Society for Artificial Intelligence)

上記の本の著者でもある東大の佐藤さんの私のブックーマーク(人工知能学会)でのトピックモデルについての特集です. いろいろな論文や注目学会が列挙されています.

トピックモデルの研究

トピックモデルの研究は大きく分けて3つに分けられます.

  1. モデルの学習方法と省メモリ化・高速化
  2. 対象のモデル化
  3. 結果の見せ方

モデルの学習方法と省メモリ化・高速化

学習の仕方の理論的解析から,学習をいかに時間計算量的, 空間計算量的に効率よく学習するのかという改良まで,幅広い研究が存在していて,トピックモデルの学習に関しては大きく2つに分けられます.

  • 変分ベイズ
  • ギブスサンプリング

変分ベイズ法に関連した研究

変分ベイズ法はベイズ学習において事後分布が解析的に求められない時などに用いられる手法で,LDA の原著でも用いられているものです.

事後分布を計算が容易な分布(近似事後分布)で仮定しますが,因子分解が可能であるという仮定を置くことが多いです. 近似事後分布の推定を行うために,近似事後分布と本来の事後分布とのKL 情報量を最小化を試みる際に,イェンセンの不等式を用い,対数周辺尤度に関する 変分下限に落とし込むことで解ける形にします.

また変分ベイズ法における一部の変数を積分消去することでより簡略的な推論が行えるcollapsed Variational Bayse(CVB)を 用いたものなども提案されています.

ギブスサンプリングに関連した研究

ギブスサンプリングそのものを使うことは少なく,collapsedGibbs Sampling(CGS)を用いることが多いです.

CGSでは, 目的の事後分布からのサンプル生成の代わりに、より計算コストの低い条件付き確率分布を構成することで確率変数らを交互にサンプル生成することで、 目的の事後分布からのサンプルを生成を可能にするギブスサンプリングにおいて、ある確率変数を経てサンプリングされていた確率変数に関して、 周辺化を行うことでより簡便なサンプリングを行う手法です.

LDA に関しても変分ベイズ法の後にその有用性が示されており,これは後続のモデルらでも実装の容易さゆえによく採用されています。

一般的にCGSは変分ベイス法に比べ性能が良いことが知られていますが, 各文書の各単語についてそれぞれサンプリングを行わなければならず,CGSはその計算量がボトルネックとなってしまいます.

このボトルネックの要素として基本的に各単語のサンプリングとは各単語に割り当てられるトピックのサンプリングであり, これは多項分布からのサンプリングになり一般的にトピック数に比例して計算量が増えてしまいます.

この部分に対する効率化として

が挙げられます。

上記の他にも大規模データのバッチ学習時の並列化やオンライン学習などの改良も提案されています. 

対象のモデル化

対象の性質をどうモデル化をするかという点に着目して,モデルの潜在変数を増やしたり,分布を変更したりすることによってこれを実現しています.

この拡張のしやすさがトピックモデルがあらゆる研究に波及していった理由の一つでもあります.

いくつかのモデルに関して箇条書き形式で記してみます,興味があるものがあれば論文を読んでみてください. (論文の引用元urlに一貫性がないのはご容赦ください.)

結果の見せ方

トピックモデルの説明をする際に、「スポーツ」「経済」「政治」などのトピックが〜と言った説明をされることが多いため、 トピックモデルを使うと勝手にトピックごとにラベルをつけてくれるものと思い込んでしまいますが、実際はそうではありません. *4

そこで結果を解釈しやすくするため,画像を用いるもの*5,ワードクラウドなどトピックの魅せ方の比較*6などの研究が行われていたりします.

また上記に加えて評価に関しても焦点があたることがあります.

定量的な評価としては, * Perplexity * Coherence に基づく評価が行われます. これらに関しては,以下のslideshareの資料を読むとなんとなくはつかめると思います. 上記で上げた本などでも触れられているので参考にしてみてください.

www.slideshare.net https://www.slideshare.net/hoxo_m/coherence-57598192

上記ではまったく触れませんでしたがニューラルネットを用いたトピックモデルも複数*7提案されています, 他のモジュールとくっつけたいなどの欲求がある方はそちらを掘ってみることをおすすめします.

実験(あとで追記します)

ACL anthologyから取ってきた論文のabstractを対象に実験をしているのですが、結果をまとめていないので後日載せます・・・(年内には・・・)

*1:NLPer外でLDAと呼ぶときはLinear discriminant analysisを指す場合もあるので注意しましょう.

*2:https://www.amazon.co.jp/dp/4061529048

*3:https://www.amazon.co.jp/dp/4339027588

*4:トピックは単語の多項分布として表現されるので

*5:https://www.aclweb.org/anthology/N13-1016.pdf

*6:https://www.aclweb.org/anthology/Q17-1001.pdf

*7:http://proceedings.mlr.press/v70/miao17a/miao17a.pdf