System de recommandations
Xavier Dupré
Microsoft / ENSAE
Bio
• Parcours professionnel
• 2000-2004 - thèse, reconnaissance de l’écriture
• 2004 – 2007 - reconnaissance de l’écriture
• 2007 – 2008 - finance
• 2008 - 2010 - Yahoo – réécriture
• 2010 – 2015 – Microsoft - Bing, local, réécriture, suggestions
• 2015 - Microsoft - Azure ML
• Enseignement
• 2001- ENSAE, programmation (1A)
• 2014- ENSAE, voie datascience (2A + 3A)
• 2015 – organisation de hackathon (Microsoft / ENSAE / Croix-Rouge)
Formalisation d’un système de
recommandation
• Tenseur = matrice multidimensionnelle
• Utilisateur
• Produit
• Temps
• Localisation
• Contexte
• …
• Quelle valeur pour les paires non observées ?
• Chaque dimension multiplie les possibilités
sans multiplier les données.
Système de recommandation, ranking
• Ranking similaire à un système de recommandation
• Requête  résultats conseillés
• Requête  requêtes associées (Related Searches)
• Recommandation pure
• Le système n’utilise pas d’information sur le contenu
• Uniquement basée sur l’évaluation implicite faite par l’utilisateur (le clic)
• Recommandation en pratique
• Système de recommandation pure uniquement une feature
• Features extraites à partir du contenu et du contexte
• Utilisation de classifieur intermédiaire (annotation manuelle, catégorisation)
• Apprendre le feedback des utilisateurs, généraliser là où il n’est pas
• Feature = itération longue, ranking final = itération courte
Offline / online
• Offline – cycle long – beaucoup de map reduce
• Utilisation de logs d’événements (achats, clic)
• Génération de candidats : requête  liste de résultats, système de recommandations
• Extraction de caractéristiques (requête, résultat, paire requête résultats
• Machine learning, à partir des clics, annotation
• Construction d’une liste de recommandations à utiliser online
• Online – cycle très court – C++
• Ranking online doit être rapide
• Utilisation du contexte
Mise en production
• Dans la pratique
• Black list
• Contexte  online ou offline
• Croissance régulière des jeux de données
• Suggestions trop proches et trop éloignées ne fonctionnent pas
• Evénement rares : proposer des suggestions pas toujours pertinentes ou les
cacher
• Offline  grande liste de recommandations
• Online  réduction de la liste online
Durée de vie d’une implémentation
• Le plus longtemps possible (3-6 ans) car
• Difficulté de changer de plateformes
• Documentation manquante ou orale (black list, seuils…)
• Perte de savoir liée au turn over (interne / externe)
• Intrication des système et architecture logicielle approximative (exemple de la
normalisation)
• Mais
• Accroissement naturel des données
• Implémentation pas forcément conçue pour tout volume de données
• Accumulation de patchs, features difficile à maintenir
• Nouvelle technos et algorithmes
Changement de plateforme, d’algorithme
• Plateforme - durée 6 mois – 1 an
• Deux plateformes en parallèles pendant quelques mois
• Migration progressive (1 marché, puis 2, puis…)
• Parité impossible à obtenir (gain > perte mais jamais identiquement =)
• Algorithme - durée 3 mois – 6 mois
• Articles scientifiques – jeux de données plus propres que la réalité
• La vitesse n’est pas le souci premier (la performance oui)
• Testés sur des volumes petits
• Code chercheur = une seule utilisation
Agilité et test A/B
• Amélioration quotidienne testée via des test A/B
• Améliorations contraintes par l’agilité
• Logging d’information
• Plus on logge, moins on est limité en terme d’idées
• Coût en terme de calculs : plus on logge, plus ça rame
Quelques paris sur l’avenir
• Métrique
• Rôle d’une suggestion dans le parcours utilisateur ?
• Clic sur une suggestion : est-elle drôle ou pertinente ?
• Appauvrissement des données dû aux suggestions
• Personnalisation renforcée
• Un utilisateur voit différentes suggestions même s’il fait la même requête
• Apprentissage par renforcement
• Randomisation des algorithmes
• Utiliser l’utilisateur pour faire converger le système
• MWT - http://research.microsoft.com/en-us/projects/mwt/
• Questions / Réponses

Recommender systems

  • 1.
    System de recommandations XavierDupré Microsoft / ENSAE
  • 2.
    Bio • Parcours professionnel •2000-2004 - thèse, reconnaissance de l’écriture • 2004 – 2007 - reconnaissance de l’écriture • 2007 – 2008 - finance • 2008 - 2010 - Yahoo – réécriture • 2010 – 2015 – Microsoft - Bing, local, réécriture, suggestions • 2015 - Microsoft - Azure ML • Enseignement • 2001- ENSAE, programmation (1A) • 2014- ENSAE, voie datascience (2A + 3A) • 2015 – organisation de hackathon (Microsoft / ENSAE / Croix-Rouge)
  • 3.
    Formalisation d’un systèmede recommandation • Tenseur = matrice multidimensionnelle • Utilisateur • Produit • Temps • Localisation • Contexte • … • Quelle valeur pour les paires non observées ? • Chaque dimension multiplie les possibilités sans multiplier les données.
  • 4.
    Système de recommandation,ranking • Ranking similaire à un système de recommandation • Requête  résultats conseillés • Requête  requêtes associées (Related Searches) • Recommandation pure • Le système n’utilise pas d’information sur le contenu • Uniquement basée sur l’évaluation implicite faite par l’utilisateur (le clic) • Recommandation en pratique • Système de recommandation pure uniquement une feature • Features extraites à partir du contenu et du contexte • Utilisation de classifieur intermédiaire (annotation manuelle, catégorisation) • Apprendre le feedback des utilisateurs, généraliser là où il n’est pas • Feature = itération longue, ranking final = itération courte
  • 5.
    Offline / online •Offline – cycle long – beaucoup de map reduce • Utilisation de logs d’événements (achats, clic) • Génération de candidats : requête  liste de résultats, système de recommandations • Extraction de caractéristiques (requête, résultat, paire requête résultats • Machine learning, à partir des clics, annotation • Construction d’une liste de recommandations à utiliser online • Online – cycle très court – C++ • Ranking online doit être rapide • Utilisation du contexte
  • 6.
    Mise en production •Dans la pratique • Black list • Contexte  online ou offline • Croissance régulière des jeux de données • Suggestions trop proches et trop éloignées ne fonctionnent pas • Evénement rares : proposer des suggestions pas toujours pertinentes ou les cacher • Offline  grande liste de recommandations • Online  réduction de la liste online
  • 7.
    Durée de vied’une implémentation • Le plus longtemps possible (3-6 ans) car • Difficulté de changer de plateformes • Documentation manquante ou orale (black list, seuils…) • Perte de savoir liée au turn over (interne / externe) • Intrication des système et architecture logicielle approximative (exemple de la normalisation) • Mais • Accroissement naturel des données • Implémentation pas forcément conçue pour tout volume de données • Accumulation de patchs, features difficile à maintenir • Nouvelle technos et algorithmes
  • 8.
    Changement de plateforme,d’algorithme • Plateforme - durée 6 mois – 1 an • Deux plateformes en parallèles pendant quelques mois • Migration progressive (1 marché, puis 2, puis…) • Parité impossible à obtenir (gain > perte mais jamais identiquement =) • Algorithme - durée 3 mois – 6 mois • Articles scientifiques – jeux de données plus propres que la réalité • La vitesse n’est pas le souci premier (la performance oui) • Testés sur des volumes petits • Code chercheur = une seule utilisation
  • 9.
    Agilité et testA/B • Amélioration quotidienne testée via des test A/B • Améliorations contraintes par l’agilité • Logging d’information • Plus on logge, moins on est limité en terme d’idées • Coût en terme de calculs : plus on logge, plus ça rame
  • 10.
    Quelques paris surl’avenir • Métrique • Rôle d’une suggestion dans le parcours utilisateur ? • Clic sur une suggestion : est-elle drôle ou pertinente ? • Appauvrissement des données dû aux suggestions • Personnalisation renforcée • Un utilisateur voit différentes suggestions même s’il fait la même requête • Apprentissage par renforcement • Randomisation des algorithmes • Utiliser l’utilisateur pour faire converger le système • MWT - http://research.microsoft.com/en-us/projects/mwt/
  • 11.
    • Questions /Réponses