Datajob 2013 - Construire un système de recommandation

2,877 views
2,601 views

Published on

Published in: Technology
1 Comment
8 Likes
Statistics
Notes
  • intéressante présentation! pourriez vous svp me la communiquer?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,877
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
1
Likes
8
Embeds 0
No embeds

No notes for slide

Datajob 2013 - Construire un système de recommandation

  1. 1. Construire un système de recommandation Djamel Zouaoui – Paris DataJob 2013 20/11/2013 @DjamelOnLine © OCTO 2013 1
  2. 2. Pourquoi un système de recommandation ? Améliorer l’expérience utilisateur Une place de plus en plus importante pour Travailler avec des offres de plus en plus larges Générer du chiffre d’affaire 2
  3. 3. Au menu Les données Les algorithmes Les évaluations Dans la vraie vie 3
  4. 4. 4
  5. 5. Deux types de données Les données • Représentent la base de tout système de recommandation • Nécessite la plupart du temps un travail de nettoyage en amont : la phase de data cleaning • Et une étape d’ingénierie pour identifier les données les plus pertinentes : la phase de feature engineering Explicites • Les données qui servent à recueillir le feedback « officiel » du user : - les préférences utilisateurs - les notes - les avis sur les items - les « likes », … Implicites • Les données qui sont collectées durant l’expérience utilisateur : - la navigation - les clicks - les durées de consultation des pages -… 5
  6. 6. Explicites VS Implicites Les données explicites Les données implicites • Elles permettent à l’utilisateur d’agir volontairement et directement sur le système pour affiner ou corriger les recommandations qui lui sont faites • Mais elles nécessitent de réfléchir aux moyens (ranking) et moments de la collecte • Elles permettent d’obtenir des résultats plus pertinents et fiables sans polluer l’expérience utilisateur (pas d’action spécifique attendue) • Mais elles nécessitent généralement un temps de traitement important pour pouvoir les exploiter • Elles peuvent être : Utilisations - utilisées unitairement dans différents algorithmes pour former un résultat unique - combinées ensemble pour former un scoring plus pertinent basé sur une échelle personnalisée 6
  7. 7. 7
  8. 8. Non personnalized recommendation Recommandation générale basée sur les ensembles plutôt que l’utilisateur Agrégation d’opinion Association d’item (règles d’association en data mining) Ex : Association d’item Plusieurs items présents On calcule le « lift » d’un item donnée avec chacun des autres items Le lift le plus élevé nous donne l’association la plus cohérente =x P( X AND Y) =y P( X ) * P( Y ) =z P( X AND Z) P( X ) * P( Z ) 8
  9. 9. Content based recommendation Recommandation personnalisée basée sur: Les préférences du user Les caractéristiques des items Chaque item dispose d’un vecteur le caractérisant Un utilisateur dispose d’un vecteur caractérisant ses préférences = similarité 1 = [ x, y, z] = [ x, x, x, w] = [ y, z] Calcul de la similarité entre le vecteur user et chaque vecteur item = [w, x, y, z] = similarité 2 = similarité 3 9
  10. 10. En détail Le vecteur user • Les préférences • Les interactions • Valoriser les données utiles (extrêmes, fraicheurs) Le vecteur item • Les caractéristiques de l’item • Pondération sur la fréquence des caractéristiques : TF/IDF (normalisée, logarithmique, BM25,…) La similarité • Issue des mathématiques/statistiques • Pearson, Jaccard, Spearman, Cosinus, Non normalisée, Normalisée, … 10
  11. 11. User User - Collaborative filtering Recommandation personnalisée basée sur la similarité d’un utilisateur par rapport aux autres On calcule la similarité entre notre user et chacun des autres users ★★★★ = ★ ★★ [ , ] On prend les n plus proches voisins (n =1 ici) ★★★ ★ ★★★ ★ = ★ On les utilise pour calculer le score de la recommandation ou de la prédiction ★ ★★★ ★ ★★ = 11
  12. 12. En détail Sélection des voisins • • • • Tous les voisins Un seuil de similarité Hasard Top N des similarités (le plus courant) Nombre de voisin • • • • En théorie, un maximum En pratique, attention au bruit induit par les voisins trop lointain En général entre 25 et 100 Limiter les voisins permet d’être plus précis mais fourni une couverture moins large du dataset Scoring • Moyenne des voisins • Régression linéaire • Moyenne des voisins pondérée par la similarité (le plus courant) * Pour la similarité voir le slide 6 12
  13. 13. Item Item - Collaborative filtering Recommandation personnalisée basée sur la similarité de chaque paire d’item par rapport aux users Pour chaque item on récupère la note de chaque user avec un lien vers le user ★★★★ ★★★ ★ ★★★ ★ = ★ ★★ [ , , ] 4 4 1 Pour chaque paire d’item, on calcule la similarité sur la base des score des users qui ont noté les deux items ★ On les utilise pour calculer le score de la recommandation ou de la prédiction ★ ★★★ ★ ★★ = + + 13
  14. 14. En détail Sélection des voisins • Top N des similarités Nombre de voisin • En général 20 voisins Scoring * Pour la similarité voir le slide 6 14
  15. 15. 15
  16. 16. Les évaluations Les évaluations • Les évaluations sont primordiales car elles servent à : - Comparer les performances des différents modèles, algorithmes et paramètres associés - Tester et valider la fiabilité du système qui sera mis en place • L’évaluation doit donc être itérative tout au long de son cycle de vie (construction, production,…) Evaluations Offline • Les évaluations offline sont les métriques créées et jouées en chambre qui permettent de tester la fiabilité du système • Elles se basent sur plusieurs jeux de données segmenté pour les taches d’apprentissage, de test et éventuellement de cross-validation • Elles permettent de valider des hypothèses et de s’assurer que le système correspond aux hypothèses papiers avant une mise en service effective Evaluations Online • Les évaluations online sont les tests en environnement réel (production) du système • Ils peuvent être mise en place selon plusieurs techniques : - A/B Testing - Etude des logs -… • Ils permettent de confronter le système à l’utilisation réel des utilisateurs (on parle aussi de test orienté user) 16
  17. 17. Les évaluations offline La précision : Root Mean Square Error (RMSE) Les erreurs : Seuils aux extrêmes La pertinence : Precision et Recall Le classement : nDCG La diversité : Similarité du top N La sérendipité : Pénaliser les objets populaires et évidents La couverture : % d’items scorables … 17
  18. 18. 18
  19. 19. L’effet Big Mac 19
  20. 20. …! Ce que l’on a vu… …ce que l’on a ! 20
  21. 21. Car dans la vraie vie, on a des problèmes… Des problèmes de contexte Des problèmes de temporalité Des problèmes de diversité Des problèmes de données disponibles Des problèmes de performance … 21
  22. 22. Les algorithmes hybrides Somme pondérer de plusieurs algorithmes Des algorithmes qui viennent alimenter un autre algorithme Utiliser un algorithme spécifique en fonction du contexte Combinaison de plusieurs algorithmes pour un résultat unique 22
  23. 23. Mais aussi des optimisations possibles Parallélisation des algorithmes (ex : DISCO) Factorisation de calcul matriciel ( SVD, PLSA…) Utilisation d’une base graphe (neo4j, titan) … 23
  24. 24. Au final La construction d’un système de recommandation reste un exercice compliqué et très spécifique Il est possible de mettre en place des solutions « génériques » Mais pour des résultats vraiment fiables et pertinents, cela nécessite une vision stratégique globale 24
  25. 25. Questions @DjamelOnLine Rejoignez-nous sur le stand OCTO 25

×