Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@kenta1984

WRD(Word Rotator's Distance)で文書間の距離(類似度)を計算する

背景

文書(テキスト)間の類似度を計算する処理は、検索やレコメンドなど様々な分野で使われていると思います。
現在(2020年9月時点)、文書間の類似度を計算する方法は、次のようにコサイン類似度から計算する方法と、距離から計算する方法の大きく2種類に分類することができます。両者とも、単語の分散表現を利用するというのが前提にあります。

  1. 単語の分散表現を利用して文書をベクトル化し、そのベクトル空間上で文書間のコサイン類似度を計算する
  2. 文書に含まれる単語の分散表現をベクトル空間上にマッピングし、そのベクトル空間上で文書間の距離を計算する。

1の手法については、文書に含まれる単語の分散表現の(加重)平均を取り、各文書をベクトル化します。そして、そのベクトル空間上でコサイン類似度を計算するという手法です。クックパッドマイクロアドをはじめ、実際のビジネスの現場でも幅広く使われています。
2の手法については、WMD(Word Mover's Distance)という手法が一番有名だと思います。まず、文書に含まれる単語の分散表現をベクトル空間上にマッピングします。そして、ある文書に含まれる単語群と別の文書に含まれる単語群の距離を計算し、距離の長さによって類似度を測るというものです。gensimにWMDを計算する関数が用意されており、比較的簡単に実装することができます。

WRDとは

WRDはWMDを改良したアルゴリズムで、東北大学の乾研究室が発表したものです。WRDの特徴は、単語の分散表現のノルムと偏角を分けて考えるというところにあります。具体的には、ノルムは単語の重要度を表し偏角は単語の意味を表すと考え、これらを別々に取り扱っています。別々に取り扱う方法については、論文に掲載されている下記の図をご覧頂ければイメージが付きやすいと思います。

スクリーンショット 2020-06-26 11 56 45

上記の図の通り、文書に含まれる単語の分散表現を超級平面上に射影します。その際、点の大きさをノルムに比例したものとします。こうすることで、重要度が高い単語は点が大きくなり、重要度が低い単語は点が小さくなります。そして、ある文書に含まれる単語群と別の文書に含まれる単語群のアライメント1を取るのに必要な力を距離、とWRDでは定義します。つまり、意味が異なる単語同士の場合であっても、重要度が高い場合は距離が長くなりますが重要度が低い場合は距離はさほど長くなりません。結果的に、意味が似ている文書間はWRDが小さくなり、意味が似ていない文書間はWRDが大きくなります。

詳細は論文をご覧下さい。繰り返しになりますが、単語の分散表現のノルムと偏角を分けて考えるというのは画期的な考え方だと思います。背景で紹介した文書のベクトル化でも、結局はノルムと偏角を混ぜて考えていますので。

WRDの実装

実装が公開されていなかったので、実装をGitHubに公開しました。是非、試してみて下さい。計算コストが高いという欠点はありますが、文書をベクトル化してコサイン類似度を計算するという方法よりも精度は高くなると思います。


  1. 単語と単語の対応関係を取ること 

9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kenta1984
研究員、機械学習エンジニア。東芝、リクルート、クックパッドを経て、現在はグロービスAI経営教育研究所で機械学習、自然言語処理の研究開発に従事。
globis
グロービスは 1992 年の創業以来、社会人を対象とした MBA、人材育成の領域で Ed-Tech サービスを提供し、現在は日本 No.1 の実績があります。これらの資産と、さらに IT や AI を活用することで、アジア No.1 を目指しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?