Ich benutze Vowpal Wabbit , um ein kontextuelles Banditenproblem zu lösen . Ich zeige den Nutzern Anzeigen und habe einiges an Informationen über den Kontext, in dem die Anzeige geschaltet wird (z. B. wer der Nutzer ist, auf welcher Website er sich befindet usw.). Dies scheint ein ziemlich klassisches kontextuelles Banditenproblem zu sein, wie von John Langford beschrieben .
In meiner Situation gibt es zwei Hauptantworten, die ein Nutzer auf eine Anzeige haben kann: Klicken (möglicherweise mehrmals) oder Nichtklicken. Ich habe ungefähr 1.000 Anzeigen, zwischen denen ich wählen kann. Vowpal Wabbit benötigt action:cost:probability
für jeden Kontext eine Zielvariable in der Form von . In meinem Fall action
und probability
einfach herauszufinden: action
Ist die Anzeige, die ich geschaltet habe, und probability
ist die Wahrscheinlichkeit, dass ich diese Anzeige aufgrund meiner aktuellen Richtlinien für die Schaltung von Anzeigen auswähle.
Ich habe jedoch Probleme, eine gute Methode zu finden, um meine Auszahlungen (Klicks) auf die Kosten abzubilden. Klicks sind offensichtlich gut, und mehrere Klicks auf dieselbe Anzeige sind auch besser als einzelne Klicks auf dieselbe Anzeige. Kein Klick auf eine Anzeige ist jedoch neutral: Es kostet mich nichts anderes als die verpasste Gelegenheit für einen Klick (ich arbeite in einem merkwürdigen Werbekontext).
Einige Ideen, die ich hatte, sind:
- Kosten = -1 * Zeichen (Klicks) + 0 * (nicht angeklickt)
- Kosten = -1 * Klicks + 0 * (nicht angeklickt)
- Kosten = -1 * Vorzeichen (Klicks) + 0,01 * (nicht angeklickt)
- Kosten = -1 * Klicks + 0.01 * (nicht angeklickt)
Im Falle eines Aktionsvektors (0, 1, 5, 0)
wären die Kosten aus diesen 4 Funktionen:
(0, -1, -1, 0)
(0, -1, -5, 0)
(0.01, -1, -1, 0.01)
(0.01, -1, -5, 0.01)
Es gibt offensichtlich viele andere Möglichkeiten, dies darzustellen, clicks=good
und no clicks=bad.
wie sollte ich im Allgemeinen die Kosten für kontextbezogene Banditenprobleme in Vowpal Wabbit modellieren? Ist es in Ordnung, Vorteile als negative Kosten darzustellen, oder sollte ich alles neu skalieren, sodass alle Kosten positiv sind? Ist es in Ordnung, dass relativ neutrale Aktionen keine Kosten verursachen, oder sollte ich ihnen kleine positive Kosten geben, um das Modell in Richtung der positiven Aktionen zu treiben?