Как тестировать рекомендательные системы
Под одним из прошлых постов было много вопросов о тестировании рек систем: как не выкатить на прод рекомендации в обратном порядке, например)
Я на практике использовал такие тесты:
1. Полнота данных
70% ошибок максимально глупые: упала база и не залились данные. Сменился год с 21 на 22 и у вас полетела часть запросов
Решается обычным assert-ом на кол-во строк, уникальных дат/юзеров/товаров
2. Качество фичей
Есть тысяча статей про distribution shift, детекцию выбросов и т.д., но обычно проблемы куда проще. Использовать np.mean вместо np.nanmean и получить 90% NaN в фиче? Иметь средние чеки в 1млрд руб, хотя реальные чеки до 5-10к? Вот с чем стоит побороться в первую очередь!
Решается также обычным assert-ом
3. ML и бизнес метрики
Assert-ы на ml метрики на тестовой выборке. Если позволяет инфра, то каждое переобучение модели сопровождать мини-АВ
4. Бизнес-адекватность
У 70% пользователей в топе рекомендаций рестораны с рейтингом < 3.0? Популярные товары не в топе? Тоже стоит с этим побороться
Лучше классическими автотестами на real-time / батчевых запросах к модели
Обычно хватает ~1к запросов и базовой логики с теми же assert-ами
5. Смотреть глазами
Никто не любит это делать, но потратьте 3 минуты своего времени и посмотрите рекомендации модели для себя и своего соседа на адекватность перед выкаткой. Это спасет вам много времени и денег 😅
Post #213
2.68K
Forwarded from ML for Value / Ваня Максимов
Telegram ML for Value Lessons learned Наткнулся на отличную статью от Андрея Лукьяненко про опыт, полученный за 10 лет в DS. Подписываюсь под каждым пунктом! Что из неочевидного хочу добавить от себя 1. Ваш руководитель / старший товарищ - это ваш "ресурс" Я глобально верю…- 🔥 4