Сезонность, переобучение и A/B тест поискового ranker
Как учитывать сезонность в поиске и как запускать новую модель в online-эксперимент?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Сезонность ловят свежими окнами, time features, регулярным retraining и slice-метриками по категориям/запросам. A/B запускают с primary metric, guardrails, MDE, ramp-up и проверкой SRM/баланса групп.
Полный разбор
В маркетплейсе сезонность проявляется в запросах, наличии товаров, цене, промо и поведении пользователей. Модель можно поддерживать свежими training windows, time/category features, регулярным переобучением и отдельными правилами для сезонных категорий. Важно смотреть slice-качество: зимние товары, праздники, back-to-school, локальные промо.
Перед A/B фиксируются primary metric и guardrails. Например, primary - purchase conversion или search GMV, guardrails - latency, zero-result rate, complaints, seller fairness, refunds. MDE и длительность считаются заранее, чтобы не остановить тест на шуме.
Rollout лучше делать постепенно: shadow, canary, 1-5%, затем больше. Во время теста проверяются SRM, баланс групп, стабильность логирования и отсутствие деградации на критичных категориях.
Теория
Сезонность - это drift во времени; ее нельзя чинить только одной offline-валидацией.
Типичные ошибки
- Учить модель на старом периоде и не проверять свежие категории.
- Останавливать A/B без расчета мощности и MDE.
- Не смотреть guardrails по latency и zero-result rate.