
Привет, Хабр! Меня зовут Дмитрий Фролов, я ведущий разработчик в Центре компетенций 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) помогут избежать переплат и «слива» бюджета, обеспечивая его равномерное и результативное использование.
На этом у меня все. Возникли вопросы по работе репозитория — задавайте их в комментариях.