Retentioneering: Hogyan írtunk nyílt forráskódú eszközöket termék-analitikához Pythonban és Pandasban

Helló, Habr. Ez a cikk a felhasználói mozgások nyomvonalának feldolgozására szolgáló módszerek és eszközök négy éves fejlesztésének eredményeinek szentelt. Maxim Godzi, aki a termékalkotó csapat élén áll, valamint a cikk szerzője is. Maga a termék a Retentioneering nevet kapta, most nyílt forráskódú könyvtárrá alakították, és a Githubon található, hogy bárki, aki szeretné, használhassa. Mindez érdekes lehet azok számára, akik a termékelemzéssel, marketingelemzéssel, valamint a termék fejlesztésével és népszerűsítésével foglalkoznak. Egyébként a Habr-on már megjelent egy cikk a Retentioneeringgel való munka egyik esetéről.Az új anyag arról szól, hogy mire képes a termék és hogyan lehet azt használni.

A cikk elolvasása után saját Retentioneeringjét is megírhatja, ami lehet bármely szabványosított módszer a felhasználói mozgások kezelésére az alkalmazásban és azon kívül, lehetővé téve, hogy részletesen lássa a viselkedési sajátosságokat és belső információkat nyerjen a üzleti mutatók növelése érdekében.

Mi az a Retentioneering és miért van szükség rá?

Kezdetben célunk az volt, hogy a Growth Hackinget a „digitális varázslat” világából a számok, elemzések és előrejelzések világába átültessük. Ennek következményeként a termékelemzést csupán matematikává és programozássá szűkítettük azok számára, akik a fantasztikus mesék helyett a számokat, a képleteket pedig a „rebranding”, „repózicionálás” és hasonló okos szavak helyett választják, amelyek jól hangzanak, de a gyakorlatban kevéssé segítenek.

A megjelölt problémák megoldásához szükség volt egy keretrendszerre az analitikához grafikonok és mozgások segítségével, miközben egy olyan könyvtárra is, amely leegyszerűsíti az elemzők tipikus rutinjait, mint a termékelemzés rendszeres feladatainak leírása, ami mind az emberek, mind a robotok számára érthető lenne. A könyvtár lehetőséget ad a felhasználói viselkedés leírására és annak összekapcsolására a termék üzleti mutatásaival egy olyan formális és egyértelmű nyelven, amely leegyszerűsíti és automatizálja a fejlesztők és elemzők rutin feladatait, könnyebbé téve a kommunikációt a vállalkozással.

A Retentioneering egy módszer és analitikai szoftvereszköz, amely bármilyen digitális (és nemcsak) termékbe bevonható és integrálható.

A terméken 2015 óta dolgozunk. Mostanra már egy készen álló, bár még nem tökéletes, Python és Pandas alapú eszközkészletet sikerült létrehoznunk az adatokkal való munkához, gépi tanulási modellek sklearn-szerű API-val, és az elméleti gépi tanulás eredményeinek értelmezésére szolgáló eszközöket, mint az eli5 és shap.

Mindez a kényelmes open-source könyvtárba van csomagolva, amely elérhető a Github nyílt tárolójában — retentioneering-tools.A könyvtár használata nem nehéz; szinte bárki, aki érdekelt a termék-analitikában, de korábban még nem írt kódot, önállóan alkalmazhatja analitikai módszereinket saját adatainál, jelentős időráfordítás nélkül.

A programozó, az alkalmazás készítője vagy a fejlesztésben vagy tesztelésben részt vevő csapattag, aki soha nem foglalkozott korábban analitikával, szintén elkezdheti kipróbálni ezt a kódot, és látni a saját alkalmazásának használati mintáit külső segítség nélkül.

A felhasználói trajektória mint az elemzés alapvető eleme és annak feldolgozási módszerei

A felhasználói trajektória a felhasználó állapotainak sorozata adott időpontokban. Az események különböző adatforrásokból származhatnak, legyenek online vagy offline. A felhasználóval történő események a trajektóriájának részét képezik. Példák:
• gombra kattintott
• képet látott
• képernyőre került
• e-mailt kapott
• ajánlotta a terméket egy barátjának
• kitöltötte a űrlapot
• megérintette a képernyőt
• görgetett
• a pénztárhoz ment
• burritót rendelt
• burritót evett
• megmérgezte magát a megevett burritóval
• a hátsó bejáraton lépett be a kávézóba
• a főbejáraton lépett be
• bezárta az alkalmazást
• push értesítést kapott
• sokáig bámulta a képernyőt
• kifizette a rendelést
• átvette a rendelést
• hitelkérelmét elutasították

Ha egy felhasználói csoport trajektórias adatainak adatait vesszük és megvizsgáljuk, hogy hogyan zajlanak az átmenetek, nyomon követhetjük, hogyan épül fel a viselkedésük az alkalmazásban. Ezt kényelmesen egy gráfon keresztül lehet bemutatni, amelyben az állapotok a csúcsok, az állapotok közötti átmenetek pedig az élek:

Retentioneering: Hogyan írtunk nyílt forráskódú eszközöket termék-analitikához Pythonban és Pandasban

A „trajektória” egy nagyon kényelmes fogalom – részletes információt tartalmaz a felhasználó összes tevékenységéről, lehetőséget adva bármilyen további adat hozzáadására ezeknek a tevékenységeknek a leírásához. Ez egy univerzális objektummá teszi. Ha rendelkezésére állnak szép és kényelmes eszközök, amelyek lehetővé teszik a trajektóriák kezelését, akkor hasonlóságokat találhat, és szegmensekre oszthatja őket.

A trajektóriák szegmentálása elsőre nagyon bonyolultnak tűnhet. Normál esetben valóban így van – a kapcsolati mátrixok összehasonlítását vagy a sorozatok összehangolását kell alkalmazni. Sikerült azonban egy egyszerűbb módszert találnunk – nagy számú trajektóriát tanulmányozunk és klaszterezés útján szegmentáljuk őket.

Kiderült, hogy a trajektóriát egy pontra lehet alakítani folyamatos reprezentációk segítségével, például TF-IDF. A trajektória átalakítása után egy ponttá válik a térben, ahol a különböző események és azok közötti átmenetek normált előfordulásainak értékei merőlegesen vannak ábrázolva. Ezt a dolgot a több ezer dimenziós térből (dimS=sum(event types)+sum(ngrams_2 types)) egy síkra lehet vetíteni a következő módszerrel: TSNE. A TSNE egy átalakítás, amely csökkenti a dimenziót 2 tengelyre, és lehetőség szerint megőrzi a pontok közötti relatív távolságokat. Ennek megfelelően egy sík térképen, egy képi vetületi térképen vizsgálhatjuk, hogy a különböző trajektóriák pontjai hogyan helyezkedtek el egymáshoz képest. Elemezhető, hogy mennyire voltak közel vagy eltérőek egymástól, képeket alkottak-e klasztereket, vagy szétszóródtak a térképen, stb.:

Retentioneering: Hogyan írtunk nyílt forráskódú eszközöket termék-analitikához Pythonban és Pandasban

A Retentioneering elemzőeszközei lehetőséget adnak arra, hogy a komplex adathalmazokat és trajektóriákat olyan reprezentációvá alakítsuk, amelyet egymással összehasonlíthatunk, majd tanulmányozhatjuk és értelmezhetjük az átalakítás eredményét.

A trajektóriák standard feldolgozási módszereiről beszélve három fő eszközre utalunk, amelyeket a Retentioneeringben megvalósítottunk – gráfok, lépések mátrixai és a trajektóriák vetületi térképei.

A Google Analytics, Firebase és hasonló analitikai rendszerek használata meglehetősen bonyolult és nem 100%-ban hatékony. A probléma abban rejlik, hogy a felhasználók számára számos korlátozás van, így az analitikai munka rákényszerül a kattintásokra és a szeletek kiválasztására. A Retentioneering lehetővé teszi a felhasználói utak vizsgálatát, nem csupán a tölcsérek, mint a Google Analytics esetében, ahol a részletezés gyakran a tölcsér szintjére korlátozódik, még ha az adott szegmenshez is van építve.

Retentioneering és esettanulmányok

Példaként a kifejlesztett eszköz használatára említhetjük egy nagy niche szolgáltatás ügyét Oroszországban. Ennek a cégnek van egy népszerű Android mobilalkalmazása. Az évente belőle származó bevétel körülbelül 7 millió rubel volt, szezonális ingadozásokkal 60-130 ezer között. Ugyanannak a cégnek van iOS alkalmazása is, és az iOS felhasználók átlagos kosárértéke magasabb volt, mint az Android alkalmazás használóinak — 1080 rubel szemben a 1300 rubellel.

A cég úgy döntött, hogy növeli az Android alkalmazás hatékonyságát, ezért alapos elemzést végzett. Számos hipotézist állítottak fel az alkalmazás teljesítményének növelésére. A Retentioneering használata után kiderült, hogy a probléma a új felhasználóknak megjelenített üzenetekben rejlik. Információt kaptak a márkáról, a cég előnyeiről és az árakról. De mint kiderült, az üzeneteknek segíteniük kellett volna a felhasználóknak az alkalmazás használatában.

Retentioneering: Hogyan írtunk nyílt forráskódú eszközöket termék-analitikához Pythonban és Pandasban

Ez meg is történt, ennek eredményeként az alkalmazás törlése csökkent, a rendelésre való konverzió pedig 23%-kal nőtt. Eleinte a tesztnek a bejövő forgalom 20%-át szentelték, de néhány nap múlva, az első eredmények elemzése és a trend kiértékelése után áttértünk a tükör arányra, és fordítva, a kontroll csoportnak 20%-ot, míg a tesztcsoportnak 80%-ot hagytunk. Egy hét múlva döntést hoztunk, hogy fokozatosan bevezetjük még két hipotézis tesztelését. Összességében hét hét alatt az Android alkalmazás bevétele másfélszeresére nőtt a korábbi szinthez képest.

Hogyan használjuk a Retentioneeringet?

Az első lépések meglehetősen egyszerűek — a pip install retentioneering parancs segítségével töltsük le a könyvtárat. Magában a repóban találhatók kész példák és esettanulmányok az adatok feldolgozására bizonyos termékelemzési feladatokhoz. A készlet folyamatosan bővül, de elegendő az első megismerkedéshez. Mindenki akathatja a kész modulokat, és azonnal alkalmazhatja a saját feladataira — ez lehetővé teszi a felhasználói pályák részletesebb elemzésének és optimalizálásának gyors és hatékony beállítását. Mindez lehetőséget ad az alkalmazás használati mintáinak felfedezésére érthető kódon keresztül, és ezen tapasztalatok átadására a kollégák számára.

A Retentioneering egy eszköz, amelyet a legjobb, ha az alkalmazás egész élettartama alatt használunk, és itt van, miért:

  • A Retentioneering hatékonyan követi és folyamatosan optimalizálja a felhasználói pályákat, és javítja az üzleti mutatókat. Az e-kereskedelmi alkalmazásokban gyakran új funkciókat adnak hozzá, amelyek hatásait a termékre nem mindig lehet pontosan megjósolni. Néha kompatibilitási problémák lépnek fel az új és régi funkciók között — például az újak "kanibalizálják" a meglévőeket. Ebben az esetben pedig szükség van a pályák folyamatos elemzésére.
  • Hasonló helyzet áll fenn a hirdetési csatornákkal való munkában: folyamatosan tesztelik az új forrásokat és hirdetési kreatívokat, figyelni kell a szezonalitást, a trendeket és más események hatását, ami újabb problémák osztályaik megjelenéséhez vezet. Itt is folyamatos nyomon követésre és a felhasználói mechanikák értelmezésére van szükség.
  • Számos olyan tényező van, amely folyamatosan befolyásolja az alkalmazás működését. Például a fejlesztők új kiadásai: miközben a releváns problémát zárják le, akaratlanul visszahoznak egy régi problémát, vagy teljesen újat hoznak létre. Idővel az új kiadások száma növekszik, és a hibák nyomon követésének folyamatát automatizálni kell — többek között a felhasználói pályák elemzésével.

Összességében a Retentioneering egy hatékony eszköz. De a tökéletességnek nincsen határa — folyamatosan fejleszthető, javítható, új, nagyszerű termékek építhetők rá. Minél aktívabb a projekt közössége, annál több fork fog létrejönni, és új érdekfeszítő felhasználási módok jelennek meg.

További információ a Retentioneering eszközökről:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster