Я використовую vowpal wabbit для вирішення контекстно-бандитської проблеми . Я показую рекламу користувачам, і я маю досить небагато інформації про контекст, у якому відображається реклама (наприклад, хто такий користувач, на якому веб-сайті вони перебувають тощо). Це, здається, є досить класичною контекстуальною бандитською проблемою, як описав Джон Ленгфорд .
У моїй ситуації є 2 основні відповіді, які користувач може мати на оголошення: натискання (можливо, кілька разів) або не натискання. У мене є близько 1000 оголошень, між якими я можу вибрати. Vowpal Wabbit вимагає змінної цілі у вигляді action:cost:probability
для кожного контексту. У моєму випадку action
і probability
їх легко зрозуміти: чи action
є оголошення, яке я вибрав для показу, іprobability
є ймовірність обрати це оголошення, враховуючи мою діючу політику щодо показу оголошень.
Однак у мене виникають проблеми з придумуванням хорошого способу відобразити мої виплати (кліки) на витрати. Кліки, очевидно, хороші, і кілька кліків на одне оголошення також краще, ніж один клік на одне оголошення. Однак не натискання на оголошення нейтральне: воно насправді не коштує нічого, крім упущеної можливості для клацання (я працюю в умовах дивної реклами).
Деякі ідеї у мене були:
- вартість = -1 * знак (кліки) + 0 * (не натиснуто)
- вартість = -1 * кліків + 0 * (не натиснуто)
- вартість = -1 * знак (кліки) + 0,01 * (не натиснуто)
- вартість = -1 * кліків + 0,01 * (не натиснуто)
У випадку вектора дії (0, 1, 5, 0)
витрати на ці 4 функції будуть:
(0, -1, -1, 0)
(0, -1, -5, 0)
(0.01, -1, -1, 0.01)
(0.01, -1, -5, 0.01)
Очевидно, що існує багато інших способів представити це, clicks=good
і no clicks=bad.
взагалі, як я можу моделювати витрати на контекстуальні проблеми з бандитами у ваббі vowpal? Чи добре представляти вигоди як негативні витрати, або я повинен змінити масштаб все, щоб усі витрати були позитивними? Чи нормально, щоб відносно нейтральні дії мали нульову вартість, або я повинен дати їм невелику позитивну вартість, щоб підштовхнути модель до позитивних дій?