Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Nogle gange, for at løse et problem, skal du bare se på det fra en anden vinkel. Selvom lignende problemer i løbet af de sidste 10 år er blevet løst på samme måde med forskellige effekter, er det ikke et faktum, at denne metode er den eneste.

Der er et emne som kundeafgang. Sagen er uundgåelig, fordi kunder i enhver virksomhed af mange årsager kan stoppe med at bruge deres produkter eller tjenester. For en virksomhed er churn selvfølgelig en naturlig, men ikke den mest ønskværdige handling, så alle forsøger at minimere denne churn. Endnu bedre, forudsige sandsynligheden for churn for en bestemt kategori af brugere, eller en specifik bruger, og foreslå nogle trin for at bevare dem.

Det er nødvendigt at analysere og forsøge at fastholde klienten, hvis det er muligt, af mindst følgende årsager:

  • at tiltrække nye kunder er dyrere end fastholdelsesprocedurer. For at tiltrække nye kunder skal du som udgangspunkt bruge nogle penge (annoncering), mens eksisterende kunder kan aktiveres med et særtilbud med særlige betingelser;
  • At forstå årsagerne til, at kunder forlader det, er nøglen til at forbedre produkter og tjenester.

Der er standardmetoder til at forudsige churn. Men ved et af AI-mesterskaberne besluttede vi at prøve Weibull-distributionen til dette. Det bruges oftest til overlevelsesanalyse, vejrudsigt, naturkatastrofeanalyse, industriteknik og lignende. Weibull distribution er en speciel distributionsfunktion parametriseret af to parametre Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe и Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe.

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Wikipedia

Generelt er det en interessant ting, men til at forudsige udstrømme, og i fintech generelt, bruges det ikke så ofte. Under snittet fortæller vi dig, hvordan vi (Data Mining Laboratory) gjorde dette, samtidig med at vi vandt guld ved Artificial Intelligence Championship i kategorien "AI in Banks".

Om churn generelt

Lad os forstå lidt om, hvad kundeafgang er, og hvorfor det er så vigtigt. En kundebase er vigtig for en virksomhed. Nye kunder kommer til denne base, for eksempel efter at have lært om et produkt eller en tjeneste fra en annonce, bor i nogen tid (bruger aktivt produkterne) og efter nogen tid holder op med at bruge det. Denne periode kaldes "kundens livscyklus" - et udtryk, der beskriver de stadier, som en kunde gennemgår, når han lærer om et produkt, træffer en købsbeslutning, betaler, bruger og bliver en loyal forbruger og i sidste ende holder op med at bruge produktet. af en eller anden grund. Derfor er churn den sidste fase af kundens livscyklus, når kunden holder op med at bruge tjenesterne, og for en virksomhed betyder det, at kunden er holdt op med at give overskud eller nogen fordel overhovedet.

Hver bankkunde er en bestemt person, der vælger et eller andet bankkort specifikt til hans behov. Hvis du rejser ofte, vil et kort med miles være praktisk. Køber meget - hej, cashback-kort. Han køber meget i bestemte butikker – og det er der allerede en særlig partnerplastik til. Nogle gange vælges et kort selvfølgelig ud fra kriteriet "Billigste service". Generelt er der nok variable her.

Og en person vælger også selv banken - er der nogen mening i at vælge et kort fra en bank, hvis filialer kun er i Moskva og regionen, når du er fra Khabarovsk? Selvom et kort fra en sådan bank er mindst 2 gange mere rentabelt, er tilstedeværelsen af ​​bankfilialer i nærheden stadig et vigtigt kriterium. Ja, 2019 er allerede her, og digitalt er vores alt, men en række problemer med nogle banker kan kun løses i en filial. Plus, igen, en del af befolkningen stoler meget mere på en fysisk bank end en applikation på en smartphone, dette skal også tages i betragtning.

Som følge heraf kan en person have mange grunde til at afvise bankprodukter (eller banken selv). Jeg skiftede job, og korttaksten ændrede sig fra løn til "For blot dødelige", hvilket er mindre rentabelt. Jeg flyttede til en anden by, hvor der ikke er nogen bankfilialer. Jeg kunne ikke lide interaktionen med den ukvalificerede operatør i filialen. Det vil sige, at der kan være endnu flere grunde til at lukke en konto end til at bruge produktet.

Og kunden kan ikke kun klart udtrykke sin hensigt - kom til banken og skriv en erklæring, men stopper simpelthen med at bruge produkterne uden at opsige kontrakten. Det blev besluttet at bruge maskinlæring og kunstig intelligens til at forstå sådanne problemer.

Desuden kan kundeafgang forekomme i enhver branche (telecom, internetudbydere, forsikringsselskaber generelt, uanset hvor der er en kundebase og periodiske transaktioner).

Hvad har vi gjort

Først og fremmest var det nødvendigt at beskrive en klar grænse - fra hvilket tidspunkt vi begynder at anse klienten for at være rejst. Fra bankens synspunkt, der gav os dataene til vores arbejde, var klientens aktivitetsstatus binær - enten er han aktiv eller ej. Der var et ACTIVE_FLAG-flag i "Activity"-tabellen, hvis værdi kunne være enten "0" eller "1" ("Inaktiv" og "Aktiv" henholdsvis). Og alt ville være fint, men en person er sådan, at han aktivt kan bruge det i nogen tid og derefter falde ud af den aktive liste i en måned - han blev syg, tog til et andet land på ferie eller gik endda for at teste en kort fra en anden bank. Eller måske efter en længere periode med inaktivitet, begynde at bruge bankens tjenester igen

Derfor besluttede vi at kalde en inaktivitetsperiode for en vis sammenhængende periode, hvor flaget for den var sat til "0".

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Klienter går fra inaktive til aktive efter perioder med inaktivitet af varierende længde. Vi har mulighed for at beregne graden af ​​empirisk værdi "pålidelighed af perioder med inaktivitet" - det vil sige sandsynligheden for, at en person vil begynde at bruge bankprodukter igen efter midlertidig inaktivitet.

For eksempel viser denne graf genoptagelsen af ​​aktivitet (ACTIVE_FLAG=1) af klienter efter flere måneders inaktivitet (ACTIVE_FLAG=0).

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Her vil vi præcisere lidt det datasæt, som vi begyndte at arbejde med. Så banken leverede aggregerede oplysninger for 19 måneder i følgende tabeller:

  • "Aktivitet" - månedlige kundetransaktioner (med kort, i netbank og mobilbank), herunder løn og omsætningsoplysninger.
  • "Kort" - data om alle kort, som kunden har, med en detaljeret takstplan.
  • "Aftaler" - oplysninger om kundens aftaler (både åbne og lukkede): lån, indlån osv., med angivelse af parametrene for hver.
  • "Kunder" - et sæt demografiske data (køn og alder) og tilgængeligheden af ​​kontaktoplysninger.

Til arbejdet havde vi brug for alle tabellerne undtagen "kortet".

Der var en anden vanskelighed her - i disse data angav banken ikke, hvilken slags aktivitet der fandt sted på kortene. Det vil sige, at vi kunne forstå, om der var transaktioner eller ej, men vi kunne ikke længere bestemme deres type. Derfor var det uklart, om klienten hævede kontanter, modtog løn eller brugte pengene på indkøb. Vi havde heller ikke data om kontosaldi, hvilket ville have været nyttigt.

Selve stikprøven var upartisk - i denne stikprøve, over 19 måneder, gjorde banken ikke nogen forsøg på at fastholde kunder og minimere udstrømningen.

Altså om perioder med inaktivitet.

For at formulere en definition af churn skal der vælges en periode med inaktivitet. At oprette en churn-prognose på et tidspunkt Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe, skal du have en kundehistorik på mindst 3 måneder med et interval Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe. Vores historie var begrænset til 19 måneder, så vi besluttede at tage en periode med inaktivitet på 6 måneder, hvis det var muligt. Og for minimumsperioden for en prognose af høj kvalitet tog vi 3 måneder. Vi tog tallene for 3 og 6 måneder empirisk baseret på en analyse af kundedataadfærd.

Vi formulerede definitionen af ​​churn som følger: måned med kundeafgang Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe dette er den første måned med ACTIVE_FLAG=0, hvor der fra denne måned er mindst seks på hinanden følgende nuller i ACTIVE_FLAG-feltet, med andre ord den måned, hvorfra klienten var inaktiv i 6 måneder.

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Antal kunder, der forlod

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Antal resterende kunder

Hvordan beregnes afgang?

I sådanne konkurrencer, og i praksis generelt, forudsiges udstrømning ofte på denne måde. Klienten bruger produkter og tjenester på forskellige tidspunkter, data om interaktion med ham er repræsenteret som en vektor af funktioner med en fast længde n. Oftest omfatter disse oplysninger:

  • Data, der karakteriserer brugeren (demografiske data, marketingsegment).
  • Historik om brugen af ​​bankprodukter og -tjenester (disse er kundehandlinger, der altid er bundet til en bestemt tid eller periode i det interval, vi har brug for).
  • Eksterne data, hvis det var muligt at få dem - for eksempel anmeldelser fra sociale netværk.

Og derefter udleder de en definition af churn, forskellig for hver opgave. Derefter bruger de en maskinlæringsalgoritme, som forudsiger sandsynligheden for, at en klient forlader Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe baseret på en vektor af faktorer Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe. For at træne algoritmen bruges en af ​​de velkendte rammer til at konstruere ensembler af beslutningstræer, XGBoost, LightGBM, CatBoost eller modifikationer heraf.

Algoritmen i sig selv er ikke dårlig, men den har flere alvorlige ulemper, når det kommer til at forudsige churn.

  • Han har ikke såkaldt "hukommelse". Modellens input er et specificeret antal funktioner, der svarer til det aktuelle tidspunkt. For at gemme information om historikken for ændringer i parametre, er det nødvendigt at beregne særlige funktioner, der karakteriserer ændringer i parametre over tid, for eksempel antallet eller mængden af ​​banktransaktioner over de sidste 1,2,3, XNUMX, XNUMX måneder. Denne tilgang kan kun delvist afspejle karakteren af ​​midlertidige ændringer.
  • Fast prognosehorisont. Modellen er kun i stand til at forudsige kundeafgang i en foruddefineret periode, for eksempel en prognose en måned i forvejen. Hvis der kræves en prognose for en anden periode, for eksempel tre måneder, så skal du genopbygge træningssættet og genoptræne en ny model.

Vores tilgang

Vi besluttede med det samme, at vi ikke ville bruge standardtilgange. Udover os var der 497 flere tilmeldte til mesterskabet, som hver især havde en betydelig erfaring bag sig. Så det er ikke en god idé at prøve at gøre noget efter en standardordning under sådanne forhold.

Og vi begyndte at løse problemerne med den binære klassifikationsmodel ved at forudsige sandsynlighedsfordelingen af ​​kundeafgangstid. En lignende tilgang kan ses her, det giver dig mulighed for at forudsige churn mere fleksibelt og teste mere komplekse hypoteser end i den klassiske tilgang. Som en familie af distributioner, der modellerer udløbstiden, valgte vi distributionen Weibull for dets udbredte brug i overlevelsesanalyser. Klientens adfærd kan ses som en slags overlevelse.

Her er eksempler på Weibull-sandsynlighedstæthedsfordelinger afhængigt af parametre Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe и Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe:

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Dette er sandsynlighedstæthedsfunktionen for tre forskellige kunders churn over tid. Tiden er angivet i måneder. Med andre ord viser denne graf, hvornår en klient med størst sandsynlighed vil churn i de næste to måneder. Som du kan se, har en klient med en distribution et større potentiale til at forlade tidligere end klienter med Weibull(2, 0.5) og Weibull (3,1) fordelinger.

Resultatet er en model, der for hver kunde, for hver
måned forudsiger parametrene for Weibull-fordelingen, som bedst afspejler forekomsten af ​​sandsynligheden for udstrømning over tid. Mere detaljeret:

  • Målfunktionerne på træningssættet er den resterende tid indtil afgang i en bestemt måned for en bestemt klient.
  • Hvis der ikke er nogen churn-rate for en kunde, antager vi, at churn-tiden er større end antallet af måneder fra den aktuelle måned til slutningen af ​​den historik, vi har.
  • Anvendt model: tilbagevendende neuralt netværk med LSTM-lag.
  • Som en tabsfunktion bruger vi den negative log-likelihood-funktion til Weibull-fordelingen.

Her er fordelene ved denne metode:

  • Sandsynlighedsfordeling giver, udover den åbenlyse mulighed for binær klassifikation, mulighed for fleksibel forudsigelse af forskellige hændelser, for eksempel om en kunde stopper med at bruge bankens tjenester inden for 3 måneder. Om nødvendigt kan der også beregnes gennemsnit af forskellige metrics over denne fordeling.
  • Det LSTM tilbagevendende neurale netværk har hukommelse og bruger effektivt hele den tilgængelige historie. Efterhånden som historien udvides eller forfines, øges nøjagtigheden.
  • Fremgangsmåden kan let skaleres, når tidsperioder opdeles i mindre (f.eks. når måneder opdeles i uger).

Men det er ikke nok at skabe en god model; du skal også evaluere dens kvalitet ordentligt.

Hvordan blev kvaliteten vurderet?

Vi valgte Lift Curve som metrik. Det bruges i erhvervslivet til sådanne sager på grund af dets klare fortolkning, det er godt beskrevet her и her. Hvis du beskriver betydningen af ​​denne metrik i én sætning, ville det være "Hvor mange gange laver algoritmen den bedste forudsigelse i den første Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe% end tilfældigt."

Træningsmodeller

Konkurrencebetingelserne etablerede ikke en specifik kvalitetsmåling, som forskellige modeller og tilgange kan sammenlignes med. Desuden kan definitionen af ​​churn være anderledes og kan afhænge af problemformuleringen, som igen er bestemt af forretningsmål. Derfor, for at forstå, hvilken metode der er bedre, trænede vi to modeller:

  1. En almindeligt anvendt binær klassifikationstilgang ved hjælp af en ensemble beslutningstræ maskinlæringsalgoritme (LightGBM);
  2. Weibull-LSTM model

Testsættet bestod af 500 forudvalgte klienter, som ikke var med i træningssættet. Hyper-parametre blev udvalgt til modellen ved hjælp af krydsvalidering, opdelt efter klient. De samme sæt funktioner blev brugt til at træne hver model.

På grund af det faktum, at modellen ikke har hukommelse, blev der taget specielle funktioner til den, der viser forholdet mellem ændringer i parametre i en måned og gennemsnitsværdien for parametre over de sidste tre måneder. Hvad karakteriserede hastigheden af ​​ændringer i værdier i løbet af den sidste periode på tre måneder. Uden dette ville den Random Forest-baserede model være en ulempe i forhold til Weibull-LSTM.

Hvorfor LSTM med Weibull distribution er bedre end en ensemble beslutningstræ tilgang

Alt er klart her i blot et par billeder.

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Sammenligning af Lift Curve for den klassiske algoritme og Weibull-LSTM

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Sammenligning af Lift Curve-metrikken efter måned for den klassiske algoritme og Weibull-LSTM

Generelt er LSTM overlegen i forhold til den klassiske algoritme i næsten alle tilfælde.

Churn forudsigelse

En model baseret på et tilbagevendende neuralt netværk med LSTM-celler med Weibull-fordeling kan forudsige kundeafgang på forhånd, for eksempel forudsige kundeafgang inden for de næste n måneder. Overvej sagen for n = 3. I dette tilfælde, for hver måned, skal det neurale netværk korrekt afgøre, om klienten vil forlade, begyndende fra den næste måned og indtil den n. måned. Det skal med andre ord korrekt afgøre, om kunden bliver tilbage efter n måneder. Dette kan betragtes som en forudsigelse på forhånd: at forudsige det øjeblik, hvor klienten lige var begyndt at tænke på at tage af sted.

Lad os sammenligne Lift Curve for Weibull-LSTM 1, 2 og 3 måneder før udløbet:

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Vi har allerede skrevet ovenfor, at de prognoser, der er lavet for kunder, der ikke længere er aktive i nogen tid, også er vigtige. Derfor vil vi her tilføje sådanne tilfælde til stikprøven, når den afgående kunde allerede har været inaktiv i en eller to måneder, og kontrollere, at Weibull-LSTM korrekt klassificerer sådanne tilfælde som churn. Da sådanne tilfælde var til stede i stikprøven, forventer vi, at netværket håndterer dem godt:

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Kundefastholdelse

Faktisk er dette det vigtigste, der kan gøres, ved at have oplysninger i hånden om, at sådanne og sådanne kunder forbereder sig på at stoppe med at bruge produktet. Apropos at bygge en model, der kunne tilbyde noget nyttigt til kunderne for at beholde dem, så kan dette ikke lade sig gøre, hvis du ikke har en historie med lignende forsøg, der ville ende godt.

Vi havde ikke sådan en historie, så vi besluttede det på denne måde.

  1. Vi bygger en model, der identificerer interessante produkter for hver kunde.
  2. Hver måned kører vi klassificeringen og identificerer potentielle forlader kunder.
  3. Vi tilbyder nogle kunder produktet i henhold til modellen fra punkt 1, og husker vores handlinger.
  4. Efter et par måneder ser vi på, hvilke af disse potentielt forladte kunder der forlod, og hvilke der blev tilbage. Derfor danner vi en træningsprøve.
  5. Vi træner modellen ved hjælp af historikken opnået i trin 4.
  6. Eventuelt gentager vi proceduren og erstatter modellen fra trin 1 med modellen opnået i trin 5.

En test af kvaliteten af ​​en sådan fastholdelse kan foretages ved regelmæssig A/B-test - vi opdeler kunder, der potentielt forlader, i to grupper. Vi tilbyder produkter til den ene baseret på vores fastholdelsesmodel, og til den anden tilbyder vi intet. Vi besluttede at træne en model, der kunne være nyttig allerede i punkt 1 i vores eksempel.

Vi ønskede at gøre segmenteringen så fortolkelig som muligt. For at gøre dette valgte vi flere funktioner, der let kunne fortolkes: det samlede antal transaktioner, lønninger, samlet kontoomsætning, alder, køn. Funktioner fra "Kort"-tabellen blev ikke taget i betragtning som uinformative, og funktioner fra tabel 3 "Kontrakter" blev ikke taget i betragtning på grund af kompleksiteten af ​​behandlingen for at undgå datalækage mellem valideringssættet og træningssættet.

Clustering blev udført ved brug af Gaussiske blandingsmodeller. Akaike informationskriteriet gjorde det muligt for os at bestemme 2 optima. Det første optimum svarer til 1 klynge. Det andet optimum, mindre udtalt, svarer til 80 klynger. Baseret på dette resultat kan vi drage følgende konklusion: det er ekstremt vanskeligt at opdele data i klynger uden forudgående givet information. For bedre klyngedannelse har du brug for data, der beskriver hver klient i detaljer.

Derfor blev problemet med superviseret læring overvejet for at tilbyde hver enkelt kunde et andet produkt. Følgende produkter blev taget i betragtning: "Fuldtidsindskud", "Kreditkort", "Kassekredit", "Forbrugslån", "Billån", "Reallån".

Dataene omfattede endnu en type produkt: "Løbende konto". Men vi overvejede det ikke på grund af dets lave informationsindhold. For brugere, der er bankkunder, dvs. stoppede ikke med at bruge sine produkter, blev der bygget en model til at forudsige, hvilket produkt der kunne være interessant for dem. Logistisk regression blev valgt som model, og Lift-værdien for de første 10 percentiler blev brugt som kvalitetsvurderingsmetrik.

Kvaliteten af ​​modellen kan vurderes i figuren.

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe
Resultater for produktanbefalingsmodeller for kunder

Total

Denne tilgang bragte os førstepladsen i kategorien "AI in Banks" ved RAIF-Challenge 2017 AI Championship.

Hvordan vi forudsagde churn ved at nærme os det som en naturkatastrofe

Tilsyneladende var hovedsagen at gribe problemet an fra en utraditionel vinkel og bruge en metode, der normalt bruges til andre situationer.

Selvom en massiv udstrømning af brugere meget vel kan være en naturkatastrofe for tjenester.

Denne metode kan tages i betragtning for ethvert andet område, hvor det er vigtigt at tage højde for udstrømning, ikke kun banker. For eksempel brugte vi det til at beregne vores egen udstrømning - i Sibiriens og Skt. Petersborgs afdelinger af Rostelecom.

Firmaet "Data Mining Laboratory" "Søgeportalen "Sputnik"

Kilde: www.habr.com

Tilføj en kommentar