Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Tere kĂ”igile! Minu nimi on Sasha, olen CTO ja kaasasutaja ettevĂ”ttes LoyaltyLab. Kaks aastat tagasi, nagu kĂ”ik vaesed tudengid, kĂ€isin Ă”htuti koos sĂ”pradega lĂ€himas kaupluses Ă”lut ostmas. Meid hĂ€iris vĂ€ga, et jaemĂŒĂŒja, teades, et me tuleme Ă”lle jĂ€rele, ei paku chipside vĂ”i kreekerite allahindlust, kuigi see oleks ju nii loogiline! Me ei saanud aru, miks see nii on, ja otsustasime asutada oma ettevĂ”tte. Ja boonusena kirjutada endale reedeti allahindlusi just nendele samadele chipsidele.

Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Asi on jÔudnud sinnamaani, et olen tehnilise osa materjaliga esinemas NVIDIA GTC. Meil on hea meel jagada oma teadmisi kogukonnaga, seega avaldan oma ettekande artikli vormis.

Sissejuhatus

Nagu kĂ”ik alguses, alustasime ĂŒlevaatest, kuidas soovitussĂŒsteemid on tehtud. Ja kĂ”ige populaarsem osutus jĂ€rgmise tĂŒĂŒbi arhitektuur:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

See koosneb kahest osast:

  1. Soovituste kandidaatide proovivÔtt lihtsa ja kiire mudeliga, tavaliselt koostöömudeli pÔhjal.
  2. Kandidaatide jÀrjestamine keerukama ja aeglasema sisumudeliga, arvestades kÔiki vÔimalikke tunnuseid andmetes.

Siin ja edaspidi kasutan jÀrgmisi termineid:

  • candidate/kandidaat soovituste jaoks — user-product paar, mis vĂ”ib potentsiaalselt saada soovituseks tootes.
  • candidates extraction/extractor/kandidaatide vĂ€ljavĂ”tmise meetod — protsess vĂ”i meetod, mis vĂ€ljavĂ”tab "soovituste kandidaate" olemasolevate andmete pĂ”hjal.

Esimesel sammul kasutatakse tavaliselt erinevaid koostööl pĂ”hineva filtreerimise variatsioone. KĂ”ige populaarsem on ALS. Üllatav, et enamik artikleid soovitussĂŒsteemide kohta paljastab ainult erinevaid koostöö mudelite tĂ€iustusi esimeses etapis, kuid teistest proovimise meetoditest ei rÀÀgita eriti. Meie jaoks ei töötanud ainult koostöömudelite kasutamine ning erinevad optimeerimised nendega oodatud kvaliteedi saavutamiseks, seega sukeldusime just selle osa uuringutesse. Artikli lĂ”pus nĂ€itan, kui palju suutsime ALS-i, mis oli meie baasjooneks, parendada.

Enne kui ma rÀÀgin meie lÀhenemisest, on oluline mÀrkida, et reaalajas soovituste puhul, kus on oluline arvestada andmeid, mis on toimunud 30 minuti jooksul, ei ole tÔeliselt palju lÀhenemisi, mis töötaksid vajaliku aja jooksul. Kuid meie puhul tuleb soovitusi koostada mitte sagedamini kui kord pÀevas ja enamikul juhtudel kord nÀdalas, mis annab meile vÔimaluse kasutada keerukaid mudeleid ja oluliselt parandada kvaliteeti.

VĂ”tame aluseks, milliseid nĂ€itajaid nĂ€itab ainult ALS kandidaatide hankimise ĂŒlesandel. Olulised nĂ€itajad, mida jĂ€lgime, on jĂ€rgmised:

  • Precision — Ă”igesti valitud kandidaatide osakaal valimist.
  • Recall — toimunud kandidaatide osakaal nendest, kes olid tegelikult sihtrĂŒhmas.
  • F1-score — F-mÔÔde, mis arvutatakse eelmiste kahe punkti pĂ”hjal.

Samuti vaatame lÔppmudeli nÀitajaid pÀrast gradientide tÔukeÔppe koolitust koos tÀiendavate sisuliste tunnustega. Siin on samuti kolm peamist nÀitajat:

  • precision@5 — keskmine tĂ”enĂ€osustipud tooteid top-5 hulgas iga ostja jaoks.
  • response-rate@5 — ostjate konversioon kaupluse kĂŒlastusest vĂ€hemalt ĂŒhe isikliku pakkumise ostmisele (ĂŒhes pakkumises on 5 toodet).
  • avg roc-auc per user — keskmine roc-auc iga ostja kohta.

Oluline on mĂ€rkida, et kĂ”ik nimetatud nĂ€itajad mÔÔdetakse ajareiheline ristvalideerimine, see tĂ€hendab, et koolitus toimub esimesel k nĂ€dalal ja testandmed vĂ”etakse k+1 nĂ€dal. Seega kajastavad hooajalised tĂ”usud/kadumised minimaalselt mudelite kvaliteedi tĂ”lgendust. Edasi on kĂ”ikidel graafikutel horisontaaltelg nĂ€dala number ristvalideerimisel ja vertikaaltelg — nimetatud nĂ€itaja vÀÀrtus. KĂ”ik graafikud on koostatud ĂŒhe kliendi tehinguandmete pĂ”hjal, et vĂ”rguandmete vĂ”rdlemine oleks korrektne.

Enne kui alustan meie lÀhenemise kirjeldamist, vaatame esmalt aluseks olevat mudelit, mis koosneb koolitatud ALS mudelist.
Kandidaatide hankimise nÀitajad:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

LÔplikud nÀitajad:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Ma suhtun kĂ”ikidesse algoritmide rakendustesse kui teatud Ă€rihypoteesi. Nii et vĂ€ga ĂŒldiselt vĂ”ib iga koostöömudelit vaadelda hĂŒpoteesina, et "inimesed kalduvad ostma seda, mida ostavad neile sarnased inimesed". Nagu ma juba ĂŒtlesin, ei piirdunud me vaid sellise semantikaga ja siin on mĂ”ned teised hĂŒpoteesid, mis töötavad andmete pĂ”hjal offline jaemĂŒĂŒgis:

  1. Mida on varem ostetud.
  2. Sarnane sellele, mida on varem ostetud.
  3. Ajast, mil ost tehti.
  4. Populaarne kategooriate/brÀndide kaupa.
  5. Eri kaupade korduvad ostud nÀdalast nÀdalasse (Markovi ahelad).
  6. Sarnased tooted ostjate, omaduste pÔhjal, mis on koostatud erinevate mudelite (Word2Vec, DSSM jne) abil.

Mida on varem ostetud

Ilmselt kĂ”ige mĂ€nguheuristika, mis töötab vĂ€ga hĂ€sti toidupoe jaemĂŒĂŒgis. Siin vĂ”tame kĂ”ik tooted, mida lojaalsuskaardi omanik on ostnud viimase K pĂ€eva jooksul (tavaliselt 1-3 nĂ€dalat), vĂ”i K pĂ€eva jooksul aasta tagasi. Rakendades vaid sellist meetodit, saame jĂ€rgmised mÔÔdikud:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Siin on tÀiesti ilmne, et mida pikema perioodi me vÔtame, seda suurem on meie tagasiside ja vÀiksem tÀpsus ja vastupidi. Parimad tulemused keskmiselt klientide puhul annavad "viimased 2 nÀdalat".

Sarnane sellele, mida on varem ostetud

Ei ole ĂŒllatav, et toidupoe jaemĂŒĂŒgis töötab "mida on varem ostetud" hĂ€sti, kuid kandidaatide vĂ€ljavĂ”tmine vaid sellest, mida kasutaja on juba ostnud, ei ole eriti lahe, kuna uue tootega kliendi ĂŒllatamine on peaaegu vĂ”imatu. SeetĂ”ttu pakume, et tĂ€iustame seda heuristikat koostöömudelite abil. ALS-i treeningu kĂ€igus saadud vektorite pĂ”hjal saame vĂ€lja tĂ”mmata sarnased tooted sellele, mida kasutaja on juba ostnud. See idee sarnaneb vĂ€ga "sarnaste videote" teenustega videokontentide vaatamise platvormidel, kuid kuna me ei tea, mida kasutaja sel hetkel sööb/ostab, peame otsima sarnaseid tooteid vaid sellele, mida ta juba ostnud on, eriti kuna me juba teame, kui hĂ€sti see töötab. Rakendades sellist meetodit kasutajate tehingutele viimase 2 nĂ€dala jooksul, saame jĂ€rgmised mÔÔdikud:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Siin k — sarnaste kaupade arv, mis tuvastatakse iga ostetud toote kohta ostja poolt viimase 14 pĂ€eva jooksul.
See lÀhenemine on meil eriti hÀsti töötanud kliendile, kelle jaoks oli ÀÀrmiselt oluline mitte soovitada seda, mis oli juba kasutaja ostuajaloos.

Möödunud ostu aeg

Nagu me juba oleme kindlaks teinud, selle tĂ”ttu, et tooteid ostetakse vĂ€ga sageli, töötab esimene lĂ€henemine meie spetsiifikas hĂ€sti. Aga kuidas olla toodetega nagu pesupulber/ĆĄampoon/jne? KĂ”ige enam selliste toodetega, mida ei vajata iganĂ€dalaselt vĂ”i igakuiste vahedega ja mida varasemad meetodid ei suuda tuvastada. Siit tuleneb jĂ€rgmine idee — soovitatakse arvutada iga toote keskmine ostuperiood klientide seas, kes on toodet ostnud rohkem kui k kord. Edasi tuleb tuvastada, mis tĂ”enĂ€oliselt on kliendi puhul juba otsa lĂ”ppenud. Arvutatud perioode saab visuaalselt kontrollida mĂ”istlikkuse osas:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Edasi vaatame, kas toote perioodi lÔpp langeb kokku ajavahemikuga, mil soovitused on tootmises, ja valime need, mis sobivad. Seda lÀhenemist saab illustreerida jÀrgmiselt:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Siin on meil kaks peamist juhtumit, mida kaaluda:

  1. Kas on vaja soovitada tooteid klientidele, kes on toodet ostnud vÀhem kui K korda.
  2. Kas on vaja soovitada toodet, kui selle perioodi lÔpp langeb enne sihtvahemiku algust.

JĂ€rgneval graafikul on nĂ€ha, milliseid tulemusi saavutab selline meetod erinevate hĂŒperparameetritega:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
ft — VĂ”tame arvesse ainult kliente, kes on toodet ostnud vĂ€hemalt K (siin K=5) korda
tm — VĂ”tame arvesse ainult kandidaate, kes langevad sihtvahemikku

Pole ĂŒllatav, et sellises seisundis (0, 0) on kĂ”ige suurem recall ja kĂ”ige vĂ€iksem precision, kuna selliste tingimuste korral tĂ”stetakse kĂ”ige rohkem kandidaate. Siiski, parimaid tulemusi saavutatakse olukorras, kus me ei soovita tooteid klientidele, kes on konkreetset toodet ostnud vĂ€hem kui k korda ja lisame ka tooteid, mille perioodi lĂ”pp langeb enne sihtvahemikku.

Populaarne kategooria jÀrgi

Veel ĂŒks ĂŒsna ilmselge idee — soovitada populaarseid tooteid erinevate kategooriate vĂ”i brĂ€ndide kaupa. Siin arvutame iga kliendi jaoks top-k Meie "lemmik" kategooriad/mĂ€rgid ning eraldame "populaarse" selle kategooria/mĂ€rgi alt. Meie puhul mÀÀrame "lemmikud" ja "populaarsed" toodete ostude arvu alusel. Selle lĂ€henemise tĂ€iendav eelis on, et see kehtib kĂŒlma kĂ€ivitamise puhul. See tĂ€hendab, et ostjate jaoks, kes on teinud kas vĂ€ga vĂ€heseid oste, vĂ”i pole pikka aega poes kĂ€inud, vĂ”i on nad alles loonud lojaalsuskaardi. Nende jaoks on palju lihtsam ja parem soovitada tooteid, mis on populaarne ostjate seas, kellel on olemasolev ajalugu. Saame jĂ€rgmised mÔÔdikud:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
Siin sĂ”na "category" jĂ€rel olev number nĂ€itab kategooria sĂŒgavust.

Üldiselt ei ole ĂŒllatav, et paremaid tulemusi saavutavad kitsamad kategooriad, kuna need toovad ostjatele vĂ€lja tĂ€psemad "lemmik" tooted.

Erinevate toodete korduvad ostud nÀdalast nÀdalasse

Huvitav lĂ€henemine, mida ma pole nĂ€inud soovitus sĂŒsteemide artiklites — ĂŒsna lihtne, kuid samas töötav statistiline meetod Markovi ahelatelt. Siin vĂ”tame 2 erinevat nĂ€dalat, seejĂ€rel tuletame iga ostja kohta tootepaarid. [ostetud nĂ€dalal i]-[ostetud nĂ€dalal j], kus j > i, ja sealt arvutame iga toote tĂ”enĂ€osuse ĂŒleminekuks teisele tootele jĂ€rgmisel nĂ€dalal. See tĂ€hendab, et iga paari kaupade puhul producti-productj arvutame nende arvu leitud paarides ja jagame selle paaride arvuga, kus producti oli esimesel nĂ€dalal. Kandidaatide vĂ€ljatĂ”mbamiseks vĂ”tame viimase ostu ja leiame top-k kĂ”ige tĂ”enĂ€olisemad jĂ€rgmised tooted ĂŒleminekude matriist, mille me saime. Üleminekute matriisi koostamise protsess nĂ€eb vĂ€lja jĂ€rgmiselt:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Reaalsetest nĂ€idetest ĂŒleminekute tĂ”enĂ€osuste matriisis nĂ€eme jĂ€rgmisi huvitavaid nĂ€htusi:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
Siit vĂ”ib mĂ€rkida huvitavaid seoseid, mis avalduvad tarbija kĂ€itumises: nĂ€iteks tsitrusviljade armastajad vĂ”i piima marki, millelt tĂ”enĂ€oliselt ĂŒleminekut tehakse. Samuti pole ĂŒllatav, et tooted, mille korduvad ostud on kĂ”rge, nagu vĂ”i, ilmuvad ka siin.

Markovi ahelate meetodi mÔÔdikud on jÀrgmised:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
k — tooteid, mis pakutakse iga ostetud toote kohta kliendi viimases tehingus.
Kuidas me nĂ€eme, nĂ€itab parim tulemus konfiguratsioon k=4. Neljanda nĂ€dala tĂ”usu saab selgitada hooajalise kĂ€itumisega pĂŒhade ajal. 

Sarnased tooted ostjatele, nende omaduste jÀrgi, mis on loodud erinevate mudelite poolt

NĂŒĂŒd oleme jĂ”udnud kĂ”ige keerulisema ja huvitavama osa juurde — lĂ€himate naabrute otsimine ostjate ja erinevate mudelite pĂ”hjal loodud toodete vektorite jĂ€rgi. Oma töös kasutame selliseid mudeleid 3:

  • ALS
  • Word2Vec (Item2Vec selliste ĂŒlesannete jaoks)
  • DSSM

ALS-i oleme juba kÀsitlenud, vÔimalik on lugeda, kuidas see treenitakse siin. Word2Vec puhul kasutame kÔigile tuntud mudeli teostust gensim. Sarnaselt tekstidele mÀÀratleme tehingu ostu tƥekiks. Nii et toote vektori koostamisel Ôpib mudel prognoosima toote "konteksti" tƥekis (teised tooted tƥekis). E-kaubanduse andmete puhul on parem kasutada tƥeki asemel ostja sessiooni, sellest on hÀsti kirjutanud poisid Ozon. DSSM-i uurimine on huvitavam. Esmalt kirjutasid selle poisid Microsoftist, kui mudeli otsimiseks, siit saab lugeda originaal teadusartiklit. Mudeli arhitektuur nÀeb vÀlja selline:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Siin Q — pĂ€ring, kasutaja otsingupĂ€ring, D[i] — dokument, veebileht. Mudelisse sisenevad pĂ€ringu ja lehekĂŒlgede tunnused vastavalt. Iga sissepÀÀsukiht jĂ€rgneb teatud arv tĂ€isĂŒhendatud kihte (multilayer perceptron). Edasi Ă”pib mudel minimeerima kosinusnurka viidatud vektorite vahel, mis saadud mudeli viimastest kihtidest.
Soovituste ĂŒlesannetes kasutatakse tĂ€pselt sama arhitektuuri, ainult et pĂ€ringu asemel kasutatakse kasutajat ja lehtede asemel — tooteid. Ja meie juhtumi puhul muudetakse see arhitektuur jĂ€rgmiseks:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

NĂŒĂŒd on tulemuste kontrollimiseks jÀÀnud katta viimane hetk — kui ALS ja DSSM puhul on kasutajate vektorid selgelt mÀÀratletud, siis Word2Vec puhul on meil ainult tootevektorid. Siin kasutame kasutajate vektori koostamiseks 3 peamist lĂ€henemist:

  1. Lihtsalt liita vektorid, siis kosinuslikul kaugusel tuleb, et oleme lihtsalt keskmistatud tooteid ostuajaloos.
  2. Vektorite summutamine mingi ajakalu jÀrgi.
  3. Kaubanduse kaalu mÀÀramine TF-IDF teguriga.

Ainult lineaarse kaalumise puhul lĂ€htume hĂŒpoteesist, et toode, mille kasutaja ostis eile, mĂ”jutab tema kĂ€itumist rohkem kui toode, mille ta ostis kuus kuud tagasi. Seega hindame eelmist nĂ€dalat ostjate jaoks koefitsiendiga 1 ja seda, mis toimus edasi, koefitsiendiga œ, ⅓ jne:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

TF-IDF koefitsientide puhul teeme tĂ€pselt sama, mis TF-IDF puhul tekstides, ainult et kĂ€sitleme ostjat kui dokumenti ja tĆĄekki kui pakkumist, seega sĂ”na — toode. Nii liigub kasutaja vektor rohkem haruldaste toodete suunas, samas kui sagedased ja kasutajale tuttavad tooted ei muuda seda eriti. Selle lĂ€henemise illustreerimiseks vĂ”ime öelda jĂ€rgmist:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Vaadakem nĂŒĂŒd metrikaid. Sellised on ALS tulemused:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
Item2Veci metrikad erinevate ostja vektori loomise variatsioonidega:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
Antud juhul kasutatakse tÀpselt sama mudelit, mis meie baasjuhistes. Erinevus seisneb ainult selles, millist k-d me kasutame. Kuni 50-70 lÀhimat toodet iga ostja kohta tuleb kasutada vaid koostööalusel mudelil.

Ja metrikad DSSM-i jaoks:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Kuidas kÔiki meetodeid kombineerida?

See on suurepĂ€rane, ĂŒtlete teie, aga kuidas kasutada sellist suurt tööriistade komplekti kandidaatide hankimiseks? Kuidas leida oma andmete jaoks optimaalse konfiguratsiooni? Siin tekivad meil mitmed ĂŒlesanded:

  1. Peame piirama hĂŒperparameetrite otsinguruumi igas meetodis. Sellega on muidugi igal pool diskreetne, kuid vĂ”imalike punktide arv on vĂ€ga suur.
  2. Kuidas valida vĂ€ikese piiratud valimi pĂ”hjal konkreetsetest meetoditest ja konkreetsetest hĂŒperparameetritest oma metrikale parim konfiguratsioon?

Ühtegi ĂŒheselt Ă”iget vastust esimesele kĂŒsimusele me praegu ei leidnud, seetĂ”ttu lĂ€htume jĂ€rgnevast: iga meetodi jaoks on kirjutatud hĂŒperparameetrite otsinguruumi piiraja, olenevalt mĂ”nedest statistikast, mis meil andmete kohta on. Nii teades keskmist aega ostude vahel inimestel, saame oletada, millise perioodiga kasutada meetodit „mida on juba ostetud“ ja „aegunud ostu periood“.

Ja pĂ€rast seda, kui oleme lĂ€bi vaadanud mĂ”istliku arvu erinevaid meetodite variatsioone, mĂ€rkame jĂ€rgmist: iga rakendus toob vĂ€lja teatud arvu kandidaate ja sellel on teatud vÀÀrtus meie jaoks olulisel mÔÔdikul (recall). Me tahame kokku saada teatud arvu kandidaate, mis sĂ”ltub meie lubatud arvutusvĂ”imsusest, maksimaalselt vĂ”imaliku mÔÔdikuga. Siin on ĂŒlesanne kenasti kokku tĂ”mmatud seljakoti ĂŒlesandeks.
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Siin on kandidaatide arv - ingli kaal, ja meetodi recall - selle vÀÀrtus. Kuid on veel 2 momenti, mida tasub arvesse vÔtta algoritmi rakendamisel:

  • Meetoditel vĂ”ib olla kattuvust kandidaatides, mida nad vĂ€lja toovad.
  • MĂ”nel juhul on lubatud vĂ”tta ĂŒks meetod kaks korda erinevate parameetritega ja kandidaatide vĂ€ljund esimesest ei ole teise alamhulk.

NĂ€iteks, kui vĂ”tta meetodi rakendamine "see, mida juba ostetud" erinevate vahemikega vĂ€ljavĂ”tmiseks, siis nende kandidaatide kogud on ĂŒksteisesse sisse pandud. Samas, erinevad parameetrid "perioodilistes ostudes" ei anna vĂ€ljundis tĂ€ielikku kattuvust. SeetĂ”ttu jagame proovide meetodid erinevate parameetritega plokkideks, nii et igast blokist tahame vĂ”tta mitte rohkem kui ĂŒhe vĂ€ljavĂ”tmisviisi konkreetsete hĂŒperparameetritega. Selleks tuleb natuke nutikalt lĂ€heneda seljakoti ĂŒlesande rakendamisele, kuid aega ning tulemust see ei muuda.

Selline nutikas kombinatsioon vÔimaldab meil vÔrrelda jÀrgmisi mÔÔdikuid lihtsalt koostöömudelitega:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
LÔplikel mÔÔdikutel nÀeme jÀrgmist pilti:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

Kuid siin vĂ”ib mĂ€rgata, et on jÀÀnud ĂŒks katmata hetk soovitustes, mis on Ă€ritegevusele kasulikud. Praegu oleme lihtsalt Ă”ppinud suurepĂ€raselt ennustama, mida kasutaja ostab nĂ€iteks jĂ€rgmisel nĂ€dalal. Kuid lihtsalt anda allahindlust sellele, mida ta niikuinii ostab, ei ole vĂ€ga lahe. Kuid on Ă€ge maksimeerida matemaatilist ootust nĂ€iteks jĂ€rgmiste mÔÔdikute osas:

  1. Kasum/kaubavahetus isiklike soovituste pÔhjal.
  2. Ostjate keskmine ostusumma.
  3. KĂŒlastuste sagedus.

Nii me korrutame saadud tĂ”enĂ€osused erinevate koefitsientidega ja jĂ€rjestame need nii, et tippu pÀÀsevad tooted, mis mĂ”jutavad kĂ”rgemaid mÔÔdikuid. Siin pole ĂŒhtset lahendust, millist lĂ€henemist paremini kasutada. Isegi meie katsetame selliste koefitsientidega otse tootmises. Kuid siin on mĂ”ned huvitavad meetodid, mis annavad meil sageli parimaid tulemusi:

  1. Korrutada toote hinna/marginaaliga.
  2. Korrutada keskmise arvega, kus toode esineb. Nii tÔusevad esile tooted, millega tavaliselt ostetakse veel midagi.
  3. Korrutada selle toote keskmise kĂŒlastussagedusega, lĂ€htudes hĂŒpoteesist, et see toode kutsub sagedamini tagasi tulema.

Katsed koefitsientidega on andnud meile jÀrgmised mÔÔdikud tootmises:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis
Siin toodete kogusummade konversioon — ostetud toodete osakaal kĂ”igist soovitatud toodetest, mille oleme genereerinud.

TĂ€pne lugeja mĂ€rgib olulise erinevuse offline ja online mÔÔdikute vahel. Selline kĂ€itumine on seletatav sellega, et mitte kĂ”ik dĂŒnaamilised filtrid toodete osas, mida saab soovitada, ei ole mudeli koolitamisel arvesse vĂ”etavad. Meie jaoks on normaalne, et pool ekstrakteeritud kandidaatidest saab filtreeritud, see on meie valdkonnas iseloomulik eripĂ€ra.

Tulu osas nÀeb lugu vÀlja jÀrgmine, on nÀha, et soovituste kasutuselevÔtuga tÔuseb testgrupi tulu mÀrgatavalt, praegu on meie soovitustega keskmine tulu suurenemine 3-4%:
Kuidas me mitmekordselt parandasime soovituste kvaliteeti offline jaemĂŒĂŒgis

KokkuvÔtteks tahan öelda, et kui teil pole reaalajas soovitusi vaja, siis on vÀga suur kvaliteedikogus eksperimentide tegemisel soovituste kandidaatide ekstraktsioonis. Suur hulk aega nende genereerimiseks vÔimaldab kombineerida palju hÀid meetodeid, mis kokku annavad suurepÀraseid tulemusi Àri jaoks.

Olen rÔÔmuga avatud aruteludeks kommentaarides kĂ”igiga, kes peavad materjali huvitavaks. KĂŒsimusi saab esitada mulle isiklikult telegram. Samuti joonistan oma mĂ”tteid AI/algatuste kohta oma telegrami kanalis — teretulemast 🙂

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster