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