http://www0.cs.ucl.ac.uk/staff/w.zhang/rtb-papers/delayed-feedback.pdf
Postawiony problem: mamy model uczony na 3 tygodniach danych, przeuczany codziennie (ponieważ codziennie dochodzą nowe kampanie), atrybucja jest 30 dniowa. W jaki sposób uwzględnić fakt, że jeśli nie zarejestrowaliśmy do tej pory konwersji do klika, to faktycznie konwersji może nie być, ale może też ona nadejść dopiero w przyszłości?
Problem to Jak uczyć model gdy powoli spływają odpowiedzi..
Oznaczenie zmiennych losowych: - czy była konwersja w naszym oknie czasowym (czyli to co mamy w danych) - czy ostatecznie była konwersja (zmienna ukryta) - opóźnienie między klikiem a konwersją (jeśli ) - czas, który minął od klika do teraz (chwili trenowania/pobierania danych)
- cechy opisujące bid request
Obserwacje
(1)
(2) , czyli to czy ostatecznie była konwersja i w jakim opóźnieniu od klika jest niezależne od czasu w którym obserwujemy klika (niezależne od ).
Model
Modelujemy:
- jako regresja logistyczna (ale oczywiście może to być też sieć neuronowa)
- gdzie zakładamy, że rozkład jest eksponencjalny i regresja liniowa (lub siec neurnowa) przewiduje parametr tego rozkładu.
Mając dwa powyższe można analitycznie wyznaczyć oraz , czyli p-stwa naszych obserwacji. Więc trzeba uczyć sieć na , potem wyciąganć część estymującą i tą część używać do predykcji na produkcji.