Suggestions

Produits et ressources

Retour à toutes les ressources

Résumé

Ce livre blanc explore les défis liés à la mise en œuvre de la personnalisation et offre un aperçu de la manière dont la personnalisation par IA en temps réel peut stimuler l'engagement des utilisateurs et la réussite commerciale.

Introduction

« Bonjour [Insérer le nom] »

Aux débuts d'Internet, il s'agissait de la première forme de personnalisation. Des services comme la messagerie électronique, les réseaux sociaux ou les applications mobiles donnaient aux utilisateurs le sentiment d'être reconnus grâce à des messages personnalisés ou des notifications de bienvenue utilisant leur nom. Ensuite, des entreprises comme Amazon, Netflix et Facebook ont ​​ouvert la voie en permettant aux clients de se sentir considérés. Mais aujourd'hui, les attentes en matière de personnalisation sont bien plus élevées.

Vos utilisateurs sont plus interactifs que jamais : ils cliquent, survolent la souris, effectuent des recherches et interagissent avec le contenu, générant ainsi des données précieuses en quelques secondes. Ces données peuvent révéler beaucoup de choses sur leur personnalité et leurs attentes vis-à-vis de votre entreprise.

À l'ère du numérique, les données sont considérées comme une ressource extrêmement précieuse, voire comme une nouvelle monnaie. Les entreprises exploitent désormais les données pour comprendre les comportements, les préférences et les modes de pensée des utilisateurs. Ceci est rendu possible par les progrès de l'intelligence artificielle, dont les modèles sont de plus en plus rapides, performants et fiables.

Aujourd'hui, les entreprises cherchent à offrir des expériences personnalisées qui améliorent la satisfaction des utilisateurs et stimulent les ventes et la fidélisation à long terme. Selon Accenture , 91 % des consommateurs sont plus enclins à acheter auprès de marques qui les reconnaissent, se souviennent d'eux et leur proposent des recommandations pertinentes. Cette évolution a engendré une véritable course entre les entreprises pour collecter et analyser les données des utilisateurs, afin de se démarquer sur un marché saturé.

Les données augmentent chaque jour. Quelques secondes d'interactions utilisateur sur un site web ou une application suffisent pour nous révéler l'identité de l'utilisateur, ses besoins et ses préférences. Grâce à ces données, nous pouvons anticiper ses comportements et besoins futurs.

Selon une étude de Segment , 69 % des clients souhaitent une expérience cohérente et personnalisée sur tous les canaux, mais peu d'entreprises répondent à ces attentes. Qu'il s'agisse d'anticiper les prochains achats d'un utilisateur ou de lui suggérer du contenu adapté à ses centres d'intérêt, la personnalisation est désormais essentielle aux stratégies commerciales modernes. Ce n'est plus une option, mais un élément clé de ces stratégies.

La personnalisation en temps réel n'est plus un luxe, elle devient une nécessité pour les entreprises qui veulent prospérer sur le marché actuel.

C’est là que les systèmes de recommandation font toute la différence. En bref, ils permettent aux entreprises de suggérer des produits ou du contenu à l’utilisateur en fonction de son utilisation de leurs services. Cependant, jusqu’à récemment, les systèmes de recommandation reposaient largement sur d’importants volumes de données et des données historiques, dont le traitement et la mise en œuvre étaient souvent longs. Dans un monde où les utilisateurs prennent des décisions en quelques secondes, les entreprises doivent aller au-delà de la simple suggestion. Elles doivent fournir ces recommandations en temps réel, pour une expérience utilisateur plus personnalisée.

La personnalisation en temps réel change la donne. Contrairement aux systèmes qui prédisent l'avenir à partir de données passées, elle s'adapte instantanément au comportement actuel de l'utilisateur. Elle propose des contenus ou des suggestions de produits pertinents pendant que l'utilisateur navigue sur l'interface. Face à la reconnaissance croissante de la valeur des expériences personnalisées en temps réel par des entreprises comme Amazon ou Netflix, cette approche est devenue un atout concurrentiel majeur.

Pourtant, proposer des expériences personnalisées en temps réel soulève de nombreux défis complexes. Pour que les entreprises réussissent cette approche, les données doivent être traitées instantanément et transmises en quelques secondes.

Au-delà des capacités en temps réel, les développeurs doivent également prendre en compte l'infrastructure globale. Quels sont les avantages et les limites de la personnalisation en temps réel par l'IA ? Comment collecter les données ? Comment optimiser la collecte, le traitement, le flux et la diffusion des données via une API pour une meilleure efficacité sans impacter l'expérience utilisateur ? Un autre facteur important est la qualité des données. Des données erronées peuvent générer des suggestions non pertinentes ou inexactes, susceptibles de frustrer les utilisateurs au lieu de les satisfaire.

Ce livre blanc explore ces enjeux et explique comment la personnalisation par IA en temps réel peut stimuler l'engagement des utilisateurs et la réussite commerciale, ainsi que la mise en œuvre d'un tel système. Grâce à une architecture adaptée, aux modèles d'IA actuels et aux meilleures pratiques, les entreprises peuvent exploiter la puissance des données en temps réel pour offrir des expériences exceptionnelles dans un monde numérique concurrentiel et en constante évolution. La personnalisation en temps réel n'est plus un luxe, mais une nécessité pour les entreprises qui souhaitent prospérer sur le marché actuel.

Les données augmentent chaque jour. Quelques secondes d'interactions utilisateur sur un site web ou une application suffisent pour nous révéler qui est l'utilisateur, ce qu'il recherche et ce qui pourrait lui plaire.

 

Analyser les interactions des utilisateurs pour mieux comprendre leurs comportements et leurs préférences.

Les entreprises s'appuient fortement sur le Big Data pour prendre des décisions éclairées, prédire le comportement des utilisateurs et concevoir des expériences personnalisées. Le Big Data implique la collecte et l'analyse de vastes quantités d'informations structurées et non structurées provenant de diverses sources, notamment les interactions des utilisateurs, leurs habitudes de navigation et leurs transactions.

En tirant parti de l'analyse avancée, de l'apprentissage automatique et de l'apprentissage profond, les entreprises peuvent découvrir des informations approfondies sur le comportement, les préférences et les processus décisionnels des utilisateurs en temps réel.

Les trois V du Big Data

Pour comprendre et utiliser le big data, les organisations doivent prendre en compte trois facteurs essentiels : le volume, la vitesse et la variété :

  • Volume :
    L'immensité des données générées par des milliards d'interactions quotidiennes exige des solutions de stockage et de traitement évolutives, souvent prises en charge par des systèmes distribués comme Hadoop ou Apache Spark.
  • Vitesse :
    La rapidité est essentielle dans les scénarios en temps réel. Des technologies comme Apache Kafka et Apache Flink permettent un streaming à faible latence, offrant aux entreprises des informations immédiates et permettant des actions rapides.
  • Variété :
    Les systèmes de personnalisation en temps réel doivent gérer des types de données divers, allant des journaux de navigation aux interactions sur les réseaux sociaux. Des techniques avancées comme le traitement automatique du langage naturel (TALN), la reconnaissance d'images et l'analyse comportementale permettent d'extraire des informations pertinentes à partir de données hétérogènes.

En combinant ces technologies, les entreprises obtiendront des informations très précises, non seulement sur les produits achetés par les utilisateurs ou les contenus qui les intéressent, mais aussi sur la manière dont ils interagissent avec la plateforme, sur les contenus avec lesquels ils interagissent et sur le temps qu'ils consacrent à des actions particulières.

Le big data aide des entreprises comme Netflix, Instagram et Amazon à améliorer l'expérience utilisateur et à stimuler leurs ventes. Voici comment elles y parviennent :

Netflix : Personnaliser l’expérience utilisateur grâce aux données

Netflix utilise le big data et l'intelligence artificielle pour proposer des recommandations personnalisées : 80 % des contenus visionnés par les utilisateurs proviennent de son système de recommandations. En collectant et en analysant des données telles que les habitudes de visionnage, l'historique de recherche et même l'heure de la journée à laquelle les utilisateurs regardent des contenus, les ingénieurs de Netflix peuvent prédire ce qui est susceptible de plaire aux spectateurs. Cette approche ciblée et très efficace génère plus de 250 millions d'expériences personnalisées par jour, permettant à l'application d'adapter sa diffusion de contenus aux préférences de chaque utilisateur.

Le système de personnalisation de Netflix repose sur une combinaison d'outils AWS, tels qu'Amazon S3 pour le stockage de contenu à grande échelle, EC2 pour le streaming, DynamoDB pour un accès rapide aux données et SageMaker pour l'apprentissage automatique permettant de prédire les préférences de visionnage. Ces composants permettent à Netflix de proposer des recommandations évolutives qui fidélisent les utilisateurs et les aident à découvrir de nouveaux contenus en adéquation avec leurs goûts changeants.

Instagram : Flux personnalisés en fonction de l’engagement des utilisateurs

Instagram exploite l'intelligence artificielle pour proposer du contenu personnalisé en analysant les interactions des utilisateurs, comme les commentaires, les mentions « J'aime » et les publications consultées. Plus de 20 % du contenu des flux Instagram provient de comptes que les utilisateurs ne suivent pas, ce qui est possible grâce aux recommandations de l'IA qui prédisent ce qui pourrait les intéresser en fonction de leurs interactions passées. Par exemple, un utilisateur qui interagit fréquemment avec des publications liées au fitness se verra proposer davantage de contenu similaire, notamment des suggestions de créateurs, de nouveaux comptes ou de communautés.

En plus d'améliorer la satisfaction des utilisateurs grâce à des contenus plus pertinents, Instagram aide les créateurs à élargir leur audience. Ses recommandations, basées sur l'intelligence artificielle, permettent aux utilisateurs de découvrir de nouveaux centres d'intérêt tout en offrant aux créateurs de contenu une meilleure visibilité, améliorant ainsi l'expérience utilisateur globale.

Amazon : Des moteurs de recommandation basés sur l'IA pour améliorer l'expérience d'achat

Le système de recommandations d'Amazon est la pierre angulaire de son succès e-commerce, générant environ 35 % de ses ventes. En analysant le comportement des clients, comme leur historique de navigation, leurs achats précédents et les articles ajoutés à leur panier, Amazon prédit les produits qu'ils sont susceptibles d'acheter ensuite. Amazon suggère non seulement des articles similaires, mais propose également des recommandations de vente croisée, comme des accessoires qui complètent un produit que l'utilisateur envisage déjà d'acheter. Par exemple, si un utilisateur achète un thème Spider-Man pour PS5, Amazon pourrait lui suggérer des jeux du même genre, en l'occurrence des jeux d'action.

Le système de recommandation de l'entreprise repose sur Amazon Personalize, un service d'apprentissage automatique entièrement géré qui permet des recommandations en temps réel et par lots. Amazon Personalize collecte des données utilisateur, notamment les consultations et les achats, afin de créer un modèle d'apprentissage automatique personnalisé et adapté aux besoins spécifiques de l'entreprise. Une fois entraîné, le modèle est déployé et accessible via des API, garantissant ainsi des recommandations pertinentes et optimisées pour les interactions en temps réel.

Cette personnalisation basée sur l'IA permet aux utilisateurs de découvrir rapidement les produits pertinents, améliorant ainsi l'expérience d'achat et augmentant la valeur globale des commandes.

 

Satisfaction des utilisateurs et avantages commerciaux

La personnalisation en temps réel n'est plus un luxe ; elle est essentielle pour améliorer la satisfaction des utilisateurs et générer des résultats commerciaux mesurables. Les utilisateurs s'attendant désormais à des interactions sur mesure, les entreprises capables de proposer des contenus et des recommandations pertinents constatent des améliorations considérables en matière d'engagement, de fidélisation et de chiffre d'affaires.

Amélioration de la satisfaction des utilisateurs

La personnalisation en temps réel propose un contenu plus pertinent, permettant aux utilisateurs de trouver ce dont ils ont besoin sans difficulté. Selon Epsilon, 80 % des consommateurs sont plus enclins à acheter auprès de marques offrant des expériences personnalisées. Les recommandations sur mesure fluidifient les interactions des utilisateurs et améliorent leur satisfaction globale en réduisant le temps et les efforts nécessaires pour naviguer dans une application.

Avantages commerciaux

Les expériences personnalisées améliorent non seulement la satisfaction, mais contribuent aussi directement aux indicateurs clés de performance. HubSpot indique que les appels à l'action personnalisés affichent un taux de conversion 202 % supérieur à celui des alternatives génériques. En proposant des recommandations personnalisées, les entreprises peuvent améliorer significativement la valeur moyenne des commandes (AOV) et le taux de conversion (CR).

L’impact des recommandations de produits personnalisées sur la valeur moyenne des commandes (VMC). Source : Barillance

croissance du panier moyen
Comme le montre le graphique ci-dessous, une interaction accrue avec les recommandations personnalisées entraîne une hausse substantielle du panier moyen, qui passe de 44,41 $ à plus de 400 $. Les suggestions de produits personnalisées incitent les utilisateurs à effectuer des achats plus importants en leur proposant des ventes additionnelles et croisées pertinentes.

Amélioration du CR
Les données mettent également en évidence une corrélation claire entre l'engagement suite aux recommandations et le taux de conversion, ce dernier passant de 1,02 % à 8,57 %. La personnalisation réduit les obstacles à la prise de décision, facilitant ainsi la conversion des utilisateurs.

Corrélation entre l'engagement sur les recommandations et le taux de conversion (TC). Source : Barillance

En mettant en œuvre une personnalisation en temps réel, les entreprises peuvent accroître la satisfaction client, augmenter les conversions et fidéliser leurs clients sur le long terme, ce qui se traduit par une croissance significative de leurs revenus.

L'importance de la personnalisation en temps réel par l'IA

Face à la demande croissante des utilisateurs pour des expériences ultra-pertinentes, la personnalisation en temps réel permet aux entreprises de proposer un contenu adapté à leurs besoins actuels. Cette réactivité instantanée leur confère un avantage concurrentiel indéniable, renforçant ainsi la fidélité et la confiance de leurs clients.

Avec le développement rapide des outils d'IA, des algorithmes d'apprentissage automatique et profond, du stockage et des langages de programmation, la mise en œuvre de la personnalisation en temps réel devrait sembler relativement simple. Pourtant, elle soulève plusieurs défis techniques. Voici les questions clés que vous devriez vous poser en tant que développeur ou responsable technique :

  • Comment collecter des données à faible latence pour un traitement de données en temps réel et à grande échelle ?
  • Pourquoi choisir la personnalisation en temps réel plutôt que les systèmes de recommandation traditionnels ?
  • Quels modèles d'apprentissage automatique sont les mieux adaptés à la personnalisation en temps réel, et comment peuvent-ils être optimisés pour éviter les problèmes de performance ?
  • Quelles stratégies permettent de relever les défis du démarrage à froid, qui s'accentuent avec la personnalisation en temps réel ?
  • Quels sont les principaux défis liés au maintien de pipelines à faible latence pour la personnalisation en temps réel ?
  • Comment les systèmes en temps réel peuvent-ils éviter de submerger les utilisateurs de recommandations excessives ?
  • Quelles approches permettent d'atténuer les risques tels que les biais dans les systèmes de personnalisation en temps réel ?
  • Quel est un cadre efficace pour mettre en œuvre le processus de personnalisation en temps réel ?

En relevant ces défis, vous pouvez créer des systèmes de personnalisation en temps réel plus efficaces qui apportent de la valeur non seulement aux utilisateurs, mais à l'ensemble de l'organisation.

Les sections suivantes approfondiront ces questions, en explorant en détail les éléments techniques et stratégiques liés à la mise en œuvre efficace de la personnalisation en temps réel par l'IA.

Pourquoi la personnalisation en temps réel ?

Nous avons constaté que la personnalisation en temps réel est un outil puissant qui améliore considérablement des indicateurs tels que le panier moyen, les taux de conversion et la satisfaction des utilisateurs. Cependant, il existe souvent une confusion entre la personnalisation en temps réel et les simples systèmes de recommandation.

Il est important de comprendre que les deux ont pour objectif principal d'améliorer l'expérience utilisateur, mais qu'ils fonctionnent différemment et sont adaptés à des scénarios distincts.

Nous allons ici définir chaque approche, mentionner les technologies et les algorithmes utilisés, et discuter des cas où il convient de choisir l'une plutôt que l'autre.

Définition des systèmes de personnalisation en temps réel et de recommandation historique

La personnalisation en temps réel adapte l'expérience utilisateur en fonction des interactions actuelles, tandis que les systèmes de recommandation basés sur l'historique s'appuient sur le comportement passé de l'utilisateur pour générer des analyses. Cette distinction suggère que la recommandation est un sous-ensemble de la personnalisation, cette dernière exploitant les données en temps réel pour ajuster l'interface utilisateur à l'évolution des préférences.

Maintenant que nous avons clarifié les différences entre la personnalisation en temps réel et les systèmes de recommandation historiques, explorons les technologies clés qui sous-tendent les systèmes de recommandation historiques.

 

Technologies sous-jacentes à la personnalisation en temps réel

La mise en œuvre d'un système de personnalisation en temps réel nécessite des technologies à faible latence conçues pour une réactivité instantanée.

Les outils de flux de données comme Apache Kafka et AWS Kinesis permettent le traitement en temps réel des interactions utilisateur sous forme d'événements, permettant ainsi aux systèmes de s'adapter dynamiquement au comportement de l'utilisateur.
Les bases de données en mémoire telles que Redis et Hazelcast offrent un stockage rapide des sessions et des profils, essentiel pour la récupération et la modification rapides des données dans les applications à faible latence, bien qu'une gestion attentive soit nécessaire pour gérer l'invalidation de la mémoire et les données obsolètes.

Les modèles d'apprentissage automatique pour l'inférence en temps réel sont déployés avec des plateformes comme TensorFlow Serving ou AWS SageMaker, prenant en charge des algorithmes comme Contextual Bandits pour des prédictions immédiates ; des modèles personnalisés ou des outils comme Vowpal Wabbit peuvent également être utilisés pour des besoins très spécifiques.

Enfin, une architecture événementielle basée sur des microservices garantit que chaque interaction de l'utilisateur déclenche des réponses de service indépendantes, avec des WebSockets, des notifications ou un sondage périodique utilisés pour mettre à jour l'interface en temps réel, assurant ainsi une expérience utilisateur fluide et personnalisée.

Technologies sous-jacentes aux systèmes de recommandation

Un système de recommandation simple nécessite une infrastructure de données robuste, à commencer par des entrepôts de données tels qu'Amazon Redshift, Google BigQuery ou Snowflake, qui centralisent d'importants volumes de données, notamment les journaux d'utilisateurs, les évaluations et l'historique des interactions. Les pipelines ETL (par exemple, AWS Glue, Apache NiFi) transforment les données brutes en formats structurés, garantissant un stockage et une récupération optimaux, tandis que les frameworks de traitement par lots distribués, comme Apache Hadoop et Spark, exécutent les transformations de données à grande échelle et les mises à jour périodiques du modèle.

Les algorithmes principaux comprennent le filtrage de contenu, qui cible les éléments en fonction des interactions précédentes des utilisateurs, et le filtrage collaboratif qui exploite la factorisation matricielle pour modéliser les préférences de profils d'utilisateurs similaires, facilitant ainsi des recommandations précises et basées sur les données.

Groupe 156 .svg

D'autres modèles d'apprentissage automatique pour les algorithmes de recommandation incluent également les réseaux neuronaux et le clustering k-means.

Architecture
L'architecture typique comprend des sources de données alimentant un pipeline ETL qui traite et stocke les informations dans un entrepôt de données. Des frameworks de traitement par lots analysent ensuite ces données et mettent à jour les modèles de recommandation. Une couche API accède aux prédictions du modèle pour fournir des informations lors des interactions utilisateur.

Netflix utilise une architecture similaire, stockant les données d'interaction des utilisateurs, comme l'historique de visionnage, dans Amazon S3 et Apache Cassandra, et utilisant Apache Spark pour le traitement quotidien. Ces modèles sont déployés avec Docker et Kubernetes afin de générer des suggestions de contenu personnalisées basées sur l'historique des interactions.

Nous avons désormais une idée claire des technologies communes à chaque approche ; la prochaine étape consiste à déterminer quand utiliser la personnalisation en temps réel ou un système de recommandation basé sur l'historique.

Quand privilégier la personnalisation en temps réel par rapport aux systèmes de recommandation basés sur l'historique

Maintenant que vous comprenez les différences entre les systèmes de recommandation historiques et la personnalisation en temps réel, ainsi que les technologies sous-jacentes, une question demeure : quand privilégier l’un plutôt que l’autre ? Pour vous aider à prendre cette décision, voici quelques questions essentielles à vous poser concernant votre application et les besoins de vos utilisateurs.

  • Vos utilisateurs interagissent-ils avec votre plateforme de manière sporadique, par exemple en se connectant une fois par jour ou moins souvent ? Si oui, un système de recommandations basé sur l’historique est probablement suffisant.
  • Votre plateforme nécessite-t-elle des réponses instantanées aux actions des utilisateurs, comme l'ajustement des recommandations en fonction des clics ou des recherches récentes ? Si oui, envisagez un système de personnalisation en temps réel.
  • Vous gérez d'importants volumes de données historiques et devez analyser l'évolution du comportement des utilisateurs au fil du temps ? Dans ce cas, mettez en place un système de recommandation basé sur l'historique.
  • Votre entreprise cherche-t-elle à fournir des données ultra-précises et une adaptabilité instantanée pour optimiser l'engagement des utilisateurs ? Dans ce cas, la personnalisation en temps réel est la solution idéale.
  • Votre plateforme est-elle conçue pour des cas d'utilisation plus simples où des mises à jour périodiques et des recommandations statiques sont acceptables ? Dans ce cas, un système de recommandations basé sur l'historique peut constituer un choix rentable.
  • Les comportements de vos utilisateurs évoluent-ils rapidement et votre interface utilisateur doit-elle s'adapter vite pour rester compétitive ? Si oui, l'adoption de la personnalisation en temps réel est essentielle.
Choisir entre la personnalisation en temps réel et les systèmes de recommandations basés sur l'historique.
Utilisez la personnalisation en temps réel lorsque Utilisez les recommandations historiques lorsque
Les interactions des utilisateurs sont fréquentes et continues. Les interactions entre les utilisateurs sont peu fréquentes et périodiques.
La plateforme doit pouvoir s'adapter à l'évolution rapide des comportements. Le comportement des utilisateurs évolue lentement au fil du temps.
Des délais de réponse immédiats et la fraîcheur des données sont essentiels. Des délais de réponse plus longs (par exemple, des mises à jour quotidiennes) sont acceptables.
Une architecture dynamique et évolutive est nécessaire. Une configuration plus simple et économique est préférable.
Les priorités de l'entreprise sont axées sur l'acquisition d'un avantage concurrentiel. La rentabilité et la prévisibilité sont les principales préoccupations.

En résumé, le choix entre la personnalisation en temps réel et les systèmes de recommandation basés sur l'historique dépend de vos objectifs commerciaux, de vos priorités et des habitudes de vos utilisateurs. La principale différence réside dans le temps réel et la fréquence d'intervention de l'interface utilisateur pour afficher et adapter les recommandations.

Nous connaissons désormais les différences entre les systèmes de recommandation traditionnels et la personnalisation en temps réel, et nous pouvons nous concentrer sur la mise en œuvre d'un système de personnalisation en temps réel basé sur l'IA. Nous détaillerons le processus, aborderons les étapes clés et proposerons une architecture système simple.

 

Comment fonctionne la personnalisation en temps réel par l'IA

Une personnalisation mal exécutée est souvent plus néfaste qu'une absence totale de personnalisation. Pour mettre en œuvre un système de personnalisation en temps réel basé sur l'IA performant, il est essentiel d'en comprendre les principes fondamentaux, les étapes de son processus et les technologies nécessaires à son bon fonctionnement.

Cette section présentera un cadre de travail que les développeurs pourront suivre pour assembler les composants essentiels d'une solution de personnalisation dynamique et efficace.

Principes clés de la personnalisation en temps réel

L'une des difficultés liées à la personnalisation en temps réel est de savoir par où commencer. Avant d'explorer les mécanismes et les aspects techniques de la construction d'un tel système, les organisations doivent se doter d'un cadre de référence.

Les principes clés d'Algolia, qui permettent de bâtir un système de personnalisation en temps réel efficace, sont l'immédiateté, l'équilibre, la transparence, la confidentialité, la sécurité et la mesurabilité. Il ne s'agit pas de principes théoriques, mais de lignes directrices pratiques qui déterminent le fonctionnement du système et sa capacité à répondre aux attentes des utilisateurs.

Immédiateté
Le système doit pouvoir s'adapter et réagir instantanément au comportement de l'utilisateur ; après seulement quelques interactions pertinentes, il doit déjà commencer à recommander du contenu ou des produits. Ces interactions peuvent être de toute nature, mais doivent être pertinentes par rapport aux événements choisis.

Équilibre
Le système doit trouver un équilibre quasi parfait dans la diffusion de contenu personnalisé. Bien que l'objectif soit d'offrir une expérience sur mesure, il convient de trouver le juste milieu entre utilité et intrusion. Les indicateurs de satisfaction des utilisateurs vis-à-vis du produit ou du service reflètent l'impact du système de personnalisation en temps réel basé sur l'IA sur l'expérience utilisateur. Ces indicateurs permettent de vérifier l'efficacité du système et d'identifier les points à améliorer.

Transparence
La transparence engendre la confiance. Les utilisateurs doivent pouvoir comprendre pourquoi une recommandation particulière leur est affichée. En expliquant les critères de personnalisation, qu'ils soient basés sur les activités récentes ou sur des comportements passés, le système gagne en fiabilité. Prenons l'exemple de cette capture d'écran d'une page Amazon présentant un produit PS5 :

Amazon explique la raison d'une recommandation

Sur la page produit, les recommandations présentent des articles achetés par les clients après l'achat d'une PS5, dans une section intitulée « Que font les autres clients après avoir consulté cet article ? ». Plus intéressant encore, lorsque vous ajoutez un article au panier, en l'occurrence « Demon's Souls », des recommandations encore plus pertinentes vous sont proposées.

La section « Recommandé pour vous d'après Demon's Souls - PlayStation 5 » présente des jeux du même genre. Les acheteurs comprennent ainsi les raisons de ces suggestions. C'est une transparence exemplaire.

Confidentialité
Le respect de la vie privée est primordial. La personnalisation en temps réel doit se conformer strictement à la réglementation en matière de protection des données, garantissant que seules les informations obtenues avec le consentement de l'utilisateur soient collectées et traitées. Le système doit fonctionner en toute transparence quant à ses pratiques de collecte de données, et les utilisateurs doivent avoir la possibilité de gérer leurs paramètres de confidentialité.

Sécurité
Toutes les données, et notamment les informations sensibles des utilisateurs, doivent être chiffrées et stockées en toute sécurité. Le système doit mettre en œuvre les meilleures pratiques de protection des données afin de garantir la sécurité des données des utilisateurs contre les violations et les accès non autorisés. Cette protection doit être assurée à chaque étape : de la collecte des données à l’affichage des résultats sur l’interface utilisateur.

Mesurabilité
Un système de personnalisation performant doit être mesurable. En effet, la personnalisation n'a de valeur que si elle a un impact positif sur l'engagement des utilisateurs et les indicateurs de performance de l'entreprise. En définissant des objectifs mesurables, comme l'amélioration des taux de clics ou l'augmentation de la durée moyenne des sessions, il est possible d'évaluer l'efficacité du système et d'ajuster les stratégies en conséquence.

Nous disposons désormais de principes directeurs que nous pouvons utiliser pour explorer le processus de leur mise en œuvre à travers des techniques et des technologies spécifiques.

 

Étapes du processus de personnalisation en temps réel

La personnalisation en temps réel repose sur plusieurs processus interconnectés. Chaque étape est cruciale pour cerner l'intention de l'utilisateur, traiter efficacement les données et garantir une expérience à la fois pertinente et immédiate.

Collecte de données
Votre système doit enregistrer en temps réel un large éventail d'interactions utilisateur. Nous appellerons ces interactions « intention de l'utilisateur ». Cela inclut des actions telles que les clics, les pages vues, les articles ajoutés au panier, les survols de la souris, le temps passé sur certaines pages et d'autres indicateurs d'engagement.

Cela se fait généralement grâce à un mécanisme de suivi des événements côté client, qui envoie les données à un autre service pour les traiter. C'est là que des services comme Google Analytics, Mixpanel, Segments ou des outils open source comme Posthog s'avèrent utiles. Ils permettent de collecter les données et de mettre en œuvre des connecteurs en temps réel avec les principaux outils d'entrepôt de données.

Flux de données
Une fois collectées, les données doivent être traitées en continu, rapidement et efficacement. Kafka permet de créer un sujet accessible à de nombreux services, comme un moteur de recommandation en temps réel, mais aussi à d'autres services pour stocker les données dans une base de données en vue d'une analyse plus approfondie ultérieure.

Mais n'oubliez pas que la capture de l'intention est un processus itératif. Elle commence par des signaux simples comme les survols de la souris ou les clics et évolue vers des informations plus complexes comme la probabilité d'achat ou la satisfaction de la session.

Traitement des données en temps réel
Le traitement des données en temps réel est crucial pour tout système de personnalisation en temps réel basé sur l'IA. Ce système doit traiter les événements instantanément afin de fournir un retour d'information immédiat et d'adapter l'expérience utilisateur.

Une fois les données acheminées vers les outils que vous avez sélectionnés, le traitement commence. Ces outils assurent le filtrage, l'agrégation et la transformation des données ; celles-ci peuvent ensuite être stockées dans des bases de données à faible latence comme Apache Cassandra ou être consultées directement depuis un sujet Kafka.

À ce stade, les modèles d'apprentissage automatique, tels que les algorithmes de bandits contextuels, entrent en jeu. Ces algorithmes équilibrent exploration et exploitation, permettant une prise de décision rapide et le calcul des scores. Ils analysent les données, génèrent des prédictions en temps réel et produisent des résultats au format JSON ou dans d'autres formats exploitables.

TensorFlow peut être utilisé pour calculer les scores de recommandation, qui sont transmis via une API en temps réel.

Pour améliorer en permanence la précision et la pertinence des recommandations, les retours des utilisateurs doivent être intégrés au processus de traitement en temps réel. Lorsqu'ils interagissent avec un contenu personnalisé, les utilisateurs peuvent fournir des commentaires explicites, tels que des votes positifs/négatifs, des évaluations ou des suggestions directes. Ces commentaires sont recueillis en temps réel et utilisés pour ajuster le score d'affinités calculé pour le profil utilisé.

Il est également important d'évaluer les nouvelles versions du modèle. Mettez en œuvre des techniques de test A/B en temps réel pour comparer différents algorithmes de recommandation ou mises à jour du modèle en conditions réelles. Vous pourrez ainsi valider les améliorations apportées à la personnalisation sans perturber l'expérience utilisateur. Des indicateurs tels que le rang réciproque moyen (MRR) ou le gain cumulatif actualisé (DCG) permettent de mieux comprendre le classement des recommandations en situation réelle.

Intégration API en temps réel
Pour une personnalisation en temps réel, l'API doit fonctionner avec une latence minimale (souvent de l'ordre de la milliseconde) afin de garantir une expérience utilisateur optimale. L'utilisation d'équilibreurs de charge et de systèmes de cache peut y contribuer, mais il est également essentiel de définir comment les recommandations sont récupérées par l'interface utilisateur.

Une option consiste à fournir les données du profil utilisateur à l'interface utilisateur, qui décidera comment utiliser les scores pour classer les articles ou récupérer ceux qui sont pertinents.

Voici un schéma récapitulant le processus d'un système de personnalisation en temps réel.

Image 2.svg

Nous disposons désormais d'un cadre complet, assorti de processus et de principes détaillés, pour mettre en œuvre un système de personnalisation en temps réel. Il est toutefois essentiel de garder à l'esprit que nous travaillons avec des données.

Comme mentionné précédemment, l'intégrité et la qualité des données sont des caractéristiques essentielles qui détermineront l'efficacité de votre système.

Garantir la qualité des données
L'efficacité d'un système de personnalisation en temps réel repose sur la qualité des données. La priorisation des actions récentes des utilisateurs garantit des recommandations pertinentes, reflétant leurs comportements et intentions actuels. À mesure que de nouvelles données arrivent, les informations obsolètes ou non pertinentes doivent être filtrées afin de maintenir leur exactitude.

Les stratégies de filtrage des contenus obsolètes comprennent :

Fenêtres temporelles des événements : pour que les recommandations restent pertinentes, ne prenez en compte que les événements récents des utilisateurs survenus dans un laps de temps spécifié.

Agrégation des données en temps réel : mise à jour continue des données agrégées tout en supprimant les anciennes entrées qui ne représentent plus le comportement de l’utilisateur.

Filtrage par session : se concentrer sur les actions de la session en cours, en ignorant les sessions plus anciennes qui ne correspondent pas aux préférences actuelles.

Expiration du cache : Mettez en œuvre une politique d’expiration du cache pour invalider les données obsolètes.

Nous avons décrit le cadre et les étapes de la construction et de la maintenance d'un système de personnalisation en temps réel, mais nous n'avons pas encore abordé les défis associés.

 

Les défis de la personnalisation en temps réel

La mise en œuvre de la personnalisation en temps réel par l'IA soulève de nombreux défis, notamment en matière de gestion de la latence, de pertinence des données et de sécurité.

Identification des données pertinentes
Les données sélectionnées doivent être pertinentes pour une personnalisation optimale. Ce processus, appelé évaluation des données, va au-delà de la simple collecte de données ; il implique de comprendre les comportements des utilisateurs avec votre produit ou contenu.

Pour évaluer efficacement les données, vous devez définir, identifier et analyser les corrélations en collaboration avec les équipes produit, marketing et design, dont les actions indiquent l'intention de l'utilisateur.

Problèmes de vitesse et de latence
La rapidité est essentielle à l'efficacité d'un système de personnalisation en temps réel. Les utilisateurs sont aujourd'hui très exigeants et quittent souvent un site web si le temps de réponse dépasse quelques secondes. Des études menées par Google ont démontré que même de faibles délais, comme 400 millisecondes, ont un impact significatif sur l'engagement des utilisateurs, la fréquence de leurs recherches et leur satisfaction globale.

Vous pouvez obtenir une faible latence et améliorer la vitesse de votre architecture en agissant sur plusieurs couches : 



Pour obtenir une faible latence et améliorer la vitesse de votre architecture, tenez compte des points suivants :

API en temps réel : Concevoir des API capables de gérer un volume élevé de requêtes simultanées.

Informatique de périphérie et déploiement de CDN : Traitez les requêtes des utilisateurs à des emplacements plus proches de vos utilisateurs afin de réduire la latence.

Mise en cache : Utilisez judicieusement la mise en cache pour privilégier les données les plus récentes et pertinentes. Le stockage des données fréquemment consultées dans des bases de données en mémoire comme Redis permet une récupération rapide.

Démarrage à froid et rareté des données
La personnalisation en temps réel peut également se heurter à un obstacle lorsque le système dispose de données utilisateur limitées ou éparses. Ce problème se présente sous deux formes : le démarrage à froid de l’utilisateur, lorsqu’un nouvel utilisateur ne possède pas suffisamment d’historique de données pour une personnalisation pertinente, et le démarrage à froid du produit, lorsque les nouveaux produits ou services ne disposent d’aucune donnée d’engagement antérieure.

Ce problème ne peut être entièrement résolu. Cependant, il peut être atténué grâce aux stratégies suivantes :

Recommandation basée sur la popularité : s’appuyer sur les tendances régionales peut fournir des recommandations initiales en attendant la collecte de données plus personnalisées. 

Modèles hybrides : La combinaison du filtrage collaboratif, des méthodes basées sur la popularité et des méthodes basées sur le contenu peut permettre au système de fournir des recommandations plus robustes et précises, malgré le manque de données. 

Recommandations contextuelles : L’utilisation d’informations contextuelles telles que les données démographiques de l’utilisateur, sa localisation ou l’heure de la journée peut contribuer à améliorer la pertinence des recommandations pour les nouveaux utilisateurs.

Le script SQL suivant, par exemple, montre comment résoudre le problème du démarrage à froid en recommandant des produits ou des articles achetés plus récemment par des clients situés au même endroit, à cette période de l'année.

Groupe 157 .svg

L'effet de bulle de filtre

Si le manque de données initiales complexifie l'expérience personnalisée, un autre problème peut survenir lorsque le système de personnalisation accumule trop de données sur un utilisateur, ce qui peut réduire considérablement la gamme de contenus auxquels il est exposé en renforçant continuellement ses préférences passées.

Cela conduit rapidement à une situation où les utilisateurs reçoivent un contenu trop personnalisé, mais passent à côté de nouveaux centres d'intérêt, de diversité et de découvertes.

François Chalifour, ingénieur logiciel senior chez Algolia, a suggéré trois méthodes intéressantes qui peuvent être utilisées pour atténuer ce problème :

Mécanisme d'activation : Nous pouvons attendre de disposer de suffisamment d'informations sur l'utilisateur avant d'appliquer la personnalisation. Cela peut se traduire par un nombre suffisant d'événements liés à l'utilisateur, des préférences suffisamment diversifiées, ou par la mise en correspondance du profil de l'utilisateur avec d'autres profils d'utilisateurs présents dans le système. 

Personnalisation multicouche : Vous pouvez équilibrer l’utilisateur entre plusieurs niveaux de personnalisation.
Par exemple, vous pouvez utiliser l'apparence du contenu, comme le fait Netflix, pour proposer aux utilisateurs un plus large éventail d'options en variant le placement et les visuels du contenu pour chaque utilisateur.
La mise en avant de contenu proposée par Algolia, par exemple, permet de privilégier les contenus les plus récents, les articles les mieux notés ou les pages les plus consultées. Tout dépendra des besoins de votre entreprise.

Décroissance temporelle : votre système peut privilégier les événements les plus récents tout en réduisant progressivement l’impact des plus anciens sur les recommandations. Plus la décroissance temporelle est rapide, plus l’expérience est personnalisée.

préoccupations en matière de sécurité et de confidentialité

La sécurité est primordiale en matière de personnalisation, car les données sont collectées, traitées et stockées en continu. Un système de personnalisation en temps réel doit garantir l'intégrité et la confidentialité de ces données, notamment lorsqu'il s'agit d'informations sensibles concernant les utilisateurs.

risques liés à la collecte de données
La collecte de données à des fins de personnalisation exige des protocoles de sécurité robustes afin de prévenir les violations et de garantir la conformité. Les données doivent être chiffrées au repos et en transit à l'aide du protocole SSL/TLS, et les API doivent utiliser une sécurité multicouche, incluant l'authentification, le contrôle d'accès et la gestion sécurisée des sessions, afin d'empêcher toute falsification.

La conformité au RGPD et au CCPA exige des pratiques de données transparentes, impliquant le consentement, le chiffrement et des politiques strictes d'utilisation des données. Le respect de la vie privée dès la conception, grâce à l'anonymisation des données et à une collecte minimale de données, est essentiel pour instaurer la confiance et assurer la conformité réglementaire.

Nous connaissons désormais les processus de mise en œuvre d'un système de personnalisation par IA. Mais à quoi ressemble un tel système en pratique ? C'est le sujet de la section suivante.

 

Expérimentation et mise en œuvre : architecture et flux séquentiel d’un système de personnalisation en temps réel basé sur l’IA

Nous allons explorer la mise en œuvre d'un système de personnalisation en temps réel basé sur l'IA pour une boutique de vêtements en ligne.

L'architecture doit permettre une croissance évolutive et des performances en temps réel, améliorant ainsi la satisfaction client et s'adaptant aux besoins de l'entreprise. Les sections suivantes aborderont les technologies clés, les flux de données et les éléments architecturaux nécessaires à une expérience utilisateur fluide et en temps réel.

Pile technologique et composants clés
Pour construire le système de personnalisation en temps réel, nous déploierons un ensemble de technologies de base à hautes performances, optimisées pour l'évolutivité et le traitement en temps réel :

  • Interface utilisateur (Next.js) : capture les interactions de l’utilisateur (clics, vues, données de session) et affiche des sections personnalisées.
  • API de collecte de données (Flask) : transmet en temps réel les événements utilisateur au serveur pour traitement.
  • Flux de données (Apache Kafka) : Gère les données d’événements à haut débit, avec un sujet dédié aux interactions utilisateur accessibles par le moteur de recommandation IA.
  • Stockage de données (Apache Cassandra) : Fournit un stockage à faible latence pour les données de session et d’interaction dans un environnement NoSQL distribué.
  • Moteur de personnalisation IA : utilise des outils tels qu’Amazon Personalize, TensorFlow ou un modèle Contextual Bandit personnalisé utilisant l’algorithme ε-greedy pour analyser les événements et calculer les scores des profils utilisateurs.
  • API en temps réel : interfaces entre le moteur d’IA et l’interface utilisateur, fournissant des scores de profil pour mettre à jour dynamiquement l’interface utilisateur.
  • Équilibrage de charge et mise en cache : répartit le trafic entre les serveurs API pour éviter la surcharge.

Passons en revue l'architecture du système.

architecture système
L'architecture de ce système met l'accent sur le flux de données en temps réel, depuis l'interface utilisateur jusqu'à l'utilisateur final, en passant par différentes couches de traitement. Le schéma ci-dessous illustre l'interaction de chaque composant pour offrir une expérience personnalisée et fluide.

Conception de systèmes de personnalisation en temps réel par IA

Pour mettre en œuvre un service d'IA pour la personnalisation en temps réel, nous utiliserons les algorithmes Contextual Bandits en raison de leur capacité à équilibrer le compromis entre l'exploration (découverte de nouvelles recommandations) et l'exploitation (exploitation des préférences connues des utilisateurs).

1. Conception de l'algorithme

Les algorithmes de bandits contextuels dérivent du problème traditionnel du bandit manchot en intégrant des informations contextuelles, permettant ainsi des décisions plus éclairées et personnalisées.

Comprendre les bandits contextuels
Dans le problème classique du bandit manchot, un agent choisit parmi plusieurs options, appelées bras, afin de maximiser ses gains cumulés au fil du temps. À chaque décision, il doit faire un compromis entre exploiter les options rentables connues et explorer celles, moins certaines, pour découvrir des gains potentiellement plus élevés. Les bandits contextuels améliorent ce modèle en évaluant des informations supplémentaires, ou covariables, appelées contexte, disponibles à chaque étape. Ce contexte peut inclure l'heure, la date, les données démographiques de l'utilisateur, voire les décisions antérieures, et d'autres caractéristiques pertinentes, permettant ainsi à l'agent d'adapter ses actions aux circonstances actuelles. 

Dans le problème du bandit contextuel, chaque itération se déroule comme suit :

  1. Présentation du contexte : L'environnement fournit un contexte, représenté par un vecteur de covariables de dimension fixe, X.

  2. Distribution des récompenses : Dans ce contexte, chaque action (ou bras) est associée à une récompense, représentée par un vecteur stochastique de récompenses r. Cependant, seule la récompense de l'action sélectionnée est observée, créant ainsi un scénario de rétroaction partielle.

  3. Sélection de l'action : L'agent, en utilisant le contexte disponible, choisit une action parmi l'ensemble des actions possibles.

  4. Retour d'information sur les récompenses : La récompense pour le bras choisi est révélée, tandis que les récompenses pour les bras non choisis restent inconnues.

Le défi consiste à trouver un équilibre entre la nécessité d'explorer des actions (armes) non testées pour obtenir plus d'informations sur leurs récompenses et le désir d'exploiter les actions connues pour maximiser les récompenses cumulatives — un dilemme exploration-exploitation bien connu.

C’est là que le choix d’un algorithme devient crucial. Voici les plus courants et leurs variantes.

ε-glouton
La stratégie ε-gloutonne équilibre dynamiquement l'exploitation des solutions les plus performantes et l'exploration de nouvelles options. Cet algorithme compare les résultats moyens et les valeurs cibles y pour chaque choix ou condition afin d'identifier les options les plus avantageuses.  

Cela peut s'interpréter à l'aide de la formule suivante : . où ndx représente le nombre d'observations pour une option d dans un contexte donné x et yidx Le résultat de chaque observation est déterminé par l'algorithme ε-greedy. En pratique, ce dernier présente la plupart du temps les options les mieux notées (avec une probabilité de 1 - ε), mais occasionnellement (avec une probabilité de ε) une option aléatoire afin de découvrir de nouvelles préférences utilisateur. Une variante de cet algorithme est la stratégie à epsilon décroissant, où ε diminue avec le temps car, à mesure que le système en apprend davantage sur l'utilisateur, le besoin d'exploration diminue. Une autre variante est la stratégie epsilon-first, où l'algorithme agit aléatoirement pendant une période fixe afin d'en apprendre davantage sur les meilleures options, puis les exploite.

Limite supérieure de confiance
L'algorithme Epsilon greedy explore les options de manière aléatoire, ce qui peut s'avérer inefficace dans certains cas et entraîner l'omission d'options intéressantes, notamment dans des contextes de grande dimension. La stratégie UCB privilégie les options présentant des résultats moyens élevés tout en tenant compte de la certitude de ces estimations. Elle calcule la condition suivante en combinant l'estimation du résultat. et la confiance accordée à cette estimation, soit la valeur la plus probable de la limite supérieure de l'intervalle de confiance. Nous avons donc :  où c est une constante qui ajuste l'orientation de l'exploration, N est le nombre total d'essais et représente le nombre d'occurrences de l'option d dans le contexte x. La constante c représente un niveau de confiance ajustable, qui détermine l'agressivité de l'exploration.

Cette approche est courante dans des systèmes comme la publicité ciblée, où une publicité est diffusée plus fréquemment si elle présente à la fois un taux de clics élevé et un faible nombre d'impressions, ce qui permet un apprentissage rapide des publicités efficaces. L'avantage de l'UCB réside dans son équilibre entre exploration et exploitation, mais dans des contextes très variés, elle peut nécessiter des modèles plus sophistiqués comme LinUCB ou l'UCB bayésienne pour gérer les complexités.

Échantillonnage Thompson
L'échantillonnage de Thompson utilise une approche bayésienne pour résoudre le dilemme exploration-exploitation, en sélectionnant les options selon la probabilité qu'elles soient les meilleures compte tenu des données observées jusqu'à présent. Il modélise un résultat attendu y pour chaque option en fonction de conditions telles que D et du contexte X, à l'aide d'un ensemble de paramètres apprenables pour prédire les résultats. Le modèle peut être défini comme suit : f(D,X;0).

L'échantillonnage de Thompson utilise l'inférence bayésienne pour échantillonner la distribution a posteriori de la probabilité de gain de chaque option, en sélectionnant celle qui présente le gain le plus élevé. Chaque échantillon représente le gain potentiel compte tenu de l'incertitude actuelle, et l'option dont la valeur échantillonnée est la plus élevée est choisie.

2. Données initiales et problème de démarrage à froid

Pour remédier au problème du démarrage à froid, nous nous appuyons sur une stratégie qui privilégie les articles bien notés et les catégories populaires, renforcée par la popularité locale.

Articles bien notés : Pour les utilisateurs n’ayant jamais interagi avec le site, nous sélectionnons les articles en fonction de leurs évaluations. Chaque article possède une note Ri sur une échelle de 1 à 5 ; nous classons les articles par ordre décroissant de Ri et affichons ceux ayant obtenu les notes les plus élevées.  

Capture d'écran 2024-12-02 à 12:53:17 PM_upscayl_4x_realesrgan-x4plus 1.png

Popularité régionale : outre les notes, nous pouvons prendre en compte la popularité des articles dans la région de l’utilisateur, en nous basant sur les achats récents ou les données de consultation. Pour chaque article i, Pi représente le nombre de consultations ou d’achats dans la région de l’utilisateur sur une période T donnée. Les articles ayant les valeurs Pi les plus élevées sont sélectionnés, ce qui permet de mettre en évidence les articles les plus populaires. Cette sélection basée sur la popularité est définie comme suit :

régional.svg

3. Compromis entre formation et exploration/exploitation

Le système utilise un algorithme ε-glouton pour gérer le compromis exploration/exploitation. Les packages Vawpal Wabbit permettent d'initialiser un agent basé sur cet algorithme, avec des paramètres pertinents tels que le paramètre d'exploration et la décroissance du poids.

4. Inférence en temps réel et intégration API

Le processus d'inférence commence par la récupération, via l'API, des données contextuelles (localisation, appareil, heure) et leur transmission au modèle. Ce dernier calcule le profil utilisateur en proposant les recommandations les plus pertinentes en fonction du contexte et de l'historique de navigation, puis renvoie une liste classée d'articles personnalisés.

L'API en temps réel intégrerait ce processus d'inférence de manière transparente au parcours utilisateur. Dans notre cas, nous exposerons le profil utilisateur à l'interface utilisateur afin de contrôler les sections affichées.

Parlons maintenant plus en détail du flux de données, afin de comprendre comment les composants interagissent entre eux.

Flux séquentiel du système

Utilisons un diagramme séquentiel pour illustrer le flux de données entre les composants lorsqu'un utilisateur interagit. Ce schéma montre comment chaque composant du système fonctionne étape par étape.

Image 3.svg

flux séquentiel du système de personnalisation de l'IA

Voici une description de ce flux séquentiel :

  • Interaction de l'utilisateur (clic/survol) : L'utilisateur interagit avec l'interface utilisateur en cliquant ou en survolant un produit ou un contenu.
  • L'interface utilisateur envoie un événement : l'interface utilisateur capture l'interaction et l'envoie à l'API pour traitement.
  • L'API envoie l'événement à la file d'attente Kafka : l'API transmet l'événement d'interaction à une file d'attente Kafka pour un traitement asynchrone, permettant un débit élevé.
  • Kafka traite les événements en les mettant en file d'attente : Kafka les transmet simultanément au moteur de stockage de données et au moteur de personnalisation de l'IA.
  • Stockage des données (Cassandra) : Cassandra stocke les données d’événements pour consultation ultérieure et garantit un accès à faible latence pour l’analyse historique.
  • Moteur de personnalisation IA : Le moteur de personnalisation IA traite les données d’événements en temps réel afin de générer des recommandations personnalisées basées sur le comportement de l’utilisateur.
  • Le moteur de personnalisation IA envoie des scores de recommandation : le moteur de personnalisation IA calcule et transmet des scores personnalisés à l’API en temps réel.
  • L'API en temps réel fournit des recommandations : l'API récupère les scores et met à jour l'interface utilisateur avec un contenu personnalisé.
  • L'interface utilisateur affiche un contenu personnalisé : elle affiche dynamiquement les recommandations personnalisées, bouclant ainsi la boucle.

Voici comment concevoir un système de personnalisation en temps réel basé sur l'IA. Les maîtres mots sont faible latence et haute disponibilité, et cette architecture est parfaitement adaptée à ces exigences.

 

Expérimentation et mise en œuvre : Personnalisation de l’expérience client sur un site e-commerce avec Next.js et Python

Dans cette expérience, nous mettons en œuvre l'architecture proposée afin d'assurer une personnalisation en temps réel pour un site web de commerce électronique. Les principaux objectifs sont d'établir un système de collecte de données robuste, de concevoir un pipeline de données en temps réel efficace alimentant en continu le moteur de recommandation et de garantir l'accès aux profils utilisateurs via l'interface utilisateur.

Page d'accueil affichant deux sections de recommandations distinctes

Rien de compliqué : nous avons deux pages, une pour afficher une liste de produits et une autre pour afficher une page concernant un produit.

Nous utilisons le jeu de données Amazon Products 2023 , qui comprend plus de 1,3 million de produits, afin de tester l'évolutivité et la précision du traitement de grands ensembles de données pour les recommandations en temps réel. Ce jeu de données offre une gamme diversifiée d'articles permettant de simuler différentes interactions et préférences des clients au sein du système de recommandation.

Lors de l'importation des données de la base de données, veillez à ajouter un champ « note » correspondant à la note moyenne des articles notés dans cette catégorie, à l'exclusion des articles non notés. Par défaut, les catégories sont classées par note, et les catégories les plus populaires apparaissent sur la page d'accueil avant les produits récents, afin de résoudre le problème de démarrage à froid.

Partant de ce constat, parlons de la collecte des données.

Collecte des données

La collecte de données est la première étape de la mise en place de l'application. Dans cet exemple, nous collectons quatre types d'événements : les consultations de produits, les consultations de catégories, l'ajout d'articles au panier et la validation du panier.

Chaque requête d'événement envoyée à l'API de collecte de données doit contenir un identifiant qui nous permettra d'identifier l'utilisateur lors de l'analyse des événements et de la création de profils d'utilisateurs.

Pour notre exemple, nous utiliserons un UUID généré par le client et stocké dans le localStorage de la machine cliente, avec une durée de vie de 48 heures, que nous avons décidé de déclarer comme la durée moyenne de la session.

Voici un extrait de code utilisé pour envoyer des requêtes d'événements depuis l'interface utilisateur vers un point de terminaison d'API appelé track.

Groupe 164 .svg

Nous disposons d'une fonction appelée getSessionId() , qui nous permet de récupérer un ID de session qui sera associé à la requête.

Pour suivre plusieurs événements et éviter d'envoyer des dizaines de requêtes à l'API, il est possible de les envoyer par lots. Dès que 10 événements sont enregistrés, un nombre quelconque d'événements peut être envoyé. Cette méthode est utile pour collecter des données plus complexes, comme le temps de survol d'un élément ou d'autres types de données. Vous pouvez utiliser des outils comme Redux pour stocker les événements. Une fois le nombre d'événements requis atteint, vous pouvez les envoyer par lots et déclencher une requête.

Groupe 165 .svg

Les requêtes de suivi des événements sont adressées au point de terminaison qui recevra ces événements et les traitera dans un sujet Kafka que nous appellerons user_interactions.

Groupe 166 .svg

Les événements sont ingérés dans Kafka, et il suffit d'un service abonné à ces sujets. Ce service doit d'abord ajouter les données à un entrepôt de données comme Cassandra pour les analyses approfondies. Si vous utilisez un outil plutôt qu'une implémentation personnalisée, vous pouvez consulter les connecteurs disponibles. Par exemple, avec Mixpanel , vous pouvez implémenter un connecteur qui diffuse vos données Mixpanel directement dans un sujet Kafka.

Les données sont disponibles dans Kafka et nous pouvons y accéder. Abordons maintenant la partie cruciale de cette application : le moteur de recommandation basé sur l’IA.

Le moteur de recommandation IA
Le moteur de recommandation en temps réel utilise une approche événementielle pour les recommandations personnalisées, en s'appuyant sur un modèle de bandit contextuel avec Vowpal Wabbit. Le flux de travail comprend le traitement des événements, le traitement du modèle contextuel, le stockage des recommandations et l'adaptation continue en fonction des retours d'information.

Diffusion en continu et déduplication des événements
Le système écoute en continu les événements d'interaction utilisateur sur le topic Kafka `user_interactions`, où chaque événement inclut des données critiques spécifiques à la session, telles que l'identifiant de session (`session_id`) et l'horodatage. À la réception d'un événement, le système vérifie l'horodatage le plus récent de la session traitée dans Redis. Si l'horodatage de l'événement est antérieur ou égal à celui enregistré, l'événement est ignoré afin d'éviter les traitements en double. Ceci garantit que le moteur fonctionne avec des événements récents et uniques, maintenant ainsi un contexte à jour pour chaque utilisateur.

Groupe 167 .svg

La fonction `process_events_with_cb` du code précédent permet de lire et de traiter les événements Kafka. En cas d'événement de retour d'information, celui-ci est automatiquement capturé et traité.

Pour aborder plus en détail le réentraînement, le traitement et les événements, concentrons-nous sur la classe RecommendationEngine, qui est au cœur de notre moteur de recommandation en temps réel.

Classe de moteur de recommandation en temps réel
La classe RecommendationEngine utilise le modèle Contextual Bandit de Vowpal Wabbit (VW) pour gérer les recommandations en temps réel basées sur les interactions utilisateur. L'espace de travail de Vowpal Wabbit est initialisé avec l'option `--cb_explore_adf` pour activer le modèle Contextual Bandit et avec l'option `--epsilon 0.2` pour activer l'exploration epsilon-greedy, où epsilon contrôle l'équilibre entre exploration et exploitation. Avec epsilon fixé à 0,2, le système explore des recommandations alternatives pendant 20 % du temps, ce qui le rend adapté à un comportement utilisateur relativement stable, sans variabilité excessive.

Pour chaque événement du lot, le modèle prédit une distribution de probabilité des actions, pondérée par un facteur de décroissance qui privilégie les interactions récentes. Le score de chaque action (produit) est calculé comme suit :

Groupe 168 .svg

Où:

  • La récompense dépend du type d'événement (par exemple, les événements d'achat reçoivent des récompenses plus élevées que les simples vues).
  • La probabilité (prob) est la probabilité prédite par le modèle de l'engagement de l'utilisateur avec l'action.
  • Le poids est un facteur de décroissance temporelle (0,9) qui donne plus d'importance aux interactions récentes.
  • La pertinence du profil est une pertinence supplémentaire basée sur le score du profil de l'utilisateur pour l'action, ce qui garantit que les éléments alignés sur l'historique de l'utilisateur obtiennent des scores plus élevés.

Méthodes et processus de la classe RecommendationEngine

  • Récupération du contexte : La fonction get_context collecte les caractéristiques contextuelles de chaque événement utilisateur, notamment l'identifiant de session et l'heure de la journée, et intègre éventuellement des produits à forte affinité du profil utilisateur, formant ainsi un vecteur de contexte complet pour l'entrée de VW.
    Groupe 169 .svg
  • Sélection de l'action : La fonction `get_possible_actions` récupère un ensemble de produits à recommander, en tenant compte de leur date de sortie, de leur popularité et de leur adéquation au profil de l'utilisateur. Elle commence par sélectionner les produits de la même catégorie, puis les produits populaires les mieux notés, afin de garantir que les actions proposées correspondent aux préférences générales et individuelles de l'utilisateur. Les actions sont ensuite mélangées et priorisées selon le profil de l'utilisateur. Dans un projet plus concret, au lieu d'interroger directement la base de données, il est possible d'utiliser un ensemble de préférences précalculées de l'utilisateur. Cette fonction peut alors exploiter cet ensemble, créé par un système de recommandation classique, pour élaborer des profils plus pertinents.
    Groupe 170 .svg
  • Traitement des événementsLa fonction `process_event_batch` calcule les scores de recommandation en traitant chaque événement par lot. Le contexte est extrait pour chaque événement, les actions sont récupérées et les récompenses sont calculées en fonction du type d'événement, reflétant l'intensité de la réponse de l'utilisateur à des actions spécifiques. Chaque action est évaluée avec la fonction `predict` de VW, et des scores pondérés par la probabilité sont calculés.
    Les scores sont pondérés en appliquant un facteur de décroissance temporelle afin de privilégier les événements récents. Cette méthode applique une décroissance du poids par un facteur multiplicatif à chaque événement successif, en ordre inverse. Le score de probabilité de chaque action est ajusté en fonction des affinités du profil utilisateur, et un score final normalisé est calculé. Ces scores, triés par ordre décroissant, permettent d'obtenir les meilleures recommandations pour l'utilisateur.
    Groupe 171 .svg
  • Traitement des retours et mise à jour du modèle : La méthode `process_feedback` intègre le retour d'information au modèle en ajustant le signal de récompense. Cet ajustement tient compte du type de retour et des affinités de profil. Un retour positif sur les produits à forte affinité augmente la valeur de la récompense, renforçant ainsi les affinités spécifiques. La méthode formate l'exemple VW et appelle `learn` pour mettre à jour le modèle interne de VW, permettant un réglage continu basé sur les retours des utilisateurs.
    Groupe 172 .svg
  • Mise en cache Redis : Les scores de recommandation finaux et les profils utilisateurs sont mis en cache dans Redis, ce qui permet une récupération rapide par l'interface utilisateur. Celle-ci peut ainsi afficher immédiatement des recommandations mises à jour en fonction des actions et préférences des utilisateurs en temps réel. Bien entendu, ces profils doivent être enregistrés dans une base de données comme Cassandra pour un traitement ultérieur. Par souci de transparence, il est également important de conserver ces profils afin de pouvoir expliquer, à tout moment de la session utilisateur, pourquoi ces catégories et produits ont été recommandés. Voici à quoi ressemble un profil utilisateur :
    Groupe 173 .svg
    Pour que l'interface utilisateur sache quand récupérer un nouveau profil, une solution consiste à définir une durée de validité par défaut pour chaque profil calculé. Une fois ce délai écoulé, l'interface utilisateur demande automatiquement un profil actualisé. Bien que simple, cette méthode peut s'avérer insuffisante pour répondre aux besoins de recommandations en temps réel, notamment lors d'événements à fort trafic comme le Black Friday, où des recommandations rapides et pertinentes sont essentielles.

    Dans les scénarios nécessitant des mises à jour plus fréquentes, nous pouvons implémenter un service WebSocket ou Server-Sent Events (SSE). Avec cette configuration, lorsqu'un nouveau profil est calculé, le serveur envoie une notification au frontend via ces canaux. Cette notification incite le frontend à récupérer immédiatement le profil le plus récent, garantissant ainsi des recommandations toujours actuelles et pertinentes.

    Parlons maintenant de l'affichage des recommandations, qui est la partie la plus importante car elle englobe la personnalisation.

Afficher les recommandations
Pour intégrer et afficher efficacement des recommandations en temps réel dans une application frontale, une stratégie globale est nécessaire afin de garantir que l'interface utilisateur reflète la personnalisation sans surcharger le système dorsal.

Expérience utilisateur et personnalisation contextuelle
L'interface utilisateur est au cœur de la personnalisation. La conception et l'emplacement des recommandations doivent paraître naturels et pertinents, afin d'améliorer l'expérience utilisateur. Dans les systèmes traditionnels, les recommandations sont souvent précalculées et stockées en cache, en attendant la prochaine session de l'utilisateur. Des plateformes comme X, anciennement Twitter, ont historiquement utilisé cette approche, préparant les recommandations et les publications à l'avance. Lorsque l'utilisateur revient, ces éléments précalculés s'affichent sans interroger la base de données.

Pour une personnalisation IA en temps réel, notre système nécessite une configuration réactive afin d'éviter une surcharge du serveur. C'est là que le contexte et la flexibilité de l'interface entrent en jeu. L'interface utilisateur doit sélectionner dynamiquement les recommandations en fonction des données de score disponibles du serveur, ce qui la rend plus réactive et adaptable instantanément.

Rendre l'interface interactive et attrayante
Nous devrions introduire les recommandations progressivement, dans une partie essentielle de l'application. Un bon point de départ serait de remplacer les catégories principales par un élément similaire présentant une liste d'articles susceptibles de plaire à l'utilisateur, en fonction de son historique récent. Par exemple, nous pourrions ajouter une section intitulée : « Articles que vous pourriez aimer en fonction de vos interactions récentes ».

Affichage de la section personnalisée « Articles susceptibles de vous plaire en fonction de vos interactions récentes »

Le nom de la section doit être adapté au type d'affinités utilisées. Par exemple, si vous affichez des articles tendance susceptibles de plaire à l'utilisateur, le texte devrait être « Articles tendance que vous pourriez aimer ».

Garantir l'accessibilité des scores des utilisateurs dans tous les composants
Le profil utilisateur doit être accessible à tous afin de permettre les mises à jour dans différentes parties de l'interface. Dans ce contexte, l'utilisation de l'API Context de React ou de Redux est idéale pour les mises à jour de score en temps réel, sans interrompre le flux de travail. Cette configuration permet des mises à jour efficaces lors des modifications du profil utilisateur, assurant ainsi la synchronisation des composants avec les dernières recommandations.

Voici un exemple de la manière dont vous pouvez y parvenir avec Next.js.

Groupe 174 .svg

Nous pouvons utiliser ce contexte dans la mise en page de votre application.

Groupe 175 .svg

Les scores sont désormais accessibles dans l'ensemble de l'application ; nous pouvons ainsi étendre davantage les fonctionnalités de notre système de personnalisation.

Une stratégie efficace consiste à concevoir des recommandations basées sur les offres groupées. En intégrant au score utilisateur une structure qui prend en compte les produits fréquemment achetés ensemble ou bénéficiant de réductions en cas d'achat combiné, les recommandations deviennent plus pertinentes et potentiellement plus intéressantes pour l'utilisateur.

Par exemple, si le score de l'utilisateur inclut des articles bénéficiant d'une réduction lorsqu'ils sont achetés ensemble, l'interface peut afficher des offres groupées qui non seulement améliorent la personnalisation, mais permettent également de réaliser des économies. Si un utilisateur effectue un achat grâce à une réduction sur une offre groupée, cette interaction constitue un retour positif important, renforçant le modèle de recommandation et contribuant aux optimisations futures.

Voici une structure possible pour le score utilisateur qui prend en compte ces dimensions supplémentaires :

Groupe 176 .svg

Dans cette structure :

  • score_data : Contient les scores de recommandation standard basés sur les interactions des utilisateurs.
  • Suggestions de réductions groupées : Liste les produits bénéficiant de réductions lorsqu’ils sont achetés ensemble. Chaque lot comprend un produit principal et des articles associés, avec un score calculé pour chaque offre groupée.
  • Recommandations tendances : Met en avant les articles tendance qui correspondent au profil de l'utilisateur.

Lorsque cette structure est transmise aux composants, elle peut être utilisée dans certains d'entre eux pour afficher des recommandations populaires ou des suggestions de packs.

Groupe 177 .svg

Mise en place de boucles de rétroaction pour un apprentissage continu
L'intégration des commentaires des utilisateurs permet d'améliorer la qualité des recommandations. Dans notre cas, un commentaire positif (par exemple, l'ajout d'un article recommandé au panier) peut déclencher une requête d'événement auprès de l'API de collecte de données.

À l'inverse, le fait de consulter une recommandation sans y donner suite peut être considéré comme un retour d'information neutre ou négatif.

Une fois les modèles configurés et optimisés pour le temps réel, il est essentiel de mettre en œuvre les outils de surveillance adéquats afin d'analyser en continu le comportement du système et l'efficacité des modèles. Le suivi des retours utilisateurs, la mise à jour en temps réel des modèles de recommandation et l'amélioration des pipelines de données sont autant de gages de succès à long terme.

Grâce à ces principes, votre entreprise est prête à offrir une expérience fluide et personnalisée qui accroît la satisfaction des utilisateurs, stimule les conversions et favorise la fidélisation de la clientèle à long terme.

Si votre organisation recherche une solution efficace pour stimuler sa croissance grâce à la personnalisation pilotée par l'IA, Algolia peut accélérer le processus de mise en œuvre. Grâce à ses outils intégrés d'apprentissage automatique et de personnalisation, les solutions Algolia vous permettent d'offrir une personnalisation en temps réel sans avoir à investir massivement dans le développement d'un moteur de recherche. La plateforme personnalisable et à faible latence d'Algolia vous aide à adapter les recommandations aux comportements et préférences des utilisateurs, tout en optimisant le temps et les ressources de développement.

 

Conclusion

Résumons les concepts clés de la mise en œuvre d'une personnalisation en temps réel pilotée par l'IA pour les entreprises modernes.

  • La personnalisation en temps réel repose sur l'utilisation des outils adéquats, notamment les algorithmes Contextual Bandit, les pipelines de données évolutifs et les API à faible latence, afin de garantir instantanément aux utilisateurs un contenu personnalisé et pertinent.
  • La réussite d'un projet repose sur des données de haute qualité, garantissant que votre système de personnalisation reflète fidèlement les préférences et les comportements des utilisateurs en temps réel. La fraîcheur des données, la faible latence de réponse et l'évolutivité sont des composantes essentielles d'un système performant.
  • Prenons en compte les défis que nous avons évoqués, tels que la gestion du problème du démarrage à froid, la maîtrise des biais et l'apprentissage continu de vos modèles d'IA. L'application de stratégies comme les recommandations contextuelles et les boucles de rétroaction en temps réel permet de garantir l'évolution du système en fonction des interactions des utilisateurs.

Permettre à tous de créer d'excellents outils de recherche et de découverte