Les limitations et nouveaux challenges des Systèmes de Recommandation

Shana Elbaz

Shana Elbaz

8 min

Les systèmes de recommandation de produit sont omniprésents sur la toile. Instaurés par les géants du numérique (Google, Amazon, Facebook, Apple…), ils sont aujourd’hui utilisés par la plupart des marketplaces et ont vocation à augmenter la satisfaction de leurs clients tout en accroissant le chiffre d’affaires réalisé.

Mais quelles en sont les limitations et quels sont les nouveaux challenges à relever ?

Contexte

Suite à 10 années d’expérience projet IT, notamment dans le domaine de la Vente Omnicanale (voir mon parcours sur LinkedIn), j’ai eu l’occasion de m’intéresser à la problématique des propositions de produits personnalisées et j’ai approfondi ce sujet via les Systèmes de Recommandation lors de mon cursus continu « Data Scientist » chez DataScientest.com, pour en connaître les principales limites mais aussi les challenges à venir.

Auparavant, il s’agissait simplement de mettre en avant les « Best-Sellers » sur les sites marchands, puis c’est par l’introduction de ces systèmes que l’on a pu personnaliser l’approche en proposant des produits particulièrement adaptés au profil de chaque client, et de leur parcours de navigation. L’objectif étant donc à la fois daugmenter la satisfaction client et le chiffre d’affaires réalisé.

Il s’agit ainsi de proposer les produits pour lesquels la probabilité de convertir en achat est maximale, et de le faire au bon moment et au bon endroit sur l’écran lors de la navigation. Cela peut par ailleurs s’inscrire dans une démarche marketing plus globale (par exemple, marketing STP : Segmentation, Targeting, Positioning), notamment pour les clients qui sont déjà fidélisés.

Projet

Le projet consiste à mettre en place un système de recommandation optimal, qui pourrait être intégré dans une application web, afin d’effectuer des propositions personnalisées de Films sur base des notations laissées par les utilisateurs. On se positionne pour cela sur les données mises à disposition par le site Imdb.com, plus grand recueil d’œuvres cinématographiques sur la toile.

On se donne enfin pour objectif d’élaborer des recommandations plus avancées, en prenant en compte le contexte par exemple, ou le comportement perçu des utilisateurs, en plus de leurs notations à proprement dit.

Collecte de données et Analyse des corrélations

Le jeu de données mis à disposition par le site Imdb.com concerne des films et des utilisateurs internationaux, en version anglais/américain, et les données sont disponibles entre 1995 et 2014. Elles ont été croisées avec les principales données de contenu concernant les Films.

Les variables de contenu sur les Films qui ont été retenues pour l’analyse de corrélation avec la variable cible « rating », reliée directement à « averageRating », sont les suivantes :

  • numVotes : Nombre de votes film
  • startYear : Année de parution film
  • runtimeMinutes : Durée en minutes film
  • Action/Adventure/Animation… : Genres film (3 principaux genres par film)

Les principales corrélations identifiées entre les variables sont malgré tout assez faibles (< 0,33). Ainsi, on s’orientera par la suite lors de la modélisation vers une approche « Collaborative Filtering » plutôt que « Content-Based ».

Par ailleurs, la répartition de la variable cible « rating » est assez concentrée autour de la moyenne des notes utilisateurs (moyenne à 6,9/10, avec 50% des notes entre 6/10 et 8/10, puis au-delà des 2 quartiles centraux une répartition assez hétérogène entre les notes 1/10 et 10/10) :

Filtrage avancé, Data mining et Visualisation 

Parmi plus de 10 millions de notations présentes, on choisit de sélectionner les notations les plus récentes pour éviter la dérive temporelle, tout en gardant un volume de données suffisant pour cette problématique (environ 200K notes, ce qui est suffisant pour éviter l’overfitting).

Le jeu de données ainsi récolté est malgré tout très éparse (“sparcity” = 99 %, soit 1% de notations présentes dans la matrice utilisateur/film). En effet, la plupart des utilisateurs notent un nombre réduit de film sur la totalité disponible, ce qui rend ensuite l’analyse de similitudes et les prédictions très délicates. Après plusieurs expérimentations, on met en place un filtrage qui garantit :

  • Au moins 15 votes par utilisateur dans le jeu de données
  • Au moins 100 votes par film dans le jeu de données

Grâce à ce filtrage avancé (suppression des outliers en quelque sorte, ou communément appelés “gray-sheep”), la dispersion du jeu de données a été sensiblement améliorée (“sparcity” = 92,3 %, soit 7,7% de notations présentes dans la matrice) ce qui améliorera les prédictions à suivre.

Enfin, en dernier lieu dans cette phase d’approfondissement du jeu de données, on envisage deux nouvelles démarches afin de pouvoir améliorer encore la qualité des recommandations :

  • Analyser le contexte, en réalisant du Sentiment Analysis via les commentaires laissés en même temps que la notation client pour un film
  • Analyser les comportements, en réalisant du Feature Engineering et du Clustering afin d’effectuer une segmentation client appropriée

La première démarche nécessite un WebScraping avancé sur le site Imdb.com car les commentaires associés aux notes ne sont pas présents dans les datasets standards mis en ligne. La seconde démarche consiste quant à elle à construire tout d’abord 3 nouvelles variables caractérisant le comportement des clients, à savoir :

  • avg_cust : Moyenne de notation de chaque client
  • std_cust : Écart-type de notation de chaque client
  • nbVotes : Nombre de notation de chaque client

On réalise alors à partir de ces 3 variables un Clustering client en 4 groupes (le plus approprié pour l’interprétation des comportements clients), ce qui permet de visualiser les Clusters suivants en 3D :

On distingue donc 3 principaux types de comportements clients (et un dernier un peu plus restreint que les 3 autres en nombre de clients représentés), à savoir :

  • En Vert (27 % des clients) : Des clients avec une moyenne de notation très éparpillée (entre 4 et 8), et caractérisés par une dispersion des notes la plus élevée (écart-type important).
  • En Bleu (28 % des clients) : Des clients caractérisés par une moyenne de notation plus élevée que la normale (>8).
  • En Rouge (40 % des clients) : Des clients plus communs caractérisés avec une moyenne de notation concentrée entre 6 et 8, et une dispersion relativement faible des notes.
  • En Jaune (5% des clients) : Une extension du précédents groupe (rouge) de clients plus communs, mais moins nombreux car caractérisés par un nombre de votes plus important.

On analysera ensuite l’impact de cette segmentation client sur les recommandations réalisées.

Modélisations des « Recommender Systems » 

En vue d’effectuer des recommandations personnalisées, on met en place un système reposant sur le principe du “Collaborative-Filtering”. En synthèse, pour la démarche “User-based CF” par exemple, il s’agit d’analyser les similitudes entre les utilisateurs à travers les notations qu’ils ont fournies. Et pour un utilisateur n’ayant pas donné son avis sur un Film, on pourra prédire au mieux la notation qu’il donnerait, en extrapolant les notations que ce Film a reçu de la part d’utilisateurs qui lui sont le plus similaires. D’où la notion de collaboration, car plus les liens sont nombreux et précis entre les utilisateurs et les produits, plus les prédictions seront aisées à réaliser.

A noter que la démarche inverse existe, sur base des similitudes produits plutôt que des similitudes utilisateurs, toujours sur le même principe de collaboration via les notations (“Item-based CF”).

Enfin, une autre approche plus abstraite est possible sur ce même principe collaboratif. Elle repose sur la décomposition de la matrice des notations utilisateur/produit en deux matrices de plus petites dimensions, à savoir une matrice utilisateur et une matrice produit avec l’introduction de “facteurs latents” (Matrix Factorization). Les facteurs latents (leurs nombres représentent un hyperparamètre optimisable du modèle) vont traduire dans la première matrice les similitudes entre les utilisateurs et dans la seconde matrice les similitudes entre les produits, le tout à travers les notations enregistrées. Ces facteurs sont purement abstraits et déterminés par le jeu de données, mais on peut s’imaginer qu’ils caractérisent les comportements des clients d’une part, et le contexte inhérent aux produits d’autre part.

Une des décompositions les plus connues à cet effet est la décomposition SVD (Singular Value Decomposition). Des approches hybrides entre “Collaborative Filtering” et “Content-Based” sont alors envisageables, en ajoutant dans les modèles en plus des facteurs latents qui seront déterminés implicitement par la donnée, d’autres variables pertinentes de contenu sur les produits ou sur les utilisateurs, toujours en vue d’améliorer les prédictions (par exemple, certaines données de navigation qui peuvent aussi traduire des comportements différents des utilisateurs).

Différentes approches ont été testées durant le projet pour améliorer les prédictions des recommandations, en voici les résultats finaux pour les différents modèles optimisés (voir les notebooks associés sur mon répertoire GitHub).

Pour une notation ramenée à une échelle comprise entre 0 et 5, l’erreur de prédiction la plus faible est obtenue pour le modèle “SVDpp” (RMSE = 0,80). Il s’agit d’une approche Matrix Factorisation de type SVD, effectuée avec une descente de gradient stochastique (SGD). Ce modèle plus complexe que le SVD classique prend en compte en plus de la notation explicite de l’utilisateur, une notation implicite (=> c’est-à-dire le fait qu’un utilisateur ait donné une note à un produit, indépendamment de cette note).

Les principaux hyperparamètres pour l’optimisation de ce modèle sont le nombre de facteurs latents, le nombre d’époques calculées, les paramètres d’initialisation des vecteurs utilisateurs et produits, les taux d’apprentissage ainsi que les termes de régularisation.

 

Limitations et ouvertures à d’autres approches

Le travail de Feature Engineering / Clustering Client effectué lors de l’exploration approfondie des données a permis d’apporter une visualisation intéressante des clients, mais l’impact espéré pour mieux déceler les comportements associés à la notation et ainsi mieux prédire les films à recommander, n’a pas été avéré (pas d’amélioration de l’erreur de prédiction).

Ce n’est pas si étonnant après réflexion, car les nouvelles variables construites pour ce Clustering découlent de la notation utilisateur, notation qui a déjà été considérée pour déterminer les facteurs latents définis par le modèle SVD (bien que ces facteurs restent abstraits, cela se recoupe in fine).

Une autre approche pour ce Clustering consiste bien souvent à effectuer un profilage des utilisateurs via les données de navigation (sous réserve via le RGPD de respecter la transparence des données utilisées, d’assurer leur sécurité, et d’avoir obtenu un consentement clair des utilisateurs à ce propos). Mais pour cause, ces données sensibles sur les utilisateurs n’ont pas été partagées par le site Imdb.com dans le cadre du projet.

A noter aussi que pour les clients fidélisés sur les sites marchands, il peut être intéressant de croiser les recommandations avec les données d’une segmentation RFM (Récence / Fréquence / Montant), qui permet ainsi d’y associer les différents comportements d’achat.

Enfin, la démarche d’analyse de sentiment ou de contexte permet quant à elle de mieux déceler les tendances des nouveaux produits sur les réseaux, ce qui est assez intéressant pour pallier au problème du “Cold-Start” des systèmes de recommandation (les nouveaux produits ayant très peu de notations encore, le système de recommandation reste biaisé le temps d’accumuler suffisamment de données pour ces produits).

Conclusion

Les systèmes de recommandation permettent effectivement de personnaliser l’approche client sur les différentes marketplaces, mais leur mise en place pour apporter un réel gain et une réelle satisfaction au quotidien fait face à certaines limitations :

  • Le manque de données (“Sparcity”) : plus précisément la problématique du “Cold Start” pour les nouveaux clients/produits, ou du “Gray Sheep” pour les clients/produits isolés
  • Le manque de fraîcheur des données (“Dérive temporelle”) : il faut ré-entraîner les systèmes en ré-intégrant les nouveaux produits/clients, avec des informations contextuelles à jour
  • Le manque de diversité des données : selon l’algorithme et les données utilisées, il peut en résulter un appauvrissement de l’offre client, cannibalisée par les “meilleurs produits”

Le triptyque “Quantité / Qualité / Diversité de la donnée reste la clé de la performance de ces systèmes, aussi avancés soient-ils (systèmes hybrides ou non, comme le montre mon projet, une récolte des données très adéquate est cruciale pour améliorer les performances). 

A ce propos, il est à noter que le délai accordé par la CNIL pour mise en conformité des nouvelles règles RGPD (cookies et autres traceurs) a pris fin le 31 mars 2021. Cela signifie que les marketplaces ont dû évoluer en ce sens, ce qui peut engendrer une remise à niveau de leurs systèmes de recommandation en termes de stratégie et de données à utiliser.

Au-delà de la donnée, il s’agit surtout de pouvoir effectuer une meilleure fidélisation des clients pour toutes les entreprises présentes sur le canal Web, tout en y développant leur identité propre, pour que les utilisateurs puissent accepter en toute transparence le partage des données qui mènera à la satisfaction de leurs achats.

Remerciements

Je remercie toute l’équipe pédagogique “DataScientest.com” de m’avoir laissé entreprendre ce nouveau projet pendant ma formation continue. Cela a été très bénéfique de pouvoir réaliser un projet Data “grandeur nature” en lien avec mon expertise professionnelle dans la Vente Omnicanale.

La formation Data Scientist est à la fois très exhaustive, très professionnalisante, mais aussi très flexible dans son formalisme (cours à distance + coaching individuel) pour pouvoir s’adapter au mieux à chaque profil.