Привет, Хабр! Меня зовут Дмитрий Фролов, я ведущий разработчик в Центре компетенций Data Science МТС Web Services. За каждым показом онлайн-рекламы стоит очень сложный механизм. Одно из его ключевых понятий — Real-Time Bidding (RTB). Это аукцион онлайн-рекламы, где решается, какое объявление будет показано пользователю на определенном веб-сайте или в приложении. Особенность RTB — необходимость максимально быстро принять решение, для чего системы обучаются с помощью технологии reinforcement learning (RL).
Это достаточно сложная задача: доступных материалов по ней не так много и непонятно, с какой стороны подступиться. Вместе с коллегами мы собрали репозиторий, который может помочь разработчикам погрузиться в специфику онлайн-аукционов. Он содержит датасет с данными RTB, подборку теоретических материалов, симулятор аукционов и примеры работающих RL-алгоритомов. Все подробности и ссылки — под катом.
СодержаниеВ чем сложность Real-Time Bidding
Почему оптимизация ставок — это сложнее, чем может показаться?
Почему знание домена оказывается важнее алгоритмов
Репозиторий для изучения рекламного домена
Структурированная подборка релевантных материалов
Практические инструменты
Примеры реализации алгоритмов на реальных данных
Варианты работы
Ежедневно в мире проводится более 500 млрд RTB-аукционов, где рекламодатели соревнуются за показ объявлений. В RTB участвуют три типа платформ:
Supply-Side Platforms (SSPs) — представляют интересы издателей (сайтов/приложений).
Ad Exchanges — проводят аукционы.
Demand-Side Platforms (DSPs) — оптимизируют ставки для рекламодателей, анализируя bidstream (любые данные, связанные с запросом ставки издателя).
Ошибка в ставке всего на 1% может привести к потере тысяч клиентов или сливу бюджета. Оптимальные решения нужно рассчитать за 80–120 мс в условиях неопределенности, когда правила аукциона, поведение конкурентов и интересы пользователей меняются в реальном времени.
DSP-платформа, выступая агентом рекламодателя, за указанные выше 80–120 мс решает две задачи:
Прогноз ценности:
Оценка вероятности клика (CTR), конверсии или другого KPI (например, скачивания приложения).
Учет контекста: время суток, геолокация, история взаимодействий
Оптимизация ставки:
Расчет цены покупки (bid price), максимизирующего ROI (Return on Investment) в рамках интервального или полного бюджета рекламной кампании.
Управление равномерным распределением бюджета во времени (pacing).
Скорость и масштабирование: очень мало времени на решение при большой нагрузке — может идти тысячи запросов в секунду. Надо иметь в виду, что помимо алгоритма оптимизации ставок есть еще и иные скоринговые модели, а также каскад фильтров.
Динамическая конкуренция: поведение других DSP (например, стратегии bid shading — искусственное занижение ставок) меняет «правила игры».
Нестационарность данных: паттерны поведения пользователей и рыночные тренды эволюционируют со временем.
Эти сложности накладывают ограничения на традиционные методы:
Статические правила (например, фиксированный % от CTR) не адаптируются к изменениям.
Модели на основе MAB (Multi-Armed Bandit) плохо масштабируются при многомерном контексте.
Оптимизация «в лоб» (gradient descent по историческим данным и так далее) игнорирует долгосрочные эффекты.
Например, статичное правило выставления ставок, откалиброванное под утренний трафик, может привести к перерасходу бюджета вечером, когда конкуренция выше, а пользователи ведут себя по-другому.
Эти ограничения можно преодолеть с помощью RL-агентов. Они обучаются в процессе взаимодействия со средой, адаптируются к меняющимся условиям, учитывают долгосрочные последствия и работать в многомерном контексте.
Просто «взять RL-алгоритм из коробки» — недостаточно и даже рискованно. Эффективность RL в RTB зависит от глубокого понимания специфики аукционов, а незнание тонкостей может привести к финансовым потерям.
Агент, обученный в симуляции аукциона «первой цены», в реальном аукционе второй цены ставил ровно на цену клика, не понимая, что выигрышная ставка определяется второй по величине ставкой. В итоге он постоянно переплачивал, тогда как учет правила «второй цены» позволил бы скорректировать стратегию ставок и повысить эффективность. Помимо этой существуют и другие тонкости, которые надо обязательно учитывать:
Распределение бюджета в течение суток (прайм-таймы по часовым поясам и так далее).
Разные типы аукционов (в случае аукциона второй цены ставка победителя связана с распределением ставок, а не только с собственной ожидаемой ценностью показа).
Шум в данных или фейковые запросы.
Проектирование reward function (компромиссы с дешевым выкупом кликов и плохим качеством трафика, переплата при фокусе на конверсиях и недокрут по объемам).
Необходимость понимать логику принятия решений, касающихся ставок. Из-за этого нужны методы эвристики или интерпретации результат.
Динамику конкуренции. Когда все вокруг пытаются урвать свою выгоду за счет конкурентов.
Мы с коллегами заметили, что потенциальные возможности RL-агентов не могут раскрыться из-за нехватки глубоких доменных знаний. Чтобы помочь разработчикам, работающим с RL, мы собрали для них обучающий репозиторий, который поможет быстрее и глубже погрузиться в специфику онлайн-рекламы и избежать дорогостоящих ошибок. Здесь можно найти реализации RL-алгоритмов, адаптированных под RTB (включая работу с бюджетом, шумом данных и требованиями скорости), и теоретические материалы (исследования и примеры).
Наша цель — создать среду для глубокого погружения в домен, где можно изучить теорию, экспериментировать с алгоритмами и анализировать их поведение в контролируемых условиях. Репозиторий можно использовать как образовательное пособие, доработать и сделать бенчмарком для разработки новых подходов к проблеме или платформой для воспроизводимых исследований. Он включает в себя три основные части.
В репозитории собрана теория по RL: классические учебники (Sutton & Barto), продвинутые курсы (Berkeley CS285), специализированные материалы по Multi-Armed Bandits (MAB) для аукционов.
А также специфичные для RTB работы по прогнозированию ландшафта ставок, оптимизации бюджета, стратегиям биддинга и анализу аукционных механизмов:
Методы bid landscape forecasting (Functional Bid Landscape, Deep Landscape Forecasting).
Анализ MAB-систем с ограничениями (Multi-Armed Bandit with Budget Constraint).
Анализ аукционов второй цены (Regret Minimization for Reserve Prices).
В репозитории можно найти симулятор аукциона на базе Gymnasium, имитирующий динамику RTB-среды с конкурирующими участниками. Он поддерживает различные типы аукционов (первая/вторая цена / VCG), включает параметры для настройки шума данных и бюджетных ограничений.
У него достаточно простой код, и его можно кастомизировать под свои нужды, например, добавив комиссии за операции или переделав логику конкуренции.
В репозитории можно найти агенты на основе DQN, SAC, TD3 с адаптацией под RTB-ограничения. Также есть примеры агентов с простой логикой, которые можно использовать для тестов адаптивности своей стратегии. Например, сделать пару агентов, делающих ставки по верхней границе и посмотреть, как сработает ставка на оптимальность и как будет повышаться ставка со временем.
В качестве реальных данных мы предлагаем запускать симулятор на обработанном сэмпле из датасета iPinYou для одной из рекламных кампаний.
Обучающий репозиторий можно использовать для экспериментов: тестировать reward function, заводить цели в state агента и различные эвристики для мониторинга (ведь трафик-менеджер должен понимать, что все будет нормально и без его ведома), модифицировать окружение и логику принятия решений.
Ниже — пример сэмпла датасета, на котором можно проверить работоспособность алгоритмов. Этот типизированный openRTB-request из датасета iPinYou:
{'click': 0, 'weekday': 4, 'hour': 0, 'bidid': '83d080b8bbb0be814ed561c407a1cc13', 'timestamp': 20130613000101634, 'logtype': 1, 'ipinyouid': 'VhTdLndvPoTLQYE', 'useragent': 'windows_theworld', 'IP': '124.225.144.*', 'region': 3, 'city': 8, 'adexchange': 2, 'domain': 'DFpETuMEMNF_jdph5SqfNX', 'url': '2e344da2047053a776bf9ff062d480c3', 'urlid': nan, 'slotid': '192717203', 'slotwidth': 336, 'slotheight': 280, 'slotvisibility': 2, 'slotformat': 0, 'slotprice': 5, 'creative': '77819d3e0b3467fe5c7b16d68ad923a1', 'bidprice': 300, 'payprice': 89, 'keypage': 'bebefa5efe83beee17a3d245e7c5085b', 'advertiser': 1458, 'usertag': '13866,10075,10024,10076,10063,10120,10129,10115,10146,10111', 'nclick': 0, 'nconversation': 0, 'pCTR': 0.386340036790104},
Часть алгоритмов (базовые UCB / TS / неприменимые к нестационарным средам приведены в качестве заглушек для создания конкуренции агентам).
Если вы работаете или изучаете RL, то найдете в нашем репозитории теоретические материалы и готовые инструменты для погружения в предметную область. С его помощью можно предотвратить дорогостоящие ошибки: экспериментировать и тестировать стратегии в контролируемой симуляции, избегая финансовых потерь на реальных аукционах из-за неучтенных нюансов.
Если в ваших продуктах интегрированы подобные системы, то материалы из нашего репозитория позволят разрабатывать более адаптивные и умные системы ставок, максимизирующие ROI за счет учета долгосрочных эффектов и динамики рынка. Оптимизация ставок и распределения бюджета (pacing) помогут избежать переплат и «слива» бюджета, обеспечивая его равномерное и результативное использование.
На этом у меня все. Возникли вопросы по работе репозитория — задавайте их в комментариях.
Источник


