Parfois, pour résoudre un problème, il suffit de le regarder sous un angle différent. Même si au cours des 10 dernières années de tels problèmes ont été résolus de la même manière avec des effets différents, ce n'est pas un fait que cette méthode est la seule.
Il existe un sujet comme le taux de désabonnement des clients. La chose est inévitable, car les clients de toute entreprise peuvent prendre et cesser d'utiliser ses produits ou services pour de nombreuses raisons. Bien sûr, pour l'entreprise, la sortie est une action naturelle, mais pas la plus souhaitable, donc tout le monde essaie de minimiser cette sortie. Et encore mieux - pour prédire la probabilité d'une sortie d'une catégorie particulière d'utilisateurs, ou d'un utilisateur spécifique, et proposer des étapes de rétention.
Analysez et essayez de garder le client, si possible, au moins pour les raisons suivantes:
- attirer de nouveaux clients coûte plus cher que les procédures de rétention . Pour attirer de nouveaux clients, en règle générale, vous devez dépenser de l'argent (publicité), tandis que les clients existants peuvent être activés avec une offre spéciale avec des conditions spéciales;
- Comprendre pourquoi les clients partent est la clé de l'amélioration des produits et services .
Il existe des approches standard pour prévoir les sorties. Mais à l'un des championnats d'IA, nous avons décidé de prendre et d'essayer la distribution Weibull pour cela. Le plus souvent, il est utilisé pour l'analyse de survie, les prévisions météorologiques, l'analyse des catastrophes naturelles, le génie industriel et similaires. La distribution de Weibull est une fonction de distribution spéciale paramétrée par deux paramètres
et
.
WikipédiaEn général, la chose est divertissante, mais pour prédire le débit, et en effet dans la fintech, elle n'est pas utilisée si souvent. Sous la coupe, nous vous dirons comment nous (le Laboratoire de Data Mining) avons fait cela en remportant l'or au Championnat AI dans la nomination "AI in Banks".
À propos des sorties en général
Voyons un peu ce qu'est le flux sortant du client et pourquoi il est si important. Pour les entreprises, la clientèle est importante. De nouveaux clients viennent dans cette base de données, par exemple, après avoir pris connaissance d'un produit ou d'un service grâce à la publicité, ils vivent pendant un certain temps (utilisent activement les produits) et après un certain temps, ils cessent de l'utiliser. Cette période est appelée «cycle de vie du client» (eng. Cycle de vie du client) - un terme qui décrit les étapes que le client traverse lorsqu'il découvre un produit, prend une décision d'achat, paie, utilise et devient un client fidèle, et finalement cesse d'utiliser pour une raison ou pour un autre produit. En conséquence, la sortie est la dernière étape du cycle de vie du client lorsque le client cesse d'utiliser les services, et pour les entreprises, cela signifie que le client a cessé d'être rentable et en général, tout avantage.
Chaque client de la banque est une personne spécifique qui sélectionne une carte bancaire particulière spécifiquement pour ses besoins. Voyage souvent - une carte avec des miles est utile. Il achète beaucoup - bonjour, carte avec cashback. Il achète beaucoup dans des magasins spécifiques - et pour cela, il existe déjà un plastique d'affiliation spécial. Bien sûr, parfois une carte est également sélectionnée selon le critère du «Service le moins cher». En général, il y a suffisamment de variables ici.
Et une autre personne choisit la banque elle-même - cela vaut-il la peine de choisir une carte bancaire, dont les succursales ne se trouvent qu'à Moscou et dans la région lorsque vous êtes de Khabarovsk? Si la carte d'une telle banque est au moins 2 fois plus rentable, la présence d'agences bancaires à proximité reste un critère important. Oui, 2019 est déjà là et le numérique est notre tout, mais un certain nombre de problèmes pour certaines banques ne peuvent être résolus qu'en succursale. De plus, encore une fois, une partie de la population fait confiance à une banque physique bien plus qu'une application sur un smartphone, cela doit également être pris en compte.
En conséquence, une personne peut avoir de nombreuses raisons de rejeter les produits de la banque (ou la banque elle-même). Il a changé d'emploi et le taux de la carte est passé d'un salaire à «Pour les simples mortels», ce qui est moins rentable. Il a déménagé dans une autre ville où il n'y a pas de succursales bancaires. Je n'aimais pas parler avec un opérateur non qualifié du département. Autrement dit, il peut y avoir encore plus de raisons de fermer un compte que d'utiliser un produit.
Et le client peut non seulement exprimer explicitement son intention - venir à la banque et rédiger une déclaration, mais simplement cesser d'utiliser les produits sans rompre le contrat. Ici, pour comprendre ces problèmes, il a été décidé d'utiliser l'apprentissage automatique et l'IA.
De plus, les sorties de clients peuvent se produire dans n'importe quelle industrie (télécommunications, fournisseurs d'accès Internet, compagnies d'assurance, en général, partout où il y a une clientèle et des transactions périodiques).
Qu'avons-nous fait
Tout d'abord, il était nécessaire de décrire une frontière claire - depuis quand avons-nous commencé à considérer que le client était parti. Du point de vue de la banque qui nous a fourni les données pour le travail, l'état d'activité du client était binaire - il est actif ou non. Il y avait un indicateur ACTIVE_FLAG dans la table «Activity», dont la valeur pouvait être «0» ou «1» (respectivement, «Inactive» et «Active»). Et tout irait bien, mais la personne est telle qu'elle peut l'utiliser activement pendant un certain temps, puis tomber de l'actif pendant un mois - il tombe malade, va dans un autre pays pour se reposer, ou même va tester la carte d'une autre banque. Ou peut-être après une longue période d'inactivité, recommencez à utiliser les services de la banque
Par conséquent, nous avons décidé d'appeler la période d'inactivité une certaine période de temps continue pendant laquelle l'indicateur correspondant a été défini sur "0".

Les clients passent d'inactifs à actifs après des périodes d'inactivité de différentes durées. Nous avons la possibilité de calculer le degré de valeur empirique «fiabilité des périodes d'inactivité» - c'est-à-dire la probabilité qu'une personne recommence à utiliser les produits de la banque après une inactivité temporaire.
Par exemple, ce graphique montre la reprise d'activité (ACTIVE_FLAG = 1) des clients après plusieurs mois d'inactivité (ACTIVE_FLAG = 0).

Ici, nous allons clarifier un peu l'ensemble de données avec lequel nous avons commencé à travailler. Ainsi, la banque a fourni des informations agrégées pour 19 mois dans les tableaux suivants:
- «Activité» - transactions mensuelles des clients (par carte, dans les services bancaires par Internet et mobiles), y compris les informations sur la paie et le chiffre d'affaires.
- «Cartes» - données sur toutes les cartes dont dispose un client, avec une grille tarifaire détaillée.
- «Contrats» - informations sur les contrats clients (ouverts et fermés): prêts, dépôts, etc., en indiquant les paramètres de chacun.
- «Clients» - un ensemble de données démographiques (sexe et âge) et la disponibilité des données de contact.
Pour le travail, nous avions besoin de toutes les tables sauf la "Carte".
La difficulté était autre chose - dans ces données, la banque n'a pas indiqué quel type d'activité se déroulait sur les cartes. Autrement dit, nous pouvions comprendre s'il y avait des transactions ou non, mais nous ne pouvions plus déterminer leur type. Par conséquent, il n'était pas clair si le client retirait de l'argent, s'il recevait un salaire ou s'il dépensait de l'argent pour des achats. Et nous ne disposions pas de données sur les soldes des comptes, ce qui serait utile.
L'échantillon lui-même était non biaisé - pour cette section pendant 19 mois, la banque n'a fait aucune tentative pour fidéliser les clients et minimiser les sorties.
Donc, à propos des périodes d'inactivité.
Pour formuler la définition de sortie, vous devez choisir une période d'inactivité. Pour créer une prévision de sortie à la fois
, vous devez avoir un historique client d'au moins 3 mois dans l'intervalle
. Notre histoire était limitée à 19 mois, nous avons donc décidé de prendre une période d'inactivité de 6 mois, le cas échéant. Et pour la période minimale pour une prévision qualitative, cela a pris 3 mois. Les chiffres à 3 et 6 mois que nous avons pris empiriquement sont basés sur une analyse du comportement des données clients.
La définition de sortie que nous avons formulée comme suit: mois client de sortie
il s'agit du premier mois avec ACTIVE_FLAG = 0, où au moins six zéros consécutifs dans le champ ACTIVE_FLAG partent de ce mois, en d'autres termes, le mois depuis lequel le client est inactif depuis 6 mois.
Nombre de clients décédés
Nombre de clients restantsComme il est considéré comme une sortie
Dans ces compétitions, et même dans la pratique, les sorties sont souvent prédites de cette manière. Le client utilise des produits et services à différents intervalles de temps; les données d'interaction avec lui sont présentées sous la forme d'un vecteur caractéristique de longueur fixe n. Le plus souvent, ces informations comprennent:
- Données spécifiques à l'utilisateur (données démographiques, segment marketing).
- L'historique de l'utilisation des produits et services bancaires (ce sont des actions clients qui sont toujours liées à une période ou une période spécifique de l'intervalle dont nous avons besoin).
- Les données externes, si elles sont en mesure de les obtenir - par exemple, les avis des réseaux sociaux.
Et après cela, ils dérivent la définition de sortie, la sienne pour chaque tâche. Ensuite, ils utilisent l'algorithme d'apprentissage automatique, qui prédit la probabilité que le client quitte
basé sur le vecteur de facteurs
. Pour apprendre l'algorithme, l'un des cadres bien connus pour la construction d'ensembles d'arbres de décision,
XGBoost ,
LightGBM ,
CatBoost ou leurs modifications est utilisé.
L'algorithme lui-même n'est pas mauvais, mais en termes de prévision des sorties, il présente plusieurs inconvénients graves.
- Il n'a pas la soi-disant «mémoire» . L'entrée du modèle reçoit un nombre donné de caractéristiques qui correspondent à l'instant présent dans le temps. Afin de disposer d'informations sur l'historique des changements de paramètres, il est nécessaire de calculer des caractéristiques spéciales qui caractérisent les changements de paramètres au fil du temps, par exemple, le nombre ou le montant des transactions bancaires au cours des 1.2.3 derniers mois. Une telle approche ne peut que partiellement refléter la nature des changements temporaires.
- Horizon de prévision fixe. Le modèle est capable de prédire les sorties de clients uniquement pour une période de temps prédéterminée, par exemple, une prévision un mois à l'avance. Si vous avez besoin d'une prévision pour une autre période, par exemple pour trois mois, vous devez alors reconstruire l'ensemble de formation et recycler le nouveau modèle.
Notre approche
Nous avons décidé immédiatement de ne pas utiliser d'approches standard. En plus de nous, 497 personnes se sont inscrites au championnat, chacune ayant une bonne expérience. Donc, essayer de faire quelque chose de manière standard dans de telles conditions n'est pas une bonne idée.
Et nous avons commencé à résoudre les problèmes rencontrés par le modèle de classification binaire en prédisant la distribution probabiliste des temps de sortie des clients. Une approche similaire peut être observée
ici ; elle permet une prévision plus flexible des sorties et teste des hypothèses plus complexes que dans l'approche classique. En tant que famille de distributions simulant le temps de sortie, nous avons choisi la
distribution de Weibull pour son utilisation répandue dans l'analyse de survie. Le comportement du client peut être considéré comme une sorte de survie.
Voici des exemples de distributions de densité de probabilité de Weibull en fonction des paramètres
et
:

Il s'agit de la distribution de densité de probabilité de désabonnement des clients de trois clients différents au fil du temps. Le temps est présenté en mois. En d'autres termes, ce graphique indique le moment où le client sortira probablement au cours des deux prochains mois. Comme vous pouvez le voir, un client avec une distribution a un grand potentiel de partir plus tôt que les clients avec une distribution Weibull (2, 0,5) et Weibull (3.1).
Le résultat est un modèle qui, pour chaque client, pour tout
du mois prédit les paramètres de distribution de Weibull, qui reflètent le mieux le début de la probabilité de sortie au fil du temps. Si plus de détails:
- Caractéristiques cibles dans l'échantillon de formation - le temps restant avant la sortie dans un mois particulier pour un client particulier.
- S'il n'y a pas d'indicateur de sortie pour le client, nous supposons que la durée de sortie est plus longue que le nombre de mois, à partir de la date actuelle et de la fin de notre historique.
- Le modèle utilisé: un réseau neuronal récurrent avec une couche LSTM.
- En tant que fonction de perte, nous utilisons la fonction de vraisemblance logarithmique négative pour la distribution de Weibull.
Voici les avantages de cette méthode:
- La distribution probabiliste, en plus de la possibilité évidente de classification binaire, vous permet de prévoir de manière flexible divers événements, par exemple, si le client cesse d'utiliser les services de la banque dans les 3 mois. De plus, si nécessaire, diverses mesures peuvent être moyennées sur cette distribution.
- Le réseau neuronal récurrent LSTM possède une mémoire et utilise efficacement toute l'histoire. Avec l'expansion ou le raffinement de l'histoire, la précision augmente.
- L'approche peut être mise à l'échelle sans problème lors de la division des intervalles de temps en plus petits (par exemple, lors de la division des mois en semaines).
Mais il ne suffit pas de créer un bon modèle, vous devez également évaluer correctement sa qualité.
Comment évaluer la qualité
En tant que métrique, nous avons choisi Lift Curve. Il est utilisé dans les affaires pour de tels cas en raison d'une interprétation compréhensible; il est bien décrit
ici et
ici . Si vous décrivez la signification de cette métrique dans une phrase, vous obtenez «Combien de fois l'algorithme fait la meilleure prédiction dans la première
% qu'au hasard. "
Nous formons des modèles
Les conditions de compétition n'ont pas établi de métrique de qualité spécifique permettant de comparer différents modèles et approches. En outre, la définition du concept de sortie peut être différente et peut dépendre de l'énoncé du problème, qui, à son tour, est déterminé par les objectifs commerciaux. Par conséquent, afin de comprendre quelle méthode est la meilleure, nous avons formé deux modèles:
- Une approche de classification binaire fréquemment utilisée utilisant l'algorithme d'apprentissage automatique d'un ensemble d'arbre de décision ( LightGBM );
- Modèle Weibull-LSTM
L'échantillon d'essai était composé de 500 clients présélectionnés qui n'étaient pas dans l'échantillon de formation. Pour le modèle, des hyper-paramètres ont été sélectionnés à l'aide d'une validation croisée par le client. Pour former chaque modèle, les mêmes ensembles d'attributs ont été utilisés.
Étant donné que le modèle n'a pas de mémoire, des signes spéciaux ont été pris pour lui, montrant le rapport des changements des paramètres d'un mois à la valeur moyenne des paramètres au cours des trois derniers mois. Ce qui a caractérisé le taux de variation des valeurs au cours de la dernière période de trois mois. Sans cela, un modèle basé sur Random Forest serait dans une position auparavant perdante par rapport à Weibull-LSTM.
Pourquoi le LSTM avec la distribution de Weibull est meilleur que l'approche basée sur l'ensemble des arbres de décision
Ici, tout est clairement littéralement quelques images.
Comparaison de la courbe de levage pour l'algorithme classique et Weibull-LSTM
Comparaison métrique de courbe de portance mensuelle pour l'algorithme classique et Weibull-LSTMEn général, LSTM utilise l'algorithme classique dans presque tous les cas.
Prédiction de sortie
Un modèle basé sur un réseau de neurones récurrent avec des cellules LSTM avec une distribution de Weibull peut prédire le débit à l'avance, par exemple, prédire le départ d'un client au cours des n prochains mois. Considérons le cas pour n = 3. Dans ce cas, pour chaque mois, le réseau neuronal doit déterminer correctement si le client partira du mois suivant au nième mois. En d'autres termes, elle doit déterminer correctement si le client restera après n mois. Cela peut être considéré comme une prédiction à l'avance: prédire le moment où le client vient de commencer à réfléchir à la façon de partir.
Comparez la courbe de levage pour Weibull-LSTM 1, 2 et 3 mois avant la sortie:

Nous avons déjà écrit ci-dessus que les prévisions faites pour les clients qui ne sont pas actifs depuis un certain temps sont également importantes. Par conséquent, nous ajouterons ici à l'échantillon de tels cas lorsque le client décédé est déjà inactif depuis un ou deux mois, et vérifions que Weibull-LSTM classe correctement ces cas comme sortie. Étant donné que de tels cas étaient présents dans l'échantillon, nous nous attendons à ce que le réseau les gère bien:

Fidélisation de la clientèle
En fait, c'est la principale chose qui peut être faite avec les informations disponibles que tel ou tel client s'apprête à cesser d'utiliser le produit. En parlant de construire un modèle qui pourrait offrir quelque chose d'utile aux clients afin de les garder, cela ne fonctionnera pas si vous n'avez pas d'historique de telles tentatives qui se termineraient bien.
Nous n'avions pas une telle histoire, alors nous l'avons décidé comme ça.
- Nous construisons un modèle qui définit des produits intéressants pour chaque client.
- Chaque mois, nous exécutons un classificateur et identifions les clients sortants potentiels.
- Certains clients proposent un produit, selon le modèle du paragraphe 1, se souviennent de leurs actions.
- Après quelques mois, nous regardons lesquels de ces clients potentiellement sortants sont partis et lesquels sont restés. Ainsi, nous formons un échantillon de formation.
- Nous formons le modèle sur l'histoire obtenue au paragraphe 4.
- Éventuellement, répétez la procédure en remplaçant le modèle du paragraphe 1 par le modèle obtenu au paragraphe 5.
Les tests A / B habituels peuvent servir de contrôle de la qualité d'une telle rétention - nous divisons les clients qui partent potentiellement en deux groupes. Nous proposons des produits basés sur notre modèle de rétention à un, et nous n'offrons rien au second. Nous avons décidé de former un modèle qui pourrait déjà bénéficier au point 1 de notre exemple.
Nous voulions rendre la segmentation aussi interprétable que possible. Pour ce faire, nous avons choisi plusieurs signes facilement interprétables: le nombre total de transactions, le salaire, le chiffre d'affaires total du compte, l'âge, le sexe. Les signes du tableau «Cartes» n'ont pas été pris en compte comme non informatifs, et les signes du tableau 3 «Contrats» - en raison de la complexité du traitement afin d'éviter les fuites de données entre l'ensemble de validation et l'ensemble de formation.
Le regroupement a été effectué en utilisant des modèles de mélange gaussiens.
Le critère d'information Akaike a permis de déterminer 2 optimums. Le premier optimum correspond à 1 cluster. Le second optimum, moins prononcé, correspond à 80 grappes. La conclusion suivante peut être tirée de ce résultat: il est extrêmement difficile de diviser les données en grappes sans information a priori donnée. Pour un meilleur clustering, vous avez besoin de données qui décrivent chaque client en détail.Par conséquent, la tâche de formation avec un enseignant a été envisagée afin d'offrir à chaque client individuel un produit. Les produits suivants ont été pris en considération: «dépôt à terme», «carte de crédit», «découvert», «prêt à la consommation», «prêt automobile», «hypothèque».Un autre type de produit était présent dans les données: «Compte courant». Mais nous ne l'avons pas considéré en raison de la faible teneur en informations. Par des utilisateurs clients de la banque, c'est-à-dire Ils n'ont pas cessé d'utiliser ses produits, un modèle a été construit pour prédire quel produit pourrait les intéresser. La régression logistique a été choisie comme modèle, et la valeur de Lift pour les 10 premiers centiles a été utilisée comme mesure d'évaluation de la qualité.La qualité du modèle peut être estimée sur la figure.
Résultats du modèle de recommandation clientRésumé
Cette approche nous a apporté la première place dans la nomination «AI in Banks» au Championnat AI RAIF-Challenge 2017.
Apparemment, l'essentiel était d'aborder le problème d'un côté inhabituel et d'utiliser la méthode couramment utilisée pour d'autres situations.Bien que la sortie massive d'utilisateurs puisse bien être une catastrophe naturelle pour les services.Cette méthode peut être notée pour tout autre domaine où il est important de prendre en compte les sorties de fonds, et non par les banques dans leur ensemble. Par exemple, nous l'avons utilisé pour calculer nos propres sorties - dans les succursales sibérienne et de Saint-Pétersbourg de Rostelecom.Entreprise "Laboratoire d'exploration de données" "Portail de recherche" Spoutnik "