検索の評価指標
こんにちは。レトリバの飯田(@meshidenn)です。カスタマーサクセス部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。
前回は、検索結果にグレードをつけられる場合の検索エンジンの評価についてご紹介しました。今回は、未評価データがある場合等の修正方法についてご紹介します。なお、以下の内容は酒井先生の書籍やこちらの論文に記載されておりますので、詳細が気になる方は、こちらも読んでみてください。
未評価データの問題点
検索は通常、検索対象が非常に大きいため、あるクエリと関連あるドキュメント(正例)を全て判定することが不可能です。そのため、既存の検索エンジンを使用するなどして評価データを作成します。よって、新しい検索のランキングアルゴリズムを考えた時、評価していないデータが上位にくる可能性があり、それはクエリに関連する文書である可能性があります。そのため、未評価データを負例として扱うと、新しいシステムに不利になってしまいます。
未評価データを考慮しない方法
indAP
もっとも簡単な発想は、未評価データを評価しなければ、不利になることはないということです。つまり、未評価データは評価から取り除けば良いのです。未評価データを評価から取り除く場合のをと呼びます(については、第一回を参照してください)。 今、適合文書がR件あるうち、評価済みの文書だけを上から数えた時の順位をとします。また、第r位の文書が適合しているか否かを表すフラグ変数をとし、第r'位までの適合文書の合計をとし、適合文書数をとします。この時は以下の通りです。
期待値による方法
infAP
infAPは、期待値を使用して未評価データを補完する方法です。今、検索結果リストの上位r件から、文書を1件サンプルして、適合しているかどうか判定することを考えます。APは、r位が適合している時に増える値なので、r位は適合しているとします。この時、適合文書がサンプルされる期待値は、r位がサンプルされる確率と、r位より上位の文書中で評価済みのデータのうち適合している文書がサンプルされる確率の和になります。式で表すと以下です。(はr位までの適合文書数、はr位までの非適合文書数です。)
なお、は、より小さくなりやすいです。
これは、未評価データを期待値で補完している形になっています。なお、r-1番目が適合文書とは限らないので、再帰的に計算されません。
これを用いて、infAPは以下の式で表します。
例
完全に評価できている場合、あるクエリに対して、適合文書で、検索結果7件のうち、1,2,3,6位に適合文書がある状況を考えます。しかし実際には、コストの問題で、評価したデータ中に適合文書が件となり、評価した適合文書が1,3位に現れているとします。また、2,5,6,7は未評価文書だったとします。この時、真の, 未評価データを負例とした場合の, , はそれぞれ以下の値になります。
からの変更点は、例えば、では、第3位までに適合文書が2件あり未評価文書が1件あるので、と変わっています。 また、上記の結果から、やが、より、に近いことがわかります。
層別サンプリングを考える方法
xinfAP
infAPに層別サンプリングの考えを入れたのが、xinfAPです。(以下、原論文から変更しています。仮定の間違いなどあるかもしれませんが、式は同じになります。)
今、評価がいくつかの層で行われており、その評価は、層ごとにあるデータのうち、一様にサンプルした個を評価しており、適合文書が個あるとします。例えば、複数の検索ランキングで検索した結果に対して、その上位件から一様にサンプルした件について適合性判定を行うなどです。また、実際には中に適合文書があり、全適合文書数はとします。のの部分が、です。
まず、を推定します。は素直に、, とします。
次に、を考えます。と同様に考えます。上位からr番目の適合文書の場合を考えるので、
です。また、は各層ごとに考えるため、
です。ここで、はk-1番目までに出ている層由来の文書数、はその中で評価した文書数、はその中の適合文書数です。よって、の推定と、の推定を層別に行なっているのが、からの変化です。
xinfnDCG
は、以下のように分解できるため、検索結果のと、理想的な結果の期待値をそれぞれ算出します。
なお、は検索された文書数、は利得、は対数関数です。
DCGIの期待値
今、すべてのの値の集合をとします。層に対して、利得を持つ文書の数を、評価した全文書を、層の全文書数をとします。 は、各利得の文書数が分かれば、それを降順に並べた場合のを計算すれば算出できます。よって、全体の各利得の文書数をとし、層ごとの各利得の文書数をとすると、推定値は, となります。
よって、このを使って、gが大きい順に利得を として、上位から順に減損されれば、を算出できます。
DCGrの期待値
試行回数1回で全体の利得を考えたいとします。この時、の中からi番目の文書が選ばれ、その利得がだとします。すると、検索された文書全体の利得は、と推定できます。よって、層別で考えたときに、]は以下のようにかけます
そして、
となります。これは、1サンプル毎に、全体の利得を予測し、その平均を計算しています。
以上から、とが計算できたため、が計算できます。
終わりに
今回は、全てのデータを評価していない場合の指標を紹介しました。単純な方法として、評価していない文書を考慮しない方法を紹介しました。また、期待値を考え計算する方法も紹介しました。今回で、検索指標に関する記事は終了します。さらに興味がある方は、酒井先生の書籍などを参照してください。