Odlazak korisnika ili churn: kako ga Nordeus predviđa i sprečava uz big data

Churn označava trenutak kada korisnik prestane da koristi uslugu ili proizvod. Miloš Milošević, Data Engineer u Nordeusu, podelio je sa nama iskustva u modelovanju i prevenciji churna na primeru igre TopEleven.

Miloš Milošević - 5. Avgust, 2015.

Churn je termin koji se često koristi u industrijama koje se zasnivaju na dugotrajnom pružanju usluga, recimo, u bankarstvu, telekomunikacijama i gejmingu, a označava trenutak kada korisnik prestane da koristi uslugu ili proizvod.

Miloš Milošević, Data Engineer u Nordeusu, podelio je sa nama iskustva u modelovanju i prevenciji churna na primeru igre TopEleven.

Šta je rani odlazak korisnika – early churn?

Na srpskom, churn najlakše možemo objasniti kao prestanak korišćenja usluge ili proizvoda, a korisnika koji je odustao od korišćenja prozivoda tada žargonski nazivamo “churnerom”. Postoji više tipova churna, a najpopularniji za analizu je kasni (late ili veteran) churn, koji predstavlja trenutak kada korisnik koji je tu duže vreme prestane da koristi uslugu ili proizvod. Iako bitan, kasni churn u free-to-play online igrama najčešće služi samo kao metrika, retko kad kao podatak na koji ćete reagovati, zato što je poznato i dokazano da se late “churneri” veoma teško mogu uspešno vratiti natrag u igru (ovo važi samo za online f2p).

Rani churn je manje istražena verzija, a u industriji igara, sama definicija ranog churna može varirati u zavisnosti od igre. Neka generalna definicija je ta da je rani churn akcija prestanka igranja igre, od strane korisnika koji je tek nedavno počeo da igra.

Rani churn je usko povezan sa zadržavanjem korisnika (retention), tako da, ako uspemo da smanjimo rani churn, povećavamo zadržavanje, a posledično onda i sve druge metrike rastu. Drugim rečima, ako uspemo da zadržimo korisnika i učinimo da on duže igra našu igru, raste verovatnoća da će on potrošiti novac u našoj igri ili pozvati prijatelje da takođe igraju.

Za sprečavanje ranog churna u igrama najčešće su zaduženi tutorijali i dobre optimizacije ranih nivoa igre. Takođe, ako bismo želeli da dalje smanjimo rani churn, to bismo uobičajeno radili implementacijom novih mogućnosti ili novih delova igre. U zavisnosti od veličine novog dela koji bismo želeli, realizacija može potrajati veoma dugo.

Prvobitna ideja Analytics tima Nordeusa bila je koncipirana tako da se nađe najbolji mogući način smanjivanja ranog churna bez implementacije novog dela igre za nove korisnike. Na kraju smo došli do toga da želimo da efikasno prepoznamo one koji rano napuštaju igru i nakon toga im šaljemo personalizovane poruke, kako bismo ih vratili u igru.

Kako se predviđa rani churn?

Rani churn možemo predvideti koristeći prediktivne modele. Međutim, da bismo stigli do predviđanja, prvo moramo odgovoriti na neka osnovna pitanja koja nemaju previše veze sa samim modelom, već sa definicijom ranog churna i upotrebom predikcije.

Najbitnije pitanje koje zahteva odgovor je: kada uključiti algoritam predikcije? Ako prerano predvidimo churnere, rizikujemo da dobijemo veoma slabu preciznost modela. Sa druge strane, ako predugo čekamo, rizikujemo da izgubimo na vrednosti informacije da će neko otići iz igre.

Potrebno je pronaći pravi balans.

Ovo je najlakše uraditi veoma jasnom definicijom upotrebe informacija nakon predikcije. U zavisnosti od toga da li želimo da pokušamo da vratimo churnere ili možda da menjamo gameplay nakon što saznamo da se neko ne vraća, vreme predikcije se menja.

Kako izgleda predviđanje churna u TopElevenu?

U konkretnom slučaju predikcije churna u Top Elevenu, čak iako smo znali šta želimo da uradimo nakon predviđanja, nismo bili sigurni kada da aktiviramo algoritam predikcije. Odlučili smo da testiramo tri različita modela, koja su predviđala nakon tri, dva i jednog dana po registraciji korisnika.

S obzirom da je ovo bio početak razvijanja sistema, korisnicima za koje smo predvideli da će odustati slali smo poruke (push notifications) bez personalizacije sadržaja, da bismo dokazali koncept. Nakon testiranja dobili smo zanimljive i u velikoj meri očekivane rezultate ovog testa.

Model koji je predviđao nakon tri dana, imao je najbolju preciznost predviđanja, ali smo imali veoma malu uspešnost reaktivacije tih korisnika. Jednostavno, prošlo je previše vremena od registracije do trenutka primanja poruke – većina churnera je već obrisala aplikaciju.

Model koji je predviđao nakon dva dana od registracije, imao je nešto manju preciznost od modela za tri dana, ali i dalje poprilično visoku. Sama uspešnost reaktivacije se neznatno popravila.

Na kraju, model koji predviđa nakon jednog dana, pokazao je pristojnu preciznost, i konačno dovoljno dobar odziv churnera.

Nakon ovoga, tim se fokusirao na dalje unapređenje modela, imali smo dobru osnovu, ali i punoprostora za optimizaciju.

Kako ciljati korisnike?

Postoji mnogo načina za ciljanje (targeting) korisnika, od mejlova, Facebook obaveštenja, poruka (push notifikacija), sponzorisanog sadržaja na Facebooku (Facebook feed sponsored content) do poruka u samoj igri (in-game pop-up). Međutim, svako ciljanje nosi sa sobom i određeni rizik, zato što korisnici sve više i više postaju osetljivi na ovakav vid komunikacije i vrlo lako možete dobiti spam etiketu.

Uostalom, zar svi mi nismo bar jednom obrisali aplikaciju sa telefona zato što nam je slala previše obaveštenja?

Prema tome, ciljanju se mora veoma pažljivo pristupiti i mora se paziti da korisnici dobijaju njima korisne informacije. Problem sa ovim pristupom je što različiti korisnici smatraju različite informacije korisnim i iste poruke ne funkcionišu podjednako dobro za različite tipove korisnika.

Teško je naći savršeno podudaranje između poruke i korisnika. Na primer, nije preporučljivo poslati poruku koja poziva na intenzivno (hard core) igranje igre korisniku koji se povremeno uključuje (casual korisnik). Ovakvi problemi se relativno lako rešavaju kada imate dovoljno podataka o igraču. Međutim, u konkretnom slučaju reaktivacije ranih churnera u TopElevenu, imamo podatke o ponašanju korisnika za samo jedan dan.

Da bismo ovo rešili, moramo za početak da usvojimo dve pretpostavke: prva je da će uvek postojati dva tipa ranih churnera u Top Elevenu. Prvi tip su churneri kojima se jednostavno ne sviđa igra i nemoguće ih je vratiti. Drugi tip su churneri kojima je prvo iskustvo sa Top Elevenom previše kompleksno i/ili možda nisu baš najjasnije shvatili mehaniku igre. Ovo je tipično za sve fudbal menadžer igre – jednostavno imaju mnogo opcija od samog starta. Ako postoji mogućnost vraćanja tog drugog tipa churnera, tada moramo usvojiti drugu pretpostavku, a to je, da će se korisnici sigurno sećati onog dela igre u kom su proveli najviše vremena.

Na kraju, rešenje do kog smo došli je da churneri dobijaju poruke koje im malo detaljnije objašnjavaju delove igre koje su najviše koristili.

Koji tip notifikacija je pokazao najbolje rezultate?

U fazi testiranja, korisnike smo podelili u 3 grupe – kontrolnu, osnovnu (baseline) i test grupu. Kontrolna grupa nije dobijala nikakve notifikacije, osnovna grupa je dobijala generalne i nepersonalizovane, dok je test grupa dobijala ciljane i personalizovane poruke.

Rezultati pokazuju da je razlika veoma velika, čak i kada se šalje obična nepersonalizovana notifikacija, te je osnovna grupa  pokazala 30% veće zadržavanje u odnosu na kontrolnu grupu.

Ipak, najveća prednost se dobija slanjem ciljanih notifikacija, gde vidimo razliku u zadržavanju igrača od 40% u korist test grupe (u odnosu na osnovnu). Rezultati su veoma dobri, ali su i nešto što je nastalo kroz mesece i mesece napornog rada, počevši od algoritma za predviđanje, do, na kraju, optimizacije samog sadržaja poruka.

Kada koristiti Apache Spark?

Apache Spark je sistem u usponu koji se polako ali sigurno sve više i više probija u big data ekosistemu. Nordeus je jedna od kompanija koje su rano primenile Spark, koristimo ga od verzije 0.9.

Iako fenomenalan sistem, moje mišljenje je da ga treba koristiti samo onda kada je to apsolutno neophodno. Distribuirani sistemi, pogotovo ako koristite više njih, znaju da budu poprilično komplikovani i teški za podešavanje, čak iako se njihovi developeri uporno trude da upravo to spreče.

Takođe, ako su vam svi podaci takvi da mogu da stanu na jednu mašinu, upitno je da li vam treba distribuirano rešenje. Top Eleven je igra koja proizvodi ogromnu količinu podataka svaki dan, i probleme skalabilnosti rešavamo uz pomoć Hadoop klastera, a Apache Spark nam obavlja razne svakodnevne poslove koji bi mnogo sporije radili bez njega.

Ako ste u startup okruženju, bolje je fokusirati se na sam proizvod, a za obradu podataka koristiti neka druga proverena rešenja koja se lakše podešavaju i koriste. U suprotnom, Apache Spark je trenutno najbolja moguća opcija za pravljenje bilo kakvog sistema koji uključuje baratanje sa velikom količinom podataka.