Два этапа рекомендательного конвейера

Рекомендательная система в масштабах крупного e-commerce не может применять тяжёлую персонализированную модель ко всем миллионам товаров каталога — это слишком долго. Поэтому конвейер делится на два этапа:

  1. Candidate retrieval (первичная выборка) — быстро отбирает сотни кандидатов из полного каталога с помощью ANN-поиска, BM25, collaborative filtering или других лёгких методов.
  2. Reranking (переранжирование) — более точная модель берёт эти 100–500 кандидатов и расставляет их в оптимальном для данного пользователя и контекста порядке.
Каталог: 500 000 SKU
↓ Candidate retrieval (ANN, BM25)
Кандидаты: 300 товаров
↓ Reranking (gradient boosting / нейросеть)
Финальная выдача: топ-10 для виджета

Разделение позволяет балансировать между скоростью (retrieval) и качеством (reranking).

Что учитывает модель переранжирования

В отличие от первичной выборки, reranking-модель работает с богатым набором признаков:

Группа признаков Примеры
Пользовательские Affinity-профиль, история покупок, длина сессии
Товарные Маржа, наличие, рейтинг, популярность категории
Контекстные Устройство, время суток, текущая категория
Реляционные Насколько товар соответствует профилю пользователя
Бизнес-сигналы Продвигаемые SKU, акционные позиции

Модели: градиентный бустинг (LightGBM, XGBoost), нейросетевые ранкеры, или гибриды.

Бизнес-правила в переранжировании

Переранжирование — точка, где ML-персонализация встречается с бизнес-логикой. Есть два способа встраивания правил:

Hard constraints — применяются поверх модели:
— Товары out-of-stock всегда в хвосте выдачи
— Запрещённые к продаже позиции исключены полностью
— Обязательный буст приоритетных SKU

Soft constraints — через признаки в модели:
— Маржа как дополнительный признак — модель учитывает, но не всегда следует
— Сигналы свежести, трендовости — влияют с настраиваемым весом

Совет: не закладывайте слишком жёстких буст-правил на популярные товары — они уже хорошо ранжируются по персонализации. Буст имеет смысл для «недооткрытых» позиций с хорошей маржой, которые алгоритм недооценивает из-за недостатка исторических данных.

Диверсность как задача переранжирования

Реранкинг также решает задачу диверсности: если все топ-10 кандидатов — джинсы одного бренда, это не лучший опыт. Алгоритмы диверсификации (MMR — Maximal Marginal Relevance, DPP — Determinantal Point Processes) встраиваются в этот этап, балансируя релевантность и разнообразие выдачи.