Получи случайную криптовалюту за регистрацию!

Как тестировать рекомендательные системы Под одним из прошлых | ML for Value

Как тестировать рекомендательные системы

Под одним из прошлых постов было много вопросов о тестировании рек систем: как не выкатить на прод рекомендации в обратном порядке, например)

Я на практике использовал такие тесты:

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 минуты своего времени и посмотрите рекомендации модели для себя и своего соседа на адекватность перед выкаткой. Это спасет вам много времени и денег