Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Noen ganger, for å løse et problem, trenger du bare å se på det fra en annen vinkel. Selv om lignende problemer i løpet av de siste 10 årene har blitt løst på samme måte med ulike effekter, er det ikke et faktum at denne metoden er den eneste.

Det er et tema som kundeavgang. Saken er uunngåelig, fordi kunder til ethvert selskap kan av mange grunner slutte å bruke produktene eller tjenestene deres. Selvfølgelig, for et selskap, er churn en naturlig, men ikke den mest ønskelige handlingen, så alle prøver å minimere denne churn. Enda bedre, forutsi sannsynligheten for churn for en bestemt kategori brukere, eller en spesifikk bruker, og foreslå noen trinn for å beholde dem.

Det er nødvendig å analysere og prøve å beholde klienten, hvis mulig, av minst følgende grunner:

  • Det er dyrere å tiltrekke seg nye kunder enn oppbevaringsprosedyrer. For å tiltrekke deg nye kunder må du som regel bruke litt penger (annonsering), mens eksisterende kunder kan aktiveres med et spesialtilbud med spesielle betingelser;
  • Å forstå årsakene til at kunder slutter er nøkkelen til å forbedre produkter og tjenester.

Det finnes standardmetoder for å forutsi churn. Men på et av AI-mesterskapene bestemte vi oss for å prøve Weibull-distribusjonen for dette. Den brukes oftest til overlevelsesanalyse, værvarsling, naturkatastrofeanalyse, industriteknikk og lignende. Weibull-distribusjon er en spesiell distribusjonsfunksjon parametrisert av to parametere Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe и Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe.

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Wikipedia

Generelt er det en interessant ting, men for å spå utstrømmer, og i fintech generelt, brukes det ikke så ofte. Under snittet vil vi fortelle deg hvordan vi (Data Mining Laboratory) gjorde dette, samtidig som vi vant gull i Artificial Intelligence Championship i kategorien "AI in Banks".

Om churn generelt

La oss forstå litt om hva kundeavgang er og hvorfor det er så viktig. En kundebase er viktig for en bedrift. Nye kunder kommer til denne basen, for eksempel etter å ha lært om et produkt eller en tjeneste fra en annonse, bor i noen tid (bruker produktene aktivt) og etter en tid slutter å bruke det. Denne perioden kalles "kundelivssyklusen" - et begrep som beskriver stadiene som en kunde går gjennom når han lærer om et produkt, tar en kjøpsbeslutning, betaler, bruker og blir en lojal forbruker, og til slutt slutter å bruke produktet. av en eller annen grunn. Følgelig er churn den siste fasen av klientens livssyklus, når klienten slutter å bruke tjenestene, og for en virksomhet betyr dette at klienten har sluttet å gi profitt eller noen fordel i det hele tatt.

Hver bankklient er en bestemt person som velger et eller annet bankkort spesifikt for sine behov. Reiser du ofte, vil et kort med miles komme godt med. Kjøper mye - hei, cashback-kort. Han kjøper mye i spesifikke butikker – og det finnes allerede en spesiell partnerplast for dette. Noen ganger velges selvfølgelig et kort basert på kriteriet "Billigste service". Generelt er det nok variabler her.

Og en person velger også banken selv - er det noen vits i å velge et kort fra en bank hvis filialer bare er i Moskva og regionen, når du er fra Khabarovsk? Selv om et kort fra en slik bank er minst 2 ganger mer lønnsomt, er tilstedeværelsen av bankfilialer i nærheten fortsatt et viktig kriterium. Ja, 2019 er allerede her og digitalt er vårt alt, men en rekke problemer med enkelte banker kan bare løses i en filial. Pluss, igjen, noen del av befolkningen stoler mye mer på en fysisk bank enn en applikasjon på en smarttelefon, dette må også tas i betraktning.

Som et resultat kan en person ha mange grunner til å nekte bankprodukter (eller banken selv). Jeg byttet jobb, og korttariffen endret seg fra lønn til "For bare dødelige", som er mindre lønnsomt. Jeg flyttet til en annen by hvor det ikke er bankfilialer. Jeg likte ikke samspillet med den ukvalifiserte operatøren på filialen. Det vil si at det kan være enda flere grunner til å stenge en konto enn for å bruke produktet.

Og klienten kan ikke bare tydelig uttrykke sin intensjon - kom til banken og skriv en uttalelse, men bare slutte å bruke produktene uten å si opp kontrakten. Det ble besluttet å bruke maskinlæring og AI for å forstå slike problemer.

Dessuten kan kundeavgang forekomme i alle bransjer (telekom, internettleverandører, forsikringsselskaper generelt, uansett hvor det er en kundebase og periodiske transaksjoner).

Hva har vi gjort

Først og fremst var det nødvendig å beskrive en klar grense - fra hvilket tidspunkt vi begynner å anse klienten for å ha reist. Fra synspunktet til banken som ga oss dataene for arbeidet vårt, var klientens aktivitetsstatus binær - han er enten aktiv eller ikke. Det var et ACTIVE_FLAG-flagg i "Activity"-tabellen, hvis verdi kunne være enten "0" eller "1" ("Inaktiv" og "Aktiv" henholdsvis). Og alt ville være bra, men en person er slik at han aktivt kan bruke den i noen tid, og deretter falle ut av den aktive listen i en måned - han ble syk, dro til et annet land på ferie, eller til og med gikk for å teste en kort fra en annen bank. Eller kanskje etter en lang periode med inaktivitet, begynne å bruke bankens tjenester igjen

Derfor bestemte vi oss for å kalle en periode med inaktivitet for en viss sammenhengende tidsperiode der flagget for den ble satt til "0".

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Klienter går fra inaktive til aktive etter perioder med inaktivitet av varierende lengde. Vi har muligheten til å beregne graden av empirisk verdi "pålitelighet av perioder med inaktivitet" - det vil si sannsynligheten for at en person vil begynne å bruke bankprodukter igjen etter midlertidig inaktivitet.

For eksempel viser denne grafen gjenopptakelse av aktivitet (ACTIVE_FLAG=1) til klienter etter flere måneder med inaktivitet (ACTIVE_FLAG=0).

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Her skal vi avklare litt datasettet som vi begynte å jobbe med. Så banken ga samlet informasjon for 19 måneder i følgende tabeller:

  • "Aktivitet" - månedlige kundetransaksjoner (med kort, i nettbank og mobilbank), inkludert lønn og informasjon om omsetning.
  • "Kort" - data om alle kort som klienten har, med en detaljert tariffplan.
  • "Avtaler" - informasjon om kundens avtaler (både åpne og lukkede): lån, innskudd, etc., som indikerer parameterne for hver.
  • "Kunder" - et sett med demografiske data (kjønn og alder) og tilgjengeligheten av kontaktinformasjon.

For arbeid trengte vi alle tabellene bortsett fra "Kartet".

Det var en annen vanskelighet her - i disse dataene anga ikke banken hva slags aktivitet som fant sted på kortene. Det vil si at vi kunne forstå om det var transaksjoner eller ikke, men vi kunne ikke lenger fastslå typen. Derfor var det uklart om klienten tok ut kontanter, mottok lønn eller brukte pengene på kjøp. Vi hadde heller ikke data om kontosaldo, noe som ville vært nyttig.

Selve utvalget var objektivt - i denne delen, over 19 måneder, gjorde ikke banken noen forsøk på å beholde kunder og minimere utstrømningen.

Altså, om perioder med inaktivitet.

For å formulere en definisjon av churn, må en periode med inaktivitet velges. For å lage en churn-prognose på et tidspunkt Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe, må du ha en kundehistorikk på minst 3 måneder med et intervall Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe. Historien vår var begrenset til 19 måneder, så vi bestemte oss for å ta en periode med inaktivitet på 6 måneder, hvis tilgjengelig. Og for minimumsperioden for en prognose av høy kvalitet, tok vi 3 måneder. Vi tok tallene for 3 og 6 måneder empirisk basert på en analyse av kundedataatferd.

Vi formulerte definisjonen av churn som følger: måned med kundeavgang Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe dette er den første måneden med ACTIVE_FLAG=0, hvor det fra denne måneden er minst seks påfølgende nuller i ACTIVE_FLAG-feltet, med andre ord den måneden klienten var inaktiv fra i 6 måneder.

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Antall kunder som forlot

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Antall gjenværende kunder

Hvordan beregnes churn?

I slike konkurranser, og i praksis generelt, forutses ofte utstrømning på denne måten. Klienten bruker produkter og tjenester til forskjellige tidsperioder, data om interaksjon med ham er representert som en vektor av funksjoner med en fast lengde n. Oftest inkluderer denne informasjonen:

  • Data som karakteriserer brukeren (demografiske data, markedsføringssegment).
  • Historie om bruken av bankprodukter og -tjenester (dette er kundehandlinger som alltid er knyttet til en bestemt tid eller periode i intervallet vi trenger).
  • Eksterne data, hvis det var mulig å få tak i det - for eksempel anmeldelser fra sosiale nettverk.

Og etter det utleder de en definisjon av churn, forskjellig for hver oppgave. Deretter bruker de en maskinlæringsalgoritme, som forutsier sannsynligheten for at en klient forlater Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe basert på en vektor av faktorer Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe. For å trene algoritmen brukes et av de velkjente rammeverkene for å konstruere ensembler av beslutningstrær, Xgboost, LightGBM, CatBoost eller modifikasjoner av disse.

Algoritmen i seg selv er ikke dårlig, men den har flere alvorlige ulemper når det gjelder å forutsi churn.

  • Han har ikke såkalt "minne". Inngangen til modellen er et spesifisert antall funksjoner som tilsvarer det gjeldende tidspunktet. For å lagre informasjon om historikken for endringer i parametere, er det nødvendig å beregne spesielle funksjoner som karakteriserer endringer i parametere over tid, for eksempel antall eller antall banktransaksjoner de siste 1,2,3, XNUMX, XNUMX månedene. Denne tilnærmingen kan bare delvis gjenspeile karakteren av midlertidige endringer.
  • Fast prognosehorisont. Modellen er kun i stand til å forutsi kundeavgang for en forhåndsdefinert tidsperiode, for eksempel en prognose en måned i forveien. Hvis det kreves en prognose for en annen tidsperiode, for eksempel tre måneder, må du bygge om treningssettet og trene om en ny modell.

Vår tilnærming

Vi bestemte oss umiddelbart for at vi ikke ville bruke standardmetoder. I tillegg til oss var det 497 flere påmeldte i mesterskapet, som hver hadde betydelig erfaring bak seg. Så å prøve å gjøre noe etter en standard ordning under slike forhold er ikke en god idé.

Og vi begynte å løse problemene som den binære klassifiseringsmodellen står overfor ved å forutsi sannsynlighetsfordelingen av kundefrafallstider. En lignende tilnærming kan sees her, det lar deg forutsi churn mer fleksibelt og teste mer komplekse hypoteser enn i den klassiske tilnærmingen. Som en familie av distribusjoner som modellerer utstrømningstiden, valgte vi distribusjonen Weibull for dens utbredte bruk i overlevelsesanalyse. Klientens atferd kan sees på som en slags overlevelse.

Her er eksempler på Weibull sannsynlighetstetthetsfordelinger avhengig av parametere Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe и Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe:

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Dette er sannsynlighetstetthetsfunksjonen til tre forskjellige kunder som churner over tid. Tid er presentert i måneder. Med andre ord, denne grafen viser når det er mest sannsynlig at en klient vil avbryte de neste to månedene. Som du kan se, har en klient med en distribusjon et større potensial til å forlate tidligere enn klienter med Weibull(2, 0.5) og Weibull (3,1) fordelinger.

Resultatet er en modell som, for hver klient, for hver
måned forutsier parametrene til Weibull-fordelingen, som best reflekterer forekomsten av sannsynligheten for utstrømning over tid. I mer detalj:

  • Målfunksjonene på treningssettet er tiden som gjenstår til avgang i en bestemt måned for en spesifikk klient.
  • Hvis det ikke er noen churnrate for en kunde, antar vi at churntiden er større enn antall måneder fra gjeldende måned til slutten av historikken vi har.
  • Modell brukt: tilbakevendende nevrale nettverk med LSTM-lag.
  • Som en tapsfunksjon bruker vi den negative log-likelihood-funksjonen for Weibull-fordelingen.

Her er fordelene med denne metoden:

  • Sannsynlighetsfordeling, i tillegg til den åpenbare muligheten for binær klassifisering, tillater fleksibel prediksjon av ulike hendelser, for eksempel om en klient vil slutte å bruke bankens tjenester innen 3 måneder. Om nødvendig kan det også beregnes gjennomsnitt av ulike beregninger over denne fordelingen.
  • Det tilbakevendende nevrale nettverket LSTM har minne og bruker effektivt hele den tilgjengelige historikken. Etter hvert som historien utvides eller foredles, øker nøyaktigheten.
  • Tilnærmingen kan enkelt skaleres når du deler tidsperioder inn i mindre (for eksempel når du deler inn måneder i uker).

Men det er ikke nok å lage en god modell; du må også vurdere kvaliteten på riktig måte.

Hvordan ble kvaliteten vurdert?

Vi valgte Lift Curve som metrikk. Det brukes i næringslivet for slike saker på grunn av sin klare tolkning, det er godt beskrevet her и her. Hvis du beskriver betydningen av denne metrikken i én setning, vil det være "Hvor mange ganger gjør algoritmen den beste forutsigelsen i den første Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe% enn tilfeldig."

Treningsmodeller

Konkurransebetingelsene etablerte ikke en spesifikk kvalitetsmåling som ulike modeller og tilnærminger kan sammenlignes med. Dessuten kan definisjonen av churn være forskjellig og kan avhenge av problemformuleringen, som igjen bestemmes av forretningsmål. Derfor, for å forstå hvilken metode som er bedre, trente vi to modeller:

  1. En vanlig brukt binær klassifiseringstilnærming ved bruk av en maskinlæringsalgoritme for ensemblebeslutningstre (LightGBM);
  2. Weibull-LSTM modell

Testsettet besto av 500 forhåndsutvalgte klienter som ikke var med i treningssettet. Hyper-parametere ble valgt for modellen ved bruk av kryssvalidering, brutt ned etter klient. De samme settene med funksjoner ble brukt til å trene hver modell.

På grunn av det faktum at modellen ikke har minne, ble det tatt spesielle funksjoner for den, som viser forholdet mellom endringer i parametere i en måned og gjennomsnittsverdien for parametere de siste tre månedene. Hva karakteriserte endringshastigheten i verdier over den siste perioden på tre måneder. Uten dette ville den Random Forest-baserte modellen vært i en ulempe i forhold til Weibull-LSTM.

Hvorfor LSTM med Weibull-distribusjon er bedre enn en ensemble-beslutningstre-tilnærming

Alt er klart her på bare et par bilder.

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Sammenligning av Lift Curve for den klassiske algoritmen og Weibull-LSTM

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Sammenligning av Lift Curve-beregningen etter måned for den klassiske algoritmen og Weibull-LSTM

Generelt er LSTM overlegen den klassiske algoritmen i nesten alle tilfeller.

Churn-prediksjon

En modell basert på et tilbakevendende nevralt nettverk med LSTM-celler med Weibull-distribusjon kan forutsi churn på forhånd, for eksempel forutsi kundechurn innen de neste n månedene. Tenk på tilfellet for n = 3. I dette tilfellet, for hver måned, må det nevrale nettverket riktig bestemme om klienten vil forlate, fra og med neste måned og til den n. måneden. Det må med andre ord korrekt avgjøre om kunden blir værende etter n måneder. Dette kan betraktes som en prognose på forhånd: å forutsi øyeblikket da klienten akkurat begynte å tenke på å forlate.

La oss sammenligne løftekurve for Weibull-LSTM 1, 2 og 3 måneder før utløpet:

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Vi har allerede skrevet ovenfor at prognosene som er laget for kunder som ikke lenger er aktive på en stund også er viktige. Derfor vil vi her legge til utvalget slike tilfeller når den avreise kunden allerede har vært inaktiv i én eller to måneder, og kontrollere at Weibull-LSTM korrekt klassifiserer slike tilfeller som churn. Siden slike tilfeller var til stede i utvalget, forventer vi at nettverket håndterer dem godt:

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Kundelojalitet

Egentlig er dette det viktigste som kan gjøres, å ha i hånden informasjon om at slike og slike kunder forbereder seg på å slutte å bruke produktet. Apropos å bygge en modell som kan tilby noe nyttig til kundene for å beholde dem, dette kan ikke gjøres hvis du ikke har en historie med lignende forsøk som ville ende godt.

Vi hadde ikke en slik historie, så vi bestemte det på denne måten.

  1. Vi bygger en modell som identifiserer interessante produkter for hver kunde.
  2. Hver måned kjører vi klassifisereren og identifiserer potensielle kunder som forlater.
  3. Vi tilbyr noen kunder produktet, i henhold til modellen fra punkt 1, og husker handlingene våre.
  4. Etter noen måneder ser vi på hvilke av disse potensielt forlate klientene som forlot og hvilke som ble igjen. Dermed danner vi et treningsutvalg.
  5. Vi trener modellen ved å bruke historikken fra trinn 4.
  6. Eventuelt gjentar vi prosedyren, og erstatter modellen fra trinn 1 med modellen oppnådd i trinn 5.

En test av kvaliteten på slik oppbevaring kan gjøres ved vanlig A/B-testing – vi deler kunder som potensielt slutter i to grupper. Vi tilbyr produkter til den ene basert på vår oppbevaringsmodell, og til den andre tilbyr vi ingenting. Vi bestemte oss for å trene opp en modell som kunne være nyttig allerede ved punkt 1 i vårt eksempel.

Vi ønsket å gjøre segmenteringen så tolkbar som mulig. For å gjøre dette, valgte vi flere funksjoner som lett kunne tolkes: totalt antall transaksjoner, lønn, total kontoomsetning, alder, kjønn. Funksjoner fra «Maps»-tabellen ble ikke tatt i betraktning som lite informative, og funksjoner fra tabell 3 «Kontrakter» ble ikke tatt i betraktning på grunn av kompleksiteten i behandlingen for å unngå datalekkasje mellom valideringssettet og opplæringssettet.

Clustering ble utført ved bruk av gaussiske blandingsmodeller. Akaike informasjonskriteriet tillot oss å bestemme 2 optima. Det første optimum tilsvarer 1 klynge. Det andre optimale, mindre uttalt, tilsvarer 80 klynger. Basert på dette resultatet kan vi trekke følgende konklusjon: det er ekstremt vanskelig å dele data inn i klynger uten a priori gitt informasjon. For bedre klynging trenger du data som beskriver hver klient i detalj.

Derfor ble problemet med veiledet læring vurdert for å kunne tilby hver enkelt kunde et annet produkt. Følgende produkter ble vurdert: «Tidsinnskudd», «Kredittkort», «Kassekreditt», «Forbrukslån», «Billån», «Boliglån».

Dataene inkluderte en annen type produkt: "Gjeldende konto". Men vi vurderte det ikke på grunn av det lave informasjonsinnholdet. For brukere som er bankkunder, dvs. ikke sluttet å bruke produktene sine, ble det bygget en modell for å forutsi hvilket produkt som kunne være av interesse for dem. Logistisk regresjon ble valgt som modell, og Lift-verdien for de første 10 persentilene ble brukt som kvalitetsvurderingsmetrik.

Kvaliteten på modellen kan vurderes i figuren.

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe
Produktanbefalingsmodellresultater for kunder

Total

Denne tilnærmingen ga oss førsteplassen i "AI in Banks"-kategorien ved RAIF-Challenge 2017 AI Championship.

Hvordan vi forutså churn ved å nærme oss det som en naturkatastrofe

Tilsynelatende var hovedsaken å nærme seg problemet fra en ukonvensjonell vinkel og bruke en metode som vanligvis brukes i andre situasjoner.

Selv om en massiv utstrømning av brukere godt kan være en naturkatastrofe for tjenester.

Denne metoden kan tas i betraktning for alle andre områder der det er viktig å ta hensyn til utstrømning, ikke bare banker. For eksempel brukte vi det til å beregne vår egen utstrømning - i Sibir- og St. Petersburg-grenene til Rostelecom.

"Data Mining Laboratory"-selskapet "Søkeportalen "Sputnik"

Kilde: www.habr.com

Legg til en kommentar