Analityka produktowa (IT)Analityk Produktów (IT)

Jaką metodę byś użył do zmierzenia kanibalizacji popytu między nowym blokiem rekomendacji ML na stronie głównej a istniejącymi kategoriami nawigacyjnymi w celu określenia rzeczywistego przyrostu GMV?

Zdaj rozmowy kwalifikacyjne z asystentem AI Hintsage

Odpowiedź na pytanie

Historia pytania

Duże produkty stale wprowadzają nowe punkty wejścia do treści - spersonalizowane bloki, AI-rekomendacje lub alternatywne wzorce nawigacji. Bez analizy kanibalizacji zespół może błędnie przypisać sukces nowej funkcji, podczas gdy w rzeczywistości nastąpił tylko przepływ użytkowników między ekranami bez wzrostu całkowitych przychodów.

Problem

Należy oddzielić efekt przyrostowy (nowe transakcje, które nie miałyby miejsca bez nowego bloku) od kanibalizacji (transakcje, które przeniosły się ze starych kategorii do nowego bloku). Standardowy test A/B na poziomie użytkownika nie rozwiązuje tego problemu, ponieważ użytkownik widzi oba kanały jednocześnie, a wybór między nimi prowadzi do endogenności.

Rozwiązanie

Używamy Geo-experiment z syntetyczną kontrolą lub klasteryzowaną randomizację w sesjach. Losowo przypisujemy regiony geograficzne do testu i kontroli, mierzymy zmianę GMV nie tylko na poziomie całej platformy, ale także rozdzielając według kategorii nawigacyjnych. Stosujemy metodę Difference-in-Differences z kategoriami jako danymi panelowymi, aby odliczyć kanibalizowane przychody od całkowitego przyrostu.

Sytuacja z życia

Opis problemu

W aplikacji mobilnej e-commerce uruchomiono nowy blok „Dopasowane dla Ciebie” oparty na modelach rankingowych TensorFlow. Po miesiącu wskaźnik kliknięć w kategorii spadł o 25%, a całkowity GMV wzrósł zaledwie o 5%. Zespół produktowy spierał się: czy to kanibalizacja, czy rzeczywista optymalizacja ścieżki użytkownika? Należało ustalić, ile z 5% to rzeczywisty przyrost, a ile to przepływ istniejącego popytu.

Rozważane rozwiązania

Rozwiązanie pierwsze: Proste porównanie „przed/po” w odniesieniu do całkowitego GMV. To podejście zakłada, że bez nowego bloku wskaźniki pozostałyby niezmienne. Zalety: maksymalna prędkość, nie wymaga infrastruktury eksperymentów. Wady: ignoruje sezonowość, kampanie marketingowe i organiczny trend wzrostu, co daje zniekształconą ocenę o 15-20%.

Rozwiązanie drugie: Klasyczny test A/B na poziomie user_id z 50/50 podziałem przez serwis Splitting. Zakłada to, że jeśli ukryjemy blok dla grupy kontrolnej, różnica w GMV pokaże rzeczywisty efekt. Zalety: prostota wdrożenia, znana statystyka. Wady: użytkownicy w teście wciąż mogą znaleźć produkty przez wyszukiwanie lub kategorie, tworząc bezpośrednią kanibalizację wewnątrz grupy testowej, a grupa kontrolna bez bloku generuje mniej danych do porównania kategorii.

Rozwiązanie trzecie: Geo-eksperyment z syntetyczną kontrolą (SCM). Wybraliśmy 20 miast o podobnej dynamice GMV, losowo przypisując 10 do testu (blok włączony), a 10 do kontroli (blok niewidoczny). Dla kontroli zbudowano ważoną sumę miast, jak najbliższą miastom testowym z okresu „przed”. Zalety: pozwala zmierzyć efekt na poziomie rynków zagregowanych, naturalnie uwzględniając kanibalizację między kategoriami wewnątrz miasta. Wady: wymaga dużej próby (miasta), wrażliwy na regionalne akcje, trudność w obliczeniu błędu drugiego rzędu.

Wybrane rozwiązanie i uzasadnienie

Zdecydowaliśmy się na trzecią opcję – geo-eksperyment z Synthetic Control Method. Kluczowym czynnikiem była niemożność zmierzenia kanibalizacji wewnątrz jednego użytkownika przez standardowy test A/B, ponieważ nawet w grupie kontrolnej bez bloku nie widzimy „kontra-faktualnego” losu tych transakcji, które w grupie testowej przeniosłyby się do bloku. Poziom geograficzny pozwolił zobaczyć, jak zmienia się struktura zakupów według kategorii w całości.

Efekt

Ustaliliśmy, że z 5% całkowitego wzrostu GMV 3.2% stanowiła kanibalizacja (przepływ z długiego ogona kategorii do top-3 produktów z bloku), a tylko 1.8% to prawdziwy efekt przyrostowy. Na podstawie tych danych skorygowaliśmy algorytm rankingowy, dodając penalizację za popularne produkty, co podniosło czysty przyrost do 4.1%.

Co często umykają kandydaci

Pytanie 1: Dlaczego nie można po prostu spojrzeć na korelację między kliknięciami w nowy blok a spadkiem kliknięć w kategorii na poziomie sesji użytkownika?

Odpowiedź leży w endogenności samo-selekcji. Użytkownicy klikający w nowy blok mają inny profil intencji (wysoka intencja zakupu vs. przeglądanie) niż ci, którzy idą do kategorii. Bezpośrednia korelacja doprowadzi do efektu Simpsona: w danych agregowanych może wydawać się, że blok „ukradł” ruch, ale na poziomie kohort z wysoką intencją zobaczymy, że i tak by kupili, tylko szybciej. Należy stosować Causal Forest lub Propensity Score Matching, aby porównywać użytkowników o podobnej historii zachowań „przed” ekspozycją bloku.

Pytanie 2: Jak obliczyć minimalnie istotny efekt (MDE) dla eksperymentu z kanibalizacją, jeśli efekt może być ujemny dla niektórych kategorii i dodatni dla innych?

Tutaj kandydaci mylą się, stosując standardowy wzór dla średniego efektu. W przypadku kanibalizacji wariancja między kategoriami wzrasta, ponieważ mamy do czynienia z nierównowagą: niektóre kategorie tracą, inne zyskują. Należy stosować Linear Mixed Models z losowym efektem kategorii i obliczać moc dla skumulowanej metryki: całkowity GMV minus ważony spadek GMV w kanibalizowanych kategoriach z współczynnikiem rekompensaty ryzyka.

Pytanie 3: Jaka jest zasadnicza różnica między eksperymentalnym pomiarem kanibalizacji w produkcie a rozwiązaniem problemu interference w sieciach społecznościowych?

W analityce produktowej kanibalizacja jest formą „przepływu popytu” w obrębie jednego podmiotu (użytkownika), który rzadko jest modelowany jako interference między jednostkami. W sieciach społecznościowych (np. Facebook) interference to spillover między użytkownikami przez socjalny graf. Aby walczyć z kanibalizacją, stosujemy klasteryzację według czasu lub typu zachowania, a nie grafową randomizację. Ważne jest zrozumienie, że tutaj przydział eksperymentu to ekspozycja na nowy UI, a nie komunikacja między użytkownikami, więc metody takie jak Ego-cluster randomization nie są stosowane; zamiast tego stosujemy Switchback experiments na poziomie segmentów użytkowników.