🍫 Как в Яндекс Лавке сделали цены умнее
На связи Андрей Шевцов и Всеволод Парамонов, аналитики-разработчики в Яндекс Лавке. На Data Fest Siberia мы рассказывали, как построили алгоритмы для автоматического подбора цен в Лавке и как вообще пришли от ручного управления к ML-системе. Это небольшой пост по мотивам нашего доклада.
Изначально ценообразованием занимался ровно один человек: он вручную редактировал таблицу со всеми значениями. Наша задача заключалась в том, чтобы создать решение, которое в реальном времени обновляет цены и балансирует между двумя ключевыми метриками: выручкой и прибылью.
🅿️ Чтобы этого достичь, работу пришлось разбить на три основные части:
⚪️ Модель спроса. Мы использовали CatBoost, чтобы спрогнозировать, сколько товара купят в следующем периоде. Обучали модель на статистиках продаж, лаговых и категориальных фичах. Целевая переменная — логарифм прироста спроса, это снижает дисперсию, что хорошо сказывается на модели
⚪️ Расчёт эластичности. Нам было важно, как поменяется спрос при изменении цены в условиях зафиксированных неценовых переменных. Поэтому мы генерировали сетку стоимости вокруг текущих тарифов, с помощью CatBoost получали набор точек «спрос — цена» и по ним оценивали линейную регрессию, чтобы получить коэффициент ценовой эластичности для каждого товара
⚪️ Оптимизатор. На последнем этапе мы использовали оптимизатор, который находил вектор цен, исходя из полученных данных об эластичности
🅿️ Но обучать модель только на исторических данных было недостаточно
Цена достаточно дискретная величина, и её сложно отделить от влияния сезонности, погоды и других факторов. Поэтому нам нужен был контролируемый эксперимент.
Мы разбили дарксторы на кластеры и в течение 10 недель меняли цены по строгой схеме:
⚪️ В контрольной группе (кластер 0) цены выставлялись как обычно
⚪️ В остальных кластерах цены еженедельно сдвигались на −2, −1, 0, +1 или +2 шага от контрольной цены
⚪️ В среднем мы не завышали и не занижали цены, чтобы каждый товар за время эксперимента побывал во всех ценовых условиях и в каждый момент времени по всему ассортименту не было перекоса в понижение или повышение цен
Это позволило собрать качественные данные о реакции спроса и избежать просадки по клиентским и коммерческим метрикам.
В полной версии доклада мы рассказываем эту историю со всеми подробностями. Наше выступление будет полезно дата-сайентистам, ML-разработчикам и всем, кто работает в области ценообразования.
🔳 Ищите доклад на ютубе и в VK Видео. Там же можно посмотреть другие выступления яндексоидов, посвящённые, например:
🔛 Построению мультимодальных эмбеддингов товара для улучшения матчинга
🔛 Снижению нерелевантных показов тематического блока геопоиска в навигационном сценарии
🔛 Практическим аспектам претрейна мультимодальных LLM
🔛 Автоматизации разметки новостных запросов с помощью RAG
Подписывайтесь:
💬 @Yandex4ML
📹 @Y>andexML>