Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Sziasztok! A nevem Sasha, a LoyaltyLab műszaki igazgatója és társalapítója vagyok. Két évvel ezelőtt a barátaimmal, mint minden szegény diák, esténként elmentünk sört venni a házunkhoz közeli legközelebbi boltba. Nagyon bánt minket, hogy a kiskereskedő, tudva, hogy sörért jövünk, nem adott kedvezményt a chipsből vagy a kekszetből, pedig ez így logikus volt! Nem értettük, miért fordul elő ez a helyzet, és úgy döntöttünk, hogy saját céget alapítunk. Nos, bónuszként minden pénteken adjon kedvezményt ugyanazokra a zsetonokra.

Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

És mindez odáig fajult, hogy a termék technikai oldaláról mutatok be anyagot NVIDIA ÁSZF. Szívesen megosztjuk munkánkat a közösséggel, ezért beszámolómat cikk formájában adom közre.

Bevezetés

Mint mindenki más az út elején, mi is az ajánlórendszerek felépítésének áttekintésével kezdtük. És a legnépszerűbb építészet a következő típusnak bizonyult:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Két részből áll:

  1. Mintavétel a jelöltekből az ajánlásokhoz egy egyszerű és gyors, általában együttműködő modell segítségével.
  2. A jelöltek rangsorolása összetettebb és lassúbb tartalmi modellel, az adatokban szereplő összes lehetséges jellemző figyelembevételével.

A továbbiakban a következő kifejezéseket használom:

  • jelölt/ajánló jelölt — egy felhasználó-termék pár, amely potenciálisan szerepelhet a gyártási ajánlásokban.
  • jelölt extrakció/extraktor/jelölt extrakciós módszer — eljárás vagy módszer az „ajánlásra jelöltek” kinyerésére a rendelkezésre álló adatokból.

Az első lépés általában az együttműködésen alapuló szűrés különböző változatainak használatát jelenti. A legnépszerűbb - ALS. Meglepő, hogy az ajánlórendszerekről szóló cikkek többsége csak az első szakaszban fedi fel a kollaboratív modellek különféle fejlesztéseit, de más mintavételi módszerekről senki sem beszél. Számunkra az a megközelítés, hogy kizárólag kollaboratív modelleket és különféle optimalizálásokat használunk, nem működött az elvárt minőséggel, ezért kifejezetten ezen a területen ástunk bele a kutatásba. A cikk végén pedig megmutatom, mennyit tudtunk javítani az ALS-en, ami az alaphelyzetünk volt.

Mielőtt rátérnék a megközelítésünkre, fontos megjegyezni, hogy a valós idejű ajánlásoknál, amikor fontos számunkra, hogy figyelembe vegyük a 30 perccel ezelőtti adatokat, valóban nem sok olyan megközelítés létezik, amely a szükséges idő alatt működhet. A mi esetünkben azonban legfeljebb naponta egyszer kell ajánlásokat gyűjtenünk, és a legtöbb esetben - hetente egyszer, ami lehetőséget ad összetett modellek használatára és a minőség többszörös javítására.

Vegyük alapul, hogy csak az ALS milyen mutatókat mutat a jelöltek kinyerésének feladatára vonatkozóan. Az általunk figyelt legfontosabb mutatók a következők:

  • Precizitás - a helyesen kiválasztott jelöltek aránya a mintában szereplők közül.
  • A visszahívás azoknak a jelölteknek az aránya, akik ténylegesen szerepeltek a célintervallumban.
  • F1-pontszám - Az előző két ponton számított F-mérték.

Megvizsgáljuk a végső modell mérőszámait is, miután a gradiens-növelés további tartalmi funkciókkal betanítottuk. 3 fő mérőszám is található itt:

  • precision@5 – az első 5-ből származó termékek átlagos százalékos aránya a valószínűség szerint minden vásárló esetében.
  • response-rate@5 - a vásárlók konverziója az üzletben tett látogatásról legalább egy személyes ajánlat megvásárlására (5 termék egy ajánlatban).
  • átlagos roc-auc felhasználónként – átlagos roc-auc minden vásárló számára.

Fontos megjegyezni, hogy ezeket a mutatókat a rendszer méri idősoros keresztellenőrzés, vagyis az edzés az első k hétben történik, és k+1 hetet veszünk tesztadatnak. Így a szezonális hullámvölgyek minimális hatással voltak a modellek minőségének értelmezésére. Továbbá minden grafikonon az abszcissza tengely a hét számát jelzi keresztellenőrzésben, az ordináta tengely pedig a megadott metrika értékét. Minden grafikon egy ügyfél tranzakciós adatain alapul, így az egymás közötti összehasonlítások helyesek.

Mielőtt hozzákezdenénk a megközelítésünk leírásához, először nézzük meg az alapvonalat, amely egy ALS által kiképzett modell.
A jelöltek visszakeresési mutatói:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Végső mutatók:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Az algoritmusok minden implementációját valamilyen üzleti hipotézisként kezelem. Így nagyon durván minden kollaboratív modell felfogható hipotézisnek, miszerint „az emberek hajlamosak azt vásárolni, amit a hozzájuk hasonló emberek vásárolnak”. Ahogy már mondtam, nem korlátoztuk magunkat az ilyen szemantikára, és itt van néhány hipotézis, amelyek jól működnek az offline kiskereskedelem adatain:

  1. Amit már korábban is vettem.
  2. Hasonló ahhoz, amit korábban vettem.
  3. A régmúlt vásárlás időszaka.
  4. Kategória/márka szerint népszerű.
  5. Különböző áruk váltakozó vásárlása hétről hétre (Markov láncok).
  6. Hasonló termékek a vásárlókhoz, a különböző modellek által épített jellemzők szerint (Word2Vec, DSSM stb.).

Mit vettél korábban?

A legnyilvánvalóbb heurisztika, amely nagyon jól működik az élelmiszer-kiskereskedelemben. Ide visszük mindazokat az árukat, amelyeket a törzsvásárlói az elmúlt K napban (általában 1-3 hétben), vagy egy éve K napban vásárolt. Csak ezt a módszert alkalmazva a következő mutatókat kapjuk:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt teljesen nyilvánvaló, hogy minél hosszabbra vesszük az időszakot, annál több a visszahívásunk és annál kisebb a pontosságunk, és fordítva. Átlagosan az „utolsó 2 hét” jobb eredményeket ad az ügyfelek számára.

Hasonló ahhoz, amit korábban vettem

Nem meglepő, hogy az élelmiszer-kiskereskedelemben jól működik az, hogy „amit korábban vettem”, de csak abból kinyerni a jelölteket, amit a felhasználó már vásárolt, nem túl menő, mert nem valószínű, hogy valami új termékkel lepi meg a vásárlót. Ezért azt javasoljuk, hogy enyhén javítsuk ezt a heurisztikát ugyanazokkal az együttműködési modellekkel. Az ALS tréning során kapott vektorokból hasonló termékeket kaphatunk, mint amiket a felhasználó már vásárolt. Ez az ötlet nagyon hasonlít a videotartalom megtekintésére szolgáló szolgáltatások „hasonló videókhoz”, de mivel nem tudjuk, hogy a felhasználó egy adott pillanatban mit eszik/vásárol, csak a már vásárolthoz hasonlókat tudunk keresni. hiszen már tudjuk, milyen jól működik. Ha ezt a módszert alkalmazzuk az elmúlt 2 hét felhasználói tranzakcióira, a következő mutatókat kapjuk:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt k — a vevő által az elmúlt 14 nap során megvásárolt egyes termékekhez tartozó hasonló termékek száma.
Ez a megközelítés különösen jól működött ügyfelünk számára, akik számára kritikus volt, hogy ne ajánljanak semmit, ami már szerepelt a felhasználó vásárlási történetében.

Késői vásárlási időszak

Amint azt már megtudtuk, az áruvásárlások nagy gyakorisága miatt az első megközelítés jól működik a konkrét igényeinknek. De mi a helyzet az olyan árukkal, mint a mosópor/sampon/stb. Vagyis olyan termékekkel, amelyekre nem valószínű, hogy hetente vagy kéthetente lesz szükség, és amelyeket a korábbi módszerekkel nem lehet kivonni. Ez a következő ötlethez vezet - javasoljuk az egyes termékek vásárlási időszakának átlagos kiszámítását azon ügyfelek számára, akik többet vásároltak a terméket k egyszer. És akkor vegyük ki azt, amiből a vevő nagy valószínűséggel már kifogyott. Az árukra számított időszakok megfelelősége szemmel ellenőrizhető:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Ezután megvizsgáljuk, hogy a termékperiódus vége beleesik-e abba az időintervallumba, amikor az ajánlások gyártásban lesznek, és meg kell kóstolni, hogy mi történik. A megközelítés a következőképpen szemléltethető:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt van 2 fő eset, amelyet figyelembe vehetünk:

  1. Szükséges-e olyan vásárlók termékeit mintát venni, akik K-nál kevesebbszer vásárolták meg a terméket?
  2. Szükséges-e mintát venni egy termékből, ha periódusának vége a célintervallum kezdete elé esik?

Az alábbi grafikon azt mutatja, hogy ez a módszer milyen eredményeket ér el különböző hiperparaméterekkel:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
ft — Csak azokat az ügyfeleket vegye figyelembe, akik legalább K (itt K=5) alkalommal vásárolták meg a terméket
tm — Csak olyan jelölteket vegyen fel, akik a célintervallumon belülre esnek

Nem meglepő, hogy képes rá (0, 0) a legnagyobb visszahívás és a legkisebb pontosság, mivel ezzel a feltétellel a legtöbb jelöltet lekérik. A legjobb eredményt azonban akkor érjük el, ha nem veszünk mintát olyan vásárlók termékeiből, akik egy adott terméket kevesebbet vásároltak, mint k időpontok és kivonat, beleértve az árukat is, amelyek időszakának vége a célintervallum elé esik.

Kategóriánként népszerű

Egy másik meglehetősen kézenfekvő ötlet az, hogy megkóstoljon népszerű termékeket különböző kategóriákban vagy márkákban. Itt minden vásárlóra kiszámítjuk top-k „kedvenc” kategóriákat/márkákat, és kivonja a „népszerűséget” ebből a kategóriából/márkából. Esetünkben a „kedvencet” és a „népszerűt” a termék vásárlásainak száma alapján határozzuk meg. Ennek a megközelítésnek további előnye, hogy hidegindítás esetén is alkalmazható. Vagyis azoknak a vásárlóknak, akik vagy nagyon keveset vásároltak, vagy már régóta nem jártak az üzletben, vagy most állítottak ki törzsvásárlói kártyát. Számukra egyszerűbb és jobb, ha olyan termékeket raktároznak, amelyek népszerűek a vásárlók körében, és rendelkeznek múlttal. Az eredményül kapott mutatók a következők:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
Itt a „kategória” szó utáni szám a kategória beágyazottsági szintjét jelenti.

Összességében az sem meglepő, hogy a szűkebb kategóriák jobb eredményeket érnek el, mivel pontosabb „kedvenc” termékeket állítanak elő a vásárlók számára.

Különböző áruk váltakozó vásárlása hétről hétre

Érdekes megközelítés, amelyet az ajánlórendszerekről szóló cikkekben nem láttam, a Markov-láncok meglehetősen egyszerű és egyben működő statisztikai módszere. Itt 2 különböző hetet veszünk igénybe, majd minden vásárló számára termékpárokat építünk [az i. héten vásárolt]-[a j héten vásárolt], ahol j > i, és innen számítjuk ki az egyes termékekre, hogy a jövő héten mekkora valószínűséggel váltunk másik termékre. Vagyis minden árupárra producti-productj Megszámoljuk a számukat a talált párokban, és elosztjuk a párok számával, ahol Termékek az első héten volt. A jelöltek kivonásához vesszük a vevő utolsó nyugtáját és kivonatát top-k a legvalószínűbb következő termékeket a kapott átmeneti mátrixból. Az átmeneti mátrix létrehozásának folyamata a következőképpen néz ki:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Az átmenet valószínűségi mátrix valós példáiból a következő érdekes jelenségeket láthatjuk:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
Itt érdekes függőségekre lehet figyelni, amelyek a fogyasztói magatartásban feltárulnak: például a citrusfélék szerelmesei vagy egy olyan tejmárka, amelyről valószínűleg átváltanak egy másikra. Az sem meglepő, hogy a gyakran ismétlődő vásárlással rendelkező termékek, például a vaj is ide kerülnek.

A Markov-láncokkal végzett módszer metrikái a következők:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
k — azon termékek száma, amelyeket a vevő utolsó tranzakciójából minden egyes megvásárolt termékhez lekérnek.
Amint látjuk, a legjobb eredményt a k=4-es konfiguráció mutatja. A 4. hét kiugrása az ünnepek körüli szezonális viselkedéssel magyarázható. 

Hasonló termékek a vásárlókhoz, a különböző modellek által épített jellemzők szerint

Most elérkeztünk a legnehezebb és legérdekesebb részhez - a legközelebbi szomszédok kereséséhez a vásárlók vektorai és a különféle modellek szerint épített termékek alapján. Munkánk során 3 ilyen modellt használunk:

  • ALS
  • Word2Vec (Item2Vec ilyen feladatokhoz)
  • DSSM

Az ALS-sel már foglalkoztunk, arról olvashatsz, hogyan tanul itt. A Word2Vec esetében a modell jól ismert megvalósítását használjuk gensim. A szövegekkel analóg módon az ajánlatot vásárlási bizonylatként határozzuk meg. Így a termékvektor megalkotásakor a modell megtanulja megjósolni a bizonylatban szereplő termék „kontextusát” (a nyugtában lévő többi terméket). Az e-kereskedelmi adatoknál jobb a vevő munkamenetét használni a nyugta helyett; a srácok Ózon. A DSSM elemzése pedig érdekesebb. Kezdetben a Microsoft srácai írták modellként a kereséshez, Az eredeti kutatási anyagot itt olvashatja el. A modell architektúrája így néz ki:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt Q — lekérdezés, felhasználói keresési lekérdezés, D[i] — dokumentum, internetes oldal. A modell bemenete a kérés, illetve az oldalak attribútumai. Minden bemeneti réteg után számos teljesen összekapcsolt réteg van (többrétegű perceptron). Ezután a modell megtanulja minimalizálni a koszinuszokat a modell utolsó rétegeiben kapott vektorok között.
Az ajánlási feladatok pontosan ugyanazt az architektúrát használják, csak a kérés helyett egy felhasználó, az oldalak helyett pedig termékek. Esetünkben ez az architektúra a következőre alakul át:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Az eredmények ellenőrzéséhez most az utolsó pontot kell lefedni - ha az ALS és a DSSM esetében kifejezetten definiáltunk felhasználói vektorokat, akkor a Word2Vec esetében csak szorzatvektoraink vannak. Itt a felhasználói vektor felépítéséhez 3 fő megközelítést határoztunk meg:

  1. Csak add hozzá a vektorokat, és a koszinusz távolságra kiderül, hogy egyszerűen átlagoltuk a vásárlási előzményekben szereplő termékeket.
  2. Vektoros összegzés némi idősúllyal.
  3. Árumérleg TF-IDF együtthatóval.

A vevővektor lineáris súlyozása esetén abból a hipotézisből indulunk ki, hogy az a termék, amelyet a felhasználó tegnap vásárolt, nagyobb hatással van a viselkedésére, mint a hat hónapja vásárolt termék. Tehát figyelembe vesszük a vevő előző hetét 1-es szorzóval, és azt, ami ezután történt, ½, ⅓ stb. szorzóval:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

A TF-IDF együtthatóknál pontosan ugyanazt csináljuk, mint a TF-IDF-ben a szövegeknél, csak a vevőt dokumentumnak tekintjük, a csekket pedig ajánlatnak, illetve a szó termék. Így a felhasználó vektora inkább a ritka áruk felé tolódik el, míg a vevő számára gyakori és megszokott áruk nem sokat változtatnak ezen. A megközelítés a következőképpen szemléltethető:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Most pedig nézzük a mérőszámokat. Így néznek ki az ALS eredményei:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
Az Item2Vec mérőszámai a vevővektor felépítésének különböző változataival:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
Ebben az esetben pontosan ugyanazt a modellt használjuk, mint az alapállapotunkban. Az egyetlen különbség az, hogy melyik k-t fogjuk használni. Ahhoz, hogy csak együttműködő modelleket használhasson, minden vásárlónak körülbelül 50-70 legközelebbi terméket kell vennie.

És a DSSM szerinti mutatók:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Hogyan lehet az összes módszert kombinálni?

Azt mondod, klassz, de mit lehet kezdeni a jelölt kinyerési eszközök ilyen nagy készletével? Hogyan válasszuk ki az adatok számára optimális konfigurációt? Itt több problémánk is van:

  1. Valahogy korlátozni kell a hiperparaméterek keresési terét az egyes módszerekben. Természetesen mindenhol diszkrét, de a lehetséges pontok száma igen nagy.
  2. Hogyan választhatja ki a metrikájához a legjobb konfigurációt a specifikus módszerek egy kis, korlátozott mintájával meghatározott hiperparaméterekkel?

Az első kérdésre még nem találtunk véglegesen helyes választ, ezért a következőkből indulunk ki: minden metódushoz egy hiperparaméteres keresési térkorlátot írunk, a rendelkezésünkre álló adatok statisztikáitól függően. Így az emberektől történő vásárlások közötti átlagos időszak ismeretében sejthetjük, hogy milyen időszakkal érdemes alkalmazni a „már vásárolt” és a „régi vásárlás időszaka” módszert.

És miután végigmentünk a különböző módszerek bizonyos megfelelő számú variációján, megjegyezzük a következőket: minden implementáció bizonyos számú jelöltet von ki, és a számunkra kulcsfontosságú metrika egy bizonyos értékével rendelkezik (visszaemlékezés). Összesen bizonyos számú jelöltet szeretnénk elérni, a megengedett számítási teljesítményünktől függően, a lehető legmagasabb mérőszámmal. Itt a probléma szépen összeomlik a hátizsák problémává.
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt a jelöltek száma a tuskó súlya, a visszahívási módszer pedig az értéke. Van azonban még 2 pont, amelyet figyelembe kell venni az algoritmus implementálásakor:

  • A módszerek átfedésben lehetnek az általuk letöltött jelöltekben.
  • Egyes esetekben helyes, ha egy metódust kétszer veszünk át különböző paraméterekkel, és az első jelölt kimenete nem lesz a második részhalmaza.

Például, ha az „amit már megvettem” módszer megvalósítását vesszük lekérdezésre különböző időközökkel, akkor a jelölthalmazaik egymásba ágyazódnak. Ugyanakkor a „időszakos vásárlások” különböző paraméterei a kijáratnál nem biztosítanak teljes kereszteződést. Ezért a különböző paraméterekkel rendelkező mintavételi megközelítéseket blokkokra osztjuk úgy, hogy minden blokkból legfeljebb egy kinyerési megközelítést szeretnénk alkalmazni meghatározott hiperparaméterekkel. Ehhez egy kicsit ügyeskedni kell a hátizsák-probléma megvalósításában, de az aszimptotika és az eredmény nem fog változni.

Ez az intelligens kombináció lehetővé teszi, hogy a következő mutatókat kapjuk az egyszerűen együttműködő modellekkel összehasonlítva:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
A végső mérőszámokban a következő képet látjuk:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Itt azonban észreveheti, hogy van egy feltáratlan pont az üzleti élet számára hasznos ajánlásokhoz. Most megtanultuk, hogyan lehet nagyszerűen megjósolni, hogy a felhasználó mit fog vásárolni például a jövő héten. De egyszerűen csak engedményt adni valamire, amit már megvesz, nem túl menő. De jó dolog maximalizálni az elvárásokat, például a következő mutatóktól:

  1. Árrés/forgalom személyes ajánlások alapján.
  2. Átlagos vásárlói ellenőrzés.
  3. A látogatások gyakorisága.

Tehát a kapott valószínűségeket megszorozzuk különböző együtthatókkal, és átsoroljuk őket úgy, hogy a fenti mutatókat befolyásoló szorzatok kerüljenek a csúcsra. Nincs kész megoldás arra, hogy melyik megközelítést a legjobb használni. Közvetlenül a termelésben is kísérletezzünk ilyen együtthatókkal. De itt vannak érdekes technikák, amelyek leggyakrabban a legjobb eredményeket adják:

  1. Szorozzuk meg a termék árával/marzsával.
  2. Szorozza meg azzal az átlagos nyugtával, amelyben a termék megjelenik. Így előkerülnek az áruk, amivel általában mást vesznek.
  3. Szorozza meg a termék vásárlóinak átlagos látogatási gyakoriságával, azon a hipotézisen alapulva, hogy ez a termék arra készteti az embereket, hogy gyakrabban térjenek vissza érte.

Az együtthatókkal végzett kísérletek után a következő mutatókat kaptuk a termelésben:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben
Itt teljes termékkonverzió — a megvásárolt termékek aránya az összes termékből az általunk generált ajánlásokban.

A figyelmes olvasó jelentős különbséget fog észrevenni az offline és az online mérőszámok között. Ezt a viselkedést az magyarázza, hogy a modell betanítása során nem lehet minden olyan dinamikus szűrőt figyelembe venni, amely a termékekhez ajánlható. Számunkra az a normális történet, amikor a visszakeresett jelöltek fele kiszűrhető, ez a sajátosság jellemző iparágunkra.

Bevétel tekintetében a következő sztorit kaptuk, jól látszik, hogy az ajánlások indulása után a tesztcsoport bevétele erőteljesen növekszik, most 3-4% az átlagos bevételnövekedés az ajánlásainkkal:
Hogyan javítottunk drámaian az ajánlások minőségén az offline kiskereskedelemben

Végezetül azt szeretném mondani, hogy ha nem valós idejű ajánlásokra van szüksége, akkor nagyon nagy minőségi javulás érhető el az ajánlásjelöltek kinyerésével végzett kísérletekben. Nemzedékükre szánt sok idő lehetővé teszi számos jó módszer kombinálását, amelyek összességében nagyszerű eredményeket hoznak az üzlet számára.

Szívesen beszélgetek a megjegyzésekben bárkivel, aki érdekesnek találja az anyagot. Kérdéseket feltehet nekem személyesen a címen távirat. Megosztom a gondolataimat az AI-ról/startupokról is távirat csatorna - Üdvözöljük :)

Forrás: will.com

Hozzászólás