OzonПоискRecSys3 мин

Почему Ozon стал ранжировать предложения, а не только товары

Скидка и ускоренная доставка меняют привлекательность товара, но накопленная статистика по его ID продолжает описывать старые условия. Поведенческие признаки привязали к состоянию цены и доставки, а историю переносят между близкими состояниями с весами.

Статья · на русском

От товара к предложению: как Ozon учитывает цену и доставку в ранжировании

Станислав Ким · Опубликовано: 28 февраля 2026 г.

Цена как признак не исправляет старые счётчики

У модели уже были цена и срок доставки. Проблема оставалась в просмотрах, кликах и заказах: они агрегировались по item_id, смешивая дорогие и дешёвые периоды жизни одной карточки.

Авторы вводят offer_id — сочетание товара с ценовым сегментом и сегментом скорости доставки. Для каждого типа товара берут десять интервалов по каждому измерению. Новое состояние получает собственную поведенческую статистику.

Как цена и срок доставки определяют предложение.

Как цена и срок доставки определяют предложение.

Источник: Иллюстрация из оригинала
Этот фрагмент в оригинале

Как переносить историю без полного обнуления

Матрица W задаёт вес переноса между сотней возможных сочетаний цены и доставки. Близкие состояния получают больше общей истории, далёкие — меньше. Веса применяют к исходным счётчикам, из которых затем строятся признаки.

Та же идея работает для аналогов: новая карточка идентичного товара может использовать взвешенные события других продавцов. Для нового товара без точного дубля автор описывает перенос от соседей категории. Это начальный статистический сигнал, а не утверждение, что новая карточка уже совершила эти продажи.

Перенос информации между близкими предложениями.

Перенос информации между близкими предложениями.

Источник: Иллюстрация из оригинала
Этот фрагмент в оригинале

Почему есть два режима пересчёта

Примерно раз в 28 дней Init обновляет границы интервалов, состояния и статистику. В остальные дни более лёгкий Update добавляет новые товары и свежие события. Так полный пересчёт не приходится выполнять ежедневно.

Границы сглаживают: небольшие колебания не должны постоянно перебрасывать карточку между состояниями и дёргать выдачу. Изменение условий нужно отразить, но шум оценок не должен создавать новую историю каждый день.

Этот фрагмент в оригинале

Что произошло с новинками

Перед запуском анализировали товары моложе двух недель, у которых уже была активность. После внедрения признаков автор сообщает +5% заказов, +11% добавлений в корзину и +19% просмотров карточек новинок. Среднее время до первого взаимодействия почти не изменилось.

В глобальных метриках двух последовательных A/B-тестов указаны +0,4% конверсии поисковой сессии в заказ и +0,9% GMV на пользователя. Эти показатели отличаются от изменений доли новинок и относятся к своим базам сравнения.

Результаты сравнения для новых товаров.

Результаты сравнения для новых товаров.

Источник: Иллюстрация из оригинала
Этот фрагмент в оригинале