Почему из 60 000 сессий для Hit@20 пригодились только 748: уроки работы с реальными данными
Нет записи о покупке в логах — значит, пользователь ничего не купил? На деле это лишь отсутствие данных, а не нулевая метка. Автор подготовила 60 000 сессий для оценки рекомендательной системы, но метрика Hit@20 посчиталась всего по 748 из них. Ошибка — в наивной трактовке отсутствия события как отрицательного примера.
На данных Coveo эта проблема заставила пересмотреть саму постановку задачи: цель, подготовку данных и обучение модели. В статье на простом примере показано, какие действия видит модель, откуда берутся нулевые метки и почему промахи отбора кандидатов должны оставаться в метрике. Все правила уже реализованы в проекте с графом товаров, LightGBM и локальным HTTP API.
Код и инструкция для воспроизведения доступны в репозитории. Это хороший пример того, как реальные данные вскрывают неочевидные допущения, которые могут сделать оценку модели бессмысленной.