Задача: рек-блок на маркетплейсе
На маркетплейсе с большим количеством пользователей не было персональных рекомендаций (только поиск). Нужно добавить блок товаров (персональные рекомендации).
Бизнес-требования
- Бизнес-цель: повышение количества продаж
- Данные: ~10 млн пользователей, 250 признаков
- Признаки: демографические (пол, возраст), стаж пользователя, количество приобретений по категориям, implicit-признаки, отзывы на товар, CTR, запрос на скидку
- Ограничения: вычислительная мощность системы
- Онлайн-метрики: CTR, CR, ROI, средний чек (по категориям)
- Масштаб: высокая частота изменения данных
Формулировка задачи ML
- Максимизировать CTR, CR, повысить средний чек
- Вход: признаки пользователей
- Выход: список релевантных продуктов
Модели
- User-based CF
- Item-based CF
- ALS
Метрики
Бизнес: количество продаж, revenue
Офлайн: Recall@k, Precision@k, MAP, NDCG, MRR
Онлайн: CTR, CR, ROI, средний чек (по категориям)
A/B тест
- Дрифт данных: отслеживание и обнаружение, мониторинг метрик, статистический контроль, детальное логирование
- Адаптация модели: переобучение
- Баланс групп
- Период тестирования: месяц
- Контроль внешних факторов: минимизировать влияние сезонных эффектов
- Анализ разрезов по сегментам: новые пользователи, активные, разносторонние
- Метрики: CTR
- Статистические тесты: t-тест (значимость изменения метрик)
- Положительный результат → разворачиваем на весь трафик
- Отрицательный результат → доп. анализ, доработка модели, откат
Deploy
- Feature Store, Airflow, Docker, CI/CD, FastAPI