Retentioneering: як мы open-source інструменты для прадуктовай аналітыкі на Python і Pandas напісалі

Прывітанне, Хабр. Гэты артыкул прысвечаны вынікам чатырохгадовай распрацоўкі набору метадаў і інструментаў апрацоўкі траекторый руху карыстальнікаў у дадатку або на сайце. Аўтар распрацоўкі - Максім Годзі, які стаіць на чале каманды стваральнікаў прадукта, ён жа - аўтар артыкула. Сам прадукт атрымаў назву Retentioneering, зараз ён пераўтвораны ў open-source бібліятэку і размешчаны на Github, каб любы ахвочы мог ім скарыстацца. Усё гэта можа быць цікава тым, хто злучаны з прадуктовым і маркетынгавым аналізам, пасоўваннем і развіццём прадукта. Дарэчы, на Хабры ужо публікаваўся артыкул аб адным з кейсаў працы з Retentioneering. У новым матэрыяле расказваецца аб тым, на што здольны прадукт і як яго можна выкарыстоўваць.

Прачытаўшы артыкул, вы самі зможаце напісаць свой Retentioneering, ім можа стаць любы стандартызаваны метад апрацоўкі траекторый карыстальнікаў у дадатку і за яго межамі, які дазваляе дазваляе ўбачыць дэталёва асаблівасці паводзін і выняць з гэтага інсайты для росту бізнес-метрык.

Што такое Retentioneering і навошта гэта патрэбна?

Першапачаткова нашай мэтай было перавесці Growth Hacking са свету «лічбавага знахарства» у свет лічбаў, аналітыкі і прагнозаў. Як следства - звядзенне прадуктовай аналітыкі да чыстай матэматыкі і праграмаванні для тых, хто замест фантастычных гісторый аддае перавагу лічбы, а формулы - разумным слоўцам накшталт "рэбрэндынг", "рэпазіцыянаванне" і да т.п., якія прыгожа гучаць, але на практыцы дапамагаюць мала.

Для рашэння паказаных задач спатрэбіўся фрэймворк для аналітыкі праз графы і траекторыі, і адначасова з гэтым бібліятэка, якая спрашчае тыповыя руціны аналітыка, як спосаб апісання рэгулярных задач прадуктовай аналітыкі, які быў бы зразумелы як людзям, так і робатам. Бібліятэка дае магчымасць апісваць паводзіны карыстальнікаў і звязваць яго з бізнес-метрыкамі прадукта на такой фармальнай і яснай мове, каб спрасціць і аўтаматызаваць руцінныя задачы распрацоўшчыкаў і аналітыкаў, і аблегчыць іх камунікацыю з бізнесам.

Retentioneering – метад і аналітычныя праграмныя прылады, якія можна адаптаваць і інтэграваць у любы лічбавы (і не толькі) прадукт.

Мы пачалі працу над прадуктам у 2015 годзе. Цяпер гэта ўжо гатовы, хаця пакуль што і не ідэальны набор інструментаў на Python і Pandas для працы з дадзенымі, мадэлі машыннага навучання з sklearn-like api, інструменты інтэрпрэтацыі вынікаў мадэляў машыннага навучання eli5 і shap.

Усё гэта загорнута у зручную open-source бібліятэку ў адкрытым рэпазітары Github — retentioneering-tools. Выкарыстоўваць бібліятэку нескладана, практычна любы чалавек, які любіць прадуктовую аналітыку, але не пісаў раней код, можа прымяніць нашы метады аналітыкі да сваіх даных самастойна і без значных затрат часу.

Ну а праграміст, стваральнік прыкладання або член каманды распрацоўкі або тэсціравання, які ніколі перш не займаўся аналітыкай, можа пачаць гуляць з гэтым кодам і ўбачыць патэрны выкарыстання свайго прыкладання без старонняй дапамогі.

Траекторыя карыстальніка як базавы элемент аналізу і метады яе апрацоўкі

Траекторыя карыстальніка - паслядоўнасць станаў карыстальніка ў пэўных часовых кропках. Прычым падзеі могуць быць з розных крыніц дадзеных, як у анлайне, так і афлайне. Падзеі, якія здарыліся з карыстальнікам - частка яго траекторыі. Прыклады:
• націснуў на кнопку
• убачыў карцінку
• патрапіў на экран
• атрымаў мэйл
• параіў прадукт аднаму
• запоўніў форму
• тупнуў экран
• праскраліў
• падышоў да касы
• замовіў бурыта
• з'еў бурыта
• атруціўся з'едзеным бурыта
• зайшоў у кафэ з чорнага ўваходу
• зайшоў з параднага ўваходу
• згарнуў дадатак
• атрымаў пуш апавяшчэнне
• тупіў у экране даўжэй часу Х
• аплаціў заказ
• выкупіў замову
• атрымаў адмову ў крэдыце

Калі ўзяць дадзеныя траекторый групы карыстачоў і вывучыць, як уладкованыя пераходы, можна прасачыць, як менавіта будуюцца іх паводзіны ў дадатку. Гэта зручна зрабіць праз граф, у якім станы - вузлы, а пераходы паміж станамі - рэбры:

Retentioneering: як мы open-source інструменты для прадуктовай аналітыкі на Python і Pandas напісалі

«Траекторыя» вельмі зручнае паняцце - яна змяшчае дэталёвую інфармацыю аб усіх дзеяннях карыстальніка, з магчымасцю дадання любых дадатковых дадзеных у апісанне гэтых дзеянняў. Гэта робіць яе ўніверсальным аб'ектам. Калі ў вас ёсць прыгожыя і зручныя прылады, якія дазваляюць працаваць з траекторыямі, то можна знаходзіць падабенствы, сегментаваць іх.

Сегментацыя траекторый спачатку можа здацца нечым вельмі складаным. У звычайнай сітуацыі так і ёсць - трэба выкарыстоўваць параўнанне матрыц складнасці або выраўноўванне паслядоўнасцяў. Нам удалося знайсці больш просты спосаб - вывучаць вялікую колькасць траекторый і сегментаваць іх праз кластарызацыю.

Як аказалася, можна ператвараць траекторыю ў кропку з дапамогай бесперапынных уяўленняў, напрыклад, TF-IDF. Пасля пераўтварэння траекторыя становіцца кропкай у прасторы, дзе па восях адкладзена нармаваная встречаемость у траекторыі розных падзей і пераходаў паміж імі. Гэтую штуку з велізарнай тысячы- і больш мернай прасторы (dimS=sum(event types)+sum(ngrams_2 types)), можна спраецыраваць на плоскасць з дапамогай TSNE. TSNE - пераўтварэнне, зніжае памернасць прасторы да 2 восяў і па магчымасці захоўвае адносныя адлегласці паміж кропкамі. Адпаведна, становіцца магчымым на плоскай карце, вобразнай праекцыйнай карце траекторый, вывучаць як размяшчаліся паміж сабой кропкі розных траекторый. Аналізуецца, наколькі яны былі блізкія ці розныя паміж сабой, ці ўтваралі кластары або рассейваліся па карце і г.д.:

Retentioneering: як мы open-source інструменты для прадуктовай аналітыкі на Python і Pandas напісалі

Аналітычныя прылады Retentioneering даюць магчымасць ператварыць масіў складаных дадзеных і траекторый ва ўяўленне, якое можна параўнаць паміж сабой, а затым даследаваць і інтэрпрэтаваць вынік пераўтварэнні.

Кажучы пра стандартныя метады апрацоўкі траекторыі, маюцца на ўвазе тры асноўныя прылады, якія мы рэалізавалі ў Retentioneering - графы, step матрыцы і карты праекцый траекторый.

Праца з Google Analytics, Firebase і падобнымі сістэмамі аналітыкі дастаткова складаная і не на 100% эфектыўная. Праблема ў шэрагу абмежаванняў для карыстальніка, у выніку чаго праца аналітыка ўпіраецца ў такіх сістэмах у зграі мышкай і выбар зрэзаў. Retentioneering дае магчымасць працаваць з траекторыямі карыстальнікаў, а не толькі з варонкамі, як у Google Analytics, дзе ўзровень дэталізацыі часта зводзіцца да варонкі, няхай і пабудаванай для нейкага сегмента.

Retentioneering і кейсы

У якасці прыкладу выкарыстання распрацаванай прылады можна прывесці кейс буйнага нішавага сэрвісу ў Расіі. У гэтай кампаніі ёсць мабільнае прыкладанне для Android, якое карыстаецца папулярнасцю ў кліентаў. Штогадовы абарот з мабільнага прыкладання складаў каля 7 млн ​​руб., Сезонныя флуктуацыі ў рамках 60-130 тыс. У гэтай жа кампаніі ёсць і дадатак для iOS, і сярэдні чэк карыстальніка «яблычнага» прыкладання быў вышэй сярэдняга чэка кліента, які выкарыстоўвае Android-дадатак. 1080 руб. супраць 1300 руб.

Кампанія вырашыла павялічыць эфектыўнасць Android-прыкладанні, для чаго правяла яго дбайны аналіз. Было сфарміравана некалькі дзясяткаў гіпотэз аб павелічэнні рэзультатыўнасці прыкладання. Пасля выкарыстання Retentionneering аказалася, што праблема – у паведамленнях, якія дэманстраваліся новым карыстальнікам. Яны атрымлівалі інфармацыю аб брэндзе, перавагах кампаніі і коштах. Але, як аказалася, паведамленні павінны былі дапамагчы карыстачу навучыцца працаваць у дадатку.

Retentioneering: як мы open-source інструменты для прадуктовай аналітыкі на Python і Pandas напісалі

Гэта і было зроблена, у выніку чаго прыкладанне сталі менш выдаляць, а рост канверсіі ў замову склаў 23%. Спачатку на тэст аддалі 20 адсоткаў уваходнага трафіку, але праз некалькі дзён, прааналізаваўшы першыя вынікі і ацаніўшы трэнд - люстрана памянялі прапорцыі і, наадварот, пакінулі 20 адсоткаў для кантрольнай групы, а восемдзесят змясцілі ў тэст. Яшчэ праз тыдзень было прынята рашэнне паслядоўна дадаць тэставанне яшчэ дзвюх гіпотэз. Усяго праз сем тыдняў абарот з Android-прыкладанні павялічыўся ў паўтара разы адносна мінулага ўзроўню.

Як працаваць з Retentioneering?

Першыя крокі дастаткова простыя – загружаем бібліятэку камандай pip install retentioneering. У самім рэпазітары ляжаць гатовыя прыклады і кейсы апрацоўкі дадзеных для некаторых задач прадуктовай аналітыкі. Набор увесь час папаўняецца, пакуль яго дастаткова для першага знаёмства. Кожны можа ўзяць гатовыя модулі і адначасова прымяніць да сваіх задач - гэта дазваляе адразу наладзіць працэс больш дэталёвага аналізу і аптымізацыі карыстацкіх траекторый максімальна хутка і эфектыўна. Усё гэта дае магчымасць знаходзіць патэрны выкарыстання прыкладання праз зразумелы код і перадаваць гэты досвед калегам.

Retentioneering - інструмент, які варта выкарыстоўваць на працягу ўсяго тэрміну жыцця прыкладання, і вось чаму:

  • Retentioneering эфектыўны для адсочвання і бесперапыннай аптымізацыі карыстацкіх траекторый і паляпшэння бізнес-паказчыкаў. Так, у ecommerce прыкладанні часта дадаюцца новыя функцыі, уплыў якіх на прадукт не заўсёды можна прадказаць правільна. У некаторых выпадках узнікаюць праблемы сумяшчальнасці новых і старых функцый - напрыклад, новыя "канібалізуюць" ужо існуючыя. І ў гэтай сітуацыі якраз і патрэбен пастаянны аналіз траекторый.
  • Аналагічная сітуацыя і ў працы з рэкламнымі каналамі: увесь час тэстуюцца новыя крыніцы трафіку і рэкламныя крэатывы, неабходна адсочваць сезоннасць, трэнды і ўплыў іншых падзей, што прыводзіць да з'яўлення ўсё новых класаў праблем. Тут таксама патрабуецца сталае адсочванне і інтэрпрэтацыя карыстацкіх механік.
  • Ёсць цэлы шэраг фактараў, якія ўвесь час уплываюць на працу прыкладання. Напрыклад, новыя рэлізы ад распрацоўшчыкаў: закрываючы актуальную праблему, яны мімаволі вяртаюць старую або ствараюць зусім новую. З часам колькасць новых рэлізаў расце, і працэс адсочвання памылак неабходна аўтаматызаваць - у тым ліку, з дапамогай аналізу траекторый карыстальнікаў.

У цэлым, Retentioneering - эфектыўны інструмент. Але мяжы дасканаласці няма - яе можна і трэба паляпшаць, развіваць, будаваць на яго аснове новыя класныя прадукты. Чым больш актыўна будзе кам'юніці праекта, тым больш будзе форкаў, з'явяцца новыя цікавыя варыянты яго выкарыстання.

Дадатковая інфармацыя аб інструментах Retentioneering:

Крыніца: habr.com

Дадаць каментар