Estoy usando Wongpal Wabbit para resolver un problema de bandido contextual . Estoy mostrando anuncios a los usuarios y tengo bastante información sobre el contexto en el que se muestra el anuncio (por ejemplo, quién es el usuario, en qué sitio se encuentra, etc.). Este parece ser un problema de bandido contextual bastante clásico, como lo describe John Langford .
En mi situación, hay 2 respuestas principales que un usuario puede tener a un anuncio: hacer clic (posiblemente varias veces) o no hacer clic. Tengo alrededor de 1,000 anuncios que puedo elegir. Vowpal Wabbit requiere una variable de destino en forma de action:cost:probability
para cada contexto. En mi caso, action
y probability
son fáciles de entender: action
es el anuncio que elegí para mostrar, y probability
es la probabilidad de elegir ese anuncio dada mi política actual para mostrar anuncios.
Sin embargo, tengo problemas para encontrar una buena manera de asignar mis pagos (clics) a los costos. Los clics son obviamente buenos, y los clics múltiples en el mismo anuncio también son mejores que los clics individuales en el mismo anuncio. Sin embargo, no hacer clic en un anuncio es neutral: en realidad no me cuesta nada más que la oportunidad perdida de un clic (estoy trabajando en un contexto publicitario extraño).
Algunas ideas que he tenido son:
- costo = -1 * signo (clics) + 0 * (no se hace clic)
- costo = -1 * clics + 0 * (sin clics)
- costo = -1 * signo (clics) + 0.01 * (no se hace clic)
- costo = -1 * clics + 0.01 * (sin clics)
En el caso de un vector de acción de (0, 1, 5, 0)
los costos de estas 4 funciones sería:
(0, -1, -1, 0)
(0, -1, -5, 0)
(0.01, -1, -1, 0.01)
(0.01, -1, -5, 0.01)
Obviamente, hay muchas otras formas de representar eso clicks=good
y, no clicks=bad.
en general, ¿cómo debo modelar los costos para los problemas de bandido contextuales en el vocal wabbit? ¿Está bien representar los beneficios como costos negativos, o debería volver a escalar todo de manera que todos los costos sean positivos? ¿Está bien que las acciones relativamente neutrales tengan un costo cero, o debería darles un pequeño costo positivo para impulsar el modelo hacia las acciones positivas?