Bayesian ROAS

Szkic potrzebnych kroków


A na co nam to? (przypomnienie)

::: block W Bayes ROAS:

  1. Każda predykcja jest rozkładem, dzięki czemu:
    1. moglibyśmy wybierać kampanię do wyświetlenia z użyciem Thompson sampling (tak jak w CPC)
    2. mamy sposób na samplowanie danych, których do tej pory model nie widział: nowy sklep, nowa powierzchnia, nowy slot…
  2. Możemy online zmieniać wagi modelu, dzięki czemu
    1. będziemy szybciej adaptować się do zmian (na rynku, w kreacjach, w kampaniach) - obecnie retrenujemy model raz na kilka tygodni

Obszary zmian

  1. Zmiana architektury modelu CTR
  2. Implementacja mechanizmu do aktualizowania wag online

note: Mechanizm aktualizacji wag narzuca nam pewne ograniczenia na to jak powinien wyglądać model.


Architektura modelu

<live>


Aktualizacja wag online

::: block

  1. Publikacja podaje jawny wzór na aktualizację wag online, czyli mając dotychczasowe , (w czasie ) oraz zapis klików i nie-klików z jakiegoś okna czasowego (np. 10 minut) można policzyć nowe , (w czasie .
  2. Do powyższego potrzebne są:
    1. Miejsce do przechowywania aktualnych , - redis lub po prostu feature store?
    2. Skrypt realizujący punkt 1.

Uwaga: Ten punkt wymaga od nas jeszcze researchu!

::: block Publikacje:

  1. TrueSkill https://proceedings.neurips.cc/paper/2006/file/f44ee263952e65b3610b8ba51229d1f9-Paper.pdf
  2. Bayesian CTR (uproszczona wersja TrueSkill dająca jawny wzór na aktualizację) https://discovery.ucl.ac.uk/id/eprint/1395202/1/Graepel_901%255B1%255D.pdf
  3. Wykorzystanie tego w Facebooku: https://research.facebook.com/file/273183074306353/practical-lessons-from-predicting-clicks-on-ads-at-facebook.pdf

Obszary zmian (dokładniej)

::: block

  1. Zmiana architektury modelu CTR
    1. Dzielimy nasz dotychczasowy model na dwa (analitycy):
      1. Duży Model (AutoInt), robiący za ekstraktor cech, zwraca wektor binarny. To jest model, który dostaje na wejściu cechy z Feature Store i mieli je tak, żeby dostać opis tych cech w postaci wektora binarnego
      2. Mały Model Bayesowski, który działa na wektorze binarnym. Do każdej cechy binarnej przypisany jest rozkład normalny ze średnią oraz . To właśnie parametry tych rozkładów normalnych będą modyfikowane online.
    2. Zaprojektowanie sposobu uczenia modelu z warstwą binarną (analitycy)
    3. Musimy ocenić na ile takie rozbicie modelu obniża jakość predykcji (za pomocą metryk offline: Brier Skill Score) (analitycy)
    4. Duży Model będzie musiał zwracać wektor binarny do biddera. Na podstawie tego wektora i na podstawie wartości , pobranych z Feature Store, bidder będzie musiał policzyć końcowy wynik. (devs)
  2. Aktualizacja wag online
    1. Skrypt (analitycy + devs + feature store?)