Funções de custo para bandidos contextuais

14

Estou usando o vowpal wabbit para resolver um problema de bandido contextual . Estou exibindo anúncios para os usuários e tenho bastante informações sobre o contexto em que o anúncio é exibido (por exemplo, quem é o usuário, em que site ele está, etc.). Esse parece ser um problema clássico de bandidos contextuais, como descrito por John Langford .

Na minha situação, existem 2 respostas principais que um usuário pode ter para um anúncio: clicar (possivelmente várias vezes) ou não clicar. Tenho cerca de 1.000 anúncios que posso escolher. O Vowpal Wabbit requer uma variável de destino na forma de action:cost:probabilitypara cada contexto. No meu caso, actione probabilityé fácil descobrir: actioné o anúncio que escolhi exibir e probabilityé a probabilidade de escolher esse anúncio, de acordo com minha política atual de exibição de anúncios.

No entanto, estou tendo problemas para encontrar uma boa maneira de mapear meus pagamentos (cliques) para os custos. Obviamente, os cliques são bons e vários cliques no mesmo anúncio também são melhores do que cliques únicos no mesmo anúncio. No entanto, não clicar em um anúncio é neutro: na verdade, não me custa nada além da oportunidade perdida por um clique (estou trabalhando em um contexto de publicidade estranho).

Algumas idéias que tive são:

  1. custo = -1 * sinal (cliques) + 0 * (não clicado)
  2. cost = -1 * cliques + 0 * (não clicados)
  3. custo = -1 * sinal (cliques) + 0,01 * (não clicado)
  4. custo = -1 * cliques + 0,01 * (não clicado)

No caso de um vetor de ação dos (0, 1, 5, 0)custos dessas 4 funções, seria:

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

Existem, obviamente, muitas outras maneiras de representar isso clicks=goode no clicks=bad.Em geral, como devo ser modelar custos para problemas de bandidos contextuais em wabbit vowpal? Tudo bem representar benefícios como custos negativos ou devo redimensionar tudo para que todos os custos sejam positivos? Tudo bem que ações relativamente neutras tenham um custo zero ou devo dar um pequeno custo positivo para empurrar o modelo para as ações positivas?

Zach
fonte
1
Estou confuso com "existem duas ações possíveis: um usuário pode clicar no anúncio ou um usuário não pode clicar no anúncio". Se você está tentando decidir qual anúncio exibir, os anúncios não devem ser as ações?
Alto
1
@alto: Eu acho que deveria ler "existem 2 respostas possíveis que podemos gravar para um usuário". Isso faz mais sentido?
Zach
Não tenho certeza se esse é realmente um problema de bandido contextual, porque não tenho certeza de qual é seu objetivo aqui. Resolver o problema do bandido contextual "tenta otimizar uma política que escolhe ações com custo mínimo para os contextos observados". Você está tentando descobrir quantos anúncios serão exibidos? Tentando modelar o comportamento do consumidor? Algo mais?
shadowtalker
1
@ssdecontrol Estou tentando descobrir qual anúncio será exibido, em um contexto. É um problema de exemplo comumente usado para bandidos contextuais, mas estou obtendo resultados muito ruins com o solucionador de bandidos contextuais do vowpal-wabbit. Fiquei pensando se talvez exista uma maneira diferente de especificar o "custo" de um clique ou não em um anúncio.
Zach
1
@nik Eu nunca realmente descobri, e fui com um modelo multiclasse regular da VW.
Zach

Respostas: