Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ML-прайсинг_на_Lamoda__вошли_и_вышли__приключен...

 ML-прайсинг_на_Lamoda__вошли_и_вышли__приключение_на_20_минут__Слава_Цыганков.pdf

Lamoda Tech

October 09, 2024
Tweet

More Decks by Lamoda Tech

Other Decks in Programming

Transcript

  1. ML-прайсинг в Lamoda: «вошли и вышли, приключение на 20 минут»

    Вячеслав Цыганков Руководитель группы прогнозирования и оптимизации
  2. 2 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность,

    оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики
  3. Lamoda – одна из крупнейших e-commerce компаний в России в

    сфере Fashion & Lifestyle 17 млн MAU 4 000+ брендов 600 000+ товаров
  4. 4 Специфика. Закупка • Специфика Lamoda – для 35% ассортимента

    продавцом является сама Lamoda • Ранняя закупка ассортимента – как правило за 6+ месяцев до старта продаж • Есть только 10% процентов товаров, которые можно дозаказать в течение сезона
  5. 5 Специфика. Сезонность в Fashion • Два сезона: SS и

    FW (Spring/Summer и Fall/Winter) • Товары не переходят из сезона в сезон. Только небольшая часть товаров базового ассортимента (черные футболки, носки и д.р.), также товары без сезональности (косметика, дом) • Товар не продаётся много лет (нет статистики). Мода динамична. Тренды прошлого сезона могут быть не актуальны в новом сезоне • Цель на сезон – распродать бОльшую часть стока с максимальной эффективностью, а для этого нужно оптимальное управление скидками
  6. 6 Цены на Lamoda • Цена без скидки (черные цены).

    Устанавливается в рамках отдельного процесса и зависит от закупочной цены и курса для импорта • Цена после скидки (красная цена). Именно этой ценой мы хотим управлять • Цена после купона. Купоны действуют на ограниченный ассортимент или для разных промоактивностей • Скидка в зависимости от уровня лояльности клиента (процента и объёма выкупа)
  7. 7 Бизнес хочет от DS в ценообразовании • Установка цен

    в зависимости от рыночных условий и уровня спроса • Улучшение качества изменений и как следствие – увеличение прибыли • Оптимизация запасов, минимизируя затраты на хранение • Автоматизация процессов, освобождает время сотрудников для более важных задач • Оценка эффекта от изменения цены
  8. 8 Метрики, на которые ориентируется бизнес • Увеличение прибыли. Основной

    целью любого бизнеса является максимизация прибыли. • Увеличение выручки. В зависимости от целей компании, бизнесу может быть необходимо увеличение объема продаж. Получить кэш, навязать конкуренцию или не отстать от рынка. • Распродажа стока (селаут). Важной целью для бизнеса в fashion-индустрии является контроль остатков и их распродажа. • Запасы и логистика. Данные факторы являются ограничением, которые необходимо учитывать при установке цен.
  9. 9 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность,

    оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики
  10. 10 M L DS Бизнес Данные Прогнозирование продаж (эластичность) Прогнозирование

    сезональных коэффициентов Схема ML-решения Аппроксимация кривой эластичности Оптимизация скидок Настройки. Цели и ограничения задаваемые бизнесом
  11. 11 Эластичность S 2 S 1 D 1 D 2

    – это мера чувствительности одного показателя к изменению другого.
  12. Модель эластичности Используем CatBoost В качестве признаков в модели используются:

    • История продаж • Календарь • Данные о скидках, купонах • Данные о доступности • Атрибуты товаров на данных за 2 года. Уровень будущей скидки является ключевым признаком модели. От него зависит таргет – средние продажи за неделю. 12
  13. Будущая скидка – ключевой признак модели Модель должна сильнее учитывать

    скидку в процессе обучения ‘per_float_feature_quantization’: [f'discount:border_count=1024'] ‘feature_weights’: {‘discount’: 1.25} Без этих параметров на графике видно, что скидка учитывается более дискретно. Сохраняя паттерн управления скидкой человеком. 13
  14. Монотонность Кривая эластичности должна быть монотонно возрастающей по скидке Другими

    словами f(x)’ ≥ 0 ‘monotone_constraints’: {‘discount’: 1} Пик продаж большей части ассортимента приходится на начало сезона при низких уровнях скидок (это формирует ложное представление о зависимостях между скидкой и продажами) 14
  15. Распределение продаж В отличие от распределения Пуассона, которое фокусируется на

    количестве событий в заданном интервале времени, гамма-распределение сосредоточено на временных промежутках между этими событиями. 'loss_function': ‘Tweedie:variance_power=1.35' 15
  16. Аппроксимация Позволят создать из дискретного прогноза продаж CatBoost непрерывную функцию

    эластичности. Для оптимизации коэффициентов c0-c11 используем least_squares c0 + exp(c1) * x + exp(c2) * x ^ 2 + exp(c3) * x ^ 3 + exp(c4) * x ^ 2 * (1 + tanh(exp(c5) * (x + c6))) + exp(c7) * x ^ 2 * (1 + erf(exp(c8) * (x + c9))) + exp(c10) * erf(x * (x + exp(c11))) 16
  17. Аппроксимация 1. Залипание градиента (неизменность продаж от изменения скидки). Строгая

    монотонность 2. Монотонность (нет гарантий даже при настройке параметров CatBoost) 3. Проблема с объемом данных (81 точка на каждый товар при шаге скидки в 1%) 4. Гладкая непрерывная функция 5. Простота прогноза по формуле (в функциональном виде) 1 2 17
  18. 23 Ключевые метрики: не продажи, а деньги Выручка Цена товара

    * (1-Скидку) * Продажи Прибыль Выручка - Продажи * Цена закупки
  19. 26 Дополнительные ограничения на оптимизацию 1. Ограничения от категорийных менеджеров

    или РРЦ (рекомендованная розничная цена) 2. Ограничение на маржу каждого товара 3. Ограничение на шаг скидки за 1 раз 4. Ограничение на частоту изменения кидки 5. Запрет на скидки от 1 до 9% 6. Не ставить скидки на новинки 7. Не ставить цены на оффлайн ассортимент
  20. 27 Оптимизация через градиентный спуск Класс оптимизации наследуется от torch.nn.Module.

    В классе реализован метод forward для расчета функции потерь и метод backward для оптимизации скидок. Оптимизатор Adam. Все дополнительные ограничения внесены в данный класс и результаты оптимизации не требуют дальнейшей постобработки. В целевую функцию входят 2 критерия: 1. constraint_criteria = 𝑭 (цель по продажам – продажи, цель по выручке – выручка, …). Чем больше отклонение от целевых значений, тем больше критерий ограничений 2. maximization_criteria = 𝑭 (продажи, выручка, прибыль). Чем больше ключевые метрики, тем больше критерий максимизации. Если отклонение от целевых значений слишком большое, то maximization_criteria = 0 Целевая функция: loss = - maximization_criteria + constraint_criteria
  21. 28 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность,

    оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики
  22. 31 Тестирование Классические тесты на пользователях нам не подходят по

    нескольким причинам: 1. Ценовая дискриминация клиентов. Есть обходной путь с созданием акций на список пользователей (так делают наши конкуренты), но это работает только для зарегистрированных клиентов 2. Сложности с IT-инфраструктурой, цену используют множество сервисов. И доработки в них сильно затянут процесс внедрения 3. Варианты теста остаются зависимыми через общий сток
  23. 32 Тестирование Стратифицировано набираем парами товары, в тест и контроль,

    на основе совпадающих характеристик: • запасы • цены • история продаж (включая ключевые метрики) • атрибуты • сезональность Тест держим до конца сезона (долгосрочный) Таргетируемся в увеличение прибыли с сохранением продаж и выручки. Иначе говоря, тест должен заработать больше денег на том же объёме продаж
  24. 33 Эффект на прибыль +9.9% июль - август 2022 с

    декабря 2022 по 1 марта 2023 май - сентябрь 2023 +12% +15.5% +27% с декабря 2023 по 1 марта 2024
  25. 37 Схема решения Подготовка хранилища данных ML-часть (эластичность, сезональность) Подготовка

    датасета для оптимизации Оптимизация на текущих скидках Отправка на бэкенд данных для оптимизации Распределение товаров по разрезам Применение скидок User Оптимизация по ранее созданным разрезам Hadoop Изменение разреза или добавление Интерфейс готов Оптимизация на бэкенде новой стратегии VM
  26. 38 • Промо-моделирование: ◦ подбор товаров под акцию ◦ оценка

    эффекта от акции (дистилляция эффекта от акции) ◦ персональное промо • Автоследование стратегии с учётом плана продаж (автоприменение) • DL подходы для прогнозирования эластичности • Разработка альтернативных подходов к прогнозу до конца сезона (учёт сезональности) • Работа с данными о конкурентах Дальнейшие шаги
  27. 39 Выводы #2. ML-решение Эластичность, сезональность, оптимизация #3. Внедрение Тестирование,

    интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики Качественная продуктовая проработка ключ к достижению поставленных целей! Погружение в специфику предметной области увеличивает качество ML-решений! Этап внедрения продукта играет решающую роль в его жизненном цикле!