Ieteikumu sistēmu novērtēšana: savam uzņēmumam labākās izvēles izvēle

Kopā ar bezgalīgo e-komercijas un tiešsaistes plašsaziņas līdzekļu izvēršanu pēdējos gados, šodien kļūst arvien vairāk programmatūras - kā pakalpojums (SaaS) ieteikumu sistēmu (RS). Atšķirībā no pirms 5 gadiem, kad RS izmantošana bija lielu uzņēmumu privilēģija, veidojot paši savus RS, iztērējot milzīgu budžetu datu zinātnieku komandai, šodien SaaS risinājumu popularitāte ļauj atļauties izmantot ieteikumus pat maziem un vidējiem uzņēmumiem lieluma uzņēmumi. Jautājums, ar kuru šādu uzņēmumu CTO ir saskārušies, meklējot pareizo SaaS RS, ir šāds: kurš risinājums ir labākais? Kuru risinājumu jums vajadzētu izvēlēties, ja jums joprojām nav RS vai arī jūs neesat apmierināts ar pašreizējo RS?

Šajā rakstā es apskatīšu divas pieejas:

  • Izvērtēšana bezsaistē akadēmiskajā vidē (plus Netflix balva), zemu prognozēšanas kļūdu meklēšana (RMSE / MAE) un augsts atsaukšanas / kataloga pārklājums. TLDR; vienkārši zināt, ka šie pasākumi pastāv, un jūs, iespējams, nevēlaties tos izmantot. Bet es joprojām sniedzu īsu to kopsavilkumu gadījumā, ja jūs interesē.
  • Tiešsaistes novērtēšana biznesa pasaulē, augstu klientu mūža vērtību (CLV) meklēšana, A / B pārbaude, CTR, CR, ROI un QA. Jums vajadzētu izlasīt šo sadaļu, ja nopietni apsverat ieteikumus, kas veicina jūsu biznesu.

Pasaule bezsaistē = Kā to dara akadēmiķi?

RS gadu desmitiem ilgi tiek pētīti akadēmiskajā pētniecībā. Ir daudz pētījumu, kas ievieš dažādus algoritmus, un, lai algoritmi būtu salīdzināmi, tie izmanto akadēmiskos pasākumus. Mēs šos pasākumus saucam par bezsaistes pasākumiem. Jūs neko neveicat ražošanā, jūs vienkārši spēlējaties ar smilšu kastē esošajiem algoritmiem un precīzi noregulējat tos atbilstoši šiem pasākumiem. Es personīgi esmu daudz pētījis šos pasākumus, taču no mana šodienas viedokļa tie ir diezgan aizvēsturiski. Bet pat 2006. gada viduslaikā slavenajā Netflix balvā tika izmantots tīri akadēmisks pasākums ar nosaukumu RMSE (saknes vidējā kvadrāta kļūda).

Lai tikai īsi izskaidrotu, kā tā darbojas, tiek pieņemts, ka jūsu lietotāji skaidri novērtē jūsu produktus ar zvaigznīšu skaitu (1 = izteikti nepatīk, 5 = spēcīgi patīk), un jums ir virkne šādu vērtējumu (ieraksti, kas norāda, ka lietotājs novērtēja vienumu X ar Y zvaigznēm) no pagātnes. Tiek izmantots paņēmiens, ko sauc par dalītu validāciju: jūs ņemat tikai šo vērtējumu apakškopu, teiksim, 80% (sauktu par vilciena komplektu), izveidojat uz tām RS un pēc tam palūdziet RS prognozēt vērtējumus par 20%, ko esat ieguvis. slēpts (testa komplekts). Un tā var gadīties, ka testa lietotājs kādu priekšmetu novērtēja ar 4 zvaigznēm, bet jūsu modelis prognozē 3,5, līdz ar to tam ir 0,5 kļūda šajā vērtējumā, un tieši no tā nāk RMSE. Tad jūs vienkārši aprēķināt kļūdas vidējo vērtību no visa testa komplekta, izmantojot formulu, un iegūstat gala rezultātu 0,71623. BINGO! Tas ir, cik labi (vai precīzāk sakot, slikti) ir jūsu RS. Varat arī izmantot citu formulu un iegūt MAE (vidējo absolūto kļūdu), kas tik ļoti nesoda milzīgas kļūdas (patiesas 4 zvaigznes, prognozētā 1 zvaigzne), tāpēc jūs varētu iegūt tikai 0,6134.

Viens niecīgs trūkums ir tas, ka reālajā pasaulē šādu datu gandrīz nav vai vismaz to ir par maz.

Lietotāji ir pārāk slinki, un viņi neko nenovērtē. Viņi vienkārši atver tīmekļa lapu un, ja viņiem patīk tas, ko viņi redz, viņi, iespējams, to nopirks / patērēs; ja tas iesūcas, viņi aiziet tik ātri, kā atnāca. Un tātad tīmekļa servera žurnālā vai pirkumu datu bāzē ir tikai tā sauktie netiešie vērtējumi, un jūs nevarat izmērīt zvaigžņu skaita kļūdu tajos vienkārši tāpēc, ka nav zvaigžņu. Jums ir tikai +1 = lietotājs ir apskatījis kādu detaļu vai iegādājies produktu, un parasti nekas cits. Dažreiz tos sauc par vienveidīgiem vērtējumiem, kurus jūs zināt no Facebook pogas Patīk: vērtējums ir vai nu pozitīvs, vai nezināms (lietotājs, iespējams, nezina, ka saturs pastāv).

Šādiem datiem jūs joprojām varat izmantot sadalīto validāciju, pat lai bezsaistē salīdzinātu SaaS ieteikumus. Pieņemsim, ka, piemēram, izmantojot savu pirkumu datu bāzi, RS iesniedzat 80% lietotāju vēsturi un tad katram testa lietotājam iesniedzat tikai dažus pirkumus un lūdzat RS paredzēt pārējo. Iespējams, esat paslēpis 4 iegādātās preces un lūdzat RS 10 preces. Atkarībā no tā, cik slēptās 4 parādījās ieteicamajā 10. Var iegūt šim lietotājam precizitāti 0%, 25%, 50%, 75% vai 100% ar precizitāti. Un šo precizitāti sauc par atsaukšanu. Jūs to varat vidēji novērtēt visā testa komplektā un TADAAA! Rezultāts ir 31,4159%, tas ir, cik labs ir jūsu RS.

Tagad godīgi, kaut arī atsaukšana ir daudz saudzīgāka nekā RMSE, tā joprojām rada daudz sāpju. Pieņemsim, ka testa lietotājs noskatījās 20 vienas un tās pašas TV sērijas epizodes, un jūs mēra par viņas atsaukšanu. Tātad jūs slēpjat 18. – 20. Sēriju un lūdzat RS paredzēt tās no 1. līdz 17. posmam. Tas ir diezgan viegls uzdevums, jo epizodes ir cieši saistītas, tāpēc jūs 100% atceraties. Tagad jūsu lietotājs atklāja kaut ko jaunu? Vai jūs vispār vēlaties viņai ieteikt šādu saturu? Un kas jums jebkurā gadījumā sniedz visaugstāko biznesa vērtību? Sakiet interneta veikalā, vai vēlaties ieteikt alternatīvas vai aksesuārus? Jums vajadzētu justies, ka ar atsaukšanu esat nonācis uz ļoti plāna ledus.

Un vēl vienu noslēpumu es jums sacīšu: dažos gadījumos (ne vienmēr tas ir atkarīgs no jūsu biznesa!) Tā ir godīga stratēģija, lai ieteiktu tikai visā pasaulē populārākos priekšmetus (t.sk. bestsellerus), lai panāktu saprātīgu atsaukšanu. Tātad šeit nāk katalogs. Vai vēlaties, lai lietotāji turpina atklāt jaunu un jaunu saturu, lai paliktu uzticīgi? Tad jūs varētu vēlēties ieteikt pēc iespējas vairāk dažādu vienumu. Vienkāršākajā gadījumā, lai aprēķinātu kataloga pārklājumu, vienkārši paņemiet savus testa lietotājus, pajautājiet ieteikumus katram no viņiem un salieciet visus ieteiktos vienumus. Jūs iegūstat lielu dažādu priekšmetu komplektu. Sadaliet šī komplekta lielumu ar kopējo priekšmetu skaitu visā katalogā, un jūs iegūsit… 42,125%! Tā ir daļa no tā, ko RS var kādreiz ieteikt.

Tagad apsveriet bestsellera modeli. Tam varētu būt diezgan labs atsaukums, bet gandrīz nulles pārklājums (5 konstantes vienības?). Un ņem izlases ieteikumu. Tam ir gandrīz nulles atsaukšana un 100% pārklājums. Varētu just, ka vēlaties kādu kompromisu.

Iepriekš minētais attēls nāk no mana (tagad ļoti novecojušā) oriģinālā pētījuma. Plaknē Recall-Coverage var redzēt aptuveni 1000 dažādus RS modeļus. Geeky, vai ne? :) Jums varētu justies reibonis, izvēloties labāko, bet es ceru, ka jums liekas, ka dažu izvēle no labās augšējās malas (“Pareto-optimālā fronte”) varētu būt laba izvēle.

Lai padarītu bezsaistes aprēķinu vēl drošāku, dalītās validācijas vietā varat izmantot šķērsvalidāciju (Xval). Vienkārši sadaliet savus lietotājus 10 reizes un dodieties uz cilpu: modeļa izveidošanai vienmēr ņemiet 9 reizes, bet validācijai izmantojiet atlikušo 1 reizes. Vidējie rezultāti šajos 10 braucienos.

Tagad jūs varētu teikt: Kā ir ar manu biznesu? Varētu būt labi izmērīt atsaukšanu un pārklājumu, bet kā tie ir saistīti ar maniem KPI?

Un tev taisnība. Lai liktu SaaS RS uz X ass un $$$ uz Y ass, mums jāatstāj bezsaistes pasaule un jāiet ražošanā!

Tiešsaistes pasaule: sekojiet viedo CTO piemēriem

Iepriekš minētā sadaļa bija par RS kvalitātes mērīšanu, pirms tā sāk darboties, tagad ir laiks runāt par biznesa KPI.

Kaut arī bezsaistes novērtēšanā mēs parasti izmantojam dalīto validāciju, tiešsaistes novērtēšanā A / B pārbaude (vai daudzdimensiju pārbaude) ir mūsdienās visredzamākā pieeja. Jūs varat integrēt dažus dažādus RS, sadalīt savus lietotājus grupās un likt RS cīnīties. Nedaudz dārgi, jo tas patērē jūsu izstrādes resursus, tāpēc kā vienu no saviem pasākumiem varat izmantot aprēķinātās integrācijas grūtības un turpmākās pielāgošanas / pielāgošanas izmaksas, kas a-priori varētu samazināt kandidātu skaitu.

Tagad pieņemsim, ka esat gatavs integrācijai un varat sadalīt savus tiešsaistes lietotājus A / B testa grupās. Jūs varat vai nu izmantot savu UID sīkdatņu sajaukšanu, vai arī izmantot kādu rīku (piemēram, VWO, Optimizely vai pat GAs, lai gan pēdējā iespēja ir nedaudz sāpīga). Lai veiktu eksperimentu, jūsu vietnē / lietojumprogrammā ir jānosaka viena laba vieta, kur pārbaudīt ieteikumus, jo jūs tiešām nevēlaties visu izmēģinājuma posmu sākumā pilnībā integrēt visas RS kandidātes, vai ne? Ja satiksme ir maza, ņemiet vērā, ka izvēlētajai vietai jābūt pietiekami redzamai, lai apkopotu nozīmīgus rezultātus. Pretējā gadījumā, ja jums ir milzīga satiksme, jūs varat izvēlēties konservatīvu stratēģiju, piemēram, lai testēšanā atbrīvotu tikai 20% no jūsu trafika, saglabājot sevi un pārējos 80% lietotājus drošībā, ja kāds no kandidātiem RS jābūt pilnīgi salauztam un iesakām nepāra lietas.

Pieņemsim, ka visa lieta darbojas un darbojas. Ko izmērīt? Vienkāršākie pasākumi ir ieteikumu vidējais klikšķu skaits (CTR) un reklāmguvumu līmenis (CR).

Parādīts N ieteikumu kopums 20 reizes, no kura reizes 3 reizes lietotājs noklikšķināja uz vismaz vienas no ieteiktajām vienībām? Tad jūsu VKS ir 15%. Noklikšķināšana ir patīkami, taču tas, iespējams, noveda lietotāju uz detaļu lapu, un jūs varētu vēlēties uzzināt, kas notika tālāk. Vai lietotājam saturs tiešām šķita interesants? Vai viņa noskatījās visu video, klausījās visu dziesmu, izlasīja visu rakstu, atbildēja uz darba piedāvājumu, ielika produktu grozā un faktiski to pasūtīja? Tas ir reklāmguvumu līmenis = ieteikumu skaits, kas priecēja gan jūs, gan jūsu lietotāju.

Piemērs: reklamējiet KPI konsoli

CTR un CR var sniegt labu ieteikuma veiktspējas novērtējumu, taču jums vajadzētu būt uzmanīgam un turpināt domāt par savu produktu. Iespējams, ka jūs vadāt ziņu portālu, ievietojot jaunākās ziņas mājas lapā. Iespējams, ka tas nedod jums visaugstāko iespējamo VKS, bet tas saglabā kvalitāti un sajūtu, kāda jums un lietotājiem ir par jūsu pakalpojumu. Tagad jūs varat ievietot RS tur, un tas varētu sākt parādīt dažādu saturu, piemēram, dzeltenus žurnālistikas rakstus vai smieklīgus rakstus par “ļoti ātriem suņiem, kas skrien ar neticamu hihga ātrumu”. Tas var palielināt jūsu tūlītējo VKS par 5 reizes, bet tas sabojās jūsu tēlu un jūs ilgtermiņā varat zaudēt savus lietotājus.

Šeit nāk RS empīriskais vērtējums. Vienkārši sāciet jaunu sesiju ar tukšiem sīkfailiem, simulējiet lietotāja izturēšanos un pārbaudiet, vai ieteikumi ir saprātīgi. Ja jums ir QA komanda, nogādājiet viņus darbā! Empīriskais novērtējums ir vienlaikus sarežģīts un vienkāršs. Tas ir sarežģīti, jo tas nerada ciparus, kurus jūs varētu uzrādīt uz izstrādājuma tāfeles. Bet tas ir arī viegli, jo, pateicoties savai cilvēciskajai intuīcijai, jūs vienkārši atpazīsit, kuri ieteikumi ir labi un kuri slikti. Ja izvēlaties savādi strādājošu ieteikumu, jūs nākotnē nonākat daudz nepatikšanas, pat ja CTR / CR šobrīd ir augsta.

Bet, protams, papildus kvalitātei jums vajadzētu rūpēties arī par ieguldījumu atdevi (ROI).

Vienkārši izsakoties, jūs varētu būt noteicis, ka A / B testēšanas locījums Nr. 1 noved pie X% reklāmguvumu līmeņa pieauguma salīdzinājumā ar sākotnējo fold # 0 (jūsu pašreizējais risinājums), ka jūsu rezerve bija Y USD par vidēji veiksmīgi ieteiktu preci, un ka tā sasniegšanai bija nepieciešami Z ieteikumu pieprasījumi. Veiciet matemātiku, projicējiet izdevumus / ienākumus gadījumā, ja 100% no jūsu trafika pieliekat doto RS, integrējoties arī citās jūsu vietnes / lietotnes sadaļās.

Viens brīdinājums par IA aprēķināšanu: Tas ir ļoti izplūdis un atkarīgs no liela skaita nezināmo: vai CR būs vienāds citās vietnēs manā vietnē / lietotnē? (Vienkārša atbilde = nē, tā nebūs, dažādām vietām ir atšķirīgs VKS / CR). Kā mainīsies CR, ja ieliks ieteikumus vairāk vai mazāk pievilcīgā stāvoklī? (Vienkārša atbilde = daudz). Kā CR attīstīsies laika gaitā? Vai lietotāji iemācīsies izmantot ieteikumu un uzticēties tam, vai CR atteiksies?

Tas noved pie galīgā, taču vissarežģītākā pasākuma: klienta mūža vērtības (CLV). Jūs meklējat situāciju, kurā abpusēji izdevīgi. Jūs vēlaties, lai lietotājiem patīk jūsu pakalpojums, viņi jūtas ērti, laimīgi un vēlas atgriezties. Cieši kopā ar to jūs vēlaties, lai RS uzlabotu UX, palīdzētu lietotājiem atrast interesantu saturu / produktus, kas viņiem patīk. Kā sasniegt augstu CLV, izmantojot RS?

Nu, šeit nav vienkāršu padomu. Jums jāmeklē jauki ieteikumi ar augstu empīrisko kvalitāti un pietiekami pozitīvu IA. Pēc manas pieredzes ieteikumu precizitāte parasti atbilst biznesa vērtībai, neļaus jums tikt ievietotiem pēc jūsu QA komandas / izpilddirektora sūdzībām. Un, ja jūs novērojat, ka biznesa situācija ir pozitīva, jūs esat atradis to, ko meklējāt :)

Secinājums

Es esmu mēģinājis aptvert svarīgākos RS novērtēšanas aspektus. Jūs, iespējams, redzējāt, ka tas nav viegls uzdevums, un ir daudz kas jāapsver, taču es ceru, ka vismaz deva jums dažus norādījumus, kā atrast ceļu apkārtnē. Jūs varat pārbaudīt RS bezsaistē pat pirms sākt ražošanu, vai arī veikt ražošanas A / B testēšanu, izmantojot CTR / CR un ROI aprēķinus. Vienmēr iekļaujiet QA, jo tikai VKS / CR / IA var būt maldinoši un negarantē saderību ar jūsu produkta redzējumu.

Daudz kas tika izlaists tikai tāpēc, lai teksts būtu galīgi garš. Papildus CTR / CR / ROI / ieteikumu kvalitātei jums vajadzētu arī ātri apskatīt apsvērtās RS vispārējās iespējas. Jūs nākotnē varētu vēlēties iekļaut ieteikumus e-pasta kampaņās. Vai tas darbosies? Vai tam ir iespējas pagriezt ieteikumus tā, lai konkrētais lietotājs katrā e-pastā nesaņemtu tādu pašu ieteikumu kopu? Vai jūs varat apkalpot visas jūsu biznesa prasības, vai varat ietekmēt ieteikumus, uzlabot kāda veida saturu, filtrēt to, pamatojoties uz dažādiem kritērijiem? Šīs ir tēmas, kas nav apskatītas, taču var šķist, ka vēlaties tās apsvērt arī.

Autors ir sarežģītā SaaS ieteikumu meklētājprogrammas recombee līdzdibinātājs.