⚖️ Offline vs Online Evaluation Gap in RecSys: Why an Offline Leader Can Fail an A/B Test
Немного более технический пост. Во всех компаниях, где я работал (или слышал от друзей из FAANG+ компаний), рано или поздно возникал один и тот же вопрос: как предсказать, что алгоритм, хорошо показавший себя на исторических данных, действительно улучшит метрики пользователей в продакшене? Это распространённая проблема в индустрии рекомендаций. Например, мы строим рекомендательную систему фильмов: есть 4 модели, каждая показывает высокий precision@10 оффлайн. Но нам-то важно улучшить реальное поведение — скажем, среднюю длительность просмотра. А между этими двумя видами метрик зевает разрыв
🧠 Почему оффлайн ≠ онлайн?
Данные оффлайн vs онлайн: Оффлайн-оценка идёт на залогированных исторических данных (часто полученных под старой моделью), а онлайн – это реальное поведение пользователей при работе новой модели. Онлайн взаимодействия включают эффект новизны рекомендаций, актуальный контекст и особенности интерфейса, чего нет в оффлайне. В результате offline метрики и online метрики могут не совпадать.
Метрики точности vs бизнес-метрики: Метрики типа Precision@K, NDCG@K, Recall@K и прочие оценивают точность ранжирования, но не всегда коррелируют с конечными метриками вроде CTR, watch time или retention. Например, один пользователь может кликнуть только самый первый рекомендованный элемент, а другой – два элемента из списка, но не с самых топовых позиций. У первого будет выше NDCG, у второго – больше кликов. Если бизнес-цель – количество кликов, то второй случай лучше, хотя оффлайн-метрика ранжирования этого не отразить.
Изменение поведения пользователей: Деплой новой модели сам по себе меняет поведение аудитории, и это не учитывается в оффлайновой оценке. Пользователи адаптируются к новым рекомендациям: могут начать по-другому реагировать на контент, иначе проводить время на сервисе. Более того, в A/B-тесте контрольная группа (старая модель) тоже не остаётся в вакууме – она обучалась на прошлых данных, а в онлайне сталкивается с изменением среды из-за присутствия новой модели. В Pinterest, например, заметили, что во время онлайн-эксперимента продакшн-модель пытается учиться от трафика, уходящего на тестовую модель, снижая разницу в результатах
Несоответствие целей оптимизации: Часто оффлайн-метрика – это proxy, который не напрямую оптимизирует то, что нам нужно онлайн. Например, рост ROC-AUC оффлайн не гарантирует снижение Cost-per-Acquisition онлайн, потому что AUC и CPA измеряют разное. В Pinterest выяснили, что даже при материальном улучшении AUC оффлайн невозможно с высокой уверенностью предсказать значимый выигрыш по CPA онлайн – разброс результатов слишком велик. Иными словами, выиграть по оффлайн-метрике не значит выиграть A/B-тест.
🔍 Что делать?
🗃 Логируй всё. Стабильно работающее продуктовое логирование – фундамент. Нужно сохранять оффлайн и онлайн-метрики, предсказания моделей, фичи и реальные реакции пользователей. Потом это позволит сопоставлять оффлайн-оценки с онлайном и учиться на каждом эксперименте. Для каждой модели нужно сохранять признаки и результаты, а затем любой чекпоинт модели можно прогнать на залогированных данных, воспроизводя трафик, чтобы выявить расхождения оффлайн vs онлайн. Кроме того, строить сервис, сравнивающий фичи, используемые при выводе рекомендаций и при логировании, чтобы сразу отловить рассинхрон и баги в данных. Такая система значительно ускоряет отладку и анализ результатов A/B тестов.
Post #9
390
- 🔥 8
- ❤ 2