Funzioni di costo per banditi contestuali


14

Sto usando Vowpal Wabbit per risolvere un problema di bandito contestuale . Sto mostrando annunci agli utenti e ho un bel po 'di informazioni sul contesto in cui viene mostrato l'annuncio (ad es. Chi è l'utente, su quale sito si trova, ecc.). Questo sembra essere un problema di bandito contestuale piuttosto classico, come descritto da John Langford .

Nella mia situazione, ci sono 2 risposte principali che un utente può avere a un annuncio: fare clic (possibilmente più volte) o non fare clic. Ho circa 1.000 annunci tra cui scegliere. Vowpal Wabbit richiede una variabile target sotto forma di action:cost:probabilityper ogni contesto. Nel mio caso, actione probabilitysono facili da capire: actionè l'annuncio che ho scelto di visualizzare, ed probabilityè la probabilità di scegliere quell'annuncio data la mia attuale politica per la visualizzazione degli annunci.

Tuttavia, ho difficoltà a trovare un buon modo per mappare i miei profitti (clic) ai costi. I clic sono ovviamente buoni e anche più clic sullo stesso annuncio sono migliori dei singoli clic sullo stesso annuncio. Tuttavia, non fare clic su un annuncio è neutrale: in realtà non mi costa altro che l'opportunità mancata per un clic (sto lavorando in uno strano contesto pubblicitario).

Alcune idee che ho avuto sono:

  1. costo = -1 * segno (clic) + 0 * (non selezionato)
  2. costo = -1 * clic + 0 * (non selezionato)
  3. costo = -1 * segno (clic) + 0,01 * (non selezionato)
  4. costo = -1 * clic + 0,01 * (non selezionato)

Nel caso di un vettore di azione (0, 1, 5, 0)i costi di queste 4 funzioni sarebbero:

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

Esistono ovviamente molti altri modi per rappresentarlo clicks=goode, no clicks=bad.in generale, come dovrei modellare i costi per problemi di bandito contestuale in wowbit vowpal? Va bene rappresentare i benefici come costi negativi o devo ridimensionare tutto in modo tale che tutti i costi siano positivi? Va bene che le azioni relativamente neutre abbiano un costo zero o dovrei dare loro un piccolo costo positivo per spingere il modello verso le azioni positive?


1
Sono confuso da "ci sono 2 possibili azioni: un utente può fare clic sull'annuncio o un utente non può fare clic sull'annuncio". Se stai cercando di decidere quale annuncio mostrare, gli annunci non dovrebbero essere le azioni?
alto,

1
@alto: Penso che dovrebbe leggere "ci sono 2 possibili risposte che possiamo registrare per un utente". Ha più senso?
Zach,

Non sono sicuro che questo sia davvero un problema di bandito contestuale perché non sono sicuro di quale sia il tuo obiettivo qui. Risolvere il problema del bandito contestuale "cerca di ottimizzare una politica che sceglie le azioni con un costo minimo per i contesti osservati". Stai cercando di capire quanti annunci pubblicare? Cerchi di modellare il comportamento del consumatore? Qualcos'altro?
Shadowtalker,

1
@ssdecontrol Sto cercando di capire quale annuncio mostrare, dato il contesto. È un problema di esempio comunemente usato per i banditi contestuali, ma sto ottenendo risultati davvero cattivi dal risolutore di banditi contestuali di vowpal-wabbit. Mi chiedevo se forse ci fosse un modo diverso di specificare il "costo" di un clic o meno di un annuncio.
Zach,

1
@nik Non l'ho mai veramente capito, e invece ho optato per un normale modello multiclasse della VW.
Zach,

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.