Как устроена архитектура факторов ранжирования в рантайме поиска Ozon

Инженер поиска описывает, как в рантайме вычисляются факторы ранжирования и как сервис o2-midway меняет порядок товаров в выдаче. Главная идея: факторы оформлены как DAG и поставляются через метасервис, чтобы быстрее экспериментировать и безопаснее выкатывать модели.

  • В поиске Ozon используется больше тысячи факторов ранжирования; новые факторы появляются ежедневно.
  • Сервис o2-midway получает товары от нижестоящих сервисов и перед ответом клиенту пересчитывает их порядок, включая скоры ML-моделей на каждый поисковый запрос.
  • Зависимости факторов представлены как направленный ациклический граф (DAG): для любой сортировки достаточно вычислить нужный подграф, а сам граф строится на старте приложения.
  • Добавление фактора в o2-midway описывается декларативно через input/output, а детали вычисления берёт на себя инфраструктура графа.
  • Проблема релиза для типовых факторов решается сервисом feature-meta-store: он хранит метаописания факторов и позволяет автоматически добавлять их в граф.
  • Для защиты продакшена описаны ревизии факторов для окружений и проверки новых моделей в ml-pipeline (перформанс и качество), отчёты сравнения с baseline и последующая раскатка через продакшен.

Почему это важно: Когда факторов и моделей много, ключевой сложностью становится управление зависимостями и скорость экспериментов. Описанная схема показывает, как ускорять изменения без релизов и при этом удерживать контроль качества и производительности. Для поискового ранжирования это напрямую связано с релевантностью выдачи и временем ответа.

На что обратить внимание: В тексте кэши упоминаются, но не рассматриваются, поэтому акцент сделан на вычислениях в момент запроса. Для типовых факторов и формул используется метаописание и валидация: при несовпадении зависимостей формула может быть отклонена ещё на этапе добавления в ревизию. Процесс продвижения модели в продакшен подразумевает точку контроля через отчёты, UI и отдельную раскатку с тестированием.

Читайте также

  1. Ваша LLM стримит в никуда: разбираемся, как работать с дисконнектами в FastAPI
  2. MVVM для курильщика: почему ваша ViewModel — это помойка на 2000 строк и как это исправить
  3. SoftMax: как нейросети превращают логиты в уверенные вероятности — разбор с примерами и математикой
  4. Позови оператора
  5. Как я пытался сжимать смыслы вместо байтов
Ключевые инсайты из новости (по версии ChatGPT)
  • Факторы ранжирования как DAG: вычисление подграфа под задачу сортировки: Факторы и их зависимости можно моделировать направленным ациклическим графом (DAG), где каждый фактор — узел, а ребро — зависимость по входам. Для разных режимов ранжирования достаточно вычислять только нужный подграф: например, «по цене» — один узел, «по релевантности» — несколько, а «по комплексному скору» — весь граф.
    [Архитектура]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!