下準備

情報検索システムとしてグークルを使うとします。
例えば, 京都に住んでいて明日(2009/09/17)の天気が知りたいなと思って, ”京都 明日の天気”とキーワードを入力したとします。
このキーワードがグークルの情報検索システムに入力されて, グークルは, 入力されたキーワードに合っていると最も自信があるサイトから順に表示します。
仮に, 以下のような検索結果が表示されたとします。

検索結果ver0::グークル”京都 明日の天気”  (勝手に作りましたm(_ _)m)

  1. 「yahoo 京都府:明日の天気」 "思った通りの内容!"
  2. 気象庁 京都府の2009/09/17の天気」 "思った通りの内容!"
  3. 「エキサイト天気 京都府2009/09/17」 "思った通りの内容!"
  4. 「京都在住日記 明日は花見(2003/04/02)」 "違う内容。。"
  5. アメダス2009/09/17」 "思った通りの内容!"
  6. 「明日の高校野球」 "違う内容。。"
  7. 「OOweb 明日京都に行きます(2001/11/11)」 "違う内容。。"
  8. 「京都の気象予報士」 "思った通りの内容!"
  9. 「京都の気象情報2009/09/17」 "思った通りの内容!"
  10. ....

一番左の数字は提示される順で, 検索結果の""の内容は調べたい内容かどうかを表しています。
さて, 日付が変わる前に, もう一度検索してみたとします。
グークルのシステムが変わったようです。

検索結果ver1::グークル”京都 明日の天気” (勝手に作りましたm(_ _)m)

  1. 「yahoo 京都府:明日の天気」 "思った通りの内容!"
  2. 気象庁 京都府の2009/09/17の天気」 "思った通りの内容!"
  3. 「エキサイト天気 京都府2009/09/17」 "思った通りの内容!"
  4. アメダス2009/09/17」 "思った通りの内容!"
  5. 「明日の高校野球」 "違う内容。。"
  6. 「京都の気象予報士」 "思った通りの内容!"
  7. 「京都の気象情報2009/09/17」 "思った通りの内容!"
  8. 「京都在住日記 明日は花見(2003/04/02)」 "違う内容。。"
  9. 「高野日記 (2007/07/07)」 "違う内容。。"
  10. ....

さて, ver0とver1のどちらがどのくらい精度がいいんでしょうか?
(見た感じ, すでにver1ですが。。)

適合率

定義に合わせて言えば,

(適合率)=(検索結果の思った通りの内容のサイトの数)/(検索結果のサイト数)

です。
ここで, 検索結果っての言うのが, 直感的に理解しにくくなる原因の1つじゃないかなと思います。(僕はなりました。。)


例えば, ver0の検索結果の数っていくつですか?
僕が横着して10番目以降から....で省略しているので分からないですよね。。
実際に情報検索システムが扱うサイト数(データ数)は膨大で数えれません。
でも, グーグルなんかだと検索結果のサイト数が出ます。(実は分かります。)
でも, 思った通りの内容のサイトの数は出てきません。見て調べるのも厳しいです。


と言うような上記の理由で, 適合率ってどう求めるだろう?って思ったのですが, よくよく考えると検索結果を自分で決めてしまえば良いんですねm(_ _)m
例えば, ver0で4番目までを検索結果としてしまえば適合率は3/4になります。
勝手に定義を解釈してみると, 検索結果の集合をSとして,

適合率(S)=(Sの要素かつ正解となる要素数)/(Sの要素数

というイメージですね。


今回, Sのとり方を検索結果の1番目のみ, 1番目から2番目, 1番目から3番目, 1番目からS番目とすると, ver0とver1のそれぞれの適合率の変化は次のようになります。

ver1の方が, ver0より上の方に位置しているので精度が良さそうですね。
ver0は減少して増加していますが, ver1のように精度が良いシステムだと減少し続けるのが理想的だと(勝手に)思いました。

再現率

定義に合わせて言えば,

(再現率)=(検索結果の思った通りの内容のサイトの数)/(システムが調べた全サイト数)

です。


適合率に合わせて勝手に解釈すると, 検索結果の集合をS, 調べた全サイトの集合をRとして,

適合率(S)=(Sの要素かつ正解となる要素数)/(Rの要素数

というイメージです。
Rは定数のように見えますが(上式ではそう書いてますね。。)
情報検索システムはRに含まれるサイトを全部調べて, その全検索結果SSを表示し, SSの中から適当に適合率にSを選んでいます。
そこで, Rとシステムのバージョンで検索結果が変わると言うことで,

SS=retrival(R, ver), S⊂SS

と書けるのでしょうか?
情報検索システムのverが変わっても, 検索対象となるRが変わらなければ,

適合率(S)∝(Sの要素かつ正解となる要素数

となります。
グラフは示しませんが, ver0とver1が検索対象としたサイト群が同じと仮定すると, グラフはSの増加に伴いver0もver1も増加します。

適合率と再現率のグラフ

実はここがこのメモを書いた原因の箇所です。つまずきました。。
研究で検索システムを作ってこのグラフで評価しようと思ったら??となりました。。
結論から言うと適合率と再現率のグラフは以下の図のようになるそうです。

汚い図ですが, 縦軸が適合率, 横軸が再現率です。


直感的に考えると,今までの考察から

・適合率
理想的な(ある程度精度が良い)情報検索システムにおいては, 検索結果を多く含めるほど減少
・再現率
検索対象としたサイト群が同じと仮定すると, 検索結果を多く含めるほど減少

すなわち,
・適合率:Sが大きくなる=減少する, Sが小さくなる=増加する
・再現率:Sが大きくなる=増加する, Sが小さくなる=減少する
なので

・適合率が減少すると(Sが大きくなっているので)再現率は増加
・適合率が増加すると(Sが小さくなっているので)再現率は減少
ただし, 理想的な(ある程度精度が良い)情報検索システムで検索対象としたサイト群が同じ

と図と対応付けられます。


それでは, ver0とver1のデータより実際に適合率と再現率のグラフを求めてみます。
ver0は適合率のグラフで減少してたので, どんなグラフになるのか気になります。

縦軸が適合率, 横軸が再現率でRの要素数を20としました。


だいぶ, 予想と反していますね。。もう一度考察しなおしてみますm(_ _)m
今回は, 時間の都合上ここまで。

残り

再考察の他に, 自分用のメモとして考察すべき点を以下に記しておきます。
F値という概念について
・適合率と再現率の定義の(Sの要素かつ正解となる要素数)で, 正解の度合いを切り離してしまっている点
(どうやったら, 正解の度合いをシステムの評価に組み込めるか?重みを導入など)
・関連する記事に対する考察
http://blogs.itmedia.co.jp/knowledge/2007/11/post_827d.html
http://masao.jpn.org/d/2007-10-30.html#2007-10-30-1
http://d.hatena.ne.jp/myrmecoleon/20071029/1193665043