Problem: te same produkty w kółko
Klient wchodzi do kategorii „Kurtki zimowe". Przewija 30 produktów, klika w 3, wraca do listy. Przechodzi na stronę jednego z nich — a tam karuzela „Podobne produkty" pokazuje dokładnie te same kurtki, które przed chwilą widział na liście kategorii. Obok druga karuzela „Bestsellery" — znów te same modele.
Większość sklepów internetowych ma ten problem. Rekomendacje wyglądają jakby były losowe — bo w praktyce każda karuzela działa osobno, nie wie o pozostałych i nie pamięta, co klient już widział. Profesjonalne systemy rozwiązują to na czterech poziomach.
Usuwanie duplikatów między karuzelami
Najprostszy problem: ten sam produkt pojawia się w kilku karuzelach naraz. Klient na stronie produktu widzi zwykle 3–4 karuzele, każda po 8–12 pozycji. Bez usuwania duplikatów to 24–48 miejsc, ale realnie może w nich być tylko 15–20 unikalnych produktów. Reszta to powtórzenia.
- Każda karuzela generuje wyniki niezależnie
- Ten sam produkt pojawia się w 2–3 karuzelach
- Klient widzi mniej unikalnych propozycji
- System zna wszystkie karuzele na stronie i koordynuje je
- Produkty wybrane do pierwszej karuzeli wykluczane z kolejnych
- Każde miejsce to unikalna propozycja
Kto to robi?
eBay — potwierdzone w publikacji z 2021 roku. System optymalizuje całą stronę naraz: produkty przypisane do jednej karuzeli są automatycznie wykluczane z kolejnych. Efekt po wdrożeniu: +2,5% klikalności i +7,3% współczynnika zakupów.
Obniżanie priorytetu ignorowanych produktów
Trudniejszy problem: klient przewinął listę kategorii, widział 30 produktów na ekranie, ale kliknął tylko w 3. Następnym razem system powinien to uwzględnić — nie wykluczać tych 27 produktów całkowicie, ale obniżyć im priorytet, żeby inne produkty miały szansę się pokazać.
Ta technika nazywa się w branży impression discounting — obniżanie wyniku produktu za każdym razem, gdy klient go widział, ale nie kliknął. Produkt nie znika z rekomendacji — po prostu spada w kolejności, a inne produkty mają szansę wskoczyć na jego miejsce.
Kto to robi?
LinkedIn — jedyna duża platforma, która opublikowała szczegóły tego mechanizmu (2014). W systemie „Osoby, które możesz znać" mierzyli ile razy użytkownik widział sugestię i jej nie kliknął. Klikalność spadała z każdym kolejnym wyświetleniem. Rozwiązanie: mnożnik dyskontujący — im więcej zignorowanych wyświetleń, tym niższy wynik produktu w rankingu. Microsoft potwierdził to samo w rekomendacjach newsów na Bing — klikalność drastycznie spada, gdy ten sam element jest pokazywany wielokrotnie. Netflix potwierdził, że uwzględnianie ignorowania rekomendacji poprawia jakość systemu.
Dawanie szansy nowym produktom
Nowy produkt w katalogu nie ma historii — zero kliknięć, zero zakupów. System rekomendacji oparty na danych sprzedażowych go pomija, bo nie ma czego rekomendować. Efekt: błędne koło — produkt nie zbiera danych, bo nie jest pokazywany, a nie jest pokazywany, bo nie ma danych.
Sam silnik rekomendacji
Usuwanie duplikatów i obniżanie priorytetu to warstwy, które poprawiają to, co silnik wygenerował. Ale najważniejsze jest to, jak silnik w ogóle wybiera produkty do pokazania.
- Ręczne reguły — „pokaż produkty z tej samej kategorii" albo „pokaż bestsellery". Proste, ale nie rozumie czego klient szuka
- Kupili też — na podstawie historii zamówień. Wymaga dużo danych — nowy sklep albo sklep z małym ruchem nie ma z czego liczyć
- Tagi i atrybuty — dopasowanie po polach typu kolor, marka, rozmiar. Nie łączy produktów, które są podobne wizualnie albo funkcjonalnie, ale mają inne wartości w polach — np. „buty trekkingowe" i „buty górskie" to dla systemu zupełnie różne produkty
- Analiza treści produktu — AI czyta opis i analizuje zdjęcie jednocześnie. Rozumie, że „buty trekkingowe" i „buty górskie" to podobne produkty, nawet jeśli mają różne nazwy i tagi
- Profil sesji w czasie rzeczywistym — system buduje profil klienta na bieżąco: co ogląda, w jakiej kolejności, w jakim przedziale cenowym. Rekomendacje zmieniają się z każdym kliknięciem
- Wiele strategii naraz — osobna logika dla „Podobne", „Kupili też", „Popularne w kategorii". Każda karuzela ma własny algorytm dopasowany do kontekstu
Jakie algorytmy stoją za silnikiem rekomendacji — od collaborative filtering, przez embeddingi, po sieci grafowe — opisujemy szczegółowo w osobnym artykule: Algorytmy rekomendacji produktów.
Jak to działa w Witly
Witly łączy wszystkie cztery poziomy w jednym systemie. Oto co się dzieje, gdy klient otwiera stronę produktu w sklepie:
Jedno zapytanie, jedna logika
Skrypt Witly wysyła jedno zapytanie z konfiguracjami wszystkich karuzel na stronie. Serwer generuje wyniki sekwencyjnie — produkty z pierwszej karuzeli (np. „Podobne") są automatycznie wykluczane z puli dla kolejnych (np. „Bestsellery w kategorii").
Śledzenie ekranu klienta
Jeśli klient zaakceptował cookies, skrypt na stronie sklepu monitoruje które produkty pojawiły się na jego ekranie. Każdy produkt, który klient widział — na liście kategorii, w karuzeli, w wynikach wyszukiwania — jest rejestrowany jako wyświetlenie. Bez zgody na cookies te dane nie są zbierane.
Profil sesji i obliczanie priorytetów
Wyświetlenia trafiają do profilu sesji klienta. System liczy: ile razy dany produkt się wyświetlił, kiedy ostatnio i czy klient w niego kliknął. Na tej podstawie oblicza współczynnik dyskontujący — im więcej zignorowanych wyświetleń, tym niższy priorytet.
Świeższe rekomendacje
Efekt: klient, który wraca do sklepu, widzi nowe propozycje zamiast tych samych produktów, które ignorował wczoraj. Każda karuzela na stronie pokazuje unikalne pozycje — bez powtórzeń.
Co Witly wyklucza, a co obniża
Nie każdy sygnał prowadzi do tego samego działania:
| Sygnał | Działanie | Dlaczego |
|---|---|---|
| Produkt kupiony | Wykluczony | Klient już go ma. Wyjątek: produkty konsumpcyjne / powtarzalne. |
| Produkt w koszyku | Wykluczony | Klient zamierza go kupić — lepiej pokazać coś uzupełniającego. |
| Produkt w innej karuzeli na tej stronie | Wykluczony | Każde miejsce to unikalna propozycja. |
| Wyświetlony 1–2 razy, nie kliknięty | Bez zmian | Za mało danych. Klient mógł nie zauważyć. |
| Wyświetlony 5+ razy, nie kliknięty | Obniżony priorytet | Produkt spada w rankingu, ale nie znika — inne propozycje dostają szansę. |
| Kliknięty, ale nie kupiony | Podwyższony priorytet | Klient wykazał zainteresowanie — to sygnał pozytywny. |
| Nowy produkt (< 14 dni) | Boost | Nowy produkt bez historii sprzedaży dostaje tymczasowy boost, żeby miał szansę się pokazać. |
Podsumowanie
Profesjonalne rekomendacje to nie jeden algorytm — to cztery warstwy, z których każda rozwiązuje inny problem. Usuwanie duplikatów pilnuje, żeby karuzele się nie powtarzały. Obniżanie priorytetu pilnuje, żeby klient widział świeże propozycje. Freshness boost daje szansę nowym produktom bez historii sprzedaży. A silnik rekomendacji decyduje, które produkty w ogóle mają sens dla tego konkretnego klienta.
Masz pytania? Skontaktuj się z nami.
Źródła
- Lee, Lakshmanan, Tiwari, Shah — Modeling Impression Discounting in Large-Scale Recommender Systems, KDD 2014
dl.acm.org/doi/10.1145/2623330.2623356 - eBay — Page Optimization for Item Recommendation Diversification, RecSys 2021 (arXiv:2108.05891)
arxiv.org/abs/2108.05891 - Ma, Liu et al. — User Fatigue in Online News Recommendation, WWW 2016
semanticscholar.org/paper/User-Fatigue-in-Online-News-Recommendation-Ma-Liu/8c6339aa8f604feff4afd3a5b7fd3208ada26f9c - Amazon Personalize — Filtering Recommendations and User Segments, AWS Documentation
docs.aws.amazon.com/personalize/latest/dg/filter.html - Allegro — Suggest, Complement, Inspire: Two Tower Recommendations, 2025 (arXiv:2508.03702)
arxiv.org/html/2508.03702v1
