A Hiflylabs csapat győzelme – WhyR 2020 Hackathon

Olvasási idő: 6 perc

A WhyR Foundation a McKinsey&Co támogatásával szeptemberben rendezte meg a régiós szintű “Text Mining Hachathont”, amelyen csapatunk győzött a lemorzsolás elemzésre adott megoldásával. Ebben a cikkben foglaljuk össze az elemzést és számolunk be az itt szerzett tapasztalatainkról.

A versenyen négy “kihívást” fogalmaztak meg, amelyek mind szövegbányászatra alapuló gépi tanulást célzott meg. A Hacker News nevű közösségi fórum adataival kellett dolgozni, amely különböző technikai jellegű témákat, kérdéseket, munkaajánlatokat fog össze és a felhasználók ezekre reagálhatnak kommentekben. 

A Hiflylabs elemző csapatát öten képviseltük ezen a 24 órás hackathonon.

Csendes Gerold, Molnár Bence, Rábay Kristóf, Szokolics Dániel, Farsang Bence

Cél

A kihívás megoldása során célunk az volt, hogy elemzés és modellezés révén a HackerNews megértse, mik azok a tényezők, amelyek a felhasználókat a lemorzsolódásra késztetik és hogy az ügyfél viselkedésében mikor következik be olyan változás, amit lemorzsolódás követ.  Így azonosíthatjuk azokat a felhasználókat, akik a jövőben hajlandóságot mutatnak a lemorzsolódásra.

Adatgyűjtés és adatelőkészítés

Csapatunk első körben a HackerNews API-ját felhasználva, az elmúlt 2,5 év összes adatát legyűjtötte a felhasználókról, a megjelent posztokról és a felhasználók kommentjeiről. Ezt követően meghatároztuk a lemorzsolódás definícióját, ami alapján címkézni tudtuk, hogy kiket tekintünk lemorzsolódott ügyfélnek. Ilyen, lemorzsolódó ügyfélnek kategorizáltunk minden olyan HackerNews felhasználót, aki a regisztrációját követő 3 hónapban mutatott aktivitás után legalább egy hónapig nem volt aktív, azaz nem posztolt és nem írt kommentet.

Az adatgyűjtéssel párhuzamosan, már a mintaadatokon elkezdtük az adattisztítást és a modellezéshez használható változók képzését. Ezeket két kategóriába sorolhatjuk:

  1. Aktivitási mutatók: a felhasználók oldalhasználati szokásaiból (írt kommentek száma, publikált posztok száma, a legutolsó aktivitás óta eltelt idő stb.) képezhető leíró változók
  2. Szövegelemzési (NLP) mutatók: a kommentekből kinyertünk olyan információkat, mint például hány kérdés, hiperhivatkozás szerepelt benne, komment szavainak száma. A kommenteken összetettebb NLP (Natural Language Processing, azaz természetes nyelvfeldolgozás) elemzéseket is futtattunk. Szentiment analitika (szentiment analitika = a szövegekben megjelenő semleges, pozitív vagy negatív kifejezéseinek azonosítása) segítségével megnéztük, hogy a kommentek érzelmi töltöttsége neutrális, pozitív vagy negatív. LDA (Látens Dirichlet Allokáció) elemzéssel pedig témák mentén szegmentáltuk a hozzászólásokat. Az LDA a szövegben elhelyezkedésük alapján egymással kapcsolatban lévő szavak alapján kategorizál, azt feltételezi, hogy az egy témába tartozó szövegeknek hasonló a szókészlete.

Az adatgyűjtés után felépítettük az „elemzési alaptáblánkat”, amelyben a lemorzsolódás definíciónk alapján az ügyfeleket címkéztük, és az előállított magyarázó változókat is tartalmazta.

Elemzés és modellezés

Ezután az adatainkon leíró elemzéseket végeztünk, majd nekiálltunk a lemorzsolódást előrejelző modellek építésének. Több osztályozó modell kipróbálása után a logisztikus regresszió mellett döntöttünk, mivel az eredményeit könnyebb interpretálni, továbbá a modellből kinyerhető koefficiensek alapján a kihívás több kérdésére is választ adhatunk.  Az alábbi ROC görbe (ROC görbe = grafikus módszer az osztályozó modellek kiértékelésére) is megerősíti, hogy a modellünk meglehetősen jól teljesített. Annál jobb a modell előrejelző képessége, minél nagyobb terület található a ROC görbe alatt (Area Under the Curve, AUC). 

A 0,8-hoz közeli érték azt jelenti, hogy 10 esetből 8-szor rendelünk magasabb lemorzsolódási valószínűséget azokhoz, akik valóban lemorzsolódnak, mint akik nem. Elmondható, hogy ez az eredmény a lemorzsolódást prediktáló modellek körében kifejezetten jónak számít.

A lemorzsolódók jellegzetességei 

A HackerNews fórum felhasználóinak lemorzsolódását leginkább az alábbi ábrán szereplő változók, „tényezők” befolyásolják. A legfontosabb faktorokat a regressziós koefficiensek alapján válogattuk ki.

Az aktivitási mutatók közül az „elmúlt 183 napban megírt kommentek száma” csökkenti leginkább a lemorzsolódás valószínűségét, a szövegbányászati feldolgozás során előállított változók közül pedig a „hivatkozások száma az elmúlt 6 nap kommentjeiben” és az „átlagos szószám az elmúlt 6 nap kommentjeiben” csökkenti leginkább. A változók közül churn valószínűségét legjobban az „felhasználók posztjaira és kommentjeire érkező reakciók száma az elmúlt 60 napban” növeli.

A lemozsolódás megelőzése

Az elemzés üzleti célja az volt, hogy a felhasználók oldalhasználati szokásaiban történő változásokat felismerjük és a lemorzsolódást még időben megakadályozzuk.

A lemorzsolódók azonosítása után megvizsgáltuk, hogy milyen trend jellemzi az aktivitásukat az általuk írt kommentek alapján.

Ahogyan az ábráról is leolvasható, a magas lemorzsolódási hajlandóságot mutató felhasználók kommentelési szokásainak trendje csökkenő. Ha a lemorzsolódást megelőző 2 hónapban csökkent az aktivitás, akkor az korai figyelmeztetés lehet és még időben meg lehet akadályozni a lemorzsolódást különböző módszerekkel, például gamifikációval vagy a személyre szabott hírlevelekkel.

Összefoglaló videó

A megoldást és az elért eredményeket, egy maximum öt perces videóban kellett bemutatnunk a zsűrinek, amelyek közül a nyertes megoldásokat a Why R? Foundation a Youtube csatornáján közzé is tett. A Hiflylabs csapatának megoldása itt látható:

Hackathon során szerzett tapasztalatok

Bár a csapatunk tagjai már sok projekten dolgoztak együtt, a hackathon mégis új kihívást jelentett számunkra, melynek során sok tapasztalatot szereztünk. A 24 órás időkorlát megkövetelte, hogy már az elején meghatározzuk a feladatköröket, továbbá, hogy párhuzamosan dolgozzunk. Sikerünk kulcsa volt, hogy a hackathon végére az összes szál összeért és egy kerek megoldást tudtunk a zsűri elé tenni. De a csapaton belüli gördülékeny kommunikáció és egymás segítése is meghatározta a munkánkat.

A feladat megoldása során igyekeztünk több adatot gyűjteni, annak érdekében, hogy pontosabb modellel jobb előrejelzéseket adhassunk. Fontos tanulság volt, hogy ilyen rövid idő alatt, ennyi adaton nem érdemes bonyolultabb feladatoknak nekiállni, mert elég gyorsan kiderült, hogy nem futnak le időben a komplexebb elemzések.

Összességében úgy érezzük, hogy az ilyen intenzív hackathon-szerű formátum a normál üzleti projektek esetén is hatékonyan alkalmazható, mert az erős időkorlát a legfontosabb feladatokra állítja rá a figyelmünket. Ezzel együtt természetesen az is igaz, hogy 24 hackathon óra után jóval fáradtabbak vagyunk, mint három végigdolgozott normál munkanap után…

Szerző: Molnár Bence – Junior Data Scientist

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.