Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Uneori, pentru a rezolva o problemă, trebuie doar să o priviți dintr-un unghi diferit. Chiar dacă în ultimii 10 ani probleme similare au fost rezolvate în același mod cu efecte diferite, nu este un fapt că această metodă este singura.

Există un astfel de subiect precum ratarea clienților. Lucrul este inevitabil, deoarece clienții oricărei companii pot, din multe motive, să nu mai folosească produsele sau serviciile sale. Desigur, pentru o companie, abandonul este o acțiune naturală, dar nu cea mai de dorit, așa că toată lumea încearcă să minimizeze această pierdere. Mai bine, preziceți probabilitatea de abandon pentru o anumită categorie de utilizatori sau un anumit utilizator și sugerați câțiva pași pentru a le păstra.

Este necesar să se analizeze și să încerce să rețină clientul, dacă este posibil, cel puțin din următoarele motive:

  • atragerea de noi clienți este mai costisitoare decât procedurile de reținere. Pentru a atrage noi clienți, de regulă, trebuie să cheltuiți niște bani (reclamă), în timp ce clienții existenți pot fi activați cu o ofertă specială cu condiții speciale;
  • Înțelegerea motivelor pentru care clienții pleacă este cheia îmbunătățirii produselor și serviciilor.

Există abordări standard pentru prezicerea abandonului. Dar la unul dintre campionatele AI, am decis să încercăm distribuția Weibull pentru asta. Este cel mai adesea folosit pentru analiza de supraviețuire, prognoza meteo, analiza dezastrelor naturale, inginerie industrială și altele asemenea. Distribuția Weibull este o funcție de distribuție specială parametrizată de doi parametri Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural и Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Wikipedia

În general, este un lucru interesant, dar pentru prognoza ieșirilor și în fintech în general, nu este folosit atât de des. Mai jos vă vom spune cum am făcut acest lucru noi (Data Mining Laboratory), câștigând simultan aurul la Campionatul de Inteligență Artificială la categoria „AI în bănci”.

Despre churn în general

Să înțelegem puțin despre ce este ratarea clienților și de ce este atât de importantă. O bază de clienți este importantă pentru o afacere. Noi clienți vin la această bază, de exemplu, după ce au aflat despre un produs sau serviciu dintr-o reclamă, trăiesc ceva timp (folosesc în mod activ produsele) și după un timp încetează să-l folosească. Această perioadă se numește „Ciclorul de viață al clientului” - un termen care descrie etapele prin care parcurge un client atunci când află despre un produs, ia o decizie de cumpărare, plătește, folosește și devine un consumator fidel și în cele din urmă încetează să mai folosească produsul. dintr-un motiv sau altul. În consecință, abandonul este etapa finală a ciclului de viață al clientului, când clientul încetează să mai folosească serviciile, iar pentru o afacere aceasta înseamnă că clientul a încetat să mai aducă profit sau orice beneficiu.

Fiecare client bancar este o persoana anume care alege unul sau altul card bancar special pentru nevoile sale. Dacă călătoriți des, vă va fi util un card cu mile. Cumpără multe - salut, card cashback. El cumpără multe din anumite magazine - și există deja un plastic partener special pentru asta. Desigur, uneori un card este selectat pe baza criteriului „Cel mai ieftin serviciu”. În general, există destule variabile aici.

Și o persoană alege și banca în sine - are rost să alegi un card de la o bancă ale cărei sucursale sunt doar în Moscova și regiune, când ești din Khabarovsk? Chiar dacă un card de la o astfel de bancă este de cel puțin 2 ori mai profitabil, prezența sucursalelor bancare în apropiere este totuși un criteriu important. Da, 2019 este deja aici și digitalul este totul, dar o serie de probleme cu unele bănci pot fi rezolvate doar într-o sucursală. În plus, din nou, o parte a populației are încredere într-o bancă fizică mult mai mult decât într-o aplicație pe un smartphone, de asemenea, trebuie luat în considerare.

Ca urmare, o persoană poate avea multe motive pentru a refuza produsele bancare (sau banca însăși). Mi-am schimbat locul de muncă, iar tariful cardului s-a schimbat de la salariu la „Pentru simpli muritori”, care este mai puțin profitabil. M-am mutat într-un alt oraș unde nu există sucursale bancare. Nu mi-a plăcut interacțiunea cu operatorul necalificat de la sucursală. Adică, pot exista și mai multe motive pentru a închide un cont decât pentru a utiliza produsul.

Iar clientul nu poate doar să-și exprime clar intenția - să vină la bancă și să scrie o declarație, ci pur și simplu să nu mai folosească produsele fără a rezilia contractul. S-a decis să se folosească învățarea automată și AI pentru a înțelege astfel de probleme.

Mai mult, ratarea clienților poate apărea în orice industrie (telecom, furnizori de internet, companii de asigurări, în general, oriunde există o bază de clienți și tranzacții periodice).

Ce am făcut

În primul rând, a fost necesar să descriem o graniță clară - de la ce oră începem să considerăm clientul că a plecat. Din punctul de vedere al băncii care ne-a furnizat datele pentru munca noastră, starea de activitate a clientului a fost binară - fie este activ, fie nu. În tabelul „Activitate” a fost un semnalizator ACTIVE_FLAG, a cărui valoare putea fi fie „0”, fie „1” („Inactiv” și, respectiv, „Activ”). Și totul ar fi bine, dar o persoană este astfel încât să o poată folosi în mod activ pentru o perioadă de timp, apoi să iasă din lista activă timp de o lună - s-a îmbolnăvit, a plecat în altă țară în vacanță sau chiar a mers să testeze un card de la o altă bancă. Sau poate după o perioadă lungă de inactivitate, începeți să utilizați din nou serviciile băncii

Prin urmare, am decis să numim o perioadă de inactivitate o anumită perioadă de timp continuă în care steag-ul pentru aceasta a fost setat la „0”.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Clienții trec de la inactiv la activ după perioade de inactivitate de durată diferită. Avem posibilitatea de a calcula gradul de valoare empirică „fiabilitatea perioadelor de inactivitate” - adică probabilitatea ca o persoană să înceapă să folosească din nou produsele bancare după inactivitate temporară.

De exemplu, acest grafic arată reluarea activității (ACTIVE_FLAG=1) a clienților după câteva luni de inactivitate (ACTIVE_FLAG=0).

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Aici vom lămuri puțin setul de date cu care am început să lucrăm. Astfel, banca a furnizat informații agregate pentru 19 luni în următoarele tabele:

  • „Activitate” - tranzacții lunare ale clienților (cu carduri, în Internet banking și mobile banking), inclusiv salarizare și informații despre cifra de afaceri.
  • „Carduri” - date despre toate cardurile pe care le are clientul, cu un grafic tarifar detaliat.
  • „Acorduri” - informații despre acordurile clientului (atât deschise, cât și închise): împrumuturi, depozite etc., indicând parametrii fiecăruia.
  • „Clienți” - un set de date demografice (sex și vârstă) și disponibilitatea informațiilor de contact.

Pentru muncă aveam nevoie de toate tabelele, cu excepția „Harții”.

Aici a existat o altă dificultate - în aceste date banca nu a indicat ce fel de activitate a avut loc pe carduri. Adică am putea înțelege dacă au existat sau nu tranzacții, dar nu am mai putut stabili tipul lor. Prin urmare, nu a fost clar dacă clientul retrage numerar, primea un salariu sau cheltuia banii pe cumpărături. De asemenea, nu aveam date despre soldurile conturilor, ceea ce ar fi fost de folos.

Eșantionul în sine a fost imparțial - în această secțiune, peste 19 luni, banca nu a făcut nicio încercare de a păstra clienții și de a minimiza ieșirile.

Deci, despre perioadele de inactivitate.

Pentru a formula o definiție a abandonului, trebuie selectată o perioadă de inactivitate. Pentru a crea o prognoză de abandon la un moment dat Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural, trebuie să aveți un istoric al clienților de minim 3 luni la interval Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural. Istoricul nostru a fost limitat la 19 luni, așa că am decis să luăm o perioadă de inactivitate de 6 luni, dacă este disponibilă. Și pentru perioada minimă pentru o prognoză de înaltă calitate, ne-a luat 3 luni. Am luat cifrele pentru 3 și 6 luni în mod empiric, pe baza unei analize a comportamentului datelor clienților.

Am formulat definiția abandonului după cum urmează: luna abandonului clientului Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural aceasta este prima lună cu ACTIVE_FLAG=0, unde din această lună există cel puțin șase zerouri consecutive în câmpul ACTIVE_FLAG, cu alte cuvinte, luna din care clientul a fost inactiv timp de 6 luni.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Numărul de clienți care au plecat

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Numărul de clienți rămași

Cum se calculează rata de pierdere?

În astfel de competiții, și în practică în general, fluxul de ieșire este adesea prezis în acest fel. Clientul folosește produse și servicii în diferite perioade de timp, datele privind interacțiunea cu el sunt reprezentate ca un vector de caracteristici de lungime fixă ​​n. Cel mai adesea, aceste informații includ:

  • Date care caracterizează utilizatorul (date demografice, segment de marketing).
  • Istoricul utilizării produselor și serviciilor bancare (acestea sunt acțiuni ale clienților care sunt întotdeauna legate de un anumit timp sau perioadă din intervalul de care avem nevoie).
  • Date externe, dacă a fost posibil să le obțineți - de exemplu, recenzii de pe rețelele sociale.

Și după aceea, ei derivă o definiție a abandonului, diferită pentru fiecare sarcină. Apoi folosesc un algoritm de învățare automată, care prezice probabilitatea ca un client să plece Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural pe baza unui vector de factori Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural. Pentru a antrena algoritmul, se utilizează unul dintre cadrele binecunoscute pentru construirea ansamblurilor de arbori de decizie, XGBoost, LightGBM, CatBoost sau modificări ale acestora.

Algoritmul în sine nu este rău, dar are câteva dezavantaje serioase când vine vorba de prezicerea abandonului.

  • Nu are așa-zisa „memorie”. Intrarea modelului este un număr specificat de caracteristici care corespund momentului curent în timp. Pentru a stoca informații despre istoricul modificărilor parametrilor, este necesar să se calculeze caracteristici speciale care caracterizează modificările parametrilor în timp, de exemplu, numărul sau suma tranzacțiilor bancare din ultimele 1,2,3, XNUMX, XNUMX luni. Această abordare poate reflecta doar parțial natura schimbărilor temporare.
  • Orizont de prognoză fix. Modelul este capabil să prezică pierderea clienților doar pentru o perioadă de timp predefinită, de exemplu, o prognoză cu o lună înainte. Dacă este necesară o prognoză pentru o perioadă diferită de timp, de exemplu, trei luni, atunci trebuie să reconstruiți setul de antrenament și să reantrenați un nou model.

Abordarea noastră

Am decis imediat că nu vom folosi abordări standard. Pe lângă noi, în campionat s-au înscris încă 497 de persoane, fiecare având o experiență considerabilă în spate. Deci, încercarea de a face ceva conform unei scheme standard în astfel de condiții nu este o idee bună.

Și am început să rezolvăm problemele cu care se confruntă modelul de clasificare binar prin prezicerea distribuției probabilității a timpilor de pierdere a clienților. O abordare similară poate fi observată aici, vă permite să preziceți pierderea mai flexibil și să testați ipoteze mai complexe decât în ​​abordarea clasică. Ca o familie de distribuții care modelează timpul de ieșire, am ales distribuția Weibull pentru utilizarea pe scară largă în analiza supraviețuirii. Comportamentul clientului poate fi privit ca un fel de supraviețuire.

Iată exemple de distribuții ale densității probabilității Weibull în funcție de parametri Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural и Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural:

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Aceasta este funcția de densitate a probabilității a trei clienți diferiți de-a lungul timpului. Timpul este prezentat în luni. Cu alte cuvinte, acest grafic arată când un client are cea mai mare probabilitate de a se retrage în următoarele două luni. După cum puteți vedea, un client cu o distribuție are un potențial mai mare de a pleca mai devreme decât clienții cu Weibull(2, 0.5) și Weibull (3,1) distribuții.

Rezultatul este un model care, pentru fiecare client, pentru fiecare
luna prezice parametrii distribuției Weibull, care reflectă cel mai bine apariția probabilității de ieșire în timp. In detaliu:

  • Caracteristicile țintă de pe setul de instruire sunt timpul rămas până la retragere într-o anumită lună pentru un anumit client.
  • Dacă nu există o rată de abandon pentru un client, presupunem că timpul de abandon este mai mare decât numărul de luni din luna curentă până la sfârșitul istoricului pe care îl avem.
  • Model utilizat: rețea neuronală recurentă cu strat LSTM.
  • Ca funcție de pierdere, folosim funcția de log-probabilitate negativă pentru distribuția Weibull.

Iată avantajele acestei metode:

  • Distribuția probabilității, pe lângă posibilitatea evidentă de clasificare binară, permite predicția flexibilă a diferitelor evenimente, de exemplu, dacă un client va înceta să mai folosească serviciile băncii în decurs de 3 luni. De asemenea, dacă este necesar, se pot face o medie a diferitelor valori pe această distribuție.
  • Rețeaua neuronală recurentă LSTM are memorie și utilizează efectiv întregul istoric disponibil. Pe măsură ce povestea este extinsă sau rafinată, acuratețea crește.
  • Abordarea poate fi scalată cu ușurință la împărțirea perioadelor de timp în altele mai mici (de exemplu, la împărțirea lunilor în săptămâni).

Dar nu este suficient să creezi un model bun; trebuie, de asemenea, să-i evaluezi corect calitatea.

Cum a fost evaluată calitatea?

Am ales Lift Curve ca metrică. Este folosit în afaceri pentru astfel de cazuri datorită interpretării sale clare, este bine descris aici и aici. Dacă descrii semnificația acestei valori într-o propoziție, ar fi „De câte ori face algoritmul cea mai bună predicție în prima Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural% decât aleatoriu."

Modele de antrenament

Condițiile de concurență nu au stabilit o metrică specifică a calității prin care să poată fi comparate diferite modele și abordări. Mai mult, definiția abandonului poate fi diferită și poate depinde de enunțul problemei, care, la rândul său, este determinată de obiectivele de afaceri. Prin urmare, pentru a înțelege care metodă este mai bună, am antrenat două modele:

  1. O abordare de clasificare binară folosită în mod obișnuit folosind un algoritm de învățare automată a arborelui de decizie ansamblu (LightGBM);
  2. Model Weibull-LSTM

Setul de testare a constat din 500 de clienți preselectați care nu erau în setul de instruire. Hiper-parametrii au fost selectați pentru model folosind validarea încrucișată, defalcate în funcție de client. Aceleași seturi de caracteristici au fost folosite pentru a antrena fiecare model.

Datorită faptului că modelul nu are memorie, au fost luate caracteristici speciale pentru acesta, arătând raportul dintre modificările parametrilor pentru o lună la valoarea medie a parametrilor din ultimele trei luni. Ce a caracterizat rata de modificare a valorilor în ultima perioadă de trei luni. Fără aceasta, modelul bazat pe Random Forest ar fi dezavantajat față de Weibull-LSTM.

De ce LSTM cu distribuție Weibull este mai bună decât o abordare a arborelui de decizie de ansamblu

Totul este clar aici în doar câteva imagini.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Comparație a curbei de ridicare pentru algoritmul clasic și Weibull-LSTM

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Comparație a valorii curbei de ridicare pe lună pentru algoritmul clasic și Weibull-LSTM

În general, LSTM este superior algoritmului clasic în aproape toate cazurile.

Predicția de renunțare

Un model bazat pe o rețea neuronală recurentă cu celule LSTM cu distribuție Weibull poate anticipa pierderea în avans, de exemplu, poate prezice pierderea clienților în următoarele n luni. Luați în considerare cazul pentru n = 3. În acest caz, pentru fiecare lună, rețeaua neuronală trebuie să determine corect dacă clientul va pleca, începând din luna următoare și până în luna a n-a. Cu alte cuvinte, trebuie să determine corect dacă clientul va rămâne după n luni. Aceasta poate fi considerată o prognoză în avans: prezicerea momentului în care clientul tocmai începea să se gândească la plecare.

Să comparăm curba de ridicare pentru Weibull-LSTM cu 1, 2 și 3 luni înainte de scurgere:

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Am scris deja mai sus că sunt importante și previziunile făcute pentru clienții care nu mai sunt activi de ceva timp. Prin urmare, aici vom adăuga la eșantion astfel de cazuri când clientul plecat a fost deja inactiv de una sau două luni și vom verifica dacă Weibull-LSTM clasifică corect astfel de cazuri ca abandon. Deoarece astfel de cazuri au fost prezente în eșantion, ne așteptăm ca rețeaua să le gestioneze bine:

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Retenție client

De fapt, acesta este principalul lucru care se poate face, având în mână informații că astfel de clienți se pregătesc să nu mai folosească produsul. Apropo de construirea unui model care ar putea oferi ceva util clienților pentru a-i păstra, acest lucru nu se poate face dacă nu aveți un istoric de încercări similare care s-ar termina cu bine.

Nu aveam o astfel de poveste, așa că am decis așa.

  1. Construim un model care identifică produse interesante pentru fiecare client.
  2. În fiecare lună rulăm clasificatorul și identificăm clienții care pot părăsi.
  3. Oferim unor clienti produsul, dupa modelul de la punctul 1, si ne amintim actiunile noastre.
  4. După câteva luni, ne uităm la care dintre acești clienți potențial plecați și care au rămas. Astfel, formăm un eșantion de antrenament.
  5. Antrenăm modelul folosind istoricul obținut la pasul 4.
  6. Opțional, repetăm ​​procedura, înlocuind modelul de la pasul 1 cu modelul obținut la pasul 5.

Un test al calității unei astfel de retenții se poate face prin teste A/B regulate - împărțim clienții care pot pleca în două grupuri. Oferim unuia produse pe baza modelului nostru de retenție, iar celuilalt nu oferim nimic. Am decis să antrenăm un model care ar putea fi util deja la punctul 1 al exemplului nostru.

Am vrut să facem segmentarea cât mai interpretabilă. Pentru a face acest lucru, am ales câteva caracteristici care ar putea fi interpretate cu ușurință: numărul total de tranzacții, salariile, cifra totală de afaceri în cont, vârsta, sexul. Caracteristicile din tabelul „Hărți” nu au fost luate în considerare ca neinformative, iar caracteristicile din tabelul 3 „Contracte” nu au fost luate în considerare din cauza complexității procesării pentru a evita scurgerea datelor între setul de validare și setul de instruire.

Clusteringul a fost realizat folosind modele de amestec gaussiene. Criteriul de informare Akaike ne-a permis să stabilim 2 optime. Primul optim corespunde unui cluster. Al doilea optim, mai puțin pronunțat, corespunde la 1 de clustere. Pe baza acestui rezultat, putem trage următoarea concluzie: este extrem de dificil să împărțim datele în clustere fără informații date a priori. Pentru o mai bună grupare, aveți nevoie de date care să descrie fiecare client în detaliu.

Prin urmare, problema învățării supravegheate a fost luată în considerare pentru a oferi fiecărui client individual un produs diferit. Au fost luate în considerare următoarele produse: „Depozit la termen”, „Card de credit”, „Descoperit de cont”, „Împrumut de consum”, „Împrumut auto”, „Ipoteca”.

Datele au inclus încă un tip de produs: „Cont curent”. Dar nu am luat-o în considerare din cauza conținutului scăzut de informații. Pentru utilizatorii care sunt clienți ai băncii, de ex. nu a încetat să-și folosească produsele, a fost construit un model care să prezică ce produs ar putea fi de interes pentru ei. Regresia logistică a fost aleasă ca model, iar valoarea Lift pentru primele 10 percentile a fost utilizată ca metrică de evaluare a calității.

Calitatea modelului poate fi evaluată în figură.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural
Rezultatele modelului de recomandare de produse pentru clienți

Total

Această abordare ne-a adus primul loc la categoria „AI în bănci” la Campionatul RAIF-Challenge 2017 AI.

Cum am prezis pierderea prin abordarea ei ca pe un dezastru natural

Aparent, principalul lucru a fost să abordezi problema dintr-un unghi neconvențional și să folosești o metodă care este de obicei folosită pentru alte situații.

Deși o ieșire masivă de utilizatori poate fi un dezastru natural pentru servicii.

Această metodă poate fi luată în considerare pentru orice altă zonă în care este important să se țină cont de flux, nu doar bănci. De exemplu, l-am folosit pentru a ne calcula propriul flux - în filialele Rostelecom din Siberia și Sankt Petersburg.

Compania „Data Mining Laboratory” „Portalul de căutare „Sputnik”

Sursa: www.habr.com

Adauga un comentariu