時代に翻弄されるエンジニアのブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら書きたいと思います。

具体例!!トピックモデルのトピックってなに?

こんにちは、最近はコロナ社のトピックモデルによる統計的潜在意味解析を読んでいます。

トピックモデルは少し前から注目されている自然言語処理の技術です。今更ですが、良い本に巡り会えたので勉強しています。

今日はその本のなかでも序章にあたる部分の中で、トピックが何なのかについて話せたらなと思っています。

僕の知識の中で話しているので、おかしいところもあると思います。その場合は指摘していただけるとありがたいです。

はじめに

トピックモデルにおけるトピックとは単語の潜在的な意味のことを言います。

といっても、潜在的な意味ってどういう意味?となると思いますので、今回の記事では潜在的な意味について学んだことを話したいと思います。

簡単に言うと、潜在的な意味とは単語の共起性によって発生する物です。

共起性? 同じ単語でも違った意味?

共起性といきなり言われてもわからないと思います。

例えば

  • I play baseball.
  • I play piano.

この2つの文章では、どちらもplayが使われています。ここで、ニュースサイトでこれらの文章が別々の記事の中でそれぞれの文章が記載されていることを考えてください。この2つの文章が掲載されている記事のジャンルで考えると、上はスポーツ関連、下は音楽関連になります。

このように、playだけではなく複数の単語と使うことによって意味が発生しています。このような性質を共起性と言います。

そして、単語や文章の潜在的な意味とは、この共起性によって発生した意味のことを言います。

なので、例では1つめのplayはスポーツの意味を持ち、2つめのplayは音楽の意味を持ちます。
そしてこのスポーツや音楽がトピックモデルにおけるトピックとなります。

実際このトピックというものはラベル付けされているわけではありません。文章が与えられた際の文章内の単語頻度などといった共起性からトピックを機械的に見つけることになります。

このトピックは単語や文章ごとに設定することができ、トピックモデルを用いることで文章内の単語や文章そのもののトピックを得ることができます。

さらに、このトピックを使うことで文章や単語の類似性を簡単に判断できるようになります。

単語の類似度がわかる?

例えば、レストランに特化したニュースサイトのトピックモデルを作ったとします。その中でカルボナーラとアラビアータと寿司の特集がそれぞれ別々の記事で掲載されていました。

トピックという単位で考えた場合、カルボナーラとアラビアータと寿司は似ているでしょうか?

トピックモデルの学習に使う文章によっても変わってきますが、トピックとして

  • 和食レストラン
  • 中華レストラン
  • 洋食レストラン

が学習されているとします。

この時

  • カルボナーラは洋食レストラン
  • アラビアータは洋食レストラン
  • 寿司は和食レストラン

となります。

よって、レストランで考えるとにはカルボナーラとアラビアータは似ていて、カルボナーラと寿司は似ていないとなります。

他にも色々ありますが、このようにトピックという単位で類似度を測れることがトピックモデルの利点になります。

まとめ

今回は、簡単にトピックモデルで使われるトピックについて解説してみました。単語の背印材的な意味がトピックであり、それは共起性によって発生することを話しました。

レストランの例を発展させると、レストラン検索サイトでのトピックによる柔軟な検索サービスなどができると思います。そのように考えると、他にもいろいろな応用が考えられて楽しい分野だなと感じます。

数学的なトピックモデルの形式はこれから解説していきたいと思いますが、まずはアプリケーションを作るなどして、応用についても一緒に考えていきたいと思います。