Cadw: sut y gwnaethom ysgrifennu offer dadansoddi cynnyrch ffynhonnell agored yn Python a Pandas

Hei Habr. Mae'r erthygl hon wedi'i neilltuo i ganlyniadau datblygiad pedair blynedd o set o ddulliau ac offer ar gyfer prosesu taflwybrau symudiad defnyddwyr mewn cymhwysiad neu ar wefan. Awdur y datblygiad - Maxim Godzi, sydd ar ben y tîm o grewyr cynnyrch, ef hefyd yw awdur yr erthygl. Enw'r cynnyrch ei hun oedd Cadw, ac erbyn hyn mae wedi'i drawsnewid yn llyfrgell ffynhonnell agored a'i gynnal ar Github fel y gall unrhyw un ei ddefnyddio. Gall hyn i gyd fod o ddiddordeb i'r rhai sy'n ymwneud â dadansoddi cynnyrch a marchnata, hyrwyddo a datblygu cynnyrch. Gyda llaw, ar Habré mae erthygl eisoes wedi'i chyhoeddi am un o'r achosion o weithio gyda Chadw. Mae'r deunydd newydd yn egluro beth mae'r cynnyrch yn gallu ei wneud a sut y gellir ei ddefnyddio.

Ar ôl darllen yr erthygl, byddwch yn gallu ysgrifennu eich Cadw eich hun, gall fod yn unrhyw ddull safonol ar gyfer prosesu taflwybrau defnyddwyr yn y cais a thu hwnt, sy'n eich galluogi i weld yn fanwl nodweddion ymddygiad a thynnu mewnwelediadau o hyn ar gyfer twf metrigau busnes.

Beth yw Cadw a pham mae ei angen?

I ddechrau, ein nod oedd symud Hacio Twf o fyd "dewiniaeth ddigidol" i fyd rhifau, dadansoddeg a rhagolygon. O ganlyniad, mae dadansoddeg cynnyrch yn cael ei leihau i fathemateg bur a rhaglennu ar gyfer y rhai y mae'n well ganddyn nhw niferoedd yn lle straeon gwych, a fformiwlâu i eiriau craff fel “ailfrandio”, “ail-leoli”, ac ati, sy'n swnio'n hyfryd, ond yn ymarferol nid ydyn nhw helpu llawer.

I ddatrys y problemau hyn, roedd arnom angen fframwaith ar gyfer dadansoddeg trwy graffiau a thaflwybrau, ac ar yr un pryd llyfrgell sy'n symleiddio arferion dadansoddwyr nodweddiadol, fel ffordd o ddisgrifio tasgau dadansoddi cynnyrch rheolaidd a fyddai'n ddealladwy i fodau dynol a robotiaid. Mae'r llyfrgell yn darparu'r gallu i ddisgrifio ymddygiad defnyddwyr a'i gysylltu â metrigau busnes cynnyrch mewn iaith mor ffurfiol a chlir i symleiddio ac awtomeiddio tasgau arferol datblygwyr a dadansoddwyr, a hwyluso eu cyfathrebu â'r busnes.

Mae cadw yn ddull ac offer meddalwedd dadansoddol y gellir eu haddasu a'u hintegreiddio i unrhyw gynnyrch digidol (ac nid yn unig).

Dechreuon ni weithio ar y cynnyrch yn 2015. Nawr mae'n set barod, er nad yw'n ddelfrydol eto, o offer ar gyfer gweithio gyda data yn Python a Pandas, modelau dysgu peirianyddol gydag ap tebyg i sklearn, offer ar gyfer dehongli canlyniadau eli5 a modelau dysgu peiriant shap.

Mae'r cyfan wedi'i lapio i lyfrgell ffynhonnell agored gyfleus yn ystorfa agored Github - offer cadw. Nid yw'n anodd defnyddio'r llyfrgell, gall bron unrhyw un sy'n caru dadansoddeg cynnyrch, ond nad yw wedi ysgrifennu cod o'r blaen, gymhwyso ein dulliau dadansoddeg i'w data ar eu pen eu hunain a heb dreulio llawer o amser.

Wel, gall rhaglennydd, crëwr cymwysiadau, neu aelod o dîm datblygu neu brawf nad yw erioed wedi gwneud dadansoddeg o'r blaen ddechrau chwarae gyda'r cod hwn a gweld patrymau wrth ddefnyddio eu cymhwysiad heb gymorth allanol.

Trywydd defnyddiwr fel elfen sylfaenol o ddadansoddi a dulliau ar gyfer ei brosesu

Dilyniant o gyflyrau defnyddwyr ar adegau penodol yw taflwybr defnyddiwr. Ar ben hynny, gall digwyddiadau ddod o wahanol ffynonellau data, ar-lein ac all-lein. Mae'r digwyddiadau a ddigwyddodd i'r defnyddiwr yn rhan o'i drywydd. Enghreifftiau:
• pwyso'r botwm
• gweld llun
• taro'r sgrin
• wedi derbyn e-bost
• argymell y cynnyrch i ffrind
• llenwi'r ffurflen
• tapio'r sgrin
• sgrolio
• mynd at y ddesg dalu
• archebu burrito
• bwyta burrito
• wedi'i wenwyno gan y burrito a fwytaodd
• mynd i mewn i'r caffi o'r fynedfa gefn
• mynd i mewn o'r brif fynedfa
• lleihau'r cais
• derbyn hysbysiad gwthio
• dwp yn y sgrin am amser hirach Х
• talu am yr archeb
• adbrynodd y gorchymyn
• gwrthodwyd benthyciad

Os cymerwch ddata taflwybr grŵp o ddefnyddwyr ac astudio sut mae'r trawsnewidiadau'n gweithio, gallwch weld yn union sut mae eu hymddygiad yn y rhaglen wedi'i adeiladu. Mae'n gyfleus gwneud hyn trwy graff lle mae'r cyflyrau yn nodau a'r trawsnewidiadau rhwng cyflyrau yn ymylon:

Cadw: sut y gwnaethom ysgrifennu offer dadansoddi cynnyrch ffynhonnell agored yn Python a Pandas

Mae "Taflwybr" yn gysyniad cyfleus iawn - mae'n cynnwys gwybodaeth fanwl am holl gamau gweithredu'r defnyddiwr, gyda'r gallu i ychwanegu unrhyw ddata ychwanegol at y disgrifiad o'r gweithredoedd hyn. Mae hyn yn ei wneud yn wrthrych generig. Os oes gennych offer hardd a chyfleus sy'n eich galluogi i weithio gyda llwybrau, yna gallwch ddod o hyd i debygrwydd a'u segmentu.

Gall segmentu taflwybr ymddangos yn gymhleth iawn ar y dechrau. Mewn sefyllfa arferol, mae hyn yn wir - mae angen i chi ddefnyddio cymhariaeth o fatricsau cysylltedd neu aliniad dilyniannau. Llwyddom i ddod o hyd i ffordd haws - i astudio nifer fawr o lwybrau a'u segmentu trwy glystyru.

Fel y digwyddodd, mae'n bosibl troi taflwybr yn bwynt gan ddefnyddio cynrychioliadau parhaus, er enghraifft, TF-IDF. Ar ôl y trawsnewid, mae'r taflwybr yn dod yn bwynt yn y gofod, lle mae'r digwyddiad normaleiddio yn nhaflwybr gwahanol ddigwyddiadau a thrawsnewidiadau rhyngddynt yn cael ei blotio ar hyd yr echelinau. Gellir taflu'r peth hwn o ofod mil a mwy dimensiwn enfawr (dimS = swm (mathau o ddigwyddiadau) + swm (ngrams_2 math)) ar awyren gan ddefnyddio TSNE. TSNE - trawsnewid, yn lleihau dimensiwn gofod i 2 echelin ac, os yn bosibl, yn cadw'r pellteroedd cymharol rhwng pwyntiau. Yn unol â hynny, mae'n dod yn bosibl ar fap gwastad, map tafluniad ffigurol o taflwybrau, i astudio sut y lleolwyd pwyntiau gwahanol taflwybrau ymhlith ei gilydd. Mae’n cael ei ddadansoddi pa mor agos neu wahanol oedden nhw i’w gilydd, boed nhw’n ffurfio clystyrau neu’n wasgaredig ar draws y map, ac ati:

Cadw: sut y gwnaethom ysgrifennu offer dadansoddi cynnyrch ffynhonnell agored yn Python a Pandas

Mae offer dadansoddol cadw yn darparu'r gallu i droi data a thaflwybrau cymhleth yn gynrychioliad y gellir ei gymharu â'i gilydd, ac yna archwilio a dehongli canlyniad y trawsnewid.

Wrth siarad am ddulliau prosesu taflwybr safonol, rydym yn golygu tri phrif offer yr ydym wedi'u rhoi ar waith yn Cadw - graffiau, matricsau cam a mapiau taflunio taflwybr.

Mae gweithio gyda Google Analytics, Firebase a systemau dadansoddi tebyg yn eithaf cymhleth ac nid yw 100% yn effeithlon. Y broblem yw nifer o gyfyngiadau i'r defnyddiwr, ac o ganlyniad mae gwaith y dadansoddwr mewn systemau o'r fath yn dibynnu ar gliciau llygoden a dewis tafelli. Mae cadw yn ei gwneud hi'n bosibl gweithio gyda thaflwybrau defnyddwyr, ac nid dim ond gyda sianeli, fel yn Google Analytics, lle mae lefel y manylder yn aml yn cael ei leihau i dwndis, er ei fod wedi'i adeiladu ar gyfer segment penodol.

Cadw cadw ac astudiaethau achos

Fel enghraifft o ddefnyddio'r offeryn datblygedig, gallwn ddyfynnu achos gwasanaeth arbenigol mawr yn Rwsia. Mae gan y cwmni hwn app symudol Android sy'n boblogaidd gyda chwsmeriaid. Roedd y trosiant blynyddol o'r cais symudol tua 7 miliwn rubles, roedd amrywiadau tymhorol o fewn 60-130 mil. Mae gan yr un cwmni hefyd gais ar gyfer iOS, ac roedd gwiriad cyfartalog defnyddiwr y cais "afal" yn uwch na'r cyfartaledd gwiriad y cleient gan ddefnyddio'r cymhwysiad Android - 1080 rub. yn erbyn 1300 rubles.

Penderfynodd y cwmni gynyddu effeithlonrwydd y cymhwysiad Android, a chynhaliodd ddadansoddiad trylwyr ar ei gyfer. Ffurfiwyd sawl dwsin o ddamcaniaethau i gynyddu effeithiolrwydd y cais. Ar ôl defnyddio Retentionneering, daeth i'r amlwg bod y broblem yn y negeseuon a ddangoswyd i ddefnyddwyr newydd. Cawsant wybodaeth am y brand, buddion y cwmni a phrisiau. Ond, fel y digwyddodd, roedd y negeseuon i fod i helpu'r defnyddiwr i ddysgu sut i weithio yn y rhaglen.

Cadw: sut y gwnaethom ysgrifennu offer dadansoddi cynnyrch ffynhonnell agored yn Python a Pandas

Gwnaethpwyd hyn, ac o ganlyniad dechreuodd y cais gael ei ddileu yn llai, a'r cynnydd yn y trosi i orchymyn oedd 23%. Ar y dechrau, rhoddwyd 20 y cant o draffig sy'n dod i mewn i'r prawf, ond ychydig ddyddiau'n ddiweddarach, ar ôl dadansoddi'r canlyniadau cyntaf a gwerthuso'r duedd, fe wnaethant wrthdroi'r cyfrannau ac, i'r gwrthwyneb, gadawodd 20 y cant ar gyfer y grŵp rheoli, a gosod wyth deg y cant yn y prawf. Wythnos yn ddiweddarach, penderfynwyd ychwanegu profion ar ddwy ddamcaniaeth arall yn olynol. Mewn dim ond saith wythnos, cynyddodd y trosiant o'r cymhwysiad Android un gwaith a hanner o'i gymharu â'r lefel flaenorol.

Sut i weithio gyda Chadw?

Mae'r camau cyntaf yn eithaf syml - rydym yn llwytho'r llyfrgell gyda'r gorchymyn cadw pip installeering. Mae'r ystorfa ei hun yn cynnwys enghreifftiau parod ac achosion prosesu data ar gyfer rhai tasgau dadansoddi cynnyrch. Mae'r set yn cael ei diweddaru'n gyson nes ei fod yn ddigon i'r adnabyddiaeth gyntaf. Gall pawb gymryd modiwlau parod a gwneud cais ar unwaith i'w tasgau - mae hyn yn caniatáu ichi sefydlu'r broses o ddadansoddi mwy manwl ac optimeiddio taflwybrau defnyddwyr ar unwaith mor gyflym ac effeithlon â phosibl. Mae hyn i gyd yn ei gwneud hi'n bosibl dod o hyd i batrymau defnyddio cymwysiadau trwy god dealladwy a rhannu'r profiad hwn gyda chydweithwyr.

Mae cadw yn arf sy'n werth ei ddefnyddio trwy gydol oes ap, a dyma pam:

  • Mae cadw yn effeithiol ar gyfer olrhain ac optimeiddio taflwybrau defnyddwyr yn barhaus a gwella perfformiad busnes. Felly, mae nodweddion newydd yn aml yn cael eu hychwanegu at gymwysiadau e-fasnach, ac ni ellir rhagweld eu heffaith ar y cynnyrch yn gywir bob amser. Mewn rhai achosion, mae yna faterion cydnawsedd rhwng nodweddion newydd a hen - er enghraifft, mae rhai newydd yn "canibaleiddio" y rhai presennol. Ac yn y sefyllfa hon, mae angen dadansoddiad cyson o lwybrau.
  • Mae'r sefyllfa'n debyg wrth weithio gyda sianeli hysbysebu: mae ffynonellau traffig newydd a chreadigwyr hysbysebu yn cael eu profi'n gyson, mae angen monitro tymhorol, tueddiadau ac effaith digwyddiadau eraill, sy'n arwain at ymddangosiad dosbarthiadau newydd o broblemau. Mae hefyd yn gofyn am fonitro a dehongli mecaneg defnyddwyr yn gyson.
  • Mae yna nifer o ffactorau sy'n effeithio'n gyson ar weithrediad y cais. Er enghraifft, datganiadau newydd gan ddatblygwyr: trwy gau problem wirioneddol, maent yn dychwelyd yr hen un yn ddiarwybod neu'n creu un hollol newydd. Dros amser, mae nifer y datganiadau newydd yn cynyddu, ac mae angen awtomeiddio'r broses o olrhain bygiau, gan gynnwys trwy ddadansoddi taflwybrau defnyddwyr.

Ar y cyfan, mae dargadw yn arf effeithiol. Ond nid oes terfyn ar berffeithrwydd - gellir a dylid ei wella, ei ddatblygu, ac adeiladu cynhyrchion cŵl newydd ar ei sail. Po fwyaf gweithgar yw cymuned y prosiect, po fwyaf o ffyrc a fydd, bydd opsiynau diddorol newydd ar gyfer ei ddefnyddio yn ymddangos.

Mwy o wybodaeth am offer cadw:

Ffynhonnell: hab.com

Ychwanegu sylw