Funkcje kosztów dla kontekstowych bandytów

14

Używam wabbitów ślubnych, aby rozwiązać problem bandytów kontekstowych . Wyświetlam reklamy użytkownikom i mam sporo informacji na temat kontekstu, w którym reklama jest wyświetlana (np. Kim jest użytkownik, w jakiej witrynie się znajduje itp.). To wydaje się być dość klasycznym problemem kontekstowego bandyty, jak opisał John Langford .

W mojej sytuacji istnieją dwie główne odpowiedzi, które użytkownik może mieć na reklamę: kliknięcie (być może wiele razy) lub nie kliknięcie. Mam około 1000 reklam do wyboru. Vowpal Wabbit wymaga zmiennej docelowej w postaci action:cost:probabilitydla każdego kontekstu. W moim przypadku actioni probabilityłatwo je rozgryźć: actionczy reklama, którą zdecydowałem się wyświetlić, i probabilityprawdopodobieństwo jej wybrania, biorąc pod uwagę moje obecne zasady dotyczące wyświetlania reklam.

Mam jednak problem z wymyśleniem dobrego sposobu zmapowania moich wypłat (kliknięć) do kosztów. Kliknięcia są oczywiście dobre, a wielokrotne kliknięcia tej samej reklamy są również lepsze niż pojedyncze kliknięcia tej samej reklamy. Jednak nie klikanie reklamy jest neutralne: w rzeczywistości nie kosztuje mnie nic oprócz straconej okazji do kliknięcia (pracuję w dziwnym kontekście reklamowym).

Oto niektóre moje pomysły:

  1. koszt = -1 * znak (kliknięcia) + 0 * (nie kliknięto)
  2. koszt = -1 * kliknięcia + 0 * (nie kliknięto)
  3. koszt = -1 * znak (kliknięcia) + 0,01 * (nie kliknięto)
  4. koszt = -1 * kliknięcia + 0,01 * (nie kliknięto)

W przypadku wektora działania (0, 1, 5, 0)kosztów z tych 4 funkcji byłoby:

  1. (0, -1, -1, 0)
  2. (0, -1, -5, 0)
  3. (0.01, -1, -1, 0.01)
  4. (0.01, -1, -5, 0.01)

Istnieje oczywiście wiele innych sposobów na przedstawienie tego clicks=goodi no clicks=bad.ogólnie, jak powinienem modelować koszty kontekstowych problemów bandytów w Wabbit ślubny? Czy dobrze jest przedstawiać korzyści jako koszty ujemne, czy powinienem przeskalować wszystko tak, aby wszystkie koszty były dodatnie? Czy jest w porządku, aby względnie neutralne działania miały zerowy koszt, czy też powinienem dać im niewielki koszt dodatni, aby popchnąć model w kierunku działań pozytywnych?

Zach
źródło
1
Mylę się, że „istnieją 2 możliwe działania: użytkownik może kliknąć reklamę lub użytkownik nie może kliknąć reklamy”. Jeśli próbujesz zdecydować, która reklama ma być wyświetlana, czy reklamy nie powinny być działaniami?
alt
1
@alto: Myślę, że powinienem przeczytać „istnieją dwie możliwe odpowiedzi, które możemy nagrać dla użytkownika”. Czy to ma większy sens?
Zach.
Nie jestem pewien, czy to naprawdę jest problem kontekstowego bandyty, ponieważ nie jestem pewien, jaki jest twój cel tutaj. Rozwiązanie problemu kontekstowego bandyty „próbuje zoptymalizować politykę, która wybiera działania przy minimalnych kosztach dla obserwowanych kontekstów”. Próbujesz dowiedzieć się, ile reklam się wyświetla? Próbujesz modelować zachowania konsumentów? Coś innego?
shadowtalker
1
@ssdecontrol Próbuję dowiedzieć się, którą reklamę wyświetlić, biorąc pod uwagę kontekst. Jest to często używany przykładowy problem dla kontekstowych bandytów, ale dostaję naprawdę złe wyniki z kontekstowego solvera bandytów ślubnych-wabbit. Zastanawiałem się, czy może jest inny sposób określenia „kosztu” kliknięcia lub braku kliknięcia reklamy.
Zach
1
@nik Tak naprawdę nigdy tego nie rozgryzłem i zamiast tego wybrałem zwykły wieloklasowy model VW.
Zach

Odpowiedzi: