Comment utiliser un réseau neuronal pour déterminer la meilleure date d'envoi d'e-mails et multiplier par 8,5 les revenus de messagerie

Pour éviter que les newsletters ne se perdent dans leur boîte de réception et que les clients ouvrent leurs e-mails et effectuent des achats plus souvent, il est important de deviner l'heure d'envoi correcte. À l'aide d'un réseau de neurones, nous avons analysé le comportement des clients et prédit la date d'envoi du prochain e-mail afin de recommander des produits au client au moment où il souhaite les acheter. Testé dans les animaleries sur des listes de diffusion de réachat et évalué le résultat à l'aide de tests AB. Nous avons obtenu les résultats suivants:



23 fois

plus d'e-mails ciblés utilisant un réseau de neurones par rapport à un déclencheur



8,5 fois

plus de revenus issus du marketing par e-mail par attribution dernier clic



2 fois

moins de désabonnements



17 fois

plus d'ouvertures





Ci-dessous, nous partagerons notre expérience et vous dirons:



  • pourquoi nous avons décidé d'utiliser le modèle de réseau de neurones LSTM pour prédire la date d'envoi des e-mails au lieu de l'algorithme d'amplification de gradient;
  • comment fonctionne le LSTM;
  • quelles données le réseau neuronal utilise pour la formation;
  • quelle architecture du réseau neuronal a été utilisée et quelles difficultés ils ont rencontrées;
  • quels résultats ont été obtenus et comment ils ont été évalués.


Pourquoi avez-vous décidé d'abandonner l'algorithme de boosting de gradient au profit du LSTM



Les newsletters par e-mail aident à informer les clients sur les nouveaux produits, à réactiver les clients en désarroi ou à afficher des recommandations personnalisées. Pour chaque client, la date du meilleur mailing est différente: quelqu'un fait des achats le week-end, il est donc préférable d'envoyer un mail le samedi; et quelqu'un a récemment acheté une maison pour un chat, et cela vaut la peine d'envoyer une lettre dès que possible et de le conseiller sur la nourriture. Un réseau de neurones nous a aidés à déterminer la meilleure date pour envoyer un e-mail et à deviner le besoin du client.



Au début, nous avons utilisé des algorithmes standard. Pendant une année entière, nous avons créé des signes à partir de l'historique des actions clients et formé un boosting de gradient sur eux afin de prédire la meilleure date d'envoi des emails. Par exemple:



  • calculé le nombre de jours qui s'écouleront entre la date d'achat et le prochain achat;
  • essayé de faire une classification des signes et de prédire la probabilité d'envoyer une lettre un certain jour;
  • a tenté de déterminer les intérêts de l'utilisateur en fonction du lieu de résidence afin d'augmenter la probabilité de voir la lettre et les clics.


Mais ce modèle n'a pas donné un résultat positif stable pour tous les projets, il n'a pas pu trouver de modèles complexes dans le comportement des utilisateurs et n'a pas rapporté assez d'argent.



Alors que nous pensions déjà abandonner l'algorithme et l'idée de prédire la date d'envoi du courrier électronique, nous avons décidé d'essayer quelque chose d'exotique et de former le modèle LSTM du réseau neuronal à cette tâche. Il est généralement utilisé pour l'analyse de texte, moins souvent pour analyser les cours des actions sur les marchés financiers, mais jamais à des fins de marketing. Et le LSTM a fonctionné.



Qu'est-ce que LSTM



LSTM (Long Short Term Memory) est une architecture de réseau neuronal issue de l'analyse du langage naturel.



Analysons le fonctionnement de LSTM en utilisant la traduction automatique comme exemple. Toutes les lettres du texte sont transmises à l'entrée du réseau de neurones à tour de rôle, et à la sortie, nous voulons obtenir une traduction dans une autre langue. Pour traduire du texte, le réseau doit stocker des informations non seulement sur la lettre actuelle, mais également sur celles qui se trouvent devant elle. Un réseau de neurones ordinaire ne se souvient pas de ce qu'il a été montré auparavant et ne peut pas traduire un mot ou un texte entier. LSTM, d'autre part, a des cellules de mémoire spéciales où les informations utiles sont stockées, par conséquent, il produit un résultat basé sur les données totales et traduit le texte en tenant compte de toutes les lettres des mots. Au fil du temps, le réseau neuronal peut effacer les cellules et oublier des informations qui ne sont plus nécessaires.



Le même principe s'est avéré important pour prédire les actions des utilisateurs. Le réseau de neurones a pris en compte l'historique complet des actions et a produit des résultats pertinents - par exemple, il a déterminé la meilleure date pour l'envoi d'un e-mail.



Structure interne d'une couche LSTM





La couche interne du LSTM est constituée des opérations d'addition + , de multiplication × , de sigmoïde σ et de tangente hyperbolique tanh



Quelles données sont utilisées par le réseau neuronal



Pour apprendre à prédire la meilleure date d'envoi d'e-mails, le réseau neuronal analyse un ensemble de données historiques. On passe dans la séquence le temps écoulé entre les actions et 9 types de jetons:



  • acheter un produit bon marché,
  • acheter un produit à prix moyen,
  • acheter un produit cher,
  • consulter un produit bon marché,
  • visualiser un produit à prix moyen,
  • voir un produit coûteux,
  • recevoir une lettre,
  • ouvrir une lettre,
  • cliquez sur n'importe quel objet à l'intérieur de la lettre.


Voici à quoi ressemble un exemple typique de séquence d'entrée:



(view_medium, 0.5, view_cheap, 24, buy_cheap) Un



utilisateur avec cette séquence a regardé un produit à prix moyen, a regardé un produit bon marché en une demi-heure et a décidé d'acheter un produit bon marché un jour plus tard.



Les cinq dernières actions utilisateur sont la variable cible. Leur réseau neuronal a appris à prédire.



Quelle architecture du réseau neuronal a été utilisée



Les premières tentatives de formation du réseau de neurones ont échoué: il a été recyclé et n'a toujours prédit que l'envoi d'une lettre, et pas d'autres actions, par exemple, la probabilité d'ouvrir une lettre ou d'acheter. Étant donné que les clients sont plus susceptibles de recevoir des e-mails que de les ouvrir ou d'acheter quelque chose, «recevoir des e-mails» est le jeton le plus fréquent. Le réseau de neurones a reçu de bons résultats en termes de métriques, bien que le résultat réel soit négatif. Après tout, il ne sert à rien d'un algorithme qui dit toujours que le client recevra une lettre - et rien d'autre.



Par exemple, il existe une séquence d'entrée de trois jetons "recevoir une lettre" et un "achat de marchandises". Le réseau neuronal le traite et prédit une séquence avec quatre jetons «réception de courrier». Dans 3 cas sur 4, elle devinera, et le client recevra effectivement une lettre, mais une telle prédiction n'a aucun sens. La tâche principale est de prédire quand un client ouvrira un e-mail et effectuera un achat.



Après avoir testé plusieurs architectures et parcours d'apprentissage, nous avons trouvé ce qui fonctionnait.



Comme d'habitude pour les modèles Seq2Seq, le réseau se compose de deux parties: un encodeur et un décodeur. L'encodeur est petit et se compose de LSTM et de couches d'intégration, mais le décodeur utilise également l'auto-attention et l'abandon. Dans la formation, nous utilisons le forçage de l'enseignant - parfois nous donnons une prédiction de réseau comme entrée pour la prochaine prédiction.



Le codeur encode la séquence d'entrée dans un vecteur qui contient des informations importantes, de l'avis du réseau, sur les actions de l'utilisateur. Le décodeur, au contraire, décode le vecteur résultant en une séquence - c'est la prédiction du réseau.



Obtenir une prédiction à l'aide d'un réseau LSTM







Durée de la formation: le modèle a été entraîné pendant environ une journée sur Tesla V100 et à la fin de la formation, il a reçu ROC-AUC 0,74.



Comment le modèle LSTM fonctionne avec des données réelles (inférence)



Pour appliquer le modèle à un utilisateur et savoir s'il vaut la peine de lui envoyer une lettre, nous allons collecter un vecteur de ses dernières actions et le faire passer à travers le réseau de neurones. Supposons que la réponse du réseau neuronal soit comme ceci:



(email_show, 10, email_open, 0.5, view_cheap, 0.5 view_medium, 15 buy_medium)



Le modèle prédit non seulement les actions, mais aussi le temps qui s'écoulera entre elles. Coupons tous les événements qui se produisent plus tard qu'un jour plus tard. Nous les traiterons le lendemain, car pendant ce temps, de nouvelles informations sur les actions du client peuvent apparaître, qui devront être prises en compte. Nous obtenons la séquence suivante:



(email_show, 10, email_open, 0.5, view_cheap, 0.5 )



Il y a un jeton de vue dans la séquence, donc un e-mail sera envoyé à l'utilisateur aujourd'hui.



Il est important d'envoyer un e-mail uniquement s'il existe un jeton de visualisation ou d'achat et de ne pas recevoir d'e-mail, afin que le réseau ne répète pas les envois déclencheurs dont il s'est souvenu plus tôt. Par exemple, si vous ne prenez pas en compte la visualisation et les achats, nous pouvons obtenir une séquence uniquement avec des jetons pour recevoir une lettre. Et puis le réseau dupliquera les paramètres de déclenchement du marketing au lieu de prédire l'ouverture d'un e-mail ou d'un achat:



(email_show, 10, email_show, 15, email_show, 0.5)



Comment le résultat a été évalué



Pour vérifier les performances du modèle, nous avons effectué des tests AB. Comme référence, nous avons utilisé un algorithme qui calcule le temps moyen entre les achats d'un utilisateur et envoie un e-mail lorsque ce temps passe. La moitié des utilisateurs ont reçu des e-mails basés sur les décisions de base, l'autre - selon les prédictions du modèle. Des tests AB ont été réalisés avec la clientèle des animaleries Beethoven et Staraya Farm .



Le test a duré deux semaines et a atteint une signification statistique. Le réseau de neurones a appris à trouver 23 fois plus d'utilisateurs qui devraient envoyer un e-mail, alors qu'en termes de pourcentage, le taux d'ouverture n'a baissé que de 5% et le nombre d'ouvertures en chiffres absolus a augmenté de 17 fois.



Résultat du test AB pour le modèle de réseau de neurones LSTM et conclusions







Ainsi, l'expérience avec un réseau de neurones au lieu d'un algorithme s'est avérée fructueuse. Le modèle de réseau neuronal LSTM est devenu un outil approprié pour prédire la meilleure date d'envoi d'e-mails. Nous avons appris de notre propre expérience qu'il n'y a pas lieu d'avoir peur d'utiliser des modèles non standard pour résoudre des problèmes triviaux.



Sergey Yudin, développeur ML, auteur



All Articles