Nous avons tous suggéré des films à des amis qui, de leur côté, ne les ont pas particulièrement appréciés. On en conclut d'ailleurs souvent qu’on a tout simplement des goûts différents en matière de cinéma… Car il n'est jamais facile de recommander quoi que ce soit - qu'il s'agisse de livres, de films, de vêtements ou d'équipements sportifs, plus particulièrement lorsque vous ne connaissez presque rien de la personne.

C'est le problème que rencontrent les systèmes de recommandation en ligne basés sur des algorithmes. Netflix, par exemple, compte sur son propre système de recommandation pour proposer de nouveaux films à chaque utilisateur. La plupart du temps, les programmes recommandés correspondent à ce que la personne a tendance à regarder. Mais ce n'est pas toujours le cas, comme le suggère ce commentaire laissé sur un article de blog de Netflix il y a quelques années :

Chat on pleasing everyone

Les avis sont parfois même plus tranchés :  

Chat on pleasing everyone

Une petite recherche Internet suffit pour se rendre compte que YouTubeGoodreads et bien d'autres rencontrent le même problème.

Alors que se passe-t-il ? S'agit-il simplement de « trolling », d’utilisateurs cherchant à lancer des débats sur des sujets polémiques ? C'est possible. Mais y a peut-être une autre explication :

On ne peut pas plaire à tout le monde

Les systèmes de recommandation de produits tels que ceux utilisés par Netflix, Goodreads ou YouTube sont des logiciels complexes capables de générer des recommandations en temps réel pour des millions de personnes, dans des centaines de pays et tous les jours. Ces systèmes sont conçus pour proposer des recommandations individuelles à chaque utilisateur en fonction de leur profil, qu'il/elle possède ou non un compte.

Ces derniers fonctionnent très bien la plupart du temps et pour la plupart des individus (comme mentionné plus tard dans cet article). Cependant, une petite faille pour quelques personnes peut rapidement devenir une grande source de frustration.

Angry Monkey

L'origine du problème

Un des problèmes potentiels réside dans la manière dont la performance est mesurée. Lorsqu'on suggère un film à un ami, l'objectif est clair : faire la meilleure recommandation possible. L'objectif des systèmes de recommandation en ligne est lui, plus flou. Bien que les recommandations soient proposées au niveau individuel, la performance est mesurée au niveau de l'intégralité des utilisateurs - et c'est là que les choses se compliquent. Prenons par exemple ces deux objectifs différents :

  • offrir le meilleur taux de performance moyen possible (en comptant tous les utilisateurs), ou
  • offrir la performance la moins pire possible. Dans ce cas, personne ne reçoit de très mauvaises recommandations.

Dans l'idéal, le système de recommandation fonctionne bien pour tous les utilisateurs. Malheureusement, cette exigence n’est pas réaliste. Il s'agit donc souvent de trouver le meilleur compromis entre ces deux exemples, avec le risque que certains utilisateurs reçoivent de mauvaises recommandations. Yves Raimond et Justin Basilico de chez Netflix le disent :

« L'objectif est de créer des algorithmes de recommandation qui fonctionnent pour tous nos membres, où qu'ils soient et dans toutes les langues. Mais avec un si grand nombre de membres, de pays et de langues, il faudrait tout d'abord pouvoir repérer lorsqu'un algorithme ne fonctionne pas correctement pour un sous-groupe d'utilisateurs, ce qui pose réellement problème aujourd'hui. »

Autrement dit, lorsque le système ne fonctionne pas de façon optimale pour certains utilisateurs, encore faut-il savoir pourquoi et qui cela affecte. Une problématique intéressante, qu’il est nécessaire d’approfondir pour mieux comprendre.

Zoom sur le fonctionnement des systèmes de recommandation

Les algorithmes utilisés pour recommander des produits sont souvent basés sur les données d'interaction entre les utilisateurs et les articles. Ces données d'interaction peuvent être présentées sous la forme d'une matrice :

Recommendation Matrix

 

Les utilisateurs sont répertoriés dans les lignes de la matrice et les produits dans les colonnes. Une boutique en ligne avec un catalogue de 1000 produits et 100 000 visiteurs uniques au cours du dernier mois sera donc représentée par une matrice mesurant 100 000 x 1000 (cet exemple n'est peut-être pas le plus représentatif, cette matrice étant volumineuse et difficile à traiter, mais une précision parfaite n’est pas indispensable pour illustrer notre propos).

Chaque fois qu'un utilisateur interagit avec un produit (en consultant une page produit ou en regardant/notant un film), la cellule correspondante de la matrice génère un score, par exemple « 1 » pour toute interaction avec le produit. Lorsqu'aucune interaction n'a lieu entre un utilisateur et un article, la cellule correspondante de la matrice n'affiche aucune valeur.

Lorsqu'ils visitent des boutiques en ligne, la plupart des utilisateurs n'interagissent qu'avec un ou deux produits du site. La plupart des lignes n'afficheront donc qu'une cellule avec une valeur (dans ce cas, « 1 »). Les données d'interaction sont alors sporadiques, la plupart des cellules de la matrice étant vides. Pour résoudre le problème, l'algorithme de recommandation de produits tente de donner une valeur à ces cellules vides. Autrement dit :

« Quel score rui un utilisateur u donnerait-il à un produit i ? »

Une question intéressante, puisque la valeur rui prédite indique la propension d'un utilisateur u à interagir avec un produit i. Plus la propension à interagir est importante, plus la valeur est grande - et vice-versa. Il s'agira donc, pour proposer dix recommandations de produits à un utilisateur donné, de trouver les dix produits (colonnes) affichant la plus grande valeur rui prédite.

Mais comment les valeurs rui manquantes sont-elles calculées ?

L'approche adoptée par les systèmes de recommandation, qui consiste à prédire les actions d'un utilisateur à partir des comportements de tous les visiteurs, s'appelle le filtrage collaboratif. Puisqu'il s'agit plus précisément de prédire les valeurs manquantes d'une matrice « creuse », on parle aussi de remplissage de la matrice.

Le filtrage collaboratif n'est toutefois pas la seule solution au problème. D'autres techniques (comme le filtrage par le contenu) et défis liés au type de données traité (par exemple les différences de popularité entre les produits, l'importance de la page de contexte sur laquelle la recommandation est donnée) méritent aussi d'être approfondis - et seront abordés dans nos prochains articles de blog.

Ces méthodes reposent sur un nombre de paramètres internes optimisés (ou formés) à partir des données d'interaction de la matrice (valeurs rui). Le processus de formation permet d'optimiser le résultat en fonction d'un but prédéfini, ou indicateur, comme par exemple :

Ces indicateurs ont toutefois tous pour objectif d'optimiser la performance moyenne du système. Les boutiques en ligne mesurent traditionnellement le taux de conversion (le pourcentage de visiteurs convertis en acheteurs), qui est un indicateur moyen pour tout le site. Lorsque la plupart des visiteurs reçoivent les bonnes recommandations, le résultat est jugé « suffisamment bon » car il aura potentiellement un impact positif sur la conversion. Mais qu'en est-il des visiteurs qui n'apprécient pas les recommandations qui leur sont proposées ?

Supposons qu'un système ait été optimisé pour obtenir une bonne performance moyenne, utilisant pour indicateur l'erreur quadratique moyenne (RMSE). La performance du système, et par conséquent la qualité perçue des recommandations, sera différente à chaque utilisateur. Il faudrait donc, pour former le système et obtenir de bons résultats pour tous :

  • repérer les utilisateurs pour lesquels le système ne fonctionne pas correctement.
  • concevoir un nouvel indicateur pour que le système n'envoie plus de mauvaises recommandations à ce groupe d'utilisateurs.

Ces deux étapes sont difficiles à automatiser, puisqu'il est peu probable que les utilisateurs pour lesquels le système ne fonctionne pas bien fassent partie d'un groupe défini (comme par exemple « tous les utilisateurs d'Amérique du Sud »). Ces difficultés mises à part, il faudrait ensuite optimiser à nouveau le système, en intégrant cette fois le nouvel indicateur. Et le résultat serait sûrement le suivant : le système ne fonctionnerait pas très bien pour un autre sous-groupe d'utilisateurs. Même répétée indéfiniment, la technique ne permettrait jamais de résoudre complètement le problème.

 

Exploration vs. Exploitation

Beatiful landscape

Il faut également prendre en considération le dilemme exploration vs. exploitation lorsqu’on évalue l'efficacité des recommandations individuelles.

Les systèmes de recommandation émettent en quelque sorte des hypothèses sur les préférences des utilisateurs, comme par exemple « Je parie que Bob aimera X ». Si Bob achète/regarde/clique sur la suggestion X, l'hypothèse du système de recommandation est validée. Dans le cas contraire, il faudra peut-être prédire de nouvelles préférences.

Un système de recommandation qui n'émet aucune nouvelle hypothèse sur les préférences de Bob applique un principe d'exploitation. Ce dernier exploite les informations qu'il possède déjà sur Bob (en utilisant les connaissances disponibles pour prédire la valeur manquante rui de façon éclairée). Avec ce principe, Bob ne sera pas surpris par les recommandations qui lui sont proposées. S'il regarde beaucoup de films d'actions, ses recommandations resteront dans cette catégorie.

Woman in a market cartoon

Par opposition, un système proposant de nouvelles hypothèses plus risquées applique un principe d'exploration (les prédictions pour la valeur rui manquante sont osées, voire parfois aléatoires). Le système est par exemple susceptible de recommander des comédies romantiques à Bob, bien qu'il n'ait toujours regardé que des films d'action. Après tout, Bob aime peut-être à la fois les films d'action et les comédies romantiques. Le principe d'exploration est un facteur clé car il permet d’approfondir et de découvrir les préférences de chaque utilisateur.

Pour être utile, un système de recommandation doit proposer un juste équilibre entre l'exploitation et l'exploration. Un système trop axé sur l'exploitation sera trop prévisible et les utilisateurs seront frustrés de ne pas découvrir de nouvelles choses. À l'inverse, un système trop centré sur l'exploration peut aussi donner l'impression qu'il ne fonctionne pas du tout. Et comme si trouver le bon équilibre n'était déjà pas assez difficile, tout se complique lorsque la dose exploitation/exploration change à chaque utilisateur...

La solution : des utilisateurs aux commandes

Nous avons jusque-là évoqué deux obstacles en apparence insurmontables à la création d'un système de recommandation idéal et 100 % automatique. Et si la solution n'était pas dans le « 100 % automatique », mais dans un système laissant les utilisateurs aux commandes ?

C'est ce que proposent plusieurs widgets : automatiques par défaut, les recommandations reçues sont modifiées de plusieurs façons par l'utilisateur lui-même, qui applique par exemple des filtres à certains éléments (prix, marque ou couleur).

The Smart Menu

En théorie, cette technique à mi-chemin entre la barre de recherche (une opération manuelle) et le flux de produits personnalisé (une opération automatique) permet de gagner sur les deux tableaux. Ces types de widgets sont particulièrement efficaces au sein d’environnements mobiles, avec de petits écrans et une faible bande passante.

Avec des recommandations 100 % automatiques, les utilisateurs n'ont pas la possibilité d'informer le système, ce qui nourrit un sentiment de frustration. Donner la possibilité aux utilisateurs de modifier les recommandations en toute simplicité permet donc d'améliorer le taux de satisfaction.

Autre avantage d'un système qui n'est pas 100 % automatique et qui laisse les consommateurs aux commandes : le volume supérieur de données d'interaction collectées. Les informations sont aussi bien plus riches que de simples visites de pages produits parce qu’elles fournissent des retours explicites sur la pertinence des recommandations. Le volume et la qualité des données collectées contribue grandement à l'amélioration des recommandations automatiques.

Conclusion

Les systèmes de recommandation entièrement automatisés sont peu susceptibles de toujours proposer des recommandations utiles. Il est en effet difficile de créer un algorithme basé sur les données qui fonctionne dans tous les contextes. Les systèmes qui servent un grand nombre d'individus ou proposent de nombreux produits sont donc plus susceptibles d'être perçus comme « non pertinents » ou « inutiles » par certains utilisateurs, même lorsque leur performance globale est bonne et qu'ils apportent de la valeur aux sites qui les utilisent.

Il faut aussi comprendre que les utilisateurs sont plus enclins à interagir avec les recommandations lorsqu'ils peuvent sélectionner des contenus, appliquer des filtres ou éliminer les produits qui ne les intéressent pas. Donner davantage de contrôle aux consommateurs est un bon moyen d'améliorer l'utilité des recommandations, mais aussi d'obtenir davantage d'informations sur les préférences de chacun.

Commentez, Likez, Partagez

Découvrez notre plateforme
en action

Demandez une démo