« Vous pourriez également aimer…. » Les systèmes de recommandation sont utilisés dans divers secteurs, utilisés par exemple par Netflix, Amazon, Reddit pour vous proposer des produits ou services les plus adaptés à votre profil ou centre d’intérêts.

Mais ces applications sont loin d’être les seules. Dans ce workshop, Aurélie vous expliquera notamment comment sont construits de tels modèles. Retrouvez sa présentation sur Slideshare.

 

DANS LES AFFAIRES, QU’EST-CE-QU’UNE RECOMMANDATION ?

Une recommandation faite avec de tel moteurs désigne le fait de prédire les préférences d’un utilisateur ou client le but de lui faire des suggestions personnalisées. Là où intervient la Data Science ? La prédiction faite à partir de données d’entrée !

Des exemples ?
Au delà des exemples de Netflix et Amazon, les systèmes de recommandations sont beaucoup plus répandus que l’on pense. On distingue plusieurs classes de ces usages pour des buts distincts :
– l’augmentation d’interaction entre utilisateurs : les réseaux sociaux vont vous suggérer des amis (Facebook, Linkedin pour ne citer qu’eux)
– Augmenter l’engagement des utilisateurs : valable pour les sites de contenus tels que LeMonde.fr, Youtube, Netflix, Spotify
– Augmenter le chiffre d’affaires : c’est une raison plus évidente, avec notamment les sites de e-commerce, des entreprises du retail, par exemple la Fnac, Amazon, ou Carrefour lorsque vous faites vos courses en ligne.

LA SÉRENDIPITÉ

Ce mot relativement impressionnant désigne le fait de réaliser une découverte ou invention de manière inattendue. Un exemple des plus connus ? La découverte de l’Amérique.
Cela s’applique au cas des moteurs de recommandation dans la mesure où – par les suggestions d’amis, de contenu, ou d’articles – l’utilisateur ou client va être guidé vers quelque chose qu’il n’aurait pas trouvé par lui même et qui serait, en plus, susceptible de lui plaire.

Mais ce concept est flou. Finalement, comment être sûr qu’un moteur de recommandation fonctionne pour les utilisateurs ? La question se pose de l’évaluation d’un bon moteur de recommandation. Plusieurs possibilités pour évaluer la qualité de la recommandation.
– Mesurer la satisfaction de la recommandation : via des notes laissés à des contenus suggérés ou les likes, une durée de visionnage plus longue. Pour récupérer ces données, l’entreprise faisant la recommandation doit s’assurer que tous les utilisateurs aient un compte.
– Des mesures « indirectes » à la recommandation peuvent être faites : augmentation de chiffre d’affaires après avoir mis en place le moteur, meilleur taux d’engagement, taux de rebond changé ou inchangé etc. Pour faire de meilleurs comparatifs dans l’analyse de ces mesures, les A/B tests sont très souvent utilisés.

COMMENT EN CONSTRUIRE UN ?

Il y a 3 grands modèles qui peuvent être utilisés pour construire un moteur de recommandation : une approche model based et deux autres basés sur du calcul de similarité

– L’approche « model-based » : c’est une approche qui est entièrement basée sur des algorithmes de Machine Learning. En prenant l’exemple de Netflix, il va s’agir avec cette approche de prédire les préférences de films d’un utilisateur en fonction des notes données sur ce film par d’autres utilisateurs. C’est l’approche mathématiques dont on entend le plus parler, mais celle qui est la moins mise en production.

2 problèmes à ceci : Les données peuvent manquer, et le temps de calcul peut être très long, étant donné la complexité de ces modèles. La recommandation en temps réel n’est alors pas possible.

– L’approche « Item – based » : l’approche produit permet de se référer aux caractéristiques du produit, du film, de la musique pour construire des sous-groupes de produits qui sont similaires. Si un utilisateur a vu des films de super-héros, vont lui être proposés par la suite d’autres films de super-héros.
– L’approche « User – based » : dans cette approche, on va se reposer sur les informations données sur le compte de utilisateur, ses préférences, ses goûts. Cette fois, ce sont les utilisateurs qui vont être groupés. En prenant l’exemple des films, le moteur va proposer les mêmes films aux utilisateurs de mêmes caractéristiques.

Ces deux dernières stratégies sont préférées car permettent de faire des recommandations en temps réel. Quant aux bases de données utilisées, celles-ci doivent être adaptées, on peut utiliser des bases de données en graphes, elles permettent d’expliciter les relations entre chaque élément (utilisateur & film par exemple).

LES BASES DE DONNÉES EN GRAPHE

Ce type de bases de données représente de manière visuelle les différents « noeuds » de la base avec des labels (utilisateur, film, etc ). Chaque noeud va stocker des informations et propriétés (le nom, les préférences, la date de naissance de l’utilisateur par exemple). Les bases de données en graphes permettent également de situer les relations entre chaque noeud. Un utilisateur va être lié à plusieurs films et vice versa.

Les systèmes de management de ces BDD : NEO4J qui propose une visualisation dynamique de la base de données, OrientDB, ArangoDB

Pourquoi utiliser des BDD en graphes plus que des bases de données SQL ?

– Pour représenter un réseau (transport, réseaux sociaux, énergétiques etc), il est beaucoup plus simple d’utiliser des bases de données en graphe pour représenter visuellement les données.
– Elles permettent de faire des traversées de graphes : ce sont des requêtes locales qui vont permettre – dans le cas d’une recommandation – de proposer des produits adaptés à d’autres utilisateurs en fonction d’un utilisateur donné (d’où le caractère local)

En faisant la démonstration sur Neo4J, il en ressort que l’approche Item-based est celle ayant la meilleure précision, et permettant de sortir des résultats très rapidement (moins de 1 seconde).

EN SOMME, DANS LES FAITS…

La meilleure approche serait de combiner les stratégies item-based & user-based suivant le type de recommandation et le coeur de métier d’entreprise. C’est là que l’on revient sur le concept de sérendipité, car évaluer la qualité d’une recommandation est compliqué, la suggestion peut plaire à l’utilisateur dans une grande majorité des cas mais peut lui déplaire dans d’autres. Combiner les approches permettraient donc de s’assurer d’une meilleure qualité de recommandation, basée à la fois sur son utilisateur, et sur son produit.

DANS LES FAITS…

La meilleure approche serait de combiner l’item-based et user-based suivant le type de recommandation et le coeur de métier d’entreprise. C’est là que l’on revient sur le concept de sérendipité, car évaluer la qualité d’une bonne recommandation est compliqué, le suggestion peut plaire à l’utilisateur dans une grande majorité des cas mais peut lui déplaire dans d’autres.

Consultez notre manuel d’introduction à Python pour commencer à vous former sur la programmation !

Obtenir notre livre : Introduction Pratique à Python