たつをの ChangeLog : 2008-01-17

「Introduction to Information Retrieval」[1] の輪講の第一回[2008-01-12-1]でちらっと話しましたが、第一章の 1.1 に Precision と Recall の説明があります(第八章でも出てきます)。

若干混乱しやすくややこしい話なので、ここで改めて解説します。

§

Precision (適合率) とは、
全検索結果に対しての、
検索要求 (information need) を満たす検索結果の割合です。

例えば、
「MacBook Air の重量を知りたい」という検索要求を満たすために検索キー「MacBook Air 重さ」でウェブ検索した結果100件のうち、検索要求を満たす(重さが分かる)のが85件だとすると、
Precision は 85/100 = 0.85 となります。

Recall (再現率) とは、
検索要求を満たす全ドキュメントに対しての、
検索要求を満たす検索結果の割合です。

例えば、
全ウェブ上に「MacBook Air の重量」について書かれたページ(つまり「MacBook Air の重量を知りたい」という検索要求を満たすページ)が90件あると分かっているとします(実際は分かりようがありませんが)。
この場合、前の例と同じように、『「MacBook Air の重量を知りたい」という検索要求を満たすために検索キー「MacBook Air 重さ」でウェブ検索した結果100件のうち、検索要求を満たす(重さが分かる)のが85件』だとすると、
Recall は 85/90 ≒ 0.94 となります。


冗長かと思いますが、図でも説明してみます。
図中の A が検索結果、 B が検索要求を満たすページ、
重なっている部分 C が検索結果に含まれる「検索要求を満たすページ」です。
Precision は C / A、 Recall は C / B で計算されます。
画像


Precision と Recall の関係について説明します。
基本的に Precision と Recall にはトレードオフの関係にあります。
単順にどちらかを高くするともう一方が低くなりがちです。

検索結果にゴミは少ないんだけど取りこぼしが多い、
というのが Precision が高くて Recall が低い状況。
例えば、ライフハックについてくまなく情報を集めよう、キーワード「ライフハック」でウェブ検索すると、検索結果にはライフハックに関係ないページは少ないけど (高 Precision)、「Life Hacks」とローマ字でしか表記していない(カタカナ表記が一切ない)ページは取りこぼされます (低 Recall)。

逆に Precision が低くて Recall が高いのは、
検索結果を一気に1,000件見てみると欲しい情報はほぼ網羅されているんだけど他のほとんどが無関係なページ、といった状況。
例えば、車での急ブレーキ時にタイヤがロックする防ぐ装置「ABS」について調べようと、キーワード「ABS」でウェブ検索して、大量の検索結果を見てみると、重要なページはほぼ網羅 (高 Recall) されている一方、秋田放送やボウリング関連の会社や樹脂などの検索意図とはまったく異なる ABS についてのページが多数出てノイズとなってしまいます (低 Precision)。

高品質の検索エンジンを目指すには Precision と Recall の両方が高くなるようにいろいろと調整を加えていきます。
ということで、Precision と Recall を組み合わせた F値 (F measure) という評価尺度がよく使われています。F値は下記の式で計算されます。
F = 2 / ( 1 / Recall + 1 / Precision )
F値は Precision と Recall の双方の値が大きいほど大きくなります[2]。
先ほどの「MacBook Air の重量」の例では、
Precision = 0.85、Recall ≒ 0.94 だったので F値 ≒ 0.89 となります。


参考文献


(間違いや補足などありましたら下記フォームからご連絡頂けると幸いです)



焚き火

2008-01-17-2 [Video]
そういえば、元旦に実家でたき火しました。
やっぱ冬は焚き火ですよねー。
焼き芋は、しませんでした。

焚き火 (YouTube)

この記事に言及しているこのブログ内の記事

Gina Trapani / Lifehacker インターネット時代のワークスタイル改善術!


Lifehacker というブログ(英語)をやっている Gina Trapani さんによる
ライフハック本、の翻訳。
基礎的な話から、プログラム書いたりする高度なものまで。
まあ、日本ではあまり使えないようなハックもいろいろあるけどね。
この記事に言及しているこのブログ内の記事

小学生の遠足で、バスに乗って移動するとき
「窓から手や頭を出すと、ぶつかったとき切れるよ!」と注意されたり、
実際に手や首が切断された人がいたという話がまことしやかに語られたり。

こういうのって都市伝説かと思っていたんだけど、
このニュースを読んで「現実にあることなんだ!」とびっくり。
みなさん、気をつけましょう!

- 車の窓から女性に手を振った豪男性、対向車と接触し腕一部を切断
  http://www.excite.co.jp/News/odd/00081200352173.html
ピックアップトラックに乗っていた20歳の男性が、
洗車場にいた若い女性2人に窓から手を振ったところ、
腕が対向車に接触し、一部が切断されるという事故が発生した。

たつをの ChangeLog
Powered by chalow