Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

話題の「ランキング学習」とは? 回帰法・分類法との違いからモデル構築まで

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/12/17 11:00

 近年、「AI」という言葉をよく見かける背景には、機械学習を使った多様な手法による飛躍的進歩があります。この機械学習の主な手法の1つに「教師あり学習」があります。 教師あり学習には大きく分けて2つのタイプがあります。1つは、ある画像を「犬か否か」推定、あるいは「犬、猫、鳥」のどれに分類されるか推定する「分類」です。もう1つは、ある出来事が起こる確率を推定する「回帰」です。どちらのタイプも教師あり学習ではよく用いられますが、本記事で紹介する「ランキング学習」は一般的な「分類」や「回帰」とは 少し異なります。ランキング学習は近年発展してきた技術のため、英語の情報がほとんどで、日本語の情報は非常に少ないです。本記事ではすでに分類や回帰などの機械学習をやっている人を対象に、ランキング学習を詳細に解説していきたいと思います。

目次

ランキング学習とは

 ランキング学習は英語では“Learning to rank”といって、“LTR”とよく省略されます。英語のWikipediaにあるランキング学習の記事では以下のように定義されています。

 "Learning to rank or machine-learned ranking (MLR) is the application of machine learning, typically supervised, semi-supervised, or reinforcement learning, in the construction of ranking models for information retrieval systems." (Wikipediaより)

 上記の英文を日本語に訳すと以下のようになります。

 「ランキング学習とは情報検索のシステムにおいて、ランキングモデルの構築に適用された機械学習のことです。ランキング学習のアルゴリズムには教師あり学習、半教師あり学習または強化学習があります」

 情報検索やランキング学習のことを知らずに上記の定義を読んだらあまりピンとこないかもしれないので、 より分かりやすく説明したいと思います。検索システムで言えば、ランキングとは検索結果の表示順のことを指します。Aというワードを検索して、一番上に表示された結果は1位、その次は2位、という風にランクをつけることができます。

 重要なポイントの1つは、返された結果はクエリ・キーワード、ときには「状況・コンテキスト」に対する結果であるという点です。状況・コンテキストとは、例えばユーザの位置情報や検索履歴などといったものです。ヒットされた検索結果はよくURLやリンクと言いますが、本記事では「文書」と呼びます。

 クエリに対して一番表示順の良い(関連度が高い順・ユーザが求めている順)文書のリストを返すのがランキング学習の目的です。ランキング学習は、ECサイトの商品検索や動画アプリのおすすめの動画など、ランキングを決定するアプリケーションに広く応用が可能です。

モチベーション

 検索エンジンに対して、ユーザがクエリを投げて検索する場面を考えましょう。下の図は、検索エンジンが管理する文書を全体集合とするベン図です。右側の円は、ユーザがクエリQを検索したときに、検索エンジンから返してほしいと考える文書集合を表します。一方、左側の円はクエリQを検索したときに実際に検索エンジンから返される文書集合です。

 右側と左側の円が重なっている部分Bはシステムが正しく返せた文書集合と言えます。左側の円のうち、右側の円と重なっていない部分Aはシステムが誤って返してしまった文書集合で、「検索誤り」と言い、逆にCは「検索漏れ」と言います。

 検索漏れと検索誤りを完全になくすのが理想的ですが、それは非常に難しいことです。検索システムができるのは(A+B)を大きく、または小さくすることです。例えば小さくすると、検索誤りを減らすことができますが、検索漏れが悪化します。

図2
図2

 それに対して大きくすると、ユーザの要らない文書が多くなり、求めている文書が見つかりにくくなるので検索誤りが悪化します。

図3
図3

 検索漏れと検索誤りはトレードオフの関係にあり、この関係は適合率と再現率のトレードオフで説明できます。検索結果のうちにどの程度正しい(返してほしい)結果が含まれるかを示す適合率(P:Precision)と、返してほしい結果のうち、どの程度が実際に検索結果として表れるかを示す再現率(R:Recall)は以下のように表現できます。

 再現率も適合率も1が最大値です。図3のように左側の円を大きくすると、(A+B)>>Bなので適合率が下がりますが、(B+C)≒Bなので再現率が上がります(1に近づきます)。一方、図2のように左側の円を小さくすると、(A+B)≒Bなので適合率が上がり、(B+C)>>Bなので再現率が下がります。

 Aが大きくなることで適合率が下がる問題の解決策として、ランキング学習が使えます。Bに含まれる文書を上位に表示されるようにランキングを調整すれば、ユーザが求めている情報が見つかりやすくなります。

 ランキング学習では、まず通常の検索結果の上位N件を抽出します。次に、ランキング学習によって得られたモデルを使って、このN件をリランクすることでランキングをさらに改善します。

 例えばECサイトでは、ランキングの精度が1パーセント上がるだけで売り上げが大きく変わることもあります。そのため、上位N件のリランクといった、わずかな検索精度の向上であってもそれに挑む価値はあります。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • Kamuela Lau(カムエラ ラウ)

     米国ハワイ州出身。2014年に米国マサチューセッツ州の Williams College を物理学と日本語学の二重専攻で卒業後来日。株式会社ロンウイットでランキング学習など機械学習を中心に、製品開発や顧客コンサルティングの業務に従事。米国の Georgia Institute of Technol...

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5