ML-кейс компании X5Digital (динамическое ценообразование)
Нашему выпускнику на собеседовании с командой предложили интересный кейс с историей.
У доставки еды возникает проблема: когда клиентов очень много, приложение показывает «повышенный спрос, время ожидания увеличено». Клиент может уйти к конкурентам или просто дойти до магазина сам. Итого потеря денег и лояльности.
Как решали без ML
Сначала аналитики через A/B-тесты вручную подбирали для каждого магазина матрицу цен доставки при разных уровнях загруженности и порогах корзины. Похоже не самый удачный подход: данные быстро устаревают - магазин расширился, радиус доставки изменился, и всю матрицу надо пересчитывать заново. Долго, нудно и негибко.
Как решили с помощью ML
Применили концепцию обучения с подкреплением (Reinforcement Learning). Без сложных агентов, но сама логика такая:
Среда - система доставки.
Состояние (State) - текущая загруженность курьеров и сборщиков.
Действие (Action) - на сколько процентов увеличивать цену доставки при высоком спросе.
Reward (вознаграждение) = c × РТО – (1 – c) × CTD
Разберём компоненты:
• РТО - розничный товарооборот (выручка от проданных товаров). Хотим её растить.
• CTD - Click to Delivery, быстрота доставки. Если обещали 30 минут, а доставили за 60, CTD = 2 → это плохо. Если за 15 минут, CTD = 0.5 → отлично. Чем CTD меньше, тем лучше, поэтому в формуле вознаграждения перед CTD стоит минус: большое CTD штрафует reward.
• c - весовой коэффициент баланса. При c → 1 приоритет на выручке, при c → 0 - на скорости доставки. Это tradeoff, который бизнес настраивает под свои цели.
Для предсказания reward ввели функцию Q(s, a) (назвали так условно, это не из Q-learning). Она обучается на исторических данных: по текущей загруженности и проценту наценки модель прогнозирует, какое вознаграждение мы получим. Затем для каждого периода времени выбирается наилучшее действие: a = argmax Q(s, a). То есть модель сама решает, насколько повысить цену, чтобы максимизировать reward.
Итог
Сначала внедрение привело к тому, что РТО немного просел (на несколько процентов), а CTD улучшилось: доставка стала быстрее, но выручка упала. Затем подобрали гиперпараметр c, дообучили модель - и РТО вернулся к исходному уровню, при этом CTD остался ниже изначального. Выручка не изменилась, а эффективность доставки выросла. Это прямой профит: клиент не уходит к конкурентам, растут LTV и Retention, что критически важно для бизнеса.
Вывод
ML в этом кейсе не просто «делает прогнозы», а автоматически адаптирует ценообразование к меняющейся загрузке, избавляя от ручного пересчёта матриц. Компаниям всё чаще нужны специалисты, способные связать математику с реальной бизнес-метрикой. Кстати, на нашем курсе ML-про можно разобраться с динамическим ценообразованием на практике - рекомендую!
Подписаться: @zadachi_ds
3.7K ·