03.5
ランキング評価
直感 #
検索や推薦では、1 ページ目の 10 件に何が並ぶかがクリック率と売上を左右します。正解が 100 位にあるリストと 3 位にあるリストを Accuracy で比べると、どちらも「正解を 1 件含む」で同点になってしまいます。ランキング指標はこの差を数値にする道具で、NDCG なら 3 位の正解は \(1/\log_2 4 = 0.5\)、100 位の正解は \(1/\log_2 101 \approx 0.15\) の重みで数えます。この章では、順位の重みを付ける NDCG と MAP、上位 k 件の網羅率を見る Recall@k と Hit Rate の 4 つを、評価対象と正解の定義に合わせて選べるようにします。
詳細な解説 #
このチャプターで学べること #
- NDCGの定義とDCG/IDCGの計算、上位アイテムに対数減衰で重みを付ける仕組み
- MAP(平均平均適合率)の計算方法と、複数の正解があるランキングでの有効性
- Recall@kで上位k件中の正解カバレッジを測る方法とkの設定指針
- Hit Rate(Hit@k)で少なくとも1件の正解が含まれるかを評価する手法
これがわかるとできること #
- 実サービスの表示件数に合わせてkを設定し、適切な指標で評価できる
- 「並び順の質」と「正解の網羅率」の両面からランキングを診断できる
- オフライン指標とオンラインKPI(クリック率・コンバージョン率)の対応関係を設計できる
指標間の関係マップ #
指標クイックリファレンス #
| 指標 | 順位重み | 多段階関連度 | 主な用途 |
|---|---|---|---|
| NDCG | ✓ | ✓ | 検索・推薦の総合評価 |
| MAP | ✓ | 複数正解のランキング評価 | |
| Recall@k | 上位k件の網羅率 | ||
| Hit Rate | 正解を1件含むかの判定 |
学習の進め方 #
まず NDCG で、関連度 0〜3 の利得を \(\log_2(i+1)\) で割り引いて足し、理想順の DCG で正規化する計算を追います。次に MAP で、正解が 3 件あるリストの各正解位置での Precision を平均する方法を学び、順位が下がると AP がどれだけ落ちるかを確かめます。最後に Recall@k と Hit Rate で、k を 5 から 10 に変えたときに値がどう動くかを計算例で確認します。
まとめ #
順位重み付きの NDCG と MAP は「正解がどれだけ上に並んだか」を、網羅率の Recall@k と Hit Rate は「上位 k 件に正解がどれだけ入ったか」を測ります。表示件数が 10 件の画面なら k=10 で両系統を 1 つずつ、たとえば NDCG@10 と Recall@10 を並べて報告するのが基本形です。NDCG が高く Recall が低ければ「少数の正解は上位に置けたが取りこぼしが多い」、逆なら「正解は拾えたが下位に沈んでいる」と診断できます。