IT Industrija

🔥 Najčitanije
🔥 Najčitanije
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.
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.
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.
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.
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.
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.
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.
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.
Objavio/la članak.
sreda, 5. Avgust, 2015.
Zoran
petak, 24. Avgust, 2018.
Pa ne bih se bas slozio sa definicijom Big Data koju je napisao Milos. Nije tacno da ne postoji definicija za Big Data. U svetu postoji generalni konsenzus oko definicije Big Data a on se sastoji iz cetiri pojma koje ja nazalost neznam objektivno prevesti na Srpski jezik a to su : volume, variety, velocity, and veracity. To su skupovi struktuiranih (baze podataka, razni tipovi fajlova: CSV, XML,,,), zatim ne-struktuiranih podataka (to su razni oblici log fijlova koji nemaju fiksnu strukturu etc..). Na pitanje kada cete poceti da koristite Big Data nema odogovora. Cak I mnogo velike kompanije pristupaju tome veoma sporo iako su mogucnosti ogromne jer postoje alati za analizu I real time capturing koji vam omogucava da donesete odluke u real vremenu. Churn je na primer veliki problem mnogih kompanija na zapadu posebno telkoma gd eje konkurencija poprilicno velika I tada dolazi do velikog broja "preletaca" koji prelaze od jednog do drugog korisnika.. Da bi ste se "obracunali" sa churnom morate pre svega imate adekvatne podatke I odabrati prave modele. Osim toga veoma je vazno poznavati tehnologiju I vase servise , vasu slabost, konkurenciju njihove slabosti, korisnicki behaviour . Kada ste ustanovili da imate veliki odliv korisnika , tada pocinjete da trazite uzroke I Milos je naveo neke od modela , ima tu jos modela koji u kombinaciji sa adaboost etc.. C5.0 and a Neural Network (ANN) have significantly better performance after Adaboost ... No nije samo tu problem. Problem je kako stimulisati korisnika da ostane lojalan. Pre svega dobar I kvalitetan servise. Sledeci korak je discount ali tu treba biti veoma pametan I pomocu modela odabrati pravi discount po korisniku kako biste ga zadrzali jer je zadrzati korisnika 5 puta jeftinije nego naci novog, ali isto tako ako ste dali ogroman inappropriate discount vi cete smanjiti prihod... Prica je mnogo slozena da bi se objasnila u jednom postu. Izvinjavam se zbog mixa Englesko/Srpski posto sam iz Srbije odsutan preko 30 godina. I svioh 30 sam proveo u obasti data architecture , analize, design, AF ... etc..
srdjan
ponedeljak, 17. Avgust, 2015.
Super, to su info koje su me zanimale, hvala :)
Miloš
četvrtak, 13. Avgust, 2015.
Pozdrav Srdjane, detaljnije informacije o tome kako se pravio prediktivni model mozete naci ovde: http://www.gamasutra.com/blogs/MilosMilosevic/20150811/250913/How_data_scientists_slashed_early_churn_in_Top_Eleven.php Pozdrav, Miloš
srdjan
sreda, 12. Avgust, 2015.
Cao jos jednom i verovatno poslednji put :) Hvala na odgovorima do sada. Dakle radila se klasifikacija korisnika na osnovu aktivnosti prvog dana. To znaci da su se kao featuri uzimale strane na kojima je user provodio vreme, a kao tezina pojedinacnog featura se uzimalo vreme provedeno na strani? p.s. znam da "strana" verovatno nije tacna terminoloski, ali nisam u gaming industriji :)
Miloš
petak, 7. Avgust, 2015.
Poštovani Srdjane, više podataka na ovu temu možete pronaći na: http://www.slideshare.net/Nordeus/early-churn-prediction-and-personalised-interventions-in-top-eleven-game Što se tiče samih modela, 3 modela koja su se kod nas najbolja pokazala su: SVM LogisticRegression i Gradient Boosting Trees. Po pitanju performansi, za merenje preciznosti modela za metriku najčešće koristimo AUC. Po ovoj metrici, SVM model je imao skor od 0.81, Logistička regresije je imala skor od 0.83 i Gradient Boosting stabla su imala skor od 0.84. Kao što se po rezultatima vidi, gradient boosting stabla su se najbolje pokazala, medjutim, konačna verzija prediktivnog modela nije uradjena preko njih, već preko logističke regresije, zbog toga što je logistička regresija jednostavniji algoritam i lakši za održavanje, a pad performansi je zanemarljiv. Što se tiče konkretnog targetovanja korisnika, za to nismo koristili ML, već podatke o scenama na kojima su korisnici provodili najviše vremena. Pozdrav
ob1
petak, 7. Avgust, 2015.
Dobar clanak. Ako vas interesuje vise na ovu temu, evo ga odlican clanak kako je 500px uradio analitiku: https://medium.com/@samson_hu/building-analytics-at-500px-92e9a7005c83 pozdrav
srdjan
četvrtak, 6. Avgust, 2015.
Cao Milose, lepo sto si podelio metod za validaciju algoritma, kao i procente uspeha. Koliko vidim ovde su se resavala 2 zadatka: 1. klasifikacija churnera 2. generisanje personalizovanog (spam:) mail-a. Da li ste i ovde koristili ML? Da li bi mogao da kazes koje ste modele isprobavali, i koji je dao najbolje rezultate na prvom tasku?
Miloš
četvrtak, 6. Avgust, 2015.
Poštovani, ne postoji tačna definicija Big data ili Big data problema. Tehnički, svaki dataset koji sadrži kompleksne strukture ili veliki broj redova, jeste Big data problem. Ako Vam baš treba primer, uzmite Facebook i razmislite o tome kako oni računaju zajedničke prijatelje ili na osnovu kojih algoritama Vam predlažu nove prijatelje. Pozdrav
Big data
sreda, 5. Avgust, 2015.
Pa jednostavno kad imas Big Data :) E sad sta je Big data problem, to bi i ja voleo da cujem , a da ne dobijem odgovor kao kad pitam nekog sta je cloud :) I ja bi zamolio Milosa da odgovori na pitanje.
Miloš
sreda, 5. Avgust, 2015.
Pozdrav, pravo vreme zavisi od Vašeg proizvoda. Ako već imate nešto u produkciji, onda je veoma bitno da postoji osoba zadužena samo za praćenje metrika, analizu podataka, reporting, itd. Angažovanjem Big Data stručnjaka (analitičara) možete steći mnogo lakih pobeda (low hanging fruit). Takodje, uz pomoć analitičara u svom timu lakše ćete donositi data-driven odluke, najbolje za Vaš proizvod. Pozdrav
Pitanje
sreda, 5. Avgust, 2015.
Pitanje za Miloša i ostale Big Data stručnjake. Kada je pravo vrijeme da startup ili firma angažuje Big Data stručnjaka u ekipu? Posebno iz perspektive startupa sa ograničenim resursima?