Fledge
z perspektywy analityków
Zmiany
-
Brak 3rd-party cookie:
znamy zachowanie użytkownika tylko wewnątrz jednego, konkretnego sklepu (nie potrafimy połączyć id użytkownika pomiędzy dwoma sklepami).
-
Anonimizacja:
nie wiemy dokładnie jaki user kliknął w jaką reklamę.
Skutki
-
Skutki teoretyczne:
- mniej wiemy o użytkowniku,
- mniej cech.
-
Skutki praktyczne:
- dla modelu CVR dla atrybucji post-click 10d Brier Skill Score spada z 0.042 do 0.030.
Zmiany w modelach
- algorytmy rekomendacyjne,
- BV,
- CTR,
- CVR,
- przypisywanie grup zainteresowań.
Algorytmy rekomendacyjne - zmiany
::: block
-
Architektura:
- rekomendacje wysyłamy do przeglądarki w momencie gdy user jest na sklepie (ale to raczej nie jest duża zmiana).
-
Modelowanie:
- jeden użytkownik żyje tylko w obrębie jednego sklepu,
- każdy sklep żyje osobno (nie połączymy produktów z różnych sklepów) - będzie to problem głównie dla małych sklepów,
- na początek można zostawić graf jak jest tylko będzie mniej krawędzi.
-
Uwaga:
- produkty będą musiały być -anonimowe, tzn. produkt nie wyświetli się na reklamie dopóki nie zarekomendujemy go użytkownikom.
Algorytmy rekomendacyjne - plan
- biddujemy tak jak teraz
- (dopiero potem) przygotowujemy graf na usunięcie krawędzi (np. dodając sztuczne krawędzie między podobnymi produktami)
Model BV - zmiany
::: block
-
Modelowanie:
- zakładam, że na początek podajemy średnią wartość koszyka (jak dotychczas) - wtedy brak zmian względem obecnego rozwiązania.
-
Architektura:
- wysyłamy do przeglądarki średni BV w momencie gdy user jest na stronie.
Model CTR - zmiany
::: block
- Architektura:
- model wykonywany w przeglądarce,
- ze względów wydajnościowych raczej nie wykonamy inferencji z sieci neuronowej, więc proponuję wytrenować model drzewowy (CatBoosta), a jeśli inferencja takiego modelu dalej będzie za wolna to przejść na modele liniowe
- Modelowanie:
- nie wiemy jaki użytkownik kliknął w jaką reklamę,
- wiemy z jakiej grupy zainteresować pochodził klik
Model CTR - przepływ danych
Model CTR - łączenie danych
Model CTR - plan
::: block
- nadajemy IG jako userID + SN (na tę chwilę nie musimy zachowywać -anonimowości),
- trenujemy prosty model na cechach 1st-party, bez zachowania anonimowości,
- spinamy proces bidowania we fledge i logowania danych do CH,
- (dopiero teraz) zaczynamy nadawać IG w sposób -anonimowy,
- (dopiero teraz) trenujemy model z IGs i wykorzystujemy “sprytne” łączenie danych
Model CVR - raportowanie konwersji we Fledge
Note: doktoraty w jaki sposób łączyć dane z różnych raportów, debiasing, etc.
Model CVR - dane w pixlu
Notes: Dwie opcje:
- albo user będzie miał tylko jedną grupę naraz
- albo podczas przekliku będziemy przekazywać IG, ale musi to być -anonimowe
sprawdzić jak recency wpływa na wyniki
Model CVR - zmiany
::: block
-
Modelowanie:
- tracimy informację o domenie, device (a są to istotne cechy dla modelu)
- znamy tylko zachowanie usera na konkretnym sklepie,
- mamy dokładnie informacje o konwersjach,
- BSS na zbiorze testowym spada z 0.043 do 0.030.
-
Rozliczanie:
- z klientami będziemy musieli rozliczać się w post-clicku
-
Architektura:
- model wykonywany na naszych serwerach w momencie dodawania grupy zainteresowań, zapisuje się w przeglądarce jako liczba; uwaga: model per user!
Model CVR - plan na teraz
::: block
- robimy model oparty tylko na danych z uber_all, na naszych użytkownikach, w atrybucji post-click; dla modelu to cechy z momentu gdy nadajemy grupę zainteresowań
- użytkownik w jednym momencie ma tylko jedną grupę zainteresowań (userID + SN)
- jako benchmark zróbmy CatBoosta na obecnych cechach (dostępnych z punktu widzenia uber_all i 1st-party), potem zróbmy model sekwencyjny (dataset sekwencyjny)
Model CVR - plan na później
::: block
- Z pixla wiemy kiedy był klik, więc możemy zasymulować recency; model z serwera powinien zwracać embedding zachowania usera, podczas aukcji ten embedding modyfikowalibyśmy poprzez recency (np. addytywnie) i to byłaby wycena (dokładniejsza). Wtedy to cechy z momentu nadania grupy zainteresowań + modyfikator czasu (recency),
- fuzzy matchowanie danych z klika (domena, device):
- z pixla wiemy, że o 16:00 pojawił się na CCC po kliknięciu w reklamę,
- wiemy, że o 15:59 ktoś z zrobił klika,
- wiemy, że ma przypisaną grupę ,
- idealnie byłoby mieć w uber_all event “przyszedłem z klika w reklamę”, ale prawdopodobnie możemy tę informację wyciągnąć już teraz.
Przypisywanie grup zainteresowań - plan
- obecnie nadajemy grupę zainteresować jako userID + SN
- spinamy flow
- embeddujemy zachowanie użytkownika, klastrujemy embeddingi otrzymując grupę zainteresowań