SlideShare une entreprise Scribd logo
1  sur  25
Construire un système de
recommandation

Djamel Zouaoui – Paris DataJob 2013
20/11/2013
@DjamelOnLine

© OCTO 2013

1
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
Au menu

Les données

Les algorithmes
Les évaluations
Dans la vraie vie
3
4
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
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
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
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
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
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
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
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
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
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
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
L’effet Big Mac

19
…!

Ce que l’on a vu…

…ce que l’on a !

20
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
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
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
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
Questions

@DjamelOnLine

Rejoignez-nous sur le stand OCTO
25

Contenu connexe

Tendances

Recommender systems using collaborative filtering
Recommender systems using collaborative filteringRecommender systems using collaborative filtering
Recommender systems using collaborative filteringD Yogendra Rao
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation SystemsRobin Reni
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemAkshat Thakar
 
Recommendation Systems Basics
Recommendation Systems BasicsRecommendation Systems Basics
Recommendation Systems BasicsJarin Tasnim Khan
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender SystemsDavid Zibriczky
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender systemStanley Wang
 
Collaborative Filtering using KNN
Collaborative Filtering using KNNCollaborative Filtering using KNN
Collaborative Filtering using KNNŞeyda Hatipoğlu
 
Recommendation System Explained
Recommendation System ExplainedRecommendation System Explained
Recommendation System ExplainedCrossing Minds
 
Recommendation System
Recommendation SystemRecommendation System
Recommendation SystemAnamta Sayyed
 
Collaborative Filtering 1: User-based CF
Collaborative Filtering 1: User-based CFCollaborative Filtering 1: User-based CF
Collaborative Filtering 1: User-based CFYusuke Yamamoto
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender SystemsT212
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systemsFalitokiniaina Rabearison
 
Recommendation engines
Recommendation enginesRecommendation engines
Recommendation enginesGeorgian Micsa
 
Recommender Systems! @ASAI 2011
Recommender Systems! @ASAI 2011Recommender Systems! @ASAI 2011
Recommender Systems! @ASAI 2011Ernesto Mislej
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemSAIFUR RAHMAN
 
Survey of Recommendation Systems
Survey of Recommendation SystemsSurvey of Recommendation Systems
Survey of Recommendation Systemsyoualab
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringViet-Trung TRAN
 
Collaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemCollaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemMilind Gokhale
 

Tendances (20)

Recommender systems using collaborative filtering
Recommender systems using collaborative filteringRecommender systems using collaborative filtering
Recommender systems using collaborative filtering
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation Systems
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Recommendation Systems Basics
Recommendation Systems BasicsRecommendation Systems Basics
Recommendation Systems Basics
 
Recommender system
Recommender systemRecommender system
Recommender system
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender system
 
Collaborative Filtering using KNN
Collaborative Filtering using KNNCollaborative Filtering using KNN
Collaborative Filtering using KNN
 
Recommendation System Explained
Recommendation System ExplainedRecommendation System Explained
Recommendation System Explained
 
Recommendation System
Recommendation SystemRecommendation System
Recommendation System
 
Collaborative Filtering 1: User-based CF
Collaborative Filtering 1: User-based CFCollaborative Filtering 1: User-based CF
Collaborative Filtering 1: User-based CF
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems
 
Recommendation engines
Recommendation enginesRecommendation engines
Recommendation engines
 
Recommender Systems! @ASAI 2011
Recommender Systems! @ASAI 2011Recommender Systems! @ASAI 2011
Recommender Systems! @ASAI 2011
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
Survey of Recommendation Systems
Survey of Recommendation SystemsSurvey of Recommendation Systems
Survey of Recommendation Systems
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filtering
 
Collaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemCollaborative Filtering Recommendation System
Collaborative Filtering Recommendation System
 

En vedette

Systèmes de recommandation: applications en bibliothèque, archives et documen...
Systèmes de recommandation: applications en bibliothèque, archives et documen...Systèmes de recommandation: applications en bibliothèque, archives et documen...
Systèmes de recommandation: applications en bibliothèque, archives et documen...Ecole hôtelière de Lausanne - EHL
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendationsproksik
 
Graph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayGraph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayDataStax Academy
 
Industrie de la recommandation
Industrie de la recommandationIndustrie de la recommandation
Industrie de la recommandationolivier
 
Allociné et le marché mondialisé de la recommandation
Allociné et le marché mondialisé de la recommandationAllociné et le marché mondialisé de la recommandation
Allociné et le marché mondialisé de la recommandationDimitri Gasulla
 
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...Polytechnic University of Bari
 
Réveil en Form' - PI en système ouvert - Isabelle Daguerre
Réveil en Form' - PI en système ouvert - Isabelle DaguerreRéveil en Form' - PI en système ouvert - Isabelle Daguerre
Réveil en Form' - PI en système ouvert - Isabelle DaguerreReveilenForm
 
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)ReveilenForm
 
Ontologies, web de données et SKOS transformation
Ontologies, web de données et SKOS transformationOntologies, web de données et SKOS transformation
Ontologies, web de données et SKOS transformationcatherine roussey
 
Master Data Management : quels outils ? quelles bonnes pratiques ?
Master Data Management : quels outils ? quelles bonnes pratiques ?Master Data Management : quels outils ? quelles bonnes pratiques ?
Master Data Management : quels outils ? quelles bonnes pratiques ?Jean-Michel Franco
 
Recommendation system
Recommendation system Recommendation system
Recommendation system Vikrant Arya
 
Barometre emploi jobtransport_juillet_aout2013
Barometre emploi jobtransport_juillet_aout2013Barometre emploi jobtransport_juillet_aout2013
Barometre emploi jobtransport_juillet_aout2013emploi
 
Guide des Hébergements 2013 à Sainte-Maxime
Guide des Hébergements 2013 à Sainte-MaximeGuide des Hébergements 2013 à Sainte-Maxime
Guide des Hébergements 2013 à Sainte-MaximeSainte-Maxime Tourisme
 
2010 2011-annuaire-formations-st
2010 2011-annuaire-formations-st2010 2011-annuaire-formations-st
2010 2011-annuaire-formations-stsene junior
 
Com Communication de crise franke
Com Communication de crise frankeCom Communication de crise franke
Com Communication de crise frankeAnne Dumas
 
#Askdigidust - m-tourisme - octobre 2013
#Askdigidust - m-tourisme - octobre 2013#Askdigidust - m-tourisme - octobre 2013
#Askdigidust - m-tourisme - octobre 2013Digidust
 
Giec WG3
Giec WG3Giec WG3
Giec WG3RAC-F
 

En vedette (20)

Systèmes de recommandation: applications en bibliothèque, archives et documen...
Systèmes de recommandation: applications en bibliothèque, archives et documen...Systèmes de recommandation: applications en bibliothèque, archives et documen...
Systèmes de recommandation: applications en bibliothèque, archives et documen...
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendations
 
Graph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBayGraph Based Recommendation Systems at eBay
Graph Based Recommendation Systems at eBay
 
Industrie de la recommandation
Industrie de la recommandationIndustrie de la recommandation
Industrie de la recommandation
 
Allociné et le marché mondialisé de la recommandation
Allociné et le marché mondialisé de la recommandationAllociné et le marché mondialisé de la recommandation
Allociné et le marché mondialisé de la recommandation
 
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...
Tutorial - Recommender systems meet linked open data - ICWE 2016 - Lugano - 0...
 
Réveil en Form' - PI en système ouvert - Isabelle Daguerre
Réveil en Form' - PI en système ouvert - Isabelle DaguerreRéveil en Form' - PI en système ouvert - Isabelle Daguerre
Réveil en Form' - PI en système ouvert - Isabelle Daguerre
 
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)
Réveil en Form' - Pi en système ouvert - Robert Viseur (2/2)
 
Ontologies, web de données et SKOS transformation
Ontologies, web de données et SKOS transformationOntologies, web de données et SKOS transformation
Ontologies, web de données et SKOS transformation
 
Master Data Management : quels outils ? quelles bonnes pratiques ?
Master Data Management : quels outils ? quelles bonnes pratiques ?Master Data Management : quels outils ? quelles bonnes pratiques ?
Master Data Management : quels outils ? quelles bonnes pratiques ?
 
Recommendation system
Recommendation system Recommendation system
Recommendation system
 
Allocine
AllocineAllocine
Allocine
 
Par#13
Par#13Par#13
Par#13
 
Barometre emploi jobtransport_juillet_aout2013
Barometre emploi jobtransport_juillet_aout2013Barometre emploi jobtransport_juillet_aout2013
Barometre emploi jobtransport_juillet_aout2013
 
Guide des Hébergements 2013 à Sainte-Maxime
Guide des Hébergements 2013 à Sainte-MaximeGuide des Hébergements 2013 à Sainte-Maxime
Guide des Hébergements 2013 à Sainte-Maxime
 
2010 2011-annuaire-formations-st
2010 2011-annuaire-formations-st2010 2011-annuaire-formations-st
2010 2011-annuaire-formations-st
 
Com Communication de crise franke
Com Communication de crise frankeCom Communication de crise franke
Com Communication de crise franke
 
#Askdigidust - m-tourisme - octobre 2013
#Askdigidust - m-tourisme - octobre 2013#Askdigidust - m-tourisme - octobre 2013
#Askdigidust - m-tourisme - octobre 2013
 
Giec WG3
Giec WG3Giec WG3
Giec WG3
 
Paris En Australie pour DDP
Paris En Australie pour DDPParis En Australie pour DDP
Paris En Australie pour DDP
 

Similaire à Datajob 2013 - Construire un système de recommandation

Recommender systems
Recommender systemsRecommender systems
Recommender systemsrecsysfr
 
Présentation Inter Ligere Icc2009
Présentation Inter Ligere Icc2009Présentation Inter Ligere Icc2009
Présentation Inter Ligere Icc2009Inter-Ligere
 
Movie Recommendation system
Movie Recommendation systemMovie Recommendation system
Movie Recommendation systemSakher BELOUADAH
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning Novagen Conseil
 
Introduction à la Data Science l data business
Introduction à la Data Science l data businessIntroduction à la Data Science l data business
Introduction à la Data Science l data businessVincent de Stoecklin
 
Introduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal LyonIntroduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal LyonOlivier Lorrain
 
PFC L3 2018.pptx
PFC L3 2018.pptxPFC L3 2018.pptx
PFC L3 2018.pptxNAbderrahim
 
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...Bilel Moulahi
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?Marc Bojoly
 
CHAP 1 PRÉSENTATION GENERALE.pdf
CHAP 1 PRÉSENTATION GENERALE.pdfCHAP 1 PRÉSENTATION GENERALE.pdf
CHAP 1 PRÉSENTATION GENERALE.pdfamine17157
 
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...Web Analytics : L’importance de la collecte et de l’analyse de données pour v...
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...AQT-presentations
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerMajdi Hannachi
 
i.a et droit - données d'apprentissage - village de la legaltech
i.a et droit - données d'apprentissage - village de la legaltechi.a et droit - données d'apprentissage - village de la legaltech
i.a et droit - données d'apprentissage - village de la legaltechLaurane Coudriet
 
Main recsys factorisation
Main recsys factorisationMain recsys factorisation
Main recsys factorisationStéphane Canu
 
La clé du succès d'un site web : l'analyse comportementale de l'utilisateur
La clé du succès d'un site web : l'analyse comportementale de l'utilisateurLa clé du succès d'un site web : l'analyse comportementale de l'utilisateur
La clé du succès d'un site web : l'analyse comportementale de l'utilisateurValtech Canada
 
Analyse comportemental_2010
Analyse comportemental_2010Analyse comportemental_2010
Analyse comportemental_2010guest5e563bc
 
Introduction aux systèmes de recommandation.pptx
Introduction aux systèmes  de recommandation.pptxIntroduction aux systèmes  de recommandation.pptx
Introduction aux systèmes de recommandation.pptxbahija babzine
 
360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnéesSebastien Goiffon
 
DeciLogic, les modélisations décisionnelles
DeciLogic, les modélisations décisionnellesDeciLogic, les modélisations décisionnelles
DeciLogic, les modélisations décisionnellesEric Mauvais
 

Similaire à Datajob 2013 - Construire un système de recommandation (20)

presentationdecide.pptx
presentationdecide.pptxpresentationdecide.pptx
presentationdecide.pptx
 
Recommender systems
Recommender systemsRecommender systems
Recommender systems
 
Présentation Inter Ligere Icc2009
Présentation Inter Ligere Icc2009Présentation Inter Ligere Icc2009
Présentation Inter Ligere Icc2009
 
Movie Recommendation system
Movie Recommendation systemMovie Recommendation system
Movie Recommendation system
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning
 
Introduction à la Data Science l data business
Introduction à la Data Science l data businessIntroduction à la Data Science l data business
Introduction à la Data Science l data business
 
Introduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal LyonIntroduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal Lyon
 
PFC L3 2018.pptx
PFC L3 2018.pptxPFC L3 2018.pptx
PFC L3 2018.pptx
 
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...
Définition et évaluation de modèles d'agrégation pour l'estimation de la pert...
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?
 
CHAP 1 PRÉSENTATION GENERALE.pdf
CHAP 1 PRÉSENTATION GENERALE.pdfCHAP 1 PRÉSENTATION GENERALE.pdf
CHAP 1 PRÉSENTATION GENERALE.pdf
 
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...Web Analytics : L’importance de la collecte et de l’analyse de données pour v...
Web Analytics : L’importance de la collecte et de l’analyse de données pour v...
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMiner
 
i.a et droit - données d'apprentissage - village de la legaltech
i.a et droit - données d'apprentissage - village de la legaltechi.a et droit - données d'apprentissage - village de la legaltech
i.a et droit - données d'apprentissage - village de la legaltech
 
Main recsys factorisation
Main recsys factorisationMain recsys factorisation
Main recsys factorisation
 
La clé du succès d'un site web : l'analyse comportementale de l'utilisateur
La clé du succès d'un site web : l'analyse comportementale de l'utilisateurLa clé du succès d'un site web : l'analyse comportementale de l'utilisateur
La clé du succès d'un site web : l'analyse comportementale de l'utilisateur
 
Analyse comportemental_2010
Analyse comportemental_2010Analyse comportemental_2010
Analyse comportemental_2010
 
Introduction aux systèmes de recommandation.pptx
Introduction aux systèmes  de recommandation.pptxIntroduction aux systèmes  de recommandation.pptx
Introduction aux systèmes de recommandation.pptx
 
360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées
 
DeciLogic, les modélisations décisionnelles
DeciLogic, les modélisations décisionnellesDeciLogic, les modélisations décisionnelles
DeciLogic, les modélisations décisionnelles
 

Plus de Djamel Zouaoui

Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Djamel Zouaoui
 
Usi 2013 - NoSql les defis à relever
Usi 2013 -  NoSql les defis à releverUsi 2013 -  NoSql les defis à relever
Usi 2013 - NoSql les defis à releverDjamel Zouaoui
 
ParisDataGeek - L amour est dans le graphe
ParisDataGeek - L amour est dans le grapheParisDataGeek - L amour est dans le graphe
ParisDataGeek - L amour est dans le grapheDjamel Zouaoui
 
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Djamel Zouaoui
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIDjamel Zouaoui
 
Retour d'expérience TechLead
Retour d'expérience TechLeadRetour d'expérience TechLead
Retour d'expérience TechLeadDjamel Zouaoui
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésDjamel Zouaoui
 
USI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueUSI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueDjamel Zouaoui
 
USI 2011 - De l offshore qui fonctionne !
USI 2011 - De l offshore qui fonctionne !USI 2011 - De l offshore qui fonctionne !
USI 2011 - De l offshore qui fonctionne !Djamel Zouaoui
 

Plus de Djamel Zouaoui (9)

Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming
 
Usi 2013 - NoSql les defis à relever
Usi 2013 -  NoSql les defis à releverUsi 2013 -  NoSql les defis à relever
Usi 2013 - NoSql les defis à relever
 
ParisDataGeek - L amour est dans le graphe
ParisDataGeek - L amour est dans le grapheParisDataGeek - L amour est dans le graphe
ParisDataGeek - L amour est dans le graphe
 
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
Microsoft Tech days 2007 - Industrialisation des développements : Retours d'e...
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SI
 
Retour d'expérience TechLead
Retour d'expérience TechLeadRetour d'expérience TechLead
Retour d'expérience TechLead
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
 
USI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueUSI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continue
 
USI 2011 - De l offshore qui fonctionne !
USI 2011 - De l offshore qui fonctionne !USI 2011 - De l offshore qui fonctionne !
USI 2011 - De l offshore qui fonctionne !
 

Datajob 2013 - Construire un système de recommandation

  • 1. Construire un système de recommandation Djamel Zouaoui – Paris DataJob 2013 20/11/2013 @DjamelOnLine © OCTO 2013 1
  • 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. Au menu Les données Les algorithmes Les évaluations Dans la vraie vie 3
  • 4. 4
  • 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. 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
  • 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. 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. 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. 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. 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. 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. 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
  • 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. 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
  • 20. …! Ce que l’on a vu… …ce que l’on a ! 20
  • 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. 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. 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. 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