J'utilise vowpal wabbit pour résoudre un problème de bandit contextuel . Je montre des publicités aux utilisateurs, et j'ai pas mal d'informations sur le contexte dans lequel la publicité est diffusée (par exemple, qui est l'utilisateur, sur quel site il se trouve, etc.). Cela semble être un problème de bandit contextuel assez classique, comme décrit par John Langford .
Dans ma situation, il y a 2 réponses principales qu'un utilisateur peut avoir à une annonce: cliquer (éventuellement plusieurs fois) ou ne pas cliquer. J'ai environ 1 000 annonces parmi lesquelles je peux choisir. Vowpal Wabbit nécessite une variable cible sous la forme de action:cost:probability
pour chaque contexte. Dans mon cas, action
et probability
sont faciles à comprendre: action
est l'annonce que j'ai choisi d'afficher, et probability
est la probabilité de choisir cette annonce compte tenu de ma politique actuelle de diffusion des annonces.
Cependant, j'ai du mal à trouver un bon moyen de mapper mes gains (clics) aux coûts. Les clics sont évidemment bons, et plusieurs clics sur la même annonce sont également meilleurs que les clics simples sur la même annonce. Cependant, ne pas cliquer sur une annonce est neutre: cela ne me coûte en fait rien d'autre que l'opportunité manquée d'un clic (je travaille dans un contexte publicitaire étrange).
Voici quelques idées que j'ai eues:
- coût = -1 * signe (clics) + 0 * (non cliqué)
- coût = -1 * clics + 0 * (non cliqué)
- coût = -1 * signe (clics) + 0,01 * (non cliqué)
- coût = -1 * clics + 0,01 * (non cliqué)
Dans le cas d'une action vecteur des (0, 1, 5, 0)
coûts de ces 4 fonctions serait:
(0, -1, -1, 0)
(0, -1, -5, 0)
(0.01, -1, -1, 0.01)
(0.01, -1, -5, 0.01)
Il existe évidemment de nombreuses autres façons de représenter cela clicks=good
et, no clicks=bad.
en général, comment dois-je modéliser les coûts des problèmes contextuels de bandit dans vowpal wabbit? Est-il acceptable de représenter les avantages comme des coûts négatifs, ou dois-je tout redimensionner de telle sorte que tous les coûts soient positifs? Est-il acceptable que des actions relativement neutres aient un coût nul, ou dois-je leur donner un petit coût positif pour pousser le modèle vers les actions positives?