Est-il judicieux de mesurer le rappel dans les systèmes de recommandation?

8

Supposons que j'ai construit un système de recommandation qui (étant donné, par exemple, le classement des films ou celui de nombreux utilisateurs) produira une liste de 10 films recommandés pour chaque utilisateur à regarder. Imaginez que j'ai également un grand nombre d'articles de film, ainsi qu'un journal des notes des utilisateurs ainsi que des films qu'ils ont effectivement décidé de regarder. Je souhaite donc utiliser cet ensemble de données pour évaluer mon système.

J'ai vu dans la littérature que ces tâches "suggérer de bons éléments" sont généralement évaluées en utilisant la précision, le rappel et les scores F1 (par exemple, voir [1] ). Je suppose que je devrais m'intéresser, en particulier, à la "précision à 10". Cependant, je ne sais pas trop comment on est censé calculer ces mesures (ou si elles ont un sens) dans le scénario que j'ai décrit ci-dessus.

Apparemment, la chose préférée à faire est de diviser au hasard l'échantillon en une partie "formation" et une partie "test". Et puis alimenter les données d'entraînement à mon algorithme afin qu'il puisse proposer une liste de 10 prédictions.

Maintenant, la précision est logique, je peux vérifier à partir des 10 prédictions combien d'entre elles sont réellement trouvées dans les films regardés par l'utilisateur dans les données de test.

Cependant, pour rappel, si l'utilisateur a regardé beaucoup de films dans les données de test, disons 50 environ; il n'y a aucun moyen d'obtenir un "bon" score de rappel, simplement parce que mon système était contraint de produire seulement 10 films et que j'obtiendrais tout au plus un 1/5 = 0,2 de rappel.

Alternativement, si je contrains le test à ne deviner que les "10 prochains films regardés" de l'utilisateur (afin qu'il y ait une chance d'obtenir un "rappel parfait"), alors la précision et le rappel seront toujours exactement le même nombre (si le nombre recommandé et le nombre pertinent pour l'utilisateur est le même, la précision et le rappel sont également toujours les mêmes).

Est-ce que je fais quelque chose de mal? Ou ces mesures n'ont tout simplement pas beaucoup de sens dans le scénario considéré?

Juan A. Navarro
la source

Réponses:

7

Dans le cas d'un système de recommandation "top-N", il est utile de construire un ensemble de données de test "non biaisé" (par exemple en ajoutant un millier de films aléatoires non regardés / non classés à la liste des films regardés à partir de l'ensemble de données d'exclusion pour un utilisateur donné). ), puis la notation de l'ensemble de données de test résultant à l'aide d'un modèle. Une fois cela fait pour un groupe d'utilisateurs, on peut alors calculer la courbe "précision vs rappel" et la courbe "rappel à N vs N" (ainsi que les courbes de sensibilité / spécificité et de portance) qui peuvent être utilisées pour juger de la qualité de un modèle donné. Cet article, Performances des algorithmes de recommandation sur les tâches de recommandation Top-N par Cremonesi et al., Contient plus de détails.

Si un modèle donné inclut la dynamique du temps, la répartition entre la formation et le test doit être effectuée le long de la dimension temporelle (pas entièrement au hasard)

Yevgeny
la source
lien cassé
ldmtwo
0

La plupart du temps, le rappel ne produit pas un résultat qui peut être évalué en termes absolus. Vous devez utiliser la valeur de rappel pour évaluer un algorithme par rapport à un autre.

Si un algorithme A a une valeur de rappel de 0,2 (comme dans votre exemple), il est difficile d'interpréter ce que signifie cette valeur. Cependant, si un autre algorithme B a une valeur de rappel de 0,15 (étant donné la même configuration expérimentale), vous pouvez conclure que l'algorithme A a de meilleures performances que l'algorithme B en ce qui concerne le rappel.

L'erreur absolue moyenne (MAE) n'est pas comme ça, elle peut être interprétée par elle-même.

Sanyo Mn
la source