レコメンダーシステムでリコールを測定することは意味がありますか?


8

私は、(映画のランキングや多くのユーザーの何であれ)ユーザーが視聴する10のおすすめの映画のリストを作成する推奨システムを構築していると仮定します。私がいくつかの大きな映画アイテムのプールと、ユーザーが実際に視聴することに決めた映画と一緒にユーザーの評価のログがあるとします。したがって、このデータセットを使用してシステムを評価したいと思います。

これらの「いくつかの良いアイテムを提案する」タスクは通常、精度、再現率、F1スコアを使用して評価されることを文献で確認しました(たとえば[1]を参照)。特に「10での精度」に興味があると思います。しかし、私が上記のシナリオでこれらの測定値をどのように計算するか(またはそれらが意味をなすかどうか)はよくわかりません。

どうやら、好ましいのは、サンプルを「トレーニング」と「テスト」の部分にランダムに分割することです。次に、トレーニングデータをアルゴリズムにフィードして、10個の予測のリストを作成できるようにします。

正確な並べ替えが意味をなすようになったので、10個の予測から、テストデータでユーザーが見た映画に実際にどれだけあるかを確認できます。

ただし、思い出してください。ユーザーがテストデータで多数の映画を視聴した場合、たとえば50程度です。「良い」リコールスコアを取得する方法はありません。これは、私のシステムが10本の映画しか制作しないように制限されており、最大で1/5 = 0.2のリコールしか得られないためです。

または、ユーザーの「次に視聴した10本の」映画を推測するためだけにテストを制限すると(「完全な再現」が得られる可能性があるため)、精度と再現は常にまったく同じ数になります(推奨数とユーザーに関連する数は同じで、精度と再現率も常に同じです)。

私は何か間違ったことをしていますか?または、これらのメトリックは、検討中のシナリオではあまり意味がありませんか?

回答:


7

「トップN」レコメンダーシステムの場合、「バイアスされていない」テストデータセットを作成すると便利です(たとえば、特定のユーザーのホールドアウトデータセットから、1,000本のランダムな未視聴/未評価の映画を視聴済み映画のリストに追加することにより) )、モデルを使用して結果のテストデータセットをスコアリングします。多数のユーザーに対してそれが行われると、「精度vsリコール」曲線と「リコールat N vs N」曲線(および感度/特異度とリフト曲線)を計算して、特定のモデル。このホワイトペーパー、クレモネシ他によるトップN推奨タスクにおける推奨アルゴリズムのパフォーマンスの詳細については、

特定のモデルに時間ダイナミクスが含まれている場合、トレーニングとテストの間の分割は時間次元に沿って(完全にランダムにではなく)行う必要があります


リンク切れ
ldmtwo

0

ほとんどの場合、再現は絶対的な条件で評価できる結果を生成しません。あるアルゴリズムを別のアルゴリズムに対して評価するには、再呼び出し値を使用する必要があります。

アルゴリズムAの再現値が0.2の場合(例のように)、この値の意味を解釈することは困難です。ただし、別のアルゴリズムBの再現率の値が0.15の場合(同じ実験設定の場合)、アルゴリズムAの方が再現率に関してアルゴリズムBよりも優れていると結論付けることができます。

平均絶対誤差(MAE)はこのようなものではなく、それ自体で解釈できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.