Problem oceny jakości wyników wyszukiwania związany jest z fundamentalnym paradoksem obserwacji: widzimy kliknięcia tylko na tych pozycjach, które użytkownik zobaczył, ale prawdopodobieństwo przeglądania gwałtownie maleje z rangi. Klasyczne prace Joachims et al. na temat position bias oraz Richardson na temat examination hypothesis stanowią podstawę zrozumienia, że kliknięcie nie jest równoznaczne z trafnością. W kontekście analityki produktów prowadzi to do konieczności oddzielenia prawdziwych preferencji użytkowników od artefaktów interfejsu, szczególnie gdy zmiana algorytmu rankingowego dotyczy całej bazy użytkowników jednocześnie.
Podczas globalnej aktualizacji silnika wyszukiwarki obserwowane metryki (CTR, głębokość przeglądania, konwersja) zmieniają się pod wpływem dwóch czynników zakłócających: zmiany samego porządku dokumentów oraz zmiany prawdopodobieństwa ich oglądania. Bez możliwości podziału użytkowników na grupy kontrolne i testowe klasyczne testowanie A/B jest niemożliwe, a sezonowe wahania tworzą tymczasowe trendy skorelowane z momentem wydania. Zadaniem analityka jest izolowanie czystego efektu rankingu od tych szumów przy ograniczonych danych.
Optymalnym podejściem jest połączenie metod quasi-eksperymentalnych i korekty na zniekształcenia. Na pierwszym etapie zastosowano Difference-in-Differences z syntetycznym kontrolą: buduje się ważoną kombinację historycznych okresów lub segmentów produktów, minimalizując pre-treatment błąd prognozy metryk. Dla korekty position bias stosuje się Inverse Propensity Weighting (IPW), gdzie propensity scores ocenia się na podstawie prawdopodobieństwa przeglądania pozycji na podstawie wcześniejszych zrandomizowanych logów lub przez algorytm Expectation-Maximization, zakładając Examination-Cascade Model. Dodatkowo, dla nieliniowych efektów stosuje się Causal Forests, umożliwiające modelowanie heterogeniczności efektu według kategorii produktów i segmentów użytkowników.
W markecie elektronicznym zespół wyszukiwania zastąpił BM25 oparty na sieciach neuronowych BERT-based ranker, zoptymalizowany pod kątem marżowości. Dwa tygodnie po wydaniu metryka GMV na sesję wyszukiwania wzrosła o 18%, ale głębokość przeglądania spadła o 25%. Biznes wahał się, czy wzrost związany jest z algorytmem, czy z rozpoczęciem wyprzedaży, które zbiegły się z wydaniem, oraz obawiał się o degradację doświadczeń użytkowników w przypadku długiego ogona zapytań.
Pierwszą opcją rozważano proste porównanie metryk przed i po wydaniu za pomocą t-testu. Zaletą była szybkość i brak potrzeby w skomplikowanej infrastrukturze. Jednak wady były oczywiste: niemożność rozdzielenia sezonowego efektu wyprzedaży od efektu algorytmu, ignorowanie position bias (nowy algorytm mógł wyświetlać drogie produkty wyżej tylko dlatego, że przynoszą więcej pieniędzy, a nie dlatego, że są bardziej trafne) oraz brak uwzględnienia ogólnej inflacji popytu w czasie akcji.
Drugą opcją była analiza Interrupted Time Series (ITS) z sezonową dekompozycją za pomocą Prophet lub SARIMA. Pozwoliłoby to uwzględnić trendy i sezonowość, budując kontrfaktyczne prognozy wartości metryk bez wydania. Plusy obejmowały statystyczną rygorystyczność i możliwość modelowania autokorelacji. Wady miały związek z wrażliwością na punkt przerwania (jeśli wydanie było stopniowe), trudnością w interpretacji współczynników dla biznesu oraz założeniem liniowości trendów, które często są łamane w e-commerce podczas masowych kampanii promocyjnych.
Trzecią opcją była opracowanie Synthetic Control Method na poziomie kategorii produktów: stworzenie ważonego zestawu z nietkniętych zapytań lub kategorii, w których algorytm się nie zmienił (na przykład z powodu technicznych ograniczeń na poszczególnych lokalizacjach), jako grupy kontrolnej do porównania. Zaletą były wizualna czytelność i intuicyjność dla interesariuszy, a także mniejsza wrażliwość na założenia dotyczące formy rozkładu błędów. Wady obejmowały konieczność identyfikacji odpowiednich jednostek kontrolnych o podobnej dynamice (co jest trudne podczas globalnego wydania) oraz ryzyko overfittingu przy wyborze wag.
Ostatecznie wybrano hybrydową metodologię: Diff-in-Diff z syntetycznym kontrolą na poziomie kategorii produktów, połączoną z korekcją IPW na pozycję wyświetlania. Pozwoliło to na oddzielenie efektu zmiany rankingu od sezonowych wzrostów oraz skorygowanie zniekształcenia, jakie wprowadza fakt, że drogie produkty były teraz wyświetlane na górnych pozycjach częściej. Wybór był uzasadniony koniecznością jednoczesnego uwzględnienia struktury czasowej danych i strukturalnych zniekształceń w ekspozycji.
Wynikiem było ustalenie, że 14% z 18% wzrostu GMV wyjaśniał właśnie algorytm, a pozostałe 4% — sezonowość. Przy tym stwierdzono, że w przypadku head-zapytania (top-20% pod względem częstotliwości) konwersja wzrosła o 22%, podczas gdy w przypadku tail-zapytania spadła o 15%, co zostało zrekompensowane wzrostem średniego koszyka. Doprowadziło to do decyzji o wprowadzeniu hybrydowego schematu: neuronowy ranking dla popularnych zapytań oraz klasyczny dla rzadkich, co zrównoważyło metryki.
Jak poprawnie uwzględnić position bias przy braku zrandomizowanego eksperymentu?
Bez specjalnych zrandomizowanych wyświetleń można ocenić propensity za pomocą algorytmu Expectation-Maximization, zakładając, że kliknięcie = examination × relevance. Kandydaci często proponują po prostu dodanie pozycji jako funkcji w regresji, ale to ignoruje nieliniową interakcję między pozycją a trafnością. Prawidłowe podejście to wykorzystanie Click Models (Cascade Model lub DBN — Dependent Click Model) do oceny prawdopodobieństwa przeglądania, a następnie ważenie obserwacji odwrotnie proporcjonalnie do tego prawdopodobieństwa (IPW). Bez tego ocena efektu rankingu będzie zniekształcona w stronę wyników top-heavy.
Dlaczego proste porównanie kliknięć przed i po zmianie algorytmu daje zniekształconą ocenę nawet przy uwzględnieniu sezonowości?
Poza position bias istnieje efekt exploration vs exploitation oraz user learning. Nowy algorytm może eksplorować (explore) mniej, oferując bardziej przewidywalne wyniki, co obniża engagement w krótkim okresie. LUB, przeciwnie, użytkownicy mogą dostosować się do nowej struktury wyników, zmieniając wzorce przewijania (scrolling behavior), co narusza stacjonarność przypuszczeń analizy czasowej. Kandydaci umykają konieczności sprawdzenia parallel trends assumption w Diff-in-Diff na danych pre-period i znaczenia opóźnień w agregacji (nie można porównywać dzień do dnia z powodu efektów day-of-week, potrzebna jest minimum tygodniowa agregacja).
Jak rozróżnić efekt poprawy dopasowania zapytania do produktu od efektu zmiany składu asortymentu w górze wyników?
To rozróżnienie jest krytyczne dla zrozumienia długoterminowego wpływu na LTV. Jeśli nowy algorytm po prostu przesuwa wyniki w stronę drogich produktów (assortment shift), a nie lepiej rozumie intencję użytkownika (relevance improvement), wzrost konwersji może być krótkotrwały z powodu efektu nowości. Aby je rozdzielić, należy użyć Causal Forests lub Meta-learners (S-Learner, T-Learner) z efektem stałym produktów (product fixed effects), aby porównać ten sam produkt na różnych pozycjach przed i po zmianie. Jeśli efekt obserwuje się tylko dzięki zmianie składu towarów w górze (na przykład zniknięcie budżetowych opcji), wymaga to innej reakcji produktowej niż w przypadku poprawy CTR na stałych pozycjach dla danego towaru.