改めてrecallとprecision

これなーに

レコメンドの評価指標としてrecallやprecisionなどがある。
どの指標が最もオフライン評価に適するのかを改めて考えたい。

混同行列

実際に興味がある or notを横軸に、
レコメンドの予測が興味がある or notを縦軸にすると
上のようになる。

precisionとrecall

precisionは混同行列の文字を使うと以下。

precision = TP / (TP + FP)

これは、推薦したアイテムが実際に興味がある割合という意味合いになる。

recallは混同行列の文字を使うと以下。

recall = TP / (TP + FN)

これは、興味があるアイテムを実際に推薦できた割合という意味合いになる。

具体的に

確率TOP@4の推薦を実施した場合

precision

recall

結局どっちを使うべき?

どっちも良いが、recallがより良いと思う。

理由

  • 実務を考えると、推薦システムに求められるのは興味のあるものを抜けなく推薦することなので
  • 分母が、precisionはkで、recallは興味のある数であるため、ユーザーの興味を測るにはrecallの分母の取り方の方が良さそう

興味があるアイテムの順位で評価するMRR(Mean Reciprocal Rank)とかの方が良いのかな。

参考: blog.brainpad.co.jp