Retentioneering: hogyan írtunk nyílt forráskódú eszközöket a Python és a Pandas termékelemzéséhez

Szia Habr. Ez a cikk a felhasználók mozgási pályáinak alkalmazásokban vagy webhelyeken történő feldolgozására szolgáló módszerek és eszközök készletének négy éves fejlesztésének eredményeit ismerteti. A fejlesztés szerzője - Maxim Godzi, aki a termékalkotói csapat élén áll és egyben a cikk szerzője is. Magát a terméket Retentioneeringnek hívták; most nyílt forráskódú könyvtárrá alakították át, és közzétették a Githubon, így bárki használhatja. Mindez a termék- és marketingelemzéssel, promócióval és termékfejlesztéssel foglalkozók számára érdekes lehet. Egyébként Habrén már megjelent egy cikk a Retentioneeringgel való munka egyik esetéről. Az új anyag elmagyarázza, mire képes a termék és hogyan használható.

A cikk elolvasása után Ön maga is meg tudja írni a saját Retentioneering-ét; ez lehet bármilyen szabványosított módszer a felhasználói pályák feldolgozására az alkalmazásban és azon túl, lehetővé téve, hogy részletesen megtekinthesse a viselkedési jellemzőket, és ebből betekintést nyerjen a üzleti mutatók.

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

Kezdetben az volt a célunk, hogy a Growth Hackinget a „digitális boszorkányság” világából a számok, elemzések és előrejelzések világába helyezzük át. Ennek következtében a termékelemzés a tiszta matematikára és programozásra redukálódik azok számára, akik a fantasztikus történetek helyett a számokat preferálják, a képleteket pedig olyan hívószavakra, mint a „rebranding”, „repositioning” stb., amelyek szépen hangzanak, de a gyakorlatban keveset segítenek.

E problémák megoldásához szükségünk volt egy keretrendszerre a gráfokon és pályákon keresztül történő elemzéshez, és egyúttal egy olyan könyvtárra, amely leegyszerűsíti a tipikus elemzői rutinokat, hogy leírhassuk a szokásos termékelemzési feladatokat, amelyek mind az emberek, mind a robotok számára érthetőek. A könyvtár lehetővé teszi a felhasználói viselkedés leírását és a termék üzleti mutatóihoz való kapcsolását olyan formális és világos nyelvezeten, hogy leegyszerűsíti és automatizálja a fejlesztők és elemzők rutinfeladatait, valamint megkönnyíti kommunikációjukat a vállalkozással.

A Retentioneering egy olyan módszer és elemző szoftvereszköz, amely adaptálható és integrálható bármilyen digitális (és nem csak) termékbe.

2015-ben kezdtünk el dolgozni a terméken. Most ez egy kész, bár még nem ideális eszközkészlet Pythonban és Pandasban az adatokkal való munkavégzéshez, gépi tanulási modellekhez sklearn-szerű API-val, eszközök az eli5 és shap gépi tanulási modellek eredményeinek értelmezéséhez.

Minden be van csomagolva egy kényelmes nyílt forráskódú könyvtárba a nyílt Github tárhelyben - retentioneering-tools. A könyvtár használata nem nehéz, szinte bárki, aki szereti a termékelemzést, de korábban még nem írt kódot, önállóan, jelentős időráfordítás nélkül alkalmazhatja analitikai módszereinket adataira.

Nos, egy programozó, egy alkalmazáskészítő, vagy egy fejlesztői vagy tesztelői csapat tagja, aki korábban soha nem végzett elemzést, elkezdhet játszani ezzel a kóddal, és külső segítség nélkül láthatja alkalmazásai használati mintáit.

A felhasználói pálya, mint az elemzés alapeleme és feldolgozásának módszerei

A felhasználói pálya a felhasználói állapotok sorozata bizonyos időpontokban. Ezenkívül az események különböző adatforrásokból származhatnak, online és offline egyaránt. A felhasználóval történt események a pályájának részét képezik. Példák:
• megnyomta a gombot
• látta a képet
• nyomja meg a képernyőt
• e-mailt kapott
• ajánlotta a terméket egy barátjának
• kitöltötte az űrlapot
• megérintette a képernyőt
• görgetett
• a pénztárhoz ment
• burritót rendelt
• evett egy burritót
• mérgezést kapott egy burrito elfogyasztása során
• a hátsó bejárat felől lépett be a kávézóba
• be az elülső bejáraton
• minimalizálta az alkalmazást
• push értesítést kapott
• X-nél tovább ragadt a képernyőn
• kifizette a rendelést
• megvásárolta a rendelést
• elutasították a kölcsönt

Ha figyelembe veszi a felhasználók egy csoportjának pályaadatait, és megvizsgálja az átmenetek felépítését, akkor pontosan nyomon követheti, hogyan épül fel viselkedésük az alkalmazásban. Ezt egy olyan gráfon keresztül célszerű megtenni, amelyben az állapotok csomópontok, az állapotok közötti átmenetek pedig élek:

Retentioneering: hogyan írtunk nyílt forráskódú eszközöket a Python és a Pandas termékelemzéséhez

A „Trajektória” egy nagyon kényelmes fogalom - részletes információkat tartalmaz az összes felhasználói műveletről, és bármilyen további adatot hozzáadhat ezeknek a műveleteknek a leírásához. Ez teszi univerzális objektummá. Ha gyönyörű és kényelmes eszközei vannak, amelyek lehetővé teszik a pályákkal való munkát, akkor megtalálhatja a hasonlóságokat és feloszthatja őket.

A pályaszegmentálás elsőre nagyon bonyolultnak tűnhet. Normál helyzetben ez a helyzet - kapcsolódási mátrix-összehasonlítást vagy szekvencia-illesztést kell használnia. Sikerült egy egyszerűbb módot találnunk - nagyszámú pályát tanulmányozni és klaszterezéssel szegmentálni.

Mint kiderült, folyamatos ábrázolással lehet egy pályát ponttá alakítani, pl. TF-IDF. A transzformáció után a pálya egy olyan ponttá válik a térben, ahol a különböző események normalizált előfordulása és a köztük lévő trajektória átmenetei a tengelyek mentén ábrázolódnak. Ez a dolog egy hatalmas ezer vagy több dimenziós térből (dimS=sum(eseménytípusok)+sum(ngrams_2 type)) vetíthető síkra TSNE. A TSNE egy olyan transzformáció, amely a tér méretét 2 tengelyre csökkenti, és ha lehetséges, megőrzi a pontok közötti relatív távolságokat. Ennek megfelelően egy síktérképen, a pályák figuratív vetületi térképén lehetővé válik annak vizsgálata, hogy a különböző pályák pontjai hogyan helyezkedtek el egymás között. Azt elemzi, hogy mennyire voltak közel vagy különböznek egymástól, hogy klasztereket alkottak-e, vagy szétszórtak-e a térképen stb.:

Retentioneering: hogyan írtunk nyílt forráskódú eszközöket a Python és a Pandas termékelemzéséhez

A megőrző elemző eszközök lehetőséget adnak arra, hogy az összetett adatokat, pályákat egymással összehasonlítható nézetté alakítsuk, majd az átalakítás eredménye vizsgálható és értelmezhető.

A trajektóriák feldolgozásának szabványos módszereiről beszélve három fő eszközt értünk alatta, amelyeket a Retentioneeringben implementáltunk - gráfokat, lépésmátrixokat és pályavetítési térképeket.

A Google Analytics, Firebase és hasonló analitikai rendszerekkel való munka meglehetősen összetett, és nem 100%-ban hatékony. A probléma a felhasználót érintő számos korlátozás, aminek következtében az elemző munkája az ilyen rendszerekben az egérkattintásoktól és a szeletek kiválasztásától függ. A megtartás lehetővé teszi a felhasználói pályákkal való munkát, és nem csak a csatornákkal, mint a Google Analytics esetében, ahol a részletesség gyakran egy tölcsérre csökken, bár egy bizonyos szegmenshez készült.

Megtartás és esetek

Példaként a kifejlesztett eszköz használatára egy nagy niche-szolgáltatás esetét említhetjük Oroszországban. Ennek a cégnek van egy Android mobilalkalmazása, amely népszerű az ügyfelek körében. A mobilalkalmazásból származó éves forgalom mintegy 7 millió rubel volt, a szezonális ingadozások 60-130 ezer között mozogtak, ugyanennek a cégnek van iOS-re is alkalmazása, és az Apple alkalmazás felhasználóinak átlagos számlája meghaladta az átlagos számlát az Android alkalmazást használó kliens - 1080 dörzsölje. 1300 dörzsöléssel szemben.

A cég az Android alkalmazás hatékonyságának növelése mellett döntött, amihez alapos elemzést is végzett. Több tucat hipotézis született az alkalmazás hatékonyságának növelésére vonatkozóan. A Retentionneering használata után kiderült, hogy a probléma az új felhasználóknak megjelenített üzenetekben van. Tájékoztatást 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 a felhasználót az alkalmazásban való munkavégzésben.

Retentioneering: hogyan írtunk nyílt forráskódú eszközöket a Python és a Pandas termékelemzéséhez

Ez megtörtént, aminek következtében az alkalmazás kevésbé lett eltávolítva, és 23%-os volt a rendelésre átalakítás növekedése. Eleinte a beérkező forgalom 20 százalékát adták a tesztnek, de néhány nap múlva az első eredmények elemzése és a trend felmérése után megfordították az arányokat, és éppen ellenkezőleg, 20 százalékot hagytak a kontrollcsoportnak, ill. nyolcvan százalékát helyezték el a tesztben. Egy héttel később úgy döntöttek, hogy egymás után két további hipotézis tesztelését is hozzáadják. Mindössze hét hét alatt a korábbi szinthez képest másfélszeresére nőtt az Android alkalmazásból származó forgalom.

Hogyan dolgozzunk a megtartással?

Az első lépések meglehetősen egyszerűek – töltse le a könyvtárat a pip install retentioneering paranccsal. Maga a repository kész példákat és adatfeldolgozási eseteket tartalmaz egyes termékelemzési feladatokhoz. A készlet folyamatosan frissül, amíg elég lesz az első ismerkedéshez. Bárki el tudja készíteni a kész modulokat, és azonnal alkalmazni tudja azokat a feladataira - ez lehetővé teszi, hogy a lehető leggyorsabban és leghatékonyabban beállítsa a felhasználói pályák részletesebb elemzésének és optimalizálásának folyamatát. Mindez lehetővé teszi az alkalmazások használati mintáinak megtalálását az áttekinthető kódon keresztül, és a tapasztalatok megosztását a kollégákkal.

A megtartás egy olyan eszköz, amelyet érdemes használni az alkalmazás teljes élettartama alatt, és a következő okok miatt:

  • A megtartás hatékonyan követi nyomon és folyamatosan optimalizálja a felhasználói pályákat, és javítja az üzleti teljesítményt. Így az e-kereskedelmi alkalmazások gyakran olyan új funkciókkal egészülnek ki, amelyeknek a termékre gyakorolt ​​hatása nem mindig jósolható meg pontosan. Egyes esetekben kompatibilitási problémák merülnek fel az új és a régi funkciók között - például az újak „kannibalizálják” a meglévőket. És ebben a helyzetben pontosan a pályák folyamatos elemzésére van szükség.
  • Hasonló a helyzet a hirdetési csatornákkal való munka során is: folyamatosan tesztelik az új forgalmi forrásokat, hirdetési kreatívokat, figyelemmel kell kísérni a szezonalitást, a trendeket és az egyéb események hatását, ami újabb és újabb problémaosztályok megjelenéséhez vezet. Ez a felhasználói mechanika folyamatos figyelését és értelmezését is igényli.
  • Számos tényező folyamatosan befolyásolja egy alkalmazás teljesítményét. Például új kiadások a fejlesztőktől: egy aktuális probléma lezárásakor akaratlanul is visszaadják a régit, vagy létrehoznak egy teljesen újat. Idővel az új kiadások száma nő, é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 megtartás hatékony eszköz. De a tökéletességnek nincs határa – lehet és kell is fejleszteni, fejleszteni, és új klassz termékeket építeni az alapján. Minél aktívabb a projekt közössége, annál több elágazás lesz, és új, érdekes felhasználási lehetőségek jelennek meg.

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

Forrás: will.com

Hozzászólás