De la difficulté d’être agréable à chacun – TasteHit

Sur le blog de sa société, Christophe Burger de la société TasteHit, qui développe un moteur de recommandation de produits, revient sur les limites des moteurs de recommandation. Il est difficile de plaire à tout le monde, rappelle le développeur. Si les systèmes de recommandations fonctionnent bien pour la plupart des gens et la plupart du temps, ils ne sont pas parfaits, notamment pour certains utilisateurs. Le problème est lié à la façon même dont on mesure la performance, estime-t-il. “Lorsque vous proposez un film à un ami, votre objectif est clair : faire la meilleure recommandation possible pour votre ami. L’objectif
pour les systèmes de recommandation en ligne est moins clair : même si
les recommandations sont servis individuellement, la performance est
mesurée à travers tous les utilisateurs, et cela rend les choses plus
compliquées.” Cela nécessite donc de choisir l’objectif : avoir la meilleure performance moyenne possible sur tous les utilisateurs, ou avoir la performance moyenne la moins pire (afin qu’aucun utilisateur n’ait de mauvaise recommandation…)… Le problème est de construire des systèmes de recommandations qui fonctionnent pour tous les utilisateurs, quelque soit leur langue ou leur pays d’origine (et donc les différents produits auxquels ils sont confrontés). Or, comment savoir quand un algorithme devient sous-optimal pour un sous-ensemble de membres ? “En d’autres termes, le système peut très mal fonctionner pour certains utilisateurs, mais il est difficile de savoir pour quels utilisateurs c’est le cas et pourquoi”. 

Christophe Burger explique un peu comment se fait l’appariement. Les algorithmes qui recommandent des produits comptent les données d’interaction entre les utilisateurs et les produits. Pour simplifier, les utilisateurs forment les lignes d’une matrice et les produits les colonnes. Un magasin en ligne qui proposerait 1000 produits et aurait 100 000 visiteurs uniques par mois pourrait être représenté par une matrice de 100 000 x 1000. Chaque fois qu’un visiteur interagit avec le produit, la case correspondante se voit attribuer un score. La plupart des visiteurs d’un magasin de ce type interagissent avec un ou deux produits et la distribution des visites ressemble plutôt à un court pic qu’à une longue traîne. Dans ce cas, la matrice d’interaction avec la plupart des produits est inconnu et l’algorithme de recommandation va devoir deviner des valeurs inconnues. Pour prédire les données manquantes, plusieurs techniques sont utilisables : on peut passer par le filtrage collaboratif, qui consiste à prédire le comportement des utilisateurs depuis les interactions de tous les autres utilisateurs, ou utiliser un filtrage basé sur le contenu, qui va plutôt indiquer des contenus proches de celui avec lequel l’utilisateur a interagit… ou encore la technique de “déviation de la racine de la moyenne des carrés” (méthode RMSE), qui permet de comparer des valeurs théoriques et des valeurs observées…   Ces méthodes visent à optimiser un résultat qui peut être le nombre de clics de recommandation, le nombre de produits ajouté au panier avec un clic de recommandation, etc. Mesurer la performance du système nécessite de comprendre pour quels utilisateurs il fonctionne mal et trouver un système pour empêcher les mauvaises performances sur ce groupe d’utilisateur. Le problème est qu’il est difficile de circonvenir ce groupe d’utilisateur pour lequel le système marche mal, notamment du fait qu’il soit mal défini (ce ne sont pas tous les utilisateurs provenant d’Amérique du Sud par exemple). Quand bien même on arriverait à repérer ces utilisateurs et à résoudre ce problème, le problème se répéterait à nouveau sur un autre sous-ensemble d’utilisateurs, etc. 

Une autre considération à prendre en compte, explique le spécialiste, c’est la différence entre l’exploration et l’exploitation. Les systèmes de recommandation peuvent faire des hypothèses, du type “je parie que Bob va aimer le produit X”. Si bob regarde/achète/clic sur le produit X, alors l’hypothèse de recommandation est confirmée, sinon, il faut faire une autre hypothèse. En mode exploitation, le système exploite la connaissance qu’il a déjà sur Bob pour faire une recommandation. Cela propose peu de surprise : si Bob aime les films d’actions, on va lui en recommander d’autres. En mode exploration, le système va plutôt avoir tendance à faire des hypothèses risquées, parfois aléatoires. Le système va ainsi recommander à Bob une romance, ce qui sera peut-être l’occasion de découvrir d’autres goûts pour cet utilisateur. Tout l’enjeu est de trouver un équilibre délicat entre l’exploration et l’exploitation, entre un système trop prévisible et un système qui semble aléatoire. Déterminer cet équilibre est d’autant plus difficile que chaque utilisateur aurait certainement tendance à régler cet équilibre différemment. 

Pour Christophe Burger, la solution consiste à mettre l’utilisateur plus en contrôle. C’est l’une des fonctionnalités que propose d’ailleurs TasteHit, explique le développeur reprenant sa casquette de commercial. Dans les systèmes 100 % automatiques, il n’y a pas moyen pour l’utilisateur de dire que le système se trompe, comme l’expriment souvent des utilisateurs de moteurs de recommandation. Sans compter que permettre à l’utilisateur de déterminer la qualité de la recommandation permet d’apporter des données qui permettront à son tour de l’améliorer… 

Décidément, rendre du contrôle à l’utilisateur dans les systèmes automatisés, semble toujours une meilleure solution ;).

À lire aussi sur internetactu.net