Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Pozdravljeni vsi skupaj! Moje ime je Sasha, sem tehnični direktor in soustanovitelj pri LoyaltyLab. Pred dvema letoma smo se s prijatelji, kot vsi revni študenti, zvečer odpravili na pivo v najbližjo trgovino blizu hiše. Zelo nas je motilo, da trgovec, vedoč, da bomo prišli na pivo, ni ponudil popusta na čips ali krekerje, čeprav je to tako logično! Nismo razumeli, zakaj se to dogaja, in odločili smo se, da ustanovimo lastno podjetje. No, kot bonus si vsak petek napišite popuste za te iste žetone.

Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

In vse je prišlo do točke, ko govorim z materialom o tehnični plati izdelka NVIDIA GTC. Z veseljem delimo svoje delo s skupnostjo, zato svoje poročilo objavljam v obliki članka.

Predstavitev

Kot vsi na začetku poti smo tudi mi začeli s pregledom, kako so narejeni sistemi priporočil. In arhitektura naslednjega tipa se je izkazala za najbolj priljubljeno:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Sestavljen je iz dveh delov:

  1. Vzorčenje kandidatov za priporočila po preprostem in hitrem modelu, običajno sodelovalnem.
  2. Razvrščanje kandidatov po kompleksnejšem in počasnejšem vsebinskem modelu, ob upoštevanju vseh možnih značilnosti v podatkih.

Tukaj in spodaj bom uporabil naslednje izraze:

  • kandidat / kandidat za priporočila - par uporabnik-izdelek, ki lahko potencialno zaide v priporočila v proizvodnji.
  • ekstrakcija kandidatov/ekstraktor/metoda ekstrakcije kandidatov — postopek ali metoda za pridobivanje „kandidatov za priporočila“ iz razpoložljivih podatkov.

Na prvem koraku se običajno uporabijo različne različice sodelovalnega filtriranja. Najbolj popularen - ALS. Presenetljivo je, da večina člankov o priporočljivih sistemih razkrije le različne izboljšave modelov sodelovanja na prvi stopnji, nihče pa ne govori o drugih metodah vzorčenja. Pristop uporabe samo kolaborativnih modelov in raznih optimizacij z njimi se nam ni obnesel tako kakovostno, kot smo pričakovali, zato smo se v raziskavo zakopali prav na tem delu. In na koncu članka bom pokazal, koliko nam je uspelo izboljšati ALS, ki je bila naša izhodiščna vrednost.

Preden nadaljujem z opisom našega pristopa, je pomembno omeniti, da pri priporočilih v realnem času, ko je pomembno, da upoštevamo podatke, ki so se zgodili pred 30 minutami, res ni veliko pristopov, ki bi lahko delovali ob pravem času. Toda v našem primeru moramo zbirati priporočila največ enkrat na dan in v večini primerov - enkrat na teden, kar nam daje možnost uporabe kompleksnih modelov in pomnoževanja kakovosti.

Vzemimo za izhodišče, katere metrike prikazuje le ALS pri nalogi pridobivanja kandidatov. Ključne meritve, ki jih spremljamo, so:

  • Natančnost - delež pravilno izbranih kandidatov od vzorčenih.
  • Odpoklic - delež kandidatov, ki so se zgodili, od tistih, ki so bili dejansko v ciljnem intervalu.
  • F1-rezultat - F-rezultat izračunan na podlagi prejšnjih dveh točk.

Ogledali si bomo tudi meritve končnega modela po treningu povečanja gradienta z dodatnimi vsebinskimi funkcijami. Obstajajo tudi 3 glavne metrike:

  • precision@5 — povprečni odstotek zadetkov od prvih 5 po verjetnosti za vsako stranko.
  • response-rate@5 — konverzija kupcev iz obiska trgovine v nakup vsaj ene osebne ponudbe (ena ponudba vsebuje 5 izdelkov).
  • povprečno roc-auc na uporabnika - srednje roc-auc za vsakega kupca.

Pomembno je omeniti, da se vse te metrike merijo na navzkrižna validacija časovnih vrst, to pomeni, da usposabljanje poteka v prvih k tednih, k + 1 tednov pa se vzamejo kot testni podatki. Tako so imeli sezonski vzponi/padci minimalen vpliv na interpretacijo kakovosti modelov. Poleg tega bo na vseh grafikonih abscisna os označevala številko tedna pri navzkrižnem preverjanju, ordinatna os pa vrednost podane metrike. Vsi grafi temeljijo na transakcijskih podatkih ene stranke, tako da je primerjava med njimi korektna.

Preden začnemo z opisom našega pristopa, si najprej oglejmo izhodišče, ki je model, usposobljen za ALS.
Meritve pridobivanja kandidatov:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Končne meritve:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Vse implementacije algoritmov obravnavam kot neke poslovne hipoteze. Tako lahko zelo grobo vse modele sodelovanja obravnavamo kot hipotezo, da »ljudje kupujejo tisto, kar kupujejo ljudje, kot so oni«. Kot sem rekel, nismo se omejili na takšno semantiko in tukaj je nekaj hipotez, ki še vedno dobro delujejo na podatkih v maloprodaji brez povezave:

  1. Kaj si že kupil.
  2. Podobno, kot sem ga kupil prej.
  3. Obdobje davnega nakupa.
  4. Priljubljeno glede na kategorijo/znamko.
  5. Nadomestni nakupi različnih dobrin iz tedna v teden (markovske verige).
  6. Podobni izdelki za kupce, glede na značilnosti, ki jih gradijo različni modeli (Word2Vec, DSSM itd.).

Kaj si kupil prej

Najbolj očitna hevristika, ki zelo dobro deluje v maloprodaji živil. Tukaj vzamemo vse blago, ki ga je imetnik kartice zvestobe kupil v zadnjih K dneh (običajno 1-3 tedne) ali K dneh pred enim letom. Če uporabimo samo to metodo, dobimo naslednje metrike:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Pri tem je povsem očitno, da več ko vzamemo obdobje, več imamo spomina in manj natančnosti in obratno. Boljše rezultate v povprečju za stranke daje »zadnja 2 tedna«.

Podobno, kot sem ga kupil prej

Ni presenetljivo, da "kaj je bilo kupljeno prej" dobro deluje pri maloprodaji živil, vendar izločanje kandidatov samo iz tega, kar je uporabnik že kupil, ni zelo kul, saj je malo verjetno, da bo kupca mogoče presenetiti s kakšnim novim izdelkom. Zato predlagamo, da nekoliko izboljšamo to hevristiko z uporabo istih modelov sodelovanja. Iz vektorjev, ki smo jih prejeli na izobraževanju ALS, lahko dobite podobne izdelke, kot jih je uporabnik že kupil. Ta ideja je zelo podobna “podobnim videom” v storitvah za ogled video vsebin, a ker ne vemo, kaj uporabnik v določenem trenutku jé/kupuje, lahko iščemo samo nekaj podobnega tistemu, kar je že kupil, še posebej, ker že vemo, kako dobro deluje. Z uporabo te metode za transakcije uporabnikov v zadnjih 2 tednih dobimo naslednje meritve:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Tukaj k - število podobnih izdelkov, ki se pridobijo za vsak izdelek, ki ga je kupec kupil v zadnjih 14 dneh.
Ta pristop se nam je še posebej dobro obnesel pri stranki, ki je bila kritična, da sploh ne priporoča tega, kar je že bilo v uporabnikovi zgodovini nakupov.

Dolgo preteklo obdobje nakupa

Kot smo že ugotovili, se zaradi visoke frekvence nakupov blaga prvi pristop za naše specifike dobro obnese. Kaj pa blago, kot je pralni prašek/šampon itd. To je z izdelki, ki verjetno ne bodo potrebni vsak teden ali dva in ki jih prejšnje metode ne morejo pridobiti. To pomeni naslednjo idejo - predlaga se, da se izračuna obdobje nakupa vsakega izdelka v povprečju za kupce, ki so izdelek kupili več k enkrat. In nato izvleči tisto, česar je kupcu najverjetneje že zmanjkalo. Ustreznost obračunanih rokov za blago je mogoče preveriti z očmi:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

In potem bomo videli, ali konec obdobja izdelka sodi v časovni interval, ko bodo priporočila v proizvodnji, in vzorčili, kar pade. Pristop lahko ponazorimo takole:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Tukaj imamo 2 glavna primera, ki ju lahko upoštevamo:

  1. Ali vzorčiti izdelke za stranke, ki so izdelek kupile manj kot K-krat.
  2. Ali vzorčiti izdelek, če je konec njegovega obdobja pred začetkom ciljnega intervala.

Naslednji graf prikazuje, kakšne rezultate takšna metoda doseže z različnimi hiperparametri:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
ft - Vzemite le kupce, ki so izdelek kupili vsaj K (tu K = 5)-krat
tm — Vzemite le kandidate, ki spadajo v ciljni interval

Ni presenetljivo, sposoben (0, 0) največji odpoklic in najmanjši natančnost, saj se pod tem pogojem izloči največ kandidatov. Vendar pa najboljše rezultate dosežemo, če ne vzorčimo izdelkov za stranke, ki so določen izdelek kupile manj kot k čase in med drugim izvleče blago, katerega konec obdobja je pred ciljnim intervalom.

Priljubljeno po kategoriji

Druga dokaj očitna ideja je vzorčenje priljubljenih izdelkov v različnih kategorijah ali blagovnih znamkah. Tukaj izračunamo za vsako stranko top-k »priljubljene« kategorije/blagovne znamke in izvleček »priljubljene« iz te kategorije/blagovne znamke. V našem primeru definiramo »priljubljene« in »priljubljene« glede na število nakupov izdelkov. Dodatna prednost tega pristopa je njegova uporabnost v primeru hladnega zagona. To je za kupce, ki so opravili zelo malo nakupov ali pa že dolgo niso bili v trgovini ali so na splošno izdali samo kartico zvestobe. Za njih je lažje in najbolje vrči blago iz priljubljenih kupcev z obstoječo zgodovino. Meritve so naslednje:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
Tu številka za besedo »kategorija« pomeni raven gnezdenja kategorije.

Na splošno tudi ni presenetljivo, da ožje kategorije dosegajo boljše rezultate, saj izluščijo natančnejše »najljubše« izdelke za kupce.

Nadomestni nakupi različnih dobrin iz tedna v teden

Zanimiv pristop, ki ga nisem zasledil v člankih o priporočilnih sistemih, je dokaj preprosta in hkrati delujoča statistična metoda Markovljevih verig. Tukaj vzamemo 2 različna tedna, nato pa za vsako stranko sestavimo par izdelkov [kupljeno v tednu i]-[kupljeno v tednu j], kjer je j > i, od tu pa za vsak izdelek izračunamo verjetnost prehoda na drug izdelek naslednji teden. Se pravi za vsak par blaga producti-productj preštejte njihovo število v najdenih parih in jih delite s številom parov, pri čemer produkti je bil v prvem tednu. Za izločanje kandidatov vzamemo zadnji ček kupca in dobimo top-k najverjetnejši naslednji izdelki iz prehodne matrike, ki smo jo dobili. Postopek izdelave prehodne matrike izgleda takole:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Iz realnih primerov v matriki prehodnih verjetnosti vidimo naslednje zanimive pojave:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
Tu lahko opazite zanimive odvisnosti, ki se kažejo v vedenju potrošnikov: na primer ljubitelji citrusov ali znamke mleka, s katere najverjetneje preidejo na drugo. Prav tako ni presenetljivo, da predmeti z visokimi ponovnimi nakupi, kot je maslo, prav tako končajo tukaj.

Metrike v metodi z Markovskimi verigami so naslednje:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
k - število izdelkov, ki se pridobijo za vsak predmet, kupljen iz kupčeve zadnje transakcije.
Kot lahko vidimo, konfiguracija s k=4 kaže najboljši rezultat. Porast v 4. tednu je mogoče pojasniti s sezonskim vedenjem okoli praznikov. 

Podobni izdelki za kupce, glede na značilnosti, ki jih sestavljajo različni modeli

Tako smo prišli do najtežjega in najzanimivejšega dela - iskanja najbližjih sosedov v vektorjih kupcev in izdelkov, zgrajenih po različnih modelih. Pri svojem delu uporabljamo 3 takšne modele:

  • ALS
  • Word2Vec (Item2Vec za takšne naloge)
  • DSSM

Z ALS smo že imeli opravka, lahko preberete, kako se uči tukaj. V primeru Word2Vec uporabljamo dobro znano izvedbo modela iz gensim. Po analogiji z besedili ponudbo definiramo kot potrdilo o nakupu. Tako se model pri konstruiranju produktnega vektorja nauči predvideti njegov »kontekst« za izdelek na računu (ostalo blago na računu). V podatkih o e-trgovini je bolje uporabiti sejo kupca namesto potrdila, fantje iz Ozon. In DSSM je bolj zanimiv za razstavljanje. Prvotno so ga napisali fantje iz Microsofta kot iskalni model, izvirno raziskovalno nalogo lahko preberete tukaj. Arhitektura modela je videti takole:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Tukaj Q - poizvedba, iskalna poizvedba uporabnika, D[i] - dokument, spletna stran. Vhod modela prejme znake zahteve oziroma strani. Vsaki vhodni plasti sledi več popolnoma povezanih plasti (večplastni perceptron). Nato se model nauči minimizirati kosinus med vektorji, pridobljenimi v zadnjih slojih modela.
Priporočilna opravila uporabljajo popolnoma enako arhitekturo, le da je namesto zahteve uporabnik, namesto strani pa izdelki. In v našem primeru se ta arhitektura spremeni v naslednje:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Zdaj, da preverimo rezultate, ostane še pokriti zadnjo točko - če imamo v primeru ALS in DSSM eksplicitno definirane uporabniške vektorje, potem imamo v primeru Word2Vec samo produktne vektorje. Tu smo za izgradnjo uporabniškega vektorja identificirali 3 glavne pristope:

  1. Samo dodajte vektorje, nato pa se za kosinusno razdaljo izkaže, da smo samo povprečili izdelke v zgodovini nakupovanja.
  2. Seštevanje vektorjev z določeno časovno utežjo.
  3. Tehtanje blaga s koeficientom TF-IDF.

V primeru linearnega uteževanja vektorja kupca izhajamo iz hipoteze, da ima izdelek, ki ga je uporabnik kupil včeraj, večji vpliv na njegovo vedenje kot izdelek, ki ga je kupil pred šestimi meseci. Torej upoštevamo prejšnji teden kupca s koeficientom 1 in kaj se je zgodilo naslednjič s koeficienti ½, ⅓ itd.:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Za koeficiente TF-IDF naredimo popolnoma enako kot pri TF-IDF za besedila, le da kupca obravnavamo kot dokument, potrdilo pa kot ponudbo oziroma beseda je izdelek. Tako se bo uporabniški vektor usmeril bolj k redkim dobrinam, blago, ki je pogosto in kupcu poznano, pa se ne bo kaj dosti spremenilo. Pristop lahko ponazorimo takole:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Zdaj pa poglejmo meritve. Tako izgledajo rezultati ALS:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
Meritve podjetja Item2Vec z različnimi različicami konstruiranja vektorja kupca:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
V tem primeru je uporabljen popolnoma enak model kot v naši osnovni liniji. Edina razlika je, kateri k bomo uporabili. Če želite uporabljati samo modele sodelovanja, morate za vsako stranko vzeti približno 50-70 najbližjih izdelkov.

In meritve DSSM:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Kako združiti vse metode?

Kul, boste rekli, toda kaj storiti s tako velikim naborom orodij za ekstrakcijo kandidatov? Kako izbrati optimalno konfiguracijo za vaše podatke? Tukaj imamo več težav:

  1. Potrebno je nekako omejiti iskalni prostor za hiperparametre v vsaki metodi. Seveda je povsod diskretno, vendar je število možnih točk zelo veliko.
  2. Kako izbrati najboljšo konfiguracijo za svojo metriko z uporabo majhnega omejenega vzorca specifičnih metod s posebnimi hiperparametri?

Na prvo vprašanje še nismo našli nedvoumno pravilnega odgovora, zato izhajamo iz naslednjega: za vsako metodo je zapisan omejevalnik iskalnega prostora hiperparametrov, odvisno od nekaterih statistik podatkov, ki jih imamo. Tako lahko, če poznamo povprečno obdobje med nakupi pri ljudeh, ugibamo, s katerim obdobjem uporabiti metodo »kaj je že kupljeno« in »obdobje že davno preteklega nakupa«.

In potem, ko preletimo ustrezno število variacij različnih metod, ugotovimo naslednje: vsaka implementacija izlušči določeno število kandidatov in ima določeno vrednost metrike (priklic), ki je za nas ključna. Skupno želimo pridobiti določeno število kandidatov, odvisno od naše dovoljene računalniške moči, z najvišjo možno metriko. Tukaj se problem lepo sesuje v problem nahrbtnika.
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Tu je število kandidatov teža ingota, odpoklic metode pa njegova vrednost. Vendar pa je pri izvajanju algoritma treba upoštevati še 2 točki:

  • Metode se lahko prekrivajo pri kandidatih, ki jih umaknejo.
  • V nekaterih primerih bo pravilno uporabiti eno metodo dvakrat z različnimi parametri in kandidati na izhodu prve ne bodo podmnožica druge.

Na primer, če vzamemo izvedbo metode "kaj je že kupljeno" z različnimi intervali za ekstrakcijo, potem bodo njihovi nizi kandidatov ugnezdeni drug v drugega. Hkrati različni parametri v "občasnih nakupih" na izhodu ne dajejo popolnega presečišča. Zato metode vzorčenja z različnimi parametri razdelimo na bloke, tako da iz vsakega bloka želimo vzeti največ en pristop ekstrakcije z določenimi hiperparametri. Če želite to narediti, morate malo zvijačiti pri izvajanju problema z nahrbtnikom, vendar se asimptotika in rezultat od tega ne bosta spremenila.

Tako pametna kombinacija nam omogoča, da dobimo naslednje meritve v primerjavi s preprosto sodelovalnimi modeli:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
Na končni metriki vidimo naslednjo sliko:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Vendar tukaj lahko vidite, da obstaja ena nepokrita točka za priporočila, ki so koristna za podjetja. Zdaj smo se pravkar naučili, kako kul napovedati, kaj bo uporabnik kupil, na primer naslednji teden. Ampak samo dajanje popusta na to, da bo vseeno kupil, ni zelo kul. Vendar je kul povečati pričakovanja, na primer, naslednjih meritev:

  1. Marža/promet na podlagi osebnih priporočil.
  2. Povprečni pregled kupcev.
  3. pogostost obiska.

Tako dobljene verjetnosti pomnožimo z različnimi koeficienti in jih ponovno uvrstimo tako, da vrh vključuje izdelke, ki vplivajo na zgornje meritve. Tukaj ni pripravljene rešitve, kateri pristop je bolje uporabiti. Tudi mi eksperimentiramo s takimi koeficienti neposredno v proizvodnji. Tu pa je nekaj zanimivih trikov, ki nam največkrat dajo najboljše rezultate:

  1. Pomnožite s ceno/maržo artikla.
  2. Pomnožite s povprečnim čekom, na katerem je izdelek. Tako bo ven prišlo blago, s katerim običajno vzamejo nekaj drugega.
  3. Pomnožite s povprečno pogostostjo obiskov kupcev tega izdelka, ki temelji na hipotezi, da se ta izdelek pogosteje vrača.

Po eksperimentiranju s koeficienti smo v proizvodnji dobili naslednje metrike:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave
Tukaj celotno pretvorbo izdelka - delež kupljenih izdelkov od vseh izdelkov v priporočilih, ki smo jih ustvarili.

Pozoren bralec bo opazil pomembno razliko med offline in online meritvami. To vedenje je razloženo z dejstvom, da pri usposabljanju modela ni mogoče upoštevati vseh dinamičnih filtrov za izdelke, ki jih je mogoče priporočiti. Pri nas je normalna zgodba, ko lahko polovico izluščenih kandidatov izločimo, takšna specifika je značilna za našo panogo.

Kar zadeva prihodke, dobimo naslednjo zgodbo, jasno je, da po uvedbi priporočil prihodki testne skupine močno rastejo, zdaj je povprečno povečanje prihodkov z našimi priporočili 3-4%:
Kako smo dramatično izboljšali kakovost priporočil v maloprodaji brez povezave

Na koncu želim povedati, da če potrebujete priporočila, ki niso v realnem času, je zelo veliko povečanje kakovosti ugotovljeno v poskusih z ekstrakcijo kandidatov za priporočila. Velika količina časa za njihovo ustvarjanje omogoča združevanje številnih dobrih metod, ki bodo skupaj dale odlične rezultate za podjetje.

Z veseljem bom v komentarjih poklepetal z vsemi, ki se jim zdi gradivo zanimivo. Vprašanja mi lahko postavite osebno telegram. Svoje misli o AI/startupih delim tudi v svojem telegram kanal — dobrodošli 🙂

Vir: www.habr.com

Dodaj komentar