Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Salut à tutti ! Mi chjamu Sasha, sò CTO & Co-Fundatore di LoyaltyLab. Dui anni fà, i mo amichi è eiu, cum'è tutti i studienti poveri, andavamu a sera à cumprà a biera in u magazinu più vicinu vicinu à a nostra casa. Eramu assai disgraziati chì u retailer, sapendu chì andemu per a birra, ùn offre micca un scontu nantu à patatine fritte o crackers, ancu s'ellu era cusì logicu ! Ùn avemu micca capitu perchè sta situazione era accadutu è decisu di inizià a nostra propria cumpagnia. Ebbè, cum'è un bonus, fatevi sconti ogni vennari nantu à quelli stessi chips.

Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

È tuttu hè ghjuntu à u puntu induve aghju prisintatu materiale nantu à u latu tecnicu di u pruduttu NVIDIA GTC. Semu felici di sparte u nostru travagliu cù a cumunità, cusì publichemu u mo rapportu in forma d'articulu.

Introduzione

Cum'è tutti l'altri à l'iniziu di u viaghju, avemu principiatu cù una visione generale di cumu sò fatti i sistemi di ricunniscenza. È l'architettura più pupulare hè stata a seguente:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Hè custituitu di dui parti:

  1. Campioni di candidati per cunsiglii utilizendu un mudellu simplice è veloce, di solitu un cullaburazione.
  2. Classificazione di i candidati cù un mudellu di cuntenutu più cumplessu è lento, tenendu in contu tutte e funziunalità pussibuli in i dati.

In seguitu, aduprà i seguenti termini:

  • candidatu / candidatu per i cunsiglii - una coppia utente-prodottu chì puderia esse inclusa in i cunsiglii in a produzzione.
  • estrazione di candidati/estrattore/metudu di estrazione di candidati - un prucessu o metudu per estrazione "candidati di ricunniscenza" da e dati dispunibili.

U primu passu generalmente implica l'usu di diverse variazioni di filtrazione cullaburazione. I più populari - ALS. Hè stupente chì a maiò parte di l'articuli nantu à i sistemi di ricunniscenza revelanu solu diversi miglioramenti à i mudelli di cullaburazione in u primu stadiu, ma nimu ùn parla assai di altri metudi di campionamentu. Per noi, l'approcciu d'utilizà solu mudelli di cullaburazione è diverse ottimisazioni cun elli ùn hà micca travagliatu cù a qualità chì avemu aspittatu, cusì avemu scavatu in a ricerca specificamente in questa parte. È à a fine di l'articulu vi mustraraghju quantu avemu pussutu migliurà ALS, chì era a nostra basa.

Prima di passà à descrizzione di u nostru approcciu, hè impurtante nutà chì in i cunsiglii in tempu reale, quandu hè impurtante per noi di piglià in contu i dati chì sò accaduti 30 minuti fà, ùn ci sò micca veramente assai approcci chì ponu travaglià in u tempu necessariu. Ma, in u nostru casu, avemu da cullà cunsiglii micca più di una volta à ghjornu, è in a maiò parte di i casi - una volta à settimana, chì ci dà l'uppurtunità di utilizà mudelli cumplessi è migliurà a qualità in parechje volte.

Pigliemu cum'è una basa di ciò chì e metriche solu ALS mostra nantu à u compitu di estrazione di candidati. I metrichi chjave chì monitoremu sò:

  • Precisione - a proporzione di candidati scelti currettamente da i campionati.
  • U ricurdamentu hè a proporzione di candidati chì sò accaduti fora di quelli chì in realtà eranu in l'intervallu di destinazione.
  • F1-score - F-misura calculata nantu à i dui punti precedenti.

Fighjemu ancu e metriche di u mudellu finali dopu à l'incrementu di gradiente di furmazione cù funzioni di cuntenutu supplementari. Ci sò ancu 3 metriche principali quì:

  • precisione @ 5 - u percentuale mediu di i prudutti da u top 5 in termini di probabilità per ogni cumpratore.
  • response-rate@5 - cunversione di i clienti da una visita à a tenda à l'acquistu di almenu una offerta persunale (5 prudutti in una offerta).
  • avg roc-auc per utilizatore - mediu roc-auc per ogni cumpratore.

Hè impurtante à nutà chì tutti sti metrichi sò misurati validazione incrociata di serie temporale, vale à dì, a furmazione si faci in i primi k simane, è k + 1 settimana hè presa cum'è dati di prova. Cusì, l'altitudine di staggione hà avutu un impattu minimu in l'interpretazione di a qualità di i mudelli. In più nantu à tutti i grafici, l'assi di l'abscissa indicà u numeru di a settimana in validazione incruciata, è l'assi d'ordinate indicà u valore di a metrica specifica. Tutti i grafici sò basati nantu à e dati di transazzione da un cliente in modu chì i paraguni trà l'altri sò curretti.

Prima di principià à descriverà u nostru approcciu, prima fighjemu a linea di basa, chì hè un mudellu furmatu da ALS.
Metriche di ricuperazione di i candidati:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Metri finali:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Trattu tutte l'implementazioni di l'algoritmi cum'è un tipu di ipotesi cummerciale. Cusì, assai apprussimatamente, qualsiasi mudellu di cullaburazione pò esse cunsideratu cum'è una ipotesi chì "a ghjente tende à cumprà ciò chì e persone simili à elli cumprà". Cumu l'aghju digià dettu, ùn avemu micca limitatu à una tale semantica, è eccu alcune ipotesi chì funzionanu bè nantu à e dati in vendita offline:

  1. Chì aghju digià compru prima.
  2. Simile à ciò chì aghju compru prima.
  3. Periudu di una compra longa passata.
  4. Populare per categuria / marca.
  5. Cumprate alternate di diverse merchenzie da settimana à settimana (catene Markov).
  6. Prudutti simili à i cumpratori, secondu e caratteristiche custruite da parechji mudelli (Word2Vec, DSSM, etc.).

Chì avete cumpratu prima?

L'euristica più ovvia chì travaglia assai bè in l'alimentazione. Quì avemu pigliatu tutti i beni chì u titulare di a carta di fideltà hà acquistatu in l'ultimi K ghjorni (di solitu 1-3 settimane), o K ghjorni un annu fà. Appliendu solu stu metudu, uttene e seguenti metriche:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Quì hè abbastanza evidenti chì u più longu u piriudu, u più ricurdamentu avemu è menu precisione avemu è vice versa. In media, "l'ultime 2 settimane" dà risultati megliu per i clienti.

Simile à ciò chì aghju compru prima

Ùn hè micca surprisante chì per l'alimentariu "ciò chì aghju compru prima" funziona bè, ma l'estrazione di i candidati solu da ciò chì l'utilizatore hà digià compru ùn hè micca assai cool, perchè hè improbabile di sorprenderà u cumpratore cù un novu pruduttu. Dunque, prupunemu di migliurà ligeramente sta euristica utilizendu i stessi mudelli di cullaburazione. Da i vettori chì avemu ricevutu durante a furmazione ALS, pudemu uttene prudutti simili à ciò chì l'utilizatore hà digià acquistatu. Questa idea hè assai simili à "video simili" in servizii per vede u cuntenutu video, ma postu chì ùn sapemu micca ciò chì l'utilizatore manghja / cumprà in un mumentu particulari, pudemu solu circà quelli simili à ciò chì hà digià compru, soprattuttu. postu ch'è no Sapemu digià cumu si travaglia. Appliendu stu metudu nantu à e transazzioni di l'utilizatori in l'ultime 2 settimane, uttene e seguenti metriche:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

k - u numeru di prudutti simili chì sò recuperati per ogni pruduttu acquistatu da u cumpratore in l'ultimi 14 ghjorni.
Stu approcciu hà travagliatu soprattuttu bè per u nostru cliente, per quale era criticu per ùn ricumandà nunda chì era digià in a storia di compra di l'utilizatori.

Periudu di compra tardi

Cumu avemu digià scupertu, per via di l'alta freccia di compra di merchenzie, u primu approcciu funziona bè per i nostri bisogni specifichi. Ma chì ne di e merchenzie cum'è lavà in polvere / shampoo / ecc. Questu hè, cù prudutti chì ùn sò micca prubabilmente necessariu ogni settimana o duie è chì i metudi previ ùn ponu micca estratti. Questu porta à a seguente idea - hè prupostu di calculà u periodu di compra di ogni pruduttu in media per i clienti chì anu acquistatu u pruduttu più. k una volta. E poi estratti ciò chì u cumpratore più prubabilmente hà digià scappatu. I periodi calculati per e merchenzie ponu esse verificati cù i vostri ochji per l'adeguatezza:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

E poi guardemu se a fine di u periodu di u produttu cade in l'intervallu di tempu quandu i cunsiglii seranu in produzzione è mostra ciò chì succede. L'approcciu pò esse illustratu cusì:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Quì avemu 2 casi principali chì ponu esse cunsideratu:

  1. Hè necessariu di campionà i prudutti di i clienti chì anu compru u pruduttu menu di K volte.
  2. Hè necessariu di tastà un pruduttu se a fine di u so periodu cade prima di u principiu di l'intervallu di destinazione.

U graficu seguente mostra i risultati chì stu metudu ottene cù iperparametri diffirenti:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
ft - Pigliate solu i clienti chì anu compru u pruduttu almenu K (qui K=5) volte
tm - Pigliate solu i candidati chì cadenu in l'intervallu di destinazione

Ùn hè micca surprisante ch'ellu sia capace (0, 0) u più grande richiamari è u più chjucu precisione, postu chì sottu sta cundizione i più candidati sò recuperati. Tuttavia, i megliu risultati sò ottenuti quandu ùn avemu micca campionamentu di i prudutti per i clienti chì anu compru un pruduttu particulare menu di k volte è estratti, cumpresi merchenzie, a fine di u periodu di quale casca prima di l'intervallu di destinazione.

Popular per categuria

Un'altra idea abbastanza ovvia hè di tastà i prudutti populari in diverse categurie o marche. Quì avemu calculatu per ogni cumpratore cima-k categurie / marche "preferite" è estrae "populare" da questa categuria / marca. In u nostru casu, determineremu "preferitu" è "populare" da u numeru di compra di u pruduttu. Un vantaghju supplementu di questu approcciu hè a so applicabilità in u casu di partenza à u friddu. Vale à dì, per i clienti chì anu fattu assai pochi acquisti, o ùn sò micca stati in a tenda per un bellu pezzu, o anu appena emessu una carta di fideltà. Per elli, hè più faciule è megliu d'almacenà articuli chì sò populari cù i clienti è avè una storia. I metrici risultanti sò:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
Quì u numeru dopu a parolla "categoria" significa u livellu di nidificazione di a categuria.

In generale, ùn hè micca surprisante chì e categurie più strette ottene risultati megliu, postu chì estrae prudutti "preferiti" più precisi per i cumpratori.

Cumprate alternate di diversi beni da settimana à settimana

Un accostu interessante chì ùn aghju micca vistu in articuli nantu à i sistemi di ricunniscenza hè un metudu statisticu abbastanza simplice è à u stessu tempu di travagliu di catene Markov. Quì pigliamu 2 settimane diverse, dopu per ogni cliente custruemu coppie di prudutti [accattu in a settimana i]-[accattu in a settimana j], induve j > i, è da quì calculemu per ogni pruduttu a probabilità di cambià à un altru pruduttu a settimana dopu. Questu hè, per ogni paru di merchenzie produttu-produttu j Cuntamu u so numeru in i pariglii truvati è dividite da u numeru di pariglii, induve prudutti era in a prima settimana. Per caccià i candidati, pigliamu l'ultima ricevuta di u cumpratore è estrae cima-k u più prubabile prubabile prossime prudutti da a matrice di transizione avemu ricevutu. U prucessu di custruisce una matrice di transizione hè cusì:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Da esempi reali in a matrice di probabilità di transizione vedemu i seguenti fenomeni interessanti:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
Quì pudete vede dipendenze interessanti chì sò revelati in u cumpurtamentu di u cunsumadore: per esempiu, l'amatori di l'agrumi o una marca di latti da quale sò prubabilmente cambià à un altru. Ùn hè micca surprisante chì i prudutti cù una freccia alta di compra ripetuta, cum'è u burro, finiscinu ancu quì.

I metrichi in u metudu cù catene di Markov sò i seguenti:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
k - u numeru di prudutti chì sò ricuperati per ogni pruduttu acquistatu da l'ultima transazzione di u cumpratore.
Comu pudemu vede, u megliu risultatu hè mostratu da a cunfigurazione cù k = 4. U spike in a settimana 4 pò esse spiegatu da u cumpurtamentu staggione intornu à e vacanze. 

Prodotti simili à i cumpratori, secondu e caratteristiche custruite da mudelli diffirenti

Avà avemu ghjuntu à a parte più difficiuli è interessanti - a ricerca di i vicini più vicini nantu à i vettori di i clienti è i prudutti custruiti secondu parechji mudelli. In u nostru travagliu avemu aduprà 3 tali mudelli:

  • ALS
  • Word2Vec (Item2Vec per tali compiti)
  • DSSM

Avemu digià trattatu di l'ALS, pudete leghje cumu si impara ccà. In u casu di Word2Vec, usemu l'implementazione ben cunnisciuta di u mudellu da gensim. Per analogia cù i testi, definiscemu l'offerta cum'è una ricevuta di compra. Cusì, quandu custruisce un vettore di produttu, u mudellu ampara à predichendu u pruduttu in u ricivutu u so "cuntestu" (i prudutti rimanenti in u ricivutu). In i dati di ecommerce, hè megliu aduprà a sessione di u cumpratore invece di una ricevuta; i ragazzi di Ozon. È DSSM hè più interessante per analizà. Inizialmente, hè statu scrittu da i ragazzi di Microsoft cum'è un mudellu per a ricerca, Pudete leghje u documentu di ricerca originale quì. L'architettura di u mudellu s'assumiglia cusì:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Q - dumanda, dumanda di ricerca di l'utilizatori, D[i] - documentu, pagina internet. L'input à u mudellu hè l'attributi di a dumanda è e pagine, rispettivamente. Dopu à ogni strata di input ci sò una quantità di strati cumpletamente cunnessi (perceptron multilayer). Dopu, u mudellu ampara à minimizzà u cosenu trà i vettori ottenuti in l'ultimi strati di u mudellu.
I travaglii di ricunniscenza utilizanu esattamente a stessa architettura, solu invece di una dumanda ci hè un utilizatore, è invece di pagine ci sò prudutti. È in u nostru casu, sta architettura hè trasfurmata in i seguenti:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Avà, per verificà i risultati, resta per copre l'ultimu puntu - se in u casu di ALS è DSSM avemu definitu esplicitamente vettori d'utilizatori, allora in u casu di Word2Vec avemu solu vettori di produttu. Quì, per custruisce u vettore di l'utilizatori, avemu definitu 3 approcci principali:

  1. Solu aghjunghje i vettori, allora per a distanza di cosenu risulta chì simpricimenti facemu una media di i prudutti in a storia di compra.
  2. Somma di vettore cù qualchì ponderazione di u tempu.
  3. Pisà e merchenzie cù u coefficient TF-IDF.

In u casu di ponderazione lineale di u vettore di u cumpratore, procedemu da l'ipotesi chì u pruduttu chì l'utilizatore hà compru ieri hà una influenza più grande in u so cumpurtamentu cà u pruduttu chì hà compru sei mesi fà. Allora cunsideremu a settimana precedente di u cumpratore cù probabilità di 1, è ciò chì successe dopu cù probabilità di ½, ⅓, etc.:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Per i coefficienti TF-IDF, facemu esattamente u listessu cum'è in TF-IDF per i testi, solu avemu cunsideratu u cumpratore cum'è un documentu, è u verificatu cum'è una offerta, rispettivamente, a parolla hè un pruduttu. In questu modu, u vettore di l'utilizatore si moverà più versu i merchenzie rari, mentre chì e merchenzie frequenti è familiari per u cumpratore ùn cambianu micca assai. L'approcciu pò esse illustratu cusì:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Avà fighjemu a metrica. Eccu ciò chì i risultati ALS pareanu:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
Metriche per Item2Vec cù diverse variazioni di a custruzzione di u vettore di cumpratori:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
In questu casu, esattamente u listessu mudellu hè utilizatu cum'è in a nostra basa. A sola diferenza hè chì k avemu aduprà. Per utilizà solu mudelli di cullaburazione, avete da piglià circa 50-70 prudutti più vicini per ogni cliente.

E metriche secondu DSSM:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Cumu unisce tutti i metudi?

Cool, dite, ma chì fà cù un tali grande settore di strumenti di estrazione di candidati? Cumu sceglie a cunfigurazione ottima per i vostri dati? Quì avemu parechji prublemi:

  1. Hè necessariu di limità in qualchì modu u spaziu di ricerca per iperparametri in ogni metudu. Hè, sicuru, discretu in ogni locu, ma u numeru di punti pussibuli hè assai grande.
  2. Utilizendu una piccula mostra limitata di metudi specifichi cù iperparametri specifichi, cumu pudete selezziunate a megliu cunfigurazione per a vostra metrica?

Ùn avemu micca trovu una risposta definitivamente curretta à a prima quistione, cusì procedemu da u seguente: per ogni metudu, un limitatore di spaziu di ricerca iperparametru hè scrittu, secondu alcune statistiche nantu à e dati chì avemu. Cusì, sapendu u periodu mediu trà e compra da e persone, pudemu guessà cù quale periodu per utilizà u metudu "ciò chì hè digià statu compru" è "periodu di una compra longa passata".

È dopu avè passatu per un certu nùmeru adattatu di variazioni di metudi diffirenti, avemu nutatu i seguenti: ogni implementazione extracts un certu nùmeru di candidati è hà un certu valore di a metrica chjave per noi (ricordu). Vulemu ottene un totale di un certu numaru di candidati, secondu a nostra putenza di computazione permessa, cù a metrica più altu pussibule. Quì u prublema bellissima collapses in u prublema di backpack.
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Quì u numeru di candidati hè u pesu di u lingotti, è u metudu di ricurdà hè u so valore. Tuttavia, ci sò 2 punti più chì deve esse cunsideratu quandu implementate l'algoritmu:

  • I metudi ponu esse sovrapposti in i candidati chì ricuperanu.
  • In certi casi, serà currettu per piglià un metudu duie volte cù diversi paràmetri, è l'output candidatu da u primu ùn serà micca un subset di u sicondu.

Per esempiu, se pigghiamu l'implementazione di u metudu "ciò chì aghju digià compru" cù intervalli diffirenti per a ricuperazione, allora i so setti di candidati seranu nidificati in l'altri. À u listessu tempu, diversi paràmetri in "acquisti periodichi" à a surtita ùn furnisce micca intersezzione cumpleta. Dunque, dividemu l'approcciu di campionamentu cù diversi paràmetri in blocchi cusì chì da ogni bloccu vulemu piglià à u massimu un approcciu di estrazione cù iperparametri specifichi. Per fà questu, avete bisognu di un pocu intelligente in l'implementazione di u prublema di u saccu, ma l'asintotichi è u risultatu ùn cambianu micca.

Questa cumminazione intelligente ci permette di ottene e seguenti metriche in paragone cù mudelli simplici cullaburatori:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
In i metrichi finali vedemu a seguente stampa:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

Tuttavia, quì pudete nutà chì ci hè un puntu scupertu per i cunsiglii utili per l'affari. Avà avemu appena amparatu cumu fà un grande travagliu di predichendu ciò chì l'utilizatore cumprà, per esempiu, a settimana prossima. Ma solu dà un scontu nantu à qualcosa chì hà digià cumprà ùn hè micca assai cool. Ma hè bellu di maximizà l'aspettativa, per esempiu, di e seguenti metriche:

  1. Margine / fattura basatu nantu à cunsiglii persunali.
  2. Cuntrolla media di u cliente.
  3. Frequenza di visite.

Allora multiplichemu e probabilità ottenute da diversi coefficienti è reclassificate in modu chì i prudutti chì affettanu i metrici sopra ghjunghjenu à a cima. Ùn ci hè micca una suluzione pronta per quale approcciu hè megliu aduprà. Avemu ancu sperimentà tali coefficienti direttamente in a produzzione. Ma quì sò tecnichi interessanti chì u più spessu ci danu u megliu risultati:

  1. Multiplicà per u prezzu / marghjenu di u pruduttu.
  2. Multiplicate da a ricevuta media in quale u pruduttu appare. Allora e merchenzie veneranu, cù quale generalmente piglianu qualcosa altru.
  3. Multiplicà per a freccia media di visiti da i cumpratori di stu pruduttu, basatu annantu à l'ipotesi chì stu pruduttu pruvucarà a ghjente per vultà più spessu.

Dopu avè realizatu esperimenti cù coefficienti, avemu ottenutu e seguenti metriche in a produzzione:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline
cunversione generale di i prudutti - a parte di i prudutti acquistati fora di tutti i prudutti in i cunsiglii chì avemu generatu.

U lettore attentu notarà una diferenza significativa trà e metriche offline è online. Stu cumpurtamentu hè spiegatu da u fattu chì micca tutti i filtri dinamichi per i prudutti chì ponu esse ricumandati ponu esse cunsideratu quandu u furmatu di u mudellu. Per noi, hè una storia normale quandu a mità di i candidati recuperati ponu esse filtrati; sta specificità hè tipica in a nostra industria.

In termini di rivenuti, a storia seguente hè ottenuta, hè chjaru chì dopu à u lanciu di i cunsiglii, i rivenuti di u gruppu di teste sò in forte crescita, avà l'aumentu mediu di i rivenuti cù i nostri cunsiglii hè di 3-4%:
Cume avemu migliuratu drasticamente a qualità di i cunsiglii in u retail offline

In cunclusioni, vogliu dì chì sè avete bisognu di cunsiglii in tempu reale, allora un incrementu assai grande di qualità pò esse truvatu in esperimenti cù l'estrazione di candidati per i cunsiglii. Una grande quantità di tempu per a so generazione permette di cumminà assai boni metudi, chì in tuttu darà grandi risultati per l'affari.

Seraghju cuntentu di chatter in i cumenti cù qualcunu chì trova u materiale interessante. Pudete dumandà mi dumande personalmente à telegram. I sparte ancu i mo pinsamenti nantu à AI / startups in u mo canale di telegram - Benvenuti :)

Source: www.habr.com

Add a comment