Retour sur l'atelier
Présentation des intervenants
Cet atelier a été présenté par :
Introduction
La prédiction de la durée d’utilisation d’une application par un utilisateur ainsi que le revenu généré par cet utilisateur sur cette durée, appelé aussi customer lifetime value, sont devenus, aujourd’hui, des besoins majeurs pour les campagnes de marketing. En effet, les utilisateurs fidèles ont plus d’intérêt pour les campagnes marketing.
C’est un des sujets sur lesquels travaille Kovalee, éditeur d’applications mobiles à travers le monde.
Des algorithmes de forecasting performants ont déjà été développés par les équipes Data. Cependant, en 2018, Apple a introduit SKAd Network [1], une solution qui permet de mesurer les performances des campagnes marketing et de permettre leurs optimisations par les équipes responsables. L’avantage de SKAd Network, côté utilisateur, est que cette API protège au mieux la vie privée des utilisateurs mais le désavantage, côté entreprise, est que les données sont moins riches ce qui dégrade les modèles de prédiction anciennement mis en place.
C’est donc pour cela que les équipes Data doivent revoir et améliorer leurs modèles afin d’estimer la valeur d’un utilisateur avec seulement un temps limité de données.
Données utilisées
Pour cet atelier, nous avons à disposition des événements d’utilisateurs qui ont installé une application de Fitness entre le 1er septembre 2022 et le 31 décembre 2022. Chaque événement déclenché par un utilisateur se traduit par une ligne dans le dataframe et est illustré par 47 colonnes comme l’id de l’utilisateur, la date à laquelle l’événement s’est produit, des caractéristiques sur l’appareil de l’utilisateur, des notifications activées ou non, etc.
En tout, il y a 17.487.321 événements qui proviennent de 375.830 utilisateurs uniques.
En se basant sur ces données brutes, Bastien et Maryeme ont créé 6 autres datasets pour une approche série temporelle.
Problématiques de l’atelier
Lors de cet atelier, nous avons abordé les problématiques suivantes qui sont essentielles pour Kovalee aujourd’hui :
1. Un utilisateur qui souscrit durant les 48 premières heures va-t-il résilier dans le mois suivant ?
2. Parmi les utilisateurs qui ne souscrivent pas dans les 48 premières heures, lesquels vont :
a. ne jamais souscrire,
b. souscrire dans une période de 8 jours après les 48h et résilier dans les 30 jours après la souscription,
c. souscrire dans une période de 8 jours après les 48h et ne pas résilier.
Synthèse des méthodes abordées
Lors de cet atelier, nous avons abordé les notions suivantes :
1. Les méthodes statistiques classiques (Machine Learning).
2. Les méthodes statistiques pour les séries temporelles.
3. Rééquilibrage des classes.
1. Les méthodes statistiques classiques
En partant des données brutes des événements des 375.830 utilisateurs uniques, certains participants ont choisi de ne pas prendre en compte l’aspect temporel des différents événements. Pour ce faire, ils ont agrégé les données brutes afin de créer un dataset global avec une ligne par utilisateur. Avant de faire cela, les participants ont encodé les variables catégorielles comme le pays, les événements, …
Une fois ce pré-processing fait, plusieurs modèles de Machine Learning ont été entraînés comme la régression logistique [1], la Random Forest [2] ou encore le SVM [3] de la librairie Scikit-Learn [4].
2. Les méthodes statistiques pour les séries temporelles
D’autres participants sont partis sur les données modifiées par Bastien et Maryeme, afin d'utiliser des méthodes statistiques propres aux séries temporelles et de prendre en compte l'effet de la temporalité des événements par rapport aux approches sur des données agrégées.
2.1. Les Functional Isolation Forests (FIF)
Pour rappel, les méthodes Isolation Forest [5] classiques permettent de détecter des anomalies au sein d’un jeu de données contenant plusieurs échantillons de plusieurs variables. Ces méthodes reposent sur des arbres de décision.
Les Functional Isolation Forests [6] sont une extension des Isolation Forests aux séries temporelles. Le principe reste le même mais cette fois-ci, les échantillons sont des fonctions qui dépendent du temps. Cette méthode est très intéressante dans notre cas les comportements clients que nous voulons détecter sont des anomalies. En effet, si on regarde les utilisateurs qui ne paient pas durant les 48 premières heures, il y en a environ 200.000. Parmi ces 200.000, seulement 345 vont souscrire et résilier dans le mois (soit 0,17%), et 1792 vont souscrire et ne pas résilier (soit 0,9%).
3. Rééquilibrage des classes
Les participants qui ont utilisé les méthodes classiques de Machine Learning pour répondre à la première problématique (quels utilisateurs vont résilier dans le premier mois) se sont heurtés à un problème d’équilibrage des classes. En effet, environ 25% des utilisateurs ont résilié leur abonnement dans le premier mois. Pour que les modèles s'entraînent au mieux et ne négligent pas la classe minoritaire, il faut procéder à un resampling des classes. Les deux méthodes les plus connues sont l’Under-Sampling [7] et l'Over-Sampling [8].
Si vous souhaitez en savoir plus, n'hésitez pas à vous rendre sur les liens suivants :
[1] SKAdNetwork
[2] La régression logistique expliquée à ma grand-mère
[4] Support Vector Machines(SVM) — An Overview
[5] Scikit-Learn
[6] Outlier Detection with Isolation Forest
[7] Functional Isolation Forest
[8] Using Under-Sampling Techniques for Extremely Imbalanced Data
[9] Using Over-Sampling Techniques for Extremely Imbalanced Data
[10] Imbalanced-Learn
Vous pouvez retrouver la présentation ainsi que une synthèse plus détaillée de l'atelier si vous souhaitez en savoir plus.