3

Je le programme avec Scala, mais la langue n'a pas d'importance ici.Spark MLlib - Comment valider le filtre collaboratif de feedback implicite

l'entrée du filtre de rétroaction de collaboration implicite (ALS.trainImplicit) sont, dans ce cas, des vues d'un produit:

  • Evaluation ("user1", "product1", 21,0) // signifie que user1 a vu les détails de product1 21 fois
  • Note ("user2", "product1", 4.0)
  • Note ("user3", "produit2", 7,0)

Mais la sortie (MatrixFactorizationModel .ré commendProductsForUsers) sont comme:

  • Note ("user1", "product1", 0,78)
  • Note ("user2", "product1", 0,63)

valeurs 0,78 et 0,64 dans le la sortie ressemble à quelque chose de normalisé entre 0 et 1, mais les valeurs dans l'entrée étaient 21,4,7, etc.

Je ne pense pas que dans ce cas, il est logique de calculer MSE (erreur quadratique moyenne) entre l'entrée et la sortie comme nous pouvons le faire lorsque nous utilisons des filtres collaboratifs avec une rétroaction explicite. Donc, la question est, comment valider le filtre collaboratif lors de l'utilisation de la rétroaction implicite?

Répondre

0

Un KPI important pour la validation implicite du retour est par ex. Exactitude, couverture et beaucoup d'autres. Cela dépend vraiment du cas d'utilisation (combien de produits voulez-vous montrer? Combien de produits offrez-vous?) Et le but que vous voulez atteindre.

Lorsque je construis un modèle de SLA implicite, je calcule toujours ce 2 KPI. Les modèles avec une très bonne exactitude ont tendance à couvrir une plus petite quantité de produits disponibles à offrir. Alsways calcule la couverture et décide à partir de là.

Prenez de plus près à ce poste: https://stats.stackexchange.com/questions/226825/what-metric-should-i-use-for-assessing-implicit-matrix-factorization-recommender

et cette bibliothèque Spark: https://github.com/jongwook/spark-ranking-metrics

+0

Comment calculez-vous la précision et la couverture dans ce cas (la définition officielle)? – italktothewind

+0

Pour moi, il serait important de savoir si un client a acheté l'article dans la période de test/validation (Précision). Donc, construisez un ensemble d'entraînement et un ensemble de test (période de temps après l'entraînement). par exemple. Je prends les recommandations top5 pour les clients donnés et compare cela aux ventes dans la période d'essai. La couverture est simplement le% du produit recommandé (par exemple dans top5) parmi les produits possibles. – Duesentrieb