Slide 1

Slide 1 text

ML-прайсинг в Lamoda: «вошли и вышли, приключение на 20 минут» Вячеслав Цыганков Руководитель группы прогнозирования и оптимизации

Slide 2

Slide 2 text

2 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность, оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики

Slide 3

Slide 3 text

Lamoda – одна из крупнейших e-commerce компаний в России в сфере Fashion & Lifestyle 17 млн MAU 4 000+ брендов 600 000+ товаров

Slide 4

Slide 4 text

4 Специфика. Закупка ● Специфика Lamoda – для 35% ассортимента продавцом является сама Lamoda ● Ранняя закупка ассортимента – как правило за 6+ месяцев до старта продаж ● Есть только 10% процентов товаров, которые можно дозаказать в течение сезона

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

8 Метрики, на которые ориентируется бизнес ● Увеличение прибыли. Основной целью любого бизнеса является максимизация прибыли. ● Увеличение выручки. В зависимости от целей компании, бизнесу может быть необходимо увеличение объема продаж. Получить кэш, навязать конкуренцию или не отстать от рынка. ● Распродажа стока (селаут). Важной целью для бизнеса в fashion-индустрии является контроль остатков и их распродажа. ● Запасы и логистика. Данные факторы являются ограничением, которые необходимо учитывать при установке цен.

Slide 9

Slide 9 text

9 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность, оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики

Slide 10

Slide 10 text

10 M L DS Бизнес Данные Прогнозирование продаж (эластичность) Прогнозирование сезональных коэффициентов Схема ML-решения Аппроксимация кривой эластичности Оптимизация скидок Настройки. Цели и ограничения задаваемые бизнесом

Slide 11

Slide 11 text

11 Эластичность S 2 S 1 D 1 D 2 – это мера чувствительности одного показателя к изменению другого.

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Монотонность Кривая эластичности должна быть монотонно возрастающей по скидке Другими словами f(x)’ ≥ 0 ‘monotone_constraints’: {‘discount’: 1} Пик продаж большей части ассортимента приходится на начало сезона при низких уровнях скидок (это формирует ложное представление о зависимостях между скидкой и продажами) 14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Аппроксимация Позволят создать из дискретного прогноза продаж 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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 Сезональность. Лето

Slide 19

Slide 19 text

19 Сезональность. Демисезон

Slide 20

Slide 20 text

20 Сезональность. Зима

Slide 21

Slide 21 text

21 Прогноз сезональности

Slide 22

Slide 22 text

22 Перенос прогноза сезональности на товар

Slide 23

Slide 23 text

23 Ключевые метрики: не продажи, а деньги Выручка Цена товара * (1-Скидку) * Продажи Прибыль Выручка - Продажи * Цена закупки

Slide 24

Slide 24 text

24 Ключевые метрики для 2-х товаров

Slide 25

Slide 25 text

25 Оптимизация с ограничениями (прибыль ≥ 2000 у.е.)

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

28 Что вы узнаете из доклада #2. ML-решение Эластичность, сезональность, оптимизация #3. Внедрение Тестирование, интерфейс управления, планы #1. Продуктовая часть Специфика fashion, взаимодействие с бизнесом, метрики

Slide 29

Slide 29 text

29 Внедрение

Slide 30

Slide 30 text

30 Внедрение

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

32 Тестирование Стратифицировано набираем парами товары, в тест и контроль, на основе совпадающих характеристик: ● запасы ● цены ● история продаж (включая ключевые метрики) ● атрибуты ● сезональность Тест держим до конца сезона (долгосрочный) Таргетируемся в увеличение прибыли с сохранением продаж и выручки. Иначе говоря, тест должен заработать больше денег на том же объёме продаж

Slide 33

Slide 33 text

33 Эффект на прибыль +9.9% июль - август 2022 с декабря 2022 по 1 марта 2023 май - сентябрь 2023 +12% +15.5% +27% с декабря 2023 по 1 марта 2024

Slide 34

Slide 34 text

34 Интерфейс. Разрезы с товарами под оптимайзером

Slide 35

Slide 35 text

35 Интерфейс. Создание разрезов

Slide 36

Slide 36 text

36 Интерфейс. Создание новой стратегии

Slide 37

Slide 37 text

37 Схема решения Подготовка хранилища данных ML-часть (эластичность, сезональность) Подготовка датасета для оптимизации Оптимизация на текущих скидках Отправка на бэкенд данных для оптимизации Распределение товаров по разрезам Применение скидок User Оптимизация по ранее созданным разрезам Hadoop Изменение разреза или добавление Интерфейс готов Оптимизация на бэкенде новой стратегии VM

Slide 38

Slide 38 text

38 ● Промо-моделирование: ○ подбор товаров под акцию ○ оценка эффекта от акции (дистилляция эффекта от акции) ○ персональное промо ● Автоследование стратегии с учётом плана продаж (автоприменение) ● DL подходы для прогнозирования эластичности ● Разработка альтернативных подходов к прогнозу до конца сезона (учёт сезональности) ● Работа с данными о конкурентах Дальнейшие шаги

Slide 39

Slide 39 text

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