トピックモデルを俯瞰して学ぶ
本記事は,自然言語処理 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氏によるチュートリアル資料です. こちらもトピックモデルについて網羅的な記載があります.
上記の本の著者でもある東大の佐藤さんの私のブックーマーク(人工知能学会)でのトピックモデルについての特集です. いろいろな論文や注目学会が列挙されています.
トピックモデルの研究
トピックモデルの研究は大きく分けて3つに分けられます.
- モデルの学習方法と省メモリ化・高速化
- 対象のモデル化
- 結果の見せ方
モデルの学習方法と省メモリ化・高速化
学習の仕方の理論的解析から,学習をいかに時間計算量的, 空間計算量的に効率よく学習するのかという改良まで,幅広い研究が存在していて,トピックモデルの学習に関しては大きく2つに分けられます.
- 変分ベイズ法
- ギブスサンプリング
変分ベイズ法に関連した研究
変分ベイズ法はベイズ学習において事後分布が解析的に求められない時などに用いられる手法で,LDA の原著でも用いられているものです.
事後分布を計算が容易な分布(近似事後分布)で仮定しますが,因子分解が可能であるという仮定を置くことが多いです. 近似事後分布の推定を行うために,近似事後分布と本来の事後分布とのKL 情報量を最小化を試みる際に,イェンセンの不等式を用い,対数周辺尤度に関する 変分下限に落とし込むことで解ける形にします.
また変分ベイズ法における一部の変数を積分消去することでより簡略的な推論が行えるcollapsed Variational Bayse(CVB)を 用いたものなども提案されています.
ギブスサンプリングに関連した研究
ギブスサンプリングそのものを使うことは少なく,collapsedGibbs Sampling(CGS)を用いることが多いです.
CGSでは, 目的の事後分布からのサンプル生成の代わりに、より計算コストの低い条件付き確率分布を構成することで確率変数らを交互にサンプル生成することで、 目的の事後分布からのサンプルを生成を可能にするギブスサンプリングにおいて、ある確率変数を経てサンプリングされていた確率変数に関して、 周辺化を行うことでより簡便なサンプリングを行う手法です.
LDA に関しても変分ベイズ法の後にその有用性が示されており,これは後続のモデルらでも実装の容易さゆえによく採用されています。
一般的にCGSは変分ベイス法に比べ性能が良いことが知られていますが, 各文書の各単語についてそれぞれサンプリングを行わなければならず,CGSはその計算量がボトルネックとなってしまいます.
このボトルネックの要素として基本的に各単語のサンプリングとは各単語に割り当てられるトピックのサンプリングであり, これは多項分布からのサンプリングになり一般的にトピック数に比例して計算量が増えてしまいます.
この部分に対する効率化として
- FastLDA
- sparseLDA
- AliasLDA
が挙げられます。
上記の他にも大規模データのバッチ学習時の並列化やオンライン学習などの改良も提案されています.
対象のモデル化
対象の性質をどうモデル化をするかという点に着目して,モデルの潜在変数を増やしたり,分布を変更したりすることによってこれを実現しています.
この拡張のしやすさがトピックモデルがあらゆる研究に波及していった理由の一つでもあります.
いくつかのモデルに関して箇条書き形式で記してみます,興味があるものがあれば論文を読んでみてください. (論文の引用元urlに一貫性がないのはご容赦ください.)
Biterm Topic Model(BTM)
- [論文] http://www.bigdatalab.ac.cn/~lanyanyan/papers/2013/WWW2013-yan.pdf
- LDAは短文のデータセット(マイクロブログ)に弱いのでそれをトピックからbitermが生成されるという仮定にしたもの
Twitter-LDA
- [論文] https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=2374&context=sis_research
- BTMと同様に短文への対処でTwitterに焦点を当てたもので、一人のユーザの複数のツイートを1文として捉えるようにしたもの
Author Topic Model(ATM) *[論文] https://arxiv.org/abs/1207.4169
- [実装] gensim: models.atmodel – Author-topic models
- 各文書の著者情報も入れ込むモデルを提案しており、各トピックに対してどの著者がどれくらいの割合で属するかといったことを知ることが可能
Polylingual Topic Model(PLTM)
- [論文] https://www.aclweb.org/anthology/D09-1092/
- 日本語と英語の文書対などのようなパラレルな文書データに対してのモデル化
Corresponding Topic Model(CORR-LDA)
- [論文] http://www.cs.columbia.edu/~blei/papers/BleiJordan2003.pdf
- 文章についたタグ情報などの補助情報も同時にモデル化
Relational Topic Model(RTM)
- [論文] http://proceedings.mlr.press/v5/chang09a/chang09a.pdf
- ネットワーク構造を持つ文書群に対し,各ノードの内容に立ち入ったモデリングを行った(論文を対象として,各ノードが文書,各ノードの内容が文書の内容,引用関係がリンクに対応)
Correlated Topic Model (CTM)
- [論文] https://arxiv.org/pdf/0708.3601.pdf
- トピック間の相関を共分散行列で表現するためにトピック分布の事前分布に正規分布を導入したモデル. 正規分布は多項分布の共役事前分布ではないため推論が難しい.
Hierarchical TopicModel(HTM)
- [論文] https://papers.nips.cc/paper/2466-hierarchical-topic-models-and-the-nested-chinese-restaurant-process.pdf
- Nested Chinese Restaurant Process を基にした生成過程を考え、トピック集合は木構造を持っているとしてモデル化
Pachinko Allocation Model (PAM)
- [論文] https://people.cs.umass.edu/~mccallum/papers/pam-icml06.pdf
- トピックに階層構造を導入し従来のトピックの上に上位のトピックを仮定することで、トピック間の関係を捉えたモデル
Multi-Grain LDA(MG-LDA)
- [論文] https://arxiv.org/pdf/0801.1063
- Global Topic・Local Topicを導入. 今まで文章全体を捉えていたものを一文単位からも考慮し,同一話題内でのトピックの粒度を変えたトピックの抽出が可能
Dynamic Topic Model (DTM)
- [論文] https://mimno.infosci.cornell.edu/info6150/readings/dynamic_topic_models.pdf
- 直前の時刻からの時間発展のダイナミクスを正規分布を導入し,ランダムウォークさせ,カルマンフィルターを用いるためV 次元の潜在変数ϕ の状態空間遷移を捉えるという複雑な形になっている上に共役事前分布ではないので厳密な推論は困難.
Multiscale Dynamic Topic Model (MDTM)
- [論文] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.176.39&rep=rep1&type=pdf
- MDTM は,複数の時間スケールでのトピックの発展を考慮したモデルである.例えば,政治に関して,国会や総理大臣などの長期間にわたり頻出する単語もあれば,特定の法案名や事案のように数日か数ヶ月しか出現しない単語もあり,このような多重スケール性を考慮した
結果の見せ方
トピックモデルの説明をする際に、「スポーツ」「経済」「政治」などのトピックが〜と言った説明をされることが多いため、 トピックモデルを使うと勝手にトピックごとにラベルをつけてくれるものと思い込んでしまいますが、実際はそうではありません. *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