-
Guillaume Bruneval,
- Stanislas Morbieu,
Publié le 23/04/2021
Vous l’aurez sans aucun doute remarqué, vos applis vous connaissent ! Elles vous connaissent même plutôt bien, et de mieux en mieux à mesure que vous les utilisez.
Elles sont toujours plus promptes à vous proposer un livre qui ressemble beaucoup à celui que vous venez d’acheter, une série similaire à celle que vous venez de terminer, la maison de vos rêves à la campagne alors que vous avez justement des envies de grands espaces ou encore des morceaux d’artistes en cohérence troublante avec vos goûts musicaux.
Alors comment font-elles, ces applis, pour vous cerner aussi bien ? Espionnage ? Télépathie ? Rien de tout cela, le maître-mot pour expliquer ce phénomène, auquel nous commençons à être bien habitués, est la « recommandation » et il résume à lui tout seul LA révolution marketing qui s’est opérée au cours des années 2010. Il s’agit, de manière très générale, d’un processus qui consiste à adapter l’offre et les contenus publicitaires aux goûts et aux habitudes des individus.
Comme toutes les révolutions, celle-ci résulte d’un progrès technique fondamental : l’avènement d’une nouvelle génération de « systèmes de recommandation ». Parce qu’ils occupent aujourd’hui une place prépondérante dans nos sociétés et parce que nous y sommes absolument tous confrontés dès lors que nous ouvrons un navigateur web, il nous apparaît crucial de comprendre comment fonctionnent ces systèmes de recommandation. Quels sont leurs objectifs opérationnels ? Sur quels principes mathématiques reposent-ils ? Et quelles technologies exploitent-ils pour fonctionner à grande échelle ? C’est ce à quoi nous tenterons, dans cet article, d’apporter une ébauche de réponse.
Autant le dire tout de suite, nous ne livrerons pas ici une description simple et unifiée du fonctionnement d’un système de recommandation, tout simplement parce qu’il n’existe pas de système de recommandation universel. Chaque système est adapté à un cas d’usage spécifique.
Notre but est ici de synthétiser les visées générales propres à ces cas d’usage, de voir comment celles-ci se déclinent en objectifs techniques et opérationnels, lesquels peuvent d’ailleurs parfois être contradictoires. Puis nous verrons comment ces objectifs vont se traduire dans la construction d’algorithmes de recommandation. En dernière partie, nous regroupons ces algorithmes en cinq grandes familles que nous présenterons successivement.
Ne nous le cachons pas, les systèmes de recommandation ne sont pas des innovations à caractère purement philanthrope. Leur finalité est bien évidemment l’accroissement du profit. On attend avant tout de leur mise en place qu’elle amène une augmentation du volume des ventes en ajustant le plus précisément possible l’offre pour satisfaire à la demande de chaque client. Le leitmotiv est donc ici la satisfaction de l’utilisateur qui produit un cycle vertueux : plus l’utilisateur est satisfait, plus il a envie d’utiliser à nouveau le système, lequel augmente sa connaissance de l’utilisateur et du même coup sa capacité à satisfaire l’utilisateur et ainsi de suite.
Marketeurs et utilisateurs goûtent, par ailleurs, peu les systèmes « boîtes noires », ils attendent de leur côté que le système leur explique comment il est parvenu à la conclusion qu’il valait mieux recommander tel produit plutôt qu’un autre.
« L’Explication » ou l’interprétabilité est donc un autre objectif que l’on a en tête au moment de mettre en place un système de recommandation.
La notion centrale à prendre en compte dans la construction d’un système de recommandation étant la satisfaction de l’utilisateur, il vaudrait mieux lui apporter des résultats qui correspondent à sa recherche. Le premier objectif à atteindre est donc la pertinence.
Interrogeons-nous rapidement sur cette notion. Il s’agit pour le système de mettre en évidence les « objets » les plus adéquats à la requête exprimée. Mais il peut aussi tenir compte de l’émetteur de cette requête et proposer les résultats les plus en rapport non seulement avec la requête mais également avec l’utilisateur ou tout du moins avec ce qu’il sait de lui.
La pertinence d’un résultat se construit donc à partir de la connaissance des objets et des utilisateurs qui les recherchent.
Néanmoins, un système de recommandation qui rapporterait invariablement les mêmes résultats au même utilisateur, aussi pertinents soient-ils, verrait son intérêt décliner très rapidement. En quelque sorte, un système de recommandation ne doit pas se laisser enfermer dans une forme de routine au risque de perdre sa relation à ses utilisateurs. On introduit donc trois autres principes dans sa conception : la nouveauté, la diversité et la sérendipité.
Il apparaît ici clairement que ces trois notions, nouveauté, diversité et sérendipité, peuvent entrer en conflit avec une application trop stricte du principe de pertinence. Un bon système de recommandation se devra donc d’opérer un arbitrage entre ces quatre principes.
Une fois ces objectifs formulés dans une langue qui est encore celle des marketeurs, nous ne pouvons plus reculer et entrer dans ce qui est pour nous le vif du sujet, à savoir leur traduction en algorithmes.
Avant cela, tentons de décomposer le problème posé par la recommandation :
Finalement, une recommandation est une mise en contact entre un utilisateur, et un ou plusieurs produits. L’utilisateur est une personne physique qui a une vie, des habitudes, des relations, des comportements, bref, des informations que le système va traduire numériquement afin de produire une représentation mathématique de l’utilisateur. De la même manière, un produit est un objet qui possède des caractéristiques qui vont aussi pouvoir être décrites par une représentation mathématique.
À l’intérieur de ces deux champs, les utilisateurs et les produits, on peut opérer des calculs de distances/similarités entre les représentations qui vont décrire les liens que les personnes ont entre elles ou que les objets ont entre eux, mais il nous manque une information indispensable qui va faire le lien entre les utilisateurs et les objets. Cette information doit être recueillie de deux manières différentes :
Ces informations sont ensuite transformées en valeurs numériques, ce qui est immédiat dans le cas d’une note, ou d’un temps de visionnage par exemple, mais peut demander un peu plus de travail et de technicité dans le cas d’un commentaire écrit notamment.
Pour produire une liste de produits recommandés, il existe deux « tâches » qui sont indépendantes et sont souvent, mais pas systématiquement, associées :
On peut discerner cinq grandes familles d’algorithmes :
Le principe consiste à utiliser les opinions et évaluations d’un groupe pour aider l’individu. Une fois cette connaissance acquise on peut s’en servir soit pour découvrir des produits semblables parce qu’ils plaisent aux même personnes, ou bien des individus similaires parce qu’ils aiment les mêmes choses, c’est ainsi que fonctionnent les systèmes des sites de rencontre par exemple.
Les systèmes de filtrages collaboratifs fonctionnent généralement en résolvant des problèmes de prédiction, qui sont résolus en reconstruisant la matrice utilisateur/produit en appliquant des méthodes de factorisations matricielles (SVD, NMF, …).
Il existe deux sous-catégories d’algorithmes de filtrage collaboratifs :
Dans ce cas, le système n’utilise pas les goûts des autres utilisateurs, il se contente d’exploiter les attributs des produits pour effectuer des mesures de similarité avec les objets dont on est sûr qu’ils sont appréciés par l’utilisateur.
Plusieurs types de caractéristiques peuvent être utilisées : nous avons par exemple utilisé le texte pour nos systèmes de recommandation d’articles scientifiques pour le groupe pharmaceutique Servier, pour la recommandation de programmes TV pour le groupe Prisma Media, ou encore de la recommandation de petites annonces à grande échelle. Des images peuvent aussi être utilisées comme nous l’avons fait pour du criblage à haut débit qui consiste à recommander des molécules qui présentent un intérêt éventuel pour des applications pharmaceutiques.
À l’instar du système précédent, on n’exploite pas les liens entre individus mais les caractéristiques des individus. Parfois on ne s’intéresse qu’à des informations très générales : l’âge, le genre, la nationalité, … On parle alors d’algorithme démographique. Mais on peut aussi s’intéresser à des informations plus complexes, étudiant le comportement de l’utilisateur sur une application par exemple.
C’est une manière plus simple de fonctionner qui produit une recommandation à partir de filtres qui s’appuient sur des règles empiriques, théoriques ou intuitives élaborées par les expertises propres à l’entreprise mettant en place la recommandation.
Le moteur de recommandation que nous avons mis en production pour un site de recommandations de film repose en partie sur une expertise métier à base de règles. Ce type de système est particulièrement utile en cas de « démarrage à froid », c’est-à-dire quand nous n’avons pas encore suffisamment de données pour que les autres approches soient plus pertinentes. C’était le cas lors du lancement de la plateforme, puisqu’aucun utilisateur n’existait.
En pratique et comme souvent, les choix sont rarement tout à fait tranchés entre ces quatre grandes familles de systèmes. On choisit en général une hybridation de ces méthodes. Les systèmes démographiques, par exemple, donnent des résultats douteux lorsqu’ils sont utilisés seuls mais s’avèrent d’un réel intérêt quand ils sont alliés à d’autres algorithmes.
Par ailleurs, comme les systèmes de même nature sont généralement incapables individuellement d’atteindre tous les objectifs évoqués précédemment, on les assemble pour améliorer la satisfaction. C’est finalement là que réside le secret des performances des systèmes de recommandation que nous côtoyons au quotidien : ils multiplient les approches pour en restituer une synthèse efficace.
Seulement voilà, dire qu’on va mélanger les méthodes ne suffit pas. Encore faut-il savoir comment. Voici quelques façons de faire :
Si une entreprise a très rapidement compris l’intérêt des systèmes de recommandation c’est bien Amazon. Les recommandations sont à la fois basées sur les caractéristiques des articles (système orienté contenu), sur le comportement des clients (système orienté utilisateur) et sur le comportement des autres individus. On peut lire sur la plateforme par exemple : « 90 % des utilisateurs qui ont acheté ce jean, ont acheté une de ces paires de basket », assertion dans laquelle on est maintenant à même de reconnaître un filtrage collaboratif orienté objet.
L’art subtil de la recommandation consiste en l’adaptation permanente aux utilisateurs, aux produits, aux modes, aux contextes économiques… Il réside également dans une délicate science du compromis pour atteindre des objectifs contradictoires : trouver une liste de produits parfaitement adaptée à l’utilisateur… et la renouveler en permanence répondre le plus possible à ses attentes… en y incorporant de l’inattendu lui permettre d’aller à l’essentiel… et lui proposer, deci-delà, de flâner vers des produits inexplorés. La définition même d’un système de recommandation implique qu’il ne puisse être universel mais taillé sur mesure pour un cas d’usage précis.
C’est d’ailleurs toujours ainsi qu’a procédé Kernix lorsqu’on a travaillé sur ce type de mission : le dernier exemple en date étant Paris Fashion Shops où nous avons retravaillé finement les caractéristiques des produits. Il en existe donc une multitude qui repose paradoxalement sur des concepts mathématiques assez semblables : distance, algorithme de plus proches voisins, factorisation matricielle, coefficient de corrélation…
La singularité de chaque méthode va trouver son origine dans la manière dont ces quelques concepts vont être mêlés et ordonnés entre eux. Néanmoins, il demeure que ces myriades d’algorithmes différents poursuivent tous un objectif commun : la satisfaction de l’utilisateur.