Retencjarowanie: jak napisaliśmy narzędzia open source do analizy produktów w Pythonie i Pandach

Witaj, Habr. Artykuł poświęcony jest wynikom czteroletniego rozwoju zestawu metod i narzędzi do przetwarzania trajektorii ruchu użytkownika w aplikacji lub serwisie internetowym. Autor opracowania - Maksym Godzi, który stoi na czele zespołu twórców produktu i jest jednocześnie autorem artykułu. Sam produkt nosił nazwę Retentioneering; obecnie został przekształcony w bibliotekę typu open source i opublikowany na Githubie, aby każdy mógł z niego korzystać. Wszystko to może zainteresować osoby zajmujące się analizą produktów i marketingiem, promocją i rozwojem produktów. Swoją drogą, na Habré ukazał się już artykuł o jednym z przypadków współpracy z Retentioneering. Nowy materiał wyjaśnia, co potrafi produkt i jak można go wykorzystać.

Po przeczytaniu artykułu sam będziesz mógł napisać swój własny Retentioneering; może to być dowolna ustandaryzowana metoda przetwarzania trajektorii użytkowników w aplikacji i poza nią, pozwalająca szczegółowo zobaczyć charakterystykę zachowań i wydobyć z niej spostrzeżenia dla rozwoju wskaźników biznesowych.

Co to jest retencja i dlaczego jest potrzebna?

Naszym pierwotnym celem było przeniesienie Growth Hackingu ze świata „cyfrowej magii” do świata liczb, analityki i prognoz. W konsekwencji analityka produktu sprowadza się do czystej matematyki i programowania dla tych, którzy wolą liczby od fantastycznych historii, a formuły od modnych haseł typu „rebranding”, „repozycjonowanie” itp., które ładnie brzmią, ale w praktyce niewiele pomagają.

Aby rozwiązać te problemy, potrzebowaliśmy frameworku do analityki za pomocą wykresów i trajektorii, a jednocześnie biblioteki upraszczającej typowe procedury analityczne, jako sposób na opisanie zwykłych zadań związanych z analityką produktu, który byłby zrozumiały zarówno dla ludzi, jak i robotów. Biblioteka umożliwia opisanie zachowań użytkowników i powiązanie ich z metrykami biznesowymi produktów w na tyle formalnym i przejrzystym języku, że upraszcza i automatyzuje rutynowe zadania programistów i analityków oraz ułatwia ich komunikację z biznesem.

Retencjarowanie to metoda i narzędzia analityczne, które można dostosować i zintegrować z dowolnym produktem cyfrowym (i nie tylko).

Pracę nad produktem rozpoczęliśmy w 2015 roku. Teraz jest to gotowy, choć jeszcze nie idealny, zestaw narzędzi w Pythonie i Pandach do pracy z danymi, modele uczenia maszynowego z API typu sklearn, narzędzia do interpretacji wyników modeli uczenia maszynowego eli5 i shap.

Wszystko jest już zakończone do wygodnej biblioteki open source w otwartym repozytorium Github - narzędzia do przechowywania. Korzystanie z biblioteki nie jest trudne, prawie każdy, kto kocha analitykę produktów, ale wcześniej nie pisał kodu, może zastosować nasze metody analityczne do swoich danych samodzielnie i bez znacznych inwestycji czasowych.

Cóż, programista, twórca aplikacji lub członek zespołu programistów lub testerów, który nigdy wcześniej nie zajmował się analityką, może zacząć bawić się tym kodem i zobaczyć wzorce użycia swojej aplikacji bez pomocy z zewnątrz.

Trajektoria użytkownika jako podstawowy element analizy i metody jej przetwarzania

Trajektoria użytkownika to sekwencja stanów użytkownika w określonych punktach czasowych. Co więcej, zdarzenia mogą pochodzić z różnych źródeł danych, zarówno online, jak i offline. Zdarzenia, które przytrafiają się użytkownikowi, są częścią jego trajektorii. Przykłady:
• nacisnął przycisk
• widziałem zdjęcie
• uderz w ekran
• otrzymałem e-mail
• polecił produkt znajomemu
• wypełnił formularz
• dotknął ekranu
• przewinięty
• poszedł do kasy
• zamówił burrito
• zjadłem burrito
• został otruty po zjedzeniu burrito
• wszedł do kawiarni tylnym wejściem
• wejście od frontowego wejścia
• zminimalizowano aplikację
• otrzymał powiadomienie push
• utknął na ekranie dłużej niż X
• opłacił zamówienie
• zakupiono zamówienie
• odmówiono mu pożyczki

Jeśli weźmiesz dane dotyczące trajektorii grupy użytkowników i przestudiujesz strukturę przejść, możesz dokładnie prześledzić strukturę ich zachowania w aplikacji. Wygodnie jest to zrobić za pomocą wykresu, w którym stany są węzłami, a przejścia między stanami są krawędziami:

Retencjarowanie: jak napisaliśmy narzędzia open source do analizy produktów w Pythonie i Pandach

„Trajektoria” to bardzo wygodna koncepcja – zawiera szczegółowe informacje o wszystkich działaniach użytkownika, z możliwością dodania dowolnych dodatkowych danych do opisu tych akcji. Dzięki temu jest to obiekt uniwersalny. Jeśli masz piękne i wygodne narzędzia, które pozwalają pracować z trajektoriami, możesz znaleźć podobieństwa i je posegmentować.

Segmentacja trajektorii może początkowo wydawać się bardzo skomplikowana. W normalnej sytuacji tak właśnie jest - trzeba zastosować porównanie macierzy łączności lub dopasowanie sekwencji. Udało nam się znaleźć prostszy sposób — zbadać dużą liczbę trajektorii i posegmentować je poprzez grupowanie.

Jak się okazało, możliwe jest przekształcenie trajektorii w punkt za pomocą reprezentacji ciągłych, na przykład TF-IDF. Po przekształceniu trajektoria staje się punktem w przestrzeni, w którym wzdłuż osi wykreśla się znormalizowane występowanie różnych zdarzeń i przejść między nimi na trajektorii. Tę rzecz z ogromnej przestrzeni tysiąca lub większej wymiarowej (dimS=sum(typy zdarzeń)+sum(ngrams_2 typy)) można rzutować na płaszczyznę za pomocą TSNE. TSNE jest transformacją, która redukuje wymiar przestrzeni do 2 osi i, jeśli to możliwe, zachowuje względne odległości między punktami. W związku z tym na płaskiej mapie, graficznej mapie projekcji trajektorii, możliwe staje się zbadanie, w jaki sposób punkty różnych trajektorii były rozmieszczone między sobą. Analizuje, jak blisko siebie byli lub jak różnili się od siebie, czy tworzyli skupiska, czy byli rozproszeni po mapie itp.:

Retencjarowanie: jak napisaliśmy narzędzia open source do analizy produktów w Pythonie i Pandach

Narzędzia do analizy retencji zapewniają możliwość przekształcenia złożonych danych i trajektorii w widok, który można ze sobą porównać, a następnie zbadać i zinterpretować wynik transformacji.

Mówiąc o standardowych metodach przetwarzania trajektorii mamy na myśli trzy główne narzędzia, które wdrożyliśmy w Retentioneering – wykresy, macierze kroków i mapy projekcji trajektorii.

Praca z Google Analytics, Firebase i podobnymi systemami analitycznymi jest dość złożona i nie w 100% skuteczna. Problemem jest szereg ograniczeń dla użytkownika, w efekcie których praca analityka w takich systemach opiera się na kliknięciach myszką i zaznaczaniu wycinków. Retencjonowanie umożliwia pracę z trajektoriami użytkowników, a nie tylko ze ścieżkami, jak w Google Analytics, gdzie poziom szczegółowości często sprowadza się do ścieżki, choć zbudowanej dla określonego segmentu.

Zatrzymanie i sprawy

Jako przykład wykorzystania opracowanego narzędzia można przytoczyć przypadek dużej usługi niszowej w Rosji. Ta firma posiada aplikację mobilną na Androida, która cieszy się popularnością wśród klientów. Roczne obroty z aplikacji mobilnej wyniosły ok. 7 mln rubli, wahania sezonowe wahały się w granicach 60-130 tys. Ta sama firma posiada także aplikację na iOS, a średni rachunek użytkownika aplikacji Apple był wyższy od przeciętnego rachunku klient korzystający z aplikacji na Androida – 1080 rub. w porównaniu do 1300 rubli.

Firma zdecydowała się na zwiększenie wydajności aplikacji na Androida, pod kątem której przeprowadziła wnikliwą analizę. Powstało kilkadziesiąt hipotez dotyczących zwiększenia efektywności aplikacji. Po zastosowaniu Retentionneering okazało się, że problem tkwił w wiadomościach, które wyświetlały się nowym użytkownikom. Otrzymali informacje o marce, zaletach firmy i cenach. Jak się jednak okazało, komunikaty miały pomóc użytkownikowi nauczyć się pracy w aplikacji.

Retencjarowanie: jak napisaliśmy narzędzia open source do analizy produktów w Pythonie i Pandach

Dokonano tego, w efekcie czego aplikacja stała się mniej odinstalowana, a wzrost konwersji na zamówienie wyniósł 23%. Początkowo badaniu poddano 20 proc. ruchu przychodzącego, jednak po kilku dniach, po przeanalizowaniu pierwszych wyników i ocenie trendu, odwrócono proporcje i przeciwnie, pozostawiono 20 proc. grupie kontrolnej, a osiemdziesiąt procent zostało objętych testem. Tydzień później zdecydowano o sekwencyjnym dodaniu testowania dwóch kolejnych hipotez. W ciągu zaledwie siedmiu tygodni obroty z aplikacji na Androida wzrosły półtorakrotnie w porównaniu do poprzedniego poziomu.

Jak pracować z Retencją?

Pierwsze kroki są dość proste — pobierz bibliotekę za pomocą polecenia pip install retencji. Samo repozytorium zawiera gotowe przykłady i przypadki przetwarzania danych dla niektórych zadań analityki produktowej. Zestaw jest stale aktualizowany, aż wystarczy na pierwszą znajomość. Każdy może wziąć gotowe moduły i od razu zastosować je do swoich zadań – dzięki temu może od razu uruchomić proces bardziej szczegółowej analizy i optymalizacji trajektorii użytkowników, tak szybko i sprawnie, jak to możliwe. Wszystko to sprawia, że ​​możliwe jest odnalezienie wzorców użytkowania aplikacji poprzez przejrzysty kod i podzielenie się tym doświadczeniem ze współpracownikami.

Utrzymanie to narzędzie, z którego warto korzystać przez cały okres istnienia aplikacji, a oto dlaczego:

  • Utrzymanie jest skuteczne w śledzeniu i ciągłej optymalizacji trajektorii użytkowników oraz poprawie wyników biznesowych. Dlatego do aplikacji e-commerce często dodawane są nowe funkcje, których wpływ na produkt nie zawsze można poprawnie przewidzieć. W niektórych przypadkach pojawiają się problemy ze zgodnością między nowymi i starymi funkcjami - na przykład nowe „kanibalizują” istniejące. W tej sytuacji właśnie potrzebna jest ciągła analiza trajektorii.
  • Podobnie sytuacja wygląda w przypadku pracy z kanałami reklamowymi: stale testowane są nowe źródła ruchu i kreacje reklamowe, konieczne jest monitorowanie sezonowości, trendów i wpływu innych wydarzeń, co prowadzi do pojawiania się coraz to nowych klas problemów. Wymaga to również stałego monitorowania i interpretacji mechaniki użytkownika.
  • Istnieje wiele czynników, które stale wpływają na wydajność aplikacji. Na przykład nowe wydania od programistów: zamykając bieżący problem, niechcący zwracają stary lub tworzą zupełnie nowy. Z biegiem czasu liczba nowości rośnie, a proces śledzenia błędów wymaga automatyzacji, m.in. poprzez analizę trajektorii użytkowników.

Ogólnie rzecz biorąc, retencja jest skutecznym narzędziem. Ale perfekcja nie ma granic – można i należy ją udoskonalać, rozwijać i budować na jej bazie nowe, fajne produkty. Im bardziej aktywna będzie społeczność projektu, tym więcej będzie forków i pojawią się nowe ciekawe możliwości ich wykorzystania.

Więcej informacji na temat narzędzi do retencji:

Źródło: www.habr.com

Dodaj komentarz