Comment nous avons appris à une voiture à parler avec des millions de personnes

Le marketing dans X5, c'est beaucoup de données. Pyaterochka, par exemple, envoie plus de 30 millions de communications chaque mois, et ce nombre ne cesse de croître. Plusieurs offres peuvent être envoyées à un client à la fois, et il est important de choisir celles-ci correctement. Les parts du magasin devraient être intéressantes pour le client et économiquement justifiées pour le détaillant. Dans cet article, nous vous expliquerons comment nous avons commencé à déterminer les offres vraiment populaires à l'aide de l'apprentissage automatique et à éliminer l'effet du spam.



Afin d'améliorer la communication avec les clients de Pyaterochka, Perekrestok et Karusel, une grande équipe travaille dans X5 Retail Group.

Maintenant, la maintenance de ce système nécessite le travail de dizaines de personnes et de systèmes: accumulation précise de données dans Oracle, analyse des données et mise en place de campagnes dans SAS, mise en place de règles de bonus dans Comarch. Chaque jour, les analystes prennent des décisions sur la façon de choisir l'offre la plus pertinente du moment, en choisissant parmi une grande variété d'options, sur la base de données historiques sur les résultats du stock. Nous nous efforçons également de garantir que les communications sont traitées et n'ont rien à voir avec le spam.

Nous avons réfléchi à la manière de traduire le processus de sélection d'une offre pertinente pour le client en mode automatique à l'aide de l'apprentissage automatique, de sorte que:

  • informations accumulées sur les clients et les campagnes passées
  • le système lui-même a appris de nouvelles données
  • la planification a été calculée plus d'un pas en avant

Nous sommes donc arrivés à la réalisation de systèmes auto-organisés et l'ère du développement du système d'apprentissage par renforcement dans X5 a commencé.

Un peu sur l'apprentissage par renforcement
* RL (Reinforcement Learning) est un apprentissage renforcé. L'un des moyens d'apprentissage automatique, au cours duquel le système de test (agent) est formé, interagissant avec un certain environnement.

La théorie de l'apprentissage renforcé fonctionne sur deux concepts: l'action et l'état. En fonction de l'état de l'objet, l'algorithme décide du choix des actions. À la suite de l'action parfaite, l'objet tombe dans un nouvel état et ainsi de suite.



En supposant que:

  • agent - client
  • action - communication avec le client
  • état - état (ensemble de métriques) du client
  • fonction d'objectif - améliorer le comportement des clients (par exemple, augmenter les revenus ou répondre à une campagne cible)

... alors le système décrit devrait résoudre l'objectif fixé et les agents (clients) choisiront eux-mêmes leurs actions (récompenses et campagnes) pour leur confort et des relations significatives avec le magasin.

Ce que l'esprit du monde RL offre
Tout d'abord, nous avons cherché des exemples de solutions à ces problèmes, décrits dans des sources ouvertes.
J'ai trouvé quelques exemples intéressants:

À propos des outils:


À propos de l'application de RL à des tâches marketing similaires:


Mais tous ne correspondaient pas à notre cas ou n'inspiraient pas confiance.

Étape 1. Solutions prototypes

Nous avons donc décidé de développer notre approche.

Afin de minimiser les risques et de ne pas entrer dans une situation où le système a été développé pendant longtemps sans utilisation réelle, puis n'a finalement pas décollé, nous avons décidé de commencer avec un prototype qui ne mettrait pas en œuvre la méthode RL dans sa forme pure, mais qui avait un résultat commercial compréhensible.

La base des implémentations de base de l'apprentissage renforcé est la matrice état-action-résultat, qui est mise à jour chaque fois que de nouvelles informations sont reçues de l'environnement.

Pour réduire l'espace d'état, dans le cadre du prototype, une transition a été effectuée du client vers le segment, où tous les clients ont été divisés en 29 groupes en fonction des paramètres:

  • chèque moyen
  • fréquence des achats
  • stabilité du panier
  • remplissage du panier
  • fidélisation de la clientèle (proportion du nombre de semaines d'achat avec le nombre de semaines pendant lesquelles une personne a participé au programme de fidélité en magasin)

Ainsi, la tâche a été réduite à l'apprentissage d'une matrice de la forme suivante:



À l'intersection, la matrice doit être remplie avec la valeur de la fonction cible.

Dans la première version de l'algorithme, la réponse spécifique à la campagne a été sélectionnée en fonction de la cible.

Le premier prototype que nous avons développé en quelques semaines en SQL (Oracle) et Python. Nous avions des données de communication historiques, nous avons donc pu remplir partiellement la matrice avec le poids estimé des paires «offre à offre». Malheureusement, il s'est avéré que pour certaines paires, les données sont insuffisantes. Cela ne nous a pas arrêtés, nous avions envie de procès de combat.

Le département marketing de Pyaterochka nous a confié des données sur deux millions de clients pour 10 semaines d'expériences. À cette époque, ces clients étaient déconnectés de toutes les autres communications. Nous avons identifié la moitié des clients du groupe témoin, sur les autres groupes, nous avons testé le prototype.

La théorie RL nous a dit que nous devons non seulement choisir la meilleure action, mais aussi continuer à apprendre. Par conséquent, chaque fois que nous testons une campagne aléatoire sur un petit pourcentage de clients. En conséquence, les clients restants ont reçu la meilleure offre (la meilleure campagne). Ainsi, nous avons obtenu notre implémentation de la méthode ε - gourmande pour choisir l'offre la plus optimale.



Après trois lancements du système, il est devenu clair que le choix de la meilleure campagne de réponse n'entraîne pas une augmentation du RTO spécifique par campagne (cet indicateur est la principale mesure de l'efficacité de toute campagne ciblée dans n'importe quelle organisation).

En changeant la fonction objectif (et, par conséquent, l'algorithme pour choisir la meilleure campagne) directement en RTO incrémentiel, nous avons appris que les campagnes les plus réussies de ce point de vue ne sont pas rentables en termes de ROI.

Donc pour le huitième lancement du système, nous avons changé la fonction de l'objectif pour la troisième fois, désormais sur ROI.

Conclusions du développement du prototype

Voici les graphiques de performance des principaux indicateurs:

  • Réponse nette du client à la communication
  • RTO incrémental
  • Marginalité







Vous remarquerez que lors du dernier lancement, l'efficacité du prototype (en RTO incrémentiel) dépassait le résultat moyen des campagnes lancées par les analystes, et si l'on ne considère que les «meilleurs» segments et offres, la différence est plus du double.

Pour l'avenir, nous avons tiré les conclusions suivantes pour nous-mêmes:

  1. Parler à l'avance à une entreprise KPI n'est peut-être pas suffisant. Les KPI d'un client professionnel évoluent également. (Nous sommes donc passés de l'OTR à la marginalité).
  2. Les objectifs indirects (dans notre cas, la réponse) sont bons, mais tôt ou tard il vous sera demandé de prendre en compte les indicateurs de performance directs.
  3. Les meilleures paires ont été trouvées pour la campagne de segmentation, qui affiche toujours de bons résultats. Ces campagnes ont été lancées dans toute la base et génèrent régulièrement des revenus.

Total:

  1. circuit fonctionne
  2. cela vaut la peine de prendre en compte les coûts du client (la victoire à l'IRTI n'a pas assuré la croissance du ROI)
  3. Je voudrais prendre en compte l'historique des réponses
  4. maintenant ce n'est pas si effrayant d'aller au niveau client

Étape 2. Nous terminons le système

Inspirés par les résultats de la première étape, nous avons décidé de finaliser le système et d'apporter les améliorations fonctionnelles suivantes:

1) passer du choix d'une offre à un segment de clients au choix individuel d'une offre pour un client, en la décrivant avec un ensemble de métriques:

  • Indicateur de réponse à la dernière offre
  • Le rapport entre la prise de force du client pendant 2 semaines et la prise de force pendant 6 semaines
  • Le rapport du nombre de jours entre le dernier achat et la distance moyenne entre les transactions
  • Nombre de semaines depuis la dernière communication
  • Le rapport entre le montant des bonus utilisés par mois et le montant des RTO par mois
  • Atteindre l'objectif au cours des deux semaines précédentes
  • Drapeaux de réponse aux offres avec différents types de récompenses
  • choisissez non pas 1, mais une chaîne de deux campagnes suivantes

2) clarifier la fonction de l'objectif, en y ajoutant, en plus de la réponse, la croissance de la prise de force :).

Maintenant, en choisissant une offre individuelle pour le client, nous nous concentrons sur la valeur attendue de la fonction objectif Q1:

  • Q = 1 si le client a répondu à la campagne et que son RTO de 2 semaines pendant l'épisode a augmenté de m%
  • Q = 0, si le client n'a PAS répondu à la campagne et que son RTO de 2 semaines pendant l'épisode a augmenté de m%
  • Q = 0, si le client a répondu à la campagne et que son RTO de 2 semaines pendant l'épisode a augmenté de MOINS que de m%
  • Q = -1, si le client n'a PAS répondu à la campagne et que son RTO de 2 semaines pendant l'épisode a augmenté de MOINS que de m%

Le pilotage de la deuxième approche bat son plein, mais nous avons déjà dépassé les résultats précédents.

Et ensuite

Heureusement, les résultats ravissent non seulement l'équipe de mise en œuvre et de développement, mais aussi les clients commerciaux.Par conséquent, à l'avenir, en plus des améliorations fonctionnelles, il est prévu de créer des systèmes similaires qui fonctionnent pour le marketing en temps réel et en ligne.

De plus, un lecteur attentif remarquera que jusqu'à présent nous n'avons pas utilisé RL dans sa forme la plus pure, mais seulement dans son concept. Néanmoins, même avec cette simplification, nous observons un résultat positif et sommes maintenant prêts à aller de l'avant, compliquant notre algorithme. Par notre exemple, nous voulons inspirer les autres à passer «du simple au complexe».

Edition Habr X5 remercie la société Glowbyte Consulting pour l'aide à la préparation d'un article. Le pilote a été achevé par une équipe combinée de six spécialistes de Pyaterochka et Glowbyte.

Soit dit en passant, nous recherchons un responsable du développement de produits Big Data, un spécialiste des données, un spécialiste de l' analyse et un gestionnaire de programme de fidélisation.

Source: https://habr.com/ru/post/fr430112/


All Articles