Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Soms moet je, om een ​​probleem op te lossen, er gewoon vanuit een andere hoek naar kijken. Ook al zijn soortgelijke problemen de afgelopen tien jaar op dezelfde manier opgelost met verschillende effecten, het is geen feit dat deze methode de enige is.

Er bestaat zoiets als klantverloop. Dit is onvermijdelijk, omdat klanten van elk bedrijf om vele redenen kunnen stoppen met het gebruik van zijn producten of diensten. Natuurlijk is churn voor een bedrijf een natuurlijke, maar niet de meest wenselijke actie, dus iedereen probeert dit churn te minimaliseren. Beter nog: voorspel de waarschijnlijkheid van klantverloop voor een bepaalde categorie gebruikers, of een specifieke gebruiker, en stel enkele stappen voor om deze te behouden.

Het is noodzakelijk om de klant te analyseren en te behouden, indien mogelijk, om ten minste de volgende redenen:

  • het aantrekken van nieuwe klanten is duurder dan retentieprocedures. Om nieuwe klanten aan te trekken, moet u in de regel wat geld uitgeven (reclame), terwijl bestaande klanten kunnen worden geactiveerd met een speciale aanbieding met speciale voorwaarden;
  • Het begrijpen van de redenen waarom klanten weggaan is de sleutel tot het verbeteren van producten en diensten.

Er zijn standaardbenaderingen voor het voorspellen van klantverloop. Maar bij een van de AI-kampioenschappen besloten we hiervoor de Weibull-distributie te proberen. Het wordt meestal gebruikt voor analyse van de overlevingskansen, weersvoorspellingen, analyse van natuurrampen, industriële engineering en dergelijke. Weibull-verdeling is een speciale verdelingsfunctie die wordt geparametreerd door twee parameters Hoe we klantverloop voorspelden door het als een natuurramp te benaderen и Hoe we klantverloop voorspelden door het als een natuurramp te benaderen.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Wikipedia

Over het algemeen is het interessant, maar voor het voorspellen van de uitstroom, en in fintech in het algemeen, wordt het niet zo vaak gebruikt. Hieronder vertellen we je hoe wij (Data Mining Laboratory) dit hebben gedaan en tegelijkertijd goud hebben gewonnen op het Artificial Intelligence Championship in de categorie ‘AI in Banks’.

Over churn in het algemeen

Laten we een beetje begrijpen wat klantverloop is en waarom het zo belangrijk is. Een klantenbestand is belangrijk voor een bedrijf. Nieuwe klanten komen bijvoorbeeld naar deze basis nadat ze via een advertentie over een product of dienst hebben geleerd, een tijdje leven (de producten actief gebruiken) en na een tijdje stoppen met het gebruik ervan. Deze periode wordt de “Klantlevenscyclus” genoemd – een term die de stadia beschrijft die een klant doorloopt wanneer hij een product leert kennen, een aankoopbeslissing neemt, betaalt, gebruikt en een loyale consument wordt, en uiteindelijk stopt met het gebruik van het product. om de een of andere reden. Dienovereenkomstig is churn de laatste fase van de levenscyclus van de klant, wanneer de klant stopt met het gebruik van de diensten, en voor een bedrijf betekent dit dat de klant geen winst meer maakt of helemaal geen voordeel oplevert.

Elke bankklant is een specifieke persoon die een of andere bankkaart kiest, specifiek voor zijn behoeften. Reist u vaak, dan is een kaart met mijlen handig. Koopt veel - hallo, cashback-kaart. Hij koopt veel in specifieke winkels - en daar is al een speciaal partnerplastic voor. Natuurlijk wordt er soms een kaart geselecteerd op basis van het criterium ‘Goedkoopste service’. Over het algemeen zijn er hier voldoende variabelen.

En een persoon kiest ook zelf de bank - wat heeft het voor zin om een ​​kaart te kiezen van een bank waarvan de filialen alleen in Moskou en de regio zijn, als je uit Khabarovsk komt? Zelfs als een kaart van zo'n bank minstens 2 keer winstgevender is, is de aanwezigheid van bankfilialen in de buurt nog steeds een belangrijk criterium. Ja, 2019 is al aangebroken en digitaal is ons alles, maar een aantal problemen bij sommige banken kunnen alleen in een kantoor worden opgelost. Bovendien vertrouwt een deel van de bevolking een fysieke bank veel meer dan een applicatie op een smartphone, daar moet ook rekening mee worden gehouden.

Hierdoor kan iemand veel redenen hebben om bankproducten (of de bank zelf) te weigeren. Ik veranderde van baan en het kaarttarief veranderde van salaris naar 'Voor gewone stervelingen', wat minder winstgevend is. Ik ben verhuisd naar een andere stad waar geen bankfilialen zijn. De interactie met de ongekwalificeerde telefoniste in het filiaal beviel mij niet. Dat wil zeggen dat er zelfs meer redenen kunnen zijn om een ​​account te sluiten dan om het product te gebruiken.

En de klant kan niet alleen zijn bedoeling duidelijk kenbaar maken - naar de bank komen en een verklaring schrijven, maar eenvoudigweg stoppen met het gebruik van de producten zonder het contract te beëindigen. Er werd besloten om machine learning en AI te gebruiken om dergelijke problemen te begrijpen.

Bovendien kan klantenverloop zich in elke sector voordoen (telecom, internetproviders, verzekeringsmaatschappijen in het algemeen, overal waar sprake is van een klantenbestand en periodieke transacties).

Wat hebben we gedaan

Allereerst was het nodig om een ​​duidelijke grens te beschrijven: vanaf welk tijdstip we beginnen te beschouwen dat de cliënt is vertrokken. Vanuit het standpunt van de bank die ons de gegevens voor ons werk heeft verstrekt, was de activiteitsstatus van de klant binair: hij is actief of niet. Er was een vlag ACTIVE_FLAG in de tabel 'Activiteit', waarvan de waarde '0' of '1' kon zijn (respectievelijk 'Inactief' en 'Actief'). En alles zou in orde zijn, maar een persoon is zodanig dat hij het een tijdje actief kan gebruiken en dan een maand lang uit de actieve lijst valt - hij werd ziek, ging op vakantie naar een ander land of ging zelfs een test doen kaart van een andere bank. Of misschien na een lange periode van inactiviteit weer gebruik gaan maken van de diensten van de bank

Daarom hebben we besloten een periode van inactiviteit een bepaalde aaneengesloten periode te noemen, gedurende welke de vlag daarvoor op “0” stond.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Cliënten gaan van inactief naar actief na perioden van inactiviteit van verschillende duur. We hebben de mogelijkheid om de mate van empirische waarde "betrouwbaarheid van perioden van inactiviteit" te berekenen - dat wil zeggen de waarschijnlijkheid dat iemand na tijdelijke inactiviteit weer bankproducten gaat gebruiken.

Deze grafiek toont bijvoorbeeld de hervatting van de activiteit (ACTIVE_FLAG=1) van klanten na enkele maanden van inactiviteit (ACTIVE_FLAG=0).

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Hier zullen we de dataset waarmee we begonnen te werken een beetje verduidelijken. Daarom verstrekte de bank geaggregeerde informatie voor 19 maanden in de volgende tabellen:

  • “Activiteit” - maandelijkse klanttransacties (via kaarten, bij internetbankieren en mobiel bankieren), inclusief salarisadministratie en omzetinformatie.
  • "Kaarten" - gegevens over alle kaarten die de klant heeft, met een gedetailleerd tariefschema.
  • "Overeenkomsten" - informatie over de overeenkomsten van de klant (zowel open als gesloten): leningen, deposito's, enz., met vermelding van de parameters van elk.
  • "Klanten" - een reeks demografische gegevens (geslacht en leeftijd) en de beschikbaarheid van contactgegevens.

Voor het werk hadden we alle tabellen nodig, behalve de "Kaart".

Er was hier nog een probleem: in deze gegevens gaf de bank niet aan wat voor soort activiteit er op de kaarten plaatsvond. Dat wil zeggen, we konden begrijpen of er sprake was van transacties of niet, maar we konden niet langer het type ervan bepalen. Het was daarom onduidelijk of de klant contant geld opnam, een salaris ontving of het geld uitgaf aan aankopen. We hadden ook geen gegevens over rekeningsaldi, wat nuttig zou zijn geweest.

De steekproef zelf was onbevooroordeeld: in deze sectie heeft de bank gedurende 19 maanden geen enkele poging ondernomen om klanten te behouden en de uitstroom te minimaliseren.

Dus over periodes van inactiviteit.

Om een ​​definitie van churn te formuleren, moet een periode van inactiviteit worden geselecteerd. Om op een bepaald moment een churn-voorspelling te maken Hoe we klantverloop voorspelden door het als een natuurramp te benaderen, dient u een klanthistorie van minimaal 3 maanden met tussenpozen te hebben Hoe we klantverloop voorspelden door het als een natuurramp te benaderen. Onze geschiedenis was beperkt tot 19 maanden, daarom hebben we besloten een periode van inactiviteit van 6 maanden aan te houden, indien beschikbaar. En voor de minimale periode voor een hoogwaardige prognose hebben we 3 maanden genomen. De cijfers voor 3 en 6 maanden hebben we empirisch genomen op basis van een analyse van het gedrag van klantdata.

De definitie van churn hebben wij als volgt geformuleerd: maand klantverloop Hoe we klantverloop voorspelden door het als een natuurramp te benaderen dit is de eerste maand met ACTIVE_FLAG=0, waarbij er vanaf deze maand minimaal zes opeenvolgende nullen in het veld ACTIVE_FLAG staan, oftewel de maand waarvan de klant 6 maanden inactief was.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Aantal klanten dat is vertrokken

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Aantal resterende klanten

Hoe wordt het verloop berekend?

Bij dergelijke competities, en in de praktijk in het algemeen, wordt de uitstroom vaak op deze manier voorspeld. De klant gebruikt producten en diensten in verschillende tijdsperioden, gegevens over de interactie met hem worden weergegeven als een vector van kenmerken met een vaste lengte n. Meestal omvat deze informatie:

  • Gegevens die de gebruiker karakteriseren (demografische gegevens, marketingsegment).
  • Geschiedenis van het gebruik van bankproducten en -diensten (dit zijn klantacties die altijd gebonden zijn aan een specifieke tijd of periode van het interval dat we nodig hebben).
  • Externe gegevens, als het mogelijk was deze te verkrijgen, bijvoorbeeld beoordelingen van sociale netwerken.

En daarna leiden ze een definitie van churn af, die voor elke taak verschillend is. Vervolgens gebruiken ze een machine learning-algoritme, dat voorspelt hoe waarschijnlijk het is dat een klant vertrekt Hoe we klantverloop voorspelden door het als een natuurramp te benaderen gebaseerd op een vector van factoren Hoe we klantverloop voorspelden door het als een natuurramp te benaderen. Om het algoritme te trainen wordt een van de bekende raamwerken voor het construeren van ensembles van beslissingsbomen gebruikt: XGBoost, LichtGBM, KatBoost of wijzigingen daarvan.

Het algoritme zelf is niet slecht, maar heeft een aantal ernstige nadelen als het gaat om het voorspellen van churn.

  • Hij heeft geen zogenaamd ‘geheugen’. De invoer van het model is een gespecificeerd aantal kenmerken die overeenkomen met het huidige tijdstip. Om informatie over de geschiedenis van veranderingen in parameters op te slaan, is het noodzakelijk om speciale kenmerken te berekenen die veranderingen in parameters in de loop van de tijd karakteriseren, bijvoorbeeld het aantal of het bedrag van banktransacties in de afgelopen 1,2,3, XNUMX, XNUMX maanden. Deze aanpak kan de aard van tijdelijke veranderingen slechts gedeeltelijk weerspiegelen.
  • Vaste prognosehorizon. Het model kan het klantverloop alleen voor een vooraf gedefinieerde periode voorspellen, bijvoorbeeld een voorspelling van een maand van tevoren. Als er een prognose nodig is voor een andere periode, bijvoorbeeld drie maanden, moet u de trainingsset opnieuw opbouwen en een nieuw model opnieuw trainen.

Onze aanpak

We besloten meteen dat we geen standaardaanpak zouden gebruiken. Naast ons schreven zich nog 497 mensen in voor het kampioenschap, die allemaal aanzienlijke ervaring achter de rug hadden. Het is dus geen goed idee om onder dergelijke omstandigheden iets volgens een standaardschema te proberen.

En we begonnen de problemen waarmee het binaire classificatiemodel wordt geconfronteerd op te lossen door de waarschijnlijkheidsverdeling van de klantverlooptijden te voorspellen. Er is een soortgelijke aanpak te zien hierHiermee kunt u klantverloop flexibeler voorspellen en complexere hypothesen testen dan bij de klassieke aanpak. Als familie van verdelingen die de uitstroomtijd modelleren, hebben we voor de verdeling gekozen Weibull vanwege het wijdverbreide gebruik ervan bij overlevingsanalyses. Het gedrag van de cliënt kan gezien worden als een soort overleving.

Hier zijn voorbeelden van Weibull-kansdichtheidsverdelingen, afhankelijk van parameters Hoe we klantverloop voorspelden door het als een natuurramp te benaderen и Hoe we klantverloop voorspelden door het als een natuurramp te benaderen:

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Dit is de waarschijnlijkheidsdichtheidsfunctie van drie verschillende klantenverloop in de loop van de tijd. De tijd wordt weergegeven in maanden. Met andere woorden, deze grafiek laat zien wanneer de kans het grootst is dat een klant in de komende twee maanden churnt. Zoals u kunt zien, heeft een klant met een distributie een groter potentieel om eerder te vertrekken dan klanten met de Weibull(2, 0.5) en Weibull (3,1) distributies.

Het resultaat is een model dat, voor elke klant, voor iedereen
maand voorspelt de parameters van de Weibull-verdeling, die het beste het optreden van de waarschijnlijkheid van uitstroom in de loop van de tijd weergeeft. Meer gedetailleerd:

  • De doelfuncties op de trainingsset zijn de resterende tijd tot het verloop van een specifieke maand voor een specifieke klant.
  • Als er geen churnpercentage voor een klant is, gaan we ervan uit dat de churntijd groter is dan het aantal maanden vanaf de huidige maand tot het einde van de geschiedenis die we hebben.
  • Gebruikt model: terugkerend neuraal netwerk met LSTM-laag.
  • Als verliesfunctie gebruiken we de negatieve log-waarschijnlijkheidsfunctie voor de Weibull-verdeling.

Dit zijn de voordelen van deze methode:

  • Kansverdeling maakt, naast de voor de hand liggende mogelijkheid van binaire classificatie, een flexibele voorspelling van verschillende gebeurtenissen mogelijk, bijvoorbeeld of een klant binnen drie maanden zal stoppen met het gebruik van de diensten van de bank. Ook kunnen, indien nodig, verschillende metrieken over deze verdeling worden gemiddeld.
  • Het terugkerende neurale netwerk van LSTM beschikt over geheugen en maakt effectief gebruik van de volledige beschikbare geschiedenis. Naarmate het verhaal wordt uitgebreid of verfijnd, neemt de nauwkeurigheid toe.
  • De aanpak kan eenvoudig worden geschaald door tijdsperioden in kleinere perioden op te delen (bijvoorbeeld door maanden in weken te verdelen).

Maar het is niet genoeg om een ​​goed model te maken; je moet ook de kwaliteit ervan goed beoordelen.

Hoe werd de kwaliteit beoordeeld?

We hebben Liftcurve als maatstaf gekozen. Het wordt in het bedrijfsleven voor dergelijke gevallen gebruikt vanwege de duidelijke interpretatie en het is goed beschreven hier и hier. Als je de betekenis van deze metriek in één zin beschrijft, zou dit zijn: ‘Hoe vaak maakt het algoritme de beste voorspelling in de eerste zin? Hoe we klantverloop voorspelden door het als een natuurramp te benaderen% dan willekeurig."

Trainingsmodellen

De concurrentieomstandigheden hebben geen specifieke kwaliteitsmaatstaf vastgelegd waarmee verschillende modellen en benaderingen kunnen worden vergeleken. Bovendien kan de definitie van churn verschillen en afhangen van de probleemstelling, die op zijn beurt wordt bepaald door bedrijfsdoelstellingen. Om te begrijpen welke methode beter is, hebben we daarom twee modellen getraind:

  1. Een veelgebruikte binaire classificatiebenadering die gebruik maakt van een machine learning-algoritme met een ensemble-beslissingsboom (LichtGBM);
  2. Weibull-LSTM-model

De testset bestond uit 500 vooraf geselecteerde cliënten die niet in de trainingsset zaten. Voor het model zijn hyperparameters geselecteerd met behulp van kruisvalidatie, uitgesplitst per klant. Bij het trainen van elk model werden dezelfde sets functies gebruikt.

Omdat het model geen geheugen heeft, zijn er speciale kenmerken voor gebruikt, die de verhouding weergeven van de veranderingen in parameters gedurende één maand tot de gemiddelde waarde van parameters over de afgelopen drie maanden. Wat de snelheid van de waardeverandering gedurende de afgelopen drie maanden kenmerkte. Zonder dit zou het op Random Forest gebaseerde model in het nadeel zijn ten opzichte van Weibull-LSTM.

Waarom LSTM met Weibull-distributie beter is dan een ensemble-beslissingsboombenadering

Alles is hier duidelijk in slechts een paar foto's.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Vergelijking van de liftcurve voor het klassieke algoritme en Weibull-LSTM

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Vergelijking van de liftcurve-metriek per maand voor het klassieke algoritme en Weibull-LSTM

Over het algemeen is LSTM in bijna alle gevallen superieur aan het klassieke algoritme.

Churn-voorspelling

Een model gebaseerd op een terugkerend neuraal netwerk met LSTM-cellen met Weibull-distributie kan het verloop van klanten vooraf voorspellen, bijvoorbeeld het klantverloop binnen de komende n maanden. Neem het geval voor n = 3. In dit geval moet het neurale netwerk voor elke maand correct bepalen of de cliënt zal vertrekken, te beginnen vanaf de volgende maand en tot de n-de maand. Met andere woorden, het moet correct bepalen of de klant na n maanden blijft. Dit kun je zien als een voorspelling vooraf: het voorspellen van het moment waarop de cliënt net begint na te denken over vertrek.

Laten we de liftcurve voor Weibull-LSTM 1, 2 en 3 maanden vóór de uitstroom vergelijken:

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

We schreven hierboven al dat ook de prognoses die gemaakt worden voor klanten die al enige tijd niet meer actief zijn, van belang zijn. Daarom zullen we hier gevallen aan de steekproef toevoegen waarin de vertrekkende klant al een of twee maanden inactief is geweest, en controleren of Weibull-LSTM dergelijke gevallen correct classificeert als churn. Omdat dergelijke gevallen in de steekproef aanwezig waren, verwachten we dat het netwerk deze goed afhandelt:

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Klantbehoud

Eigenlijk is dit het belangrijkste dat gedaan kan worden, met informatie dat deze en die klanten zich voorbereiden om te stoppen met het gebruik van het product. Over het bouwen van een model gesproken dat klanten iets nuttigs zou kunnen bieden om ze te behouden: dit kan niet worden gedaan als je geen geschiedenis hebt van soortgelijke pogingen die goed zouden aflopen.

Wij hadden zo’n verhaal niet, dus besloten we het op deze manier.

  1. We bouwen een model dat voor elke klant interessante producten identificeert.
  2. Elke maand voeren we de classificatie uit en identificeren we potentieel vertrekkende klanten.
  3. We bieden sommige klanten het product aan, volgens het model uit punt 1, en onthouden onze acties.
  4. Na een paar maanden kijken we welke van deze potentieel vertrekkende klanten zijn vertrokken en welke zijn gebleven. Zo vormen we een trainingsvoorbeeld.
  5. We trainen het model met behulp van de geschiedenis die we in stap 4 hebben verkregen.
  6. Optioneel herhalen we de procedure, waarbij we het model uit stap 1 vervangen door het model verkregen in stap 5.

Een test van de kwaliteit van een dergelijke retentie kan worden gedaan door regelmatig A/B-testen uit te voeren. We verdelen klanten die mogelijk weggaan in twee groepen. Aan de één bieden we producten aan op basis van ons retentiemodel, en aan de ander bieden we niets aan. We hebben besloten een model te trainen dat al bij punt 1 van ons voorbeeld nuttig zou kunnen zijn.

We wilden de segmentatie zo interpreteerbaar mogelijk maken. Om dit te doen, hebben we verschillende kenmerken gekozen die gemakkelijk kunnen worden geïnterpreteerd: het totale aantal transacties, lonen, totale rekeningomzet, leeftijd, geslacht. Er werd geen rekening gehouden met kenmerken uit de tabel “Kaarten” als niet-informatief, en met kenmerken uit tabel 3 “Contracten” werd geen rekening gehouden vanwege de complexiteit van de verwerking om gegevenslekken tussen de validatieset en de trainingsset te voorkomen.

Clustering werd uitgevoerd met behulp van Gaussiaanse mengselmodellen. Met het Akaike-informatiecriterium konden we 2 optima bepalen. Het eerste optimale komt overeen met 1 cluster. Het tweede optimale, minder uitgesproken, komt overeen met 80 clusters. Op basis van dit resultaat kunnen we de volgende conclusie trekken: het is uiterst moeilijk om gegevens in clusters te verdelen zonder vooraf gegeven informatie. Voor een betere clustering heb je gegevens nodig die elke klant gedetailleerd beschrijven.

Daarom werd het probleem van begeleid leren overwogen om elke individuele cliënt een ander product aan te bieden. Er werd gekeken naar de volgende producten: ‘Termijndeposito’, ‘Creditcard’, ‘Gelddispositie’, ‘Consumentenlening’, ‘Autolening’, ‘Hypotheek’.

De gegevens omvatten nog een type product: “Betaalrekening”. Maar we hebben er geen rekening mee gehouden vanwege de lage informatie-inhoud. Voor gebruikers die bankklant zijn, d.w.z. stopte niet met het gebruik van zijn producten, er werd een model gebouwd om te voorspellen welk product voor hen interessant zou kunnen zijn. Er werd gekozen voor logistieke regressie als model, en de Lift-waarde voor de eerste 10 percentielen werd gebruikt als kwaliteitsbeoordelingsmetriek.

De kwaliteit van het model kan in de figuur worden beoordeeld.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen
Resultaten van productaanbevelingsmodellen voor klanten

Totaal

Deze aanpak bracht ons de eerste plaats in de categorie “AI in Banks” op het RAIF-Challenge 2017 AI Championship.

Hoe we klantverloop voorspelden door het als een natuurramp te benaderen

Blijkbaar was het belangrijkste om het probleem vanuit een onconventionele invalshoek te benaderen en een methode te gebruiken die gewoonlijk voor andere situaties wordt gebruikt.

Hoewel een massale uitstroom van gebruikers wel eens een natuurramp voor de dienstverlening zou kunnen zijn.

Deze methode kan in aanmerking worden genomen voor elk ander gebied waar het belangrijk is om rekening te houden met de uitstroom, en niet alleen voor de banken. We gebruikten het bijvoorbeeld om onze eigen uitstroom te berekenen - in de Siberische en Sint-Petersburgse vestigingen van Rostelecom.

"Data Mining Laboratory" bedrijf "Zoekportaal "Spoetnik"

Bron: www.habr.com

Voeg een reactie