Разработка систем рекомендаций

Собираем рекомендательные системы: коллаборативная фильтрация, контентные признаки и ранжирование. Считаем офлайн-метрики и запускаем A/B, а не верим одной цифре.

Подбираем каждому пользователю товары и контент по его поведению.

Стоимость

от 2 000 000 ₽

за проект

Это нижняя граница проекта. Точную смету считаем после брифа: она зависит от объёма и числа интеграций.

Что входит

Возможности

Сигналы поведения

Собираем просмотры, покупки и поиск, а не только рейтинги.

Холодный старт

Новым пользователям и товарам даём рекомендации по контенту, пока не набрана история.

Ранжирование

Кандидатов отбираем дешёвыми методами за 12 мс, а порядок уточняет отдельная модель ранжирования.

A/B вместо веры

Офлайн-метрика — только фильтр: эффект подтверждаем онлайн-экспериментом.

Как мы работаем

От заявки до результата

  1. 1

    Аудит данных и цели

    Смотрим поток событий и выбираем цель метрики: клик, корзина или покупка.

  2. 2

    Схема признаков

    Фиксируем признаки пользователя и товара, договариваемся о холодном старте.

  3. 3

    Модель и ранжирование

    Обучаем отбор кандидатов и ранжирование, считаем офлайн-метрики как фильтр.

  4. 4

    A/B и запуск

    Запускаем онлайн-эксперимент, подтверждаем эффект и включаем на весь трафик.

Кому подходит

Проверьте, подойдёт ли вам

Подходит

  • Есть поток событий

    Просмотры, клики и покупки записаны: есть на чём обучать модель.

  • Каталог не из одного товара

    Чем шире выбор, тем больше пользы от ранжирования.

Не подходит

  • Мало трафика

    Без событий рекомендации вырождаются в популярное, и сложная модель не окупается.

  • Нет цели в метрике

    Клик или покупка? Без выбора метрики модель оптимизирует не то.

Практика

Что вы получаете

+18%

переходов из блока рекомендаций

Ранжирование подняло долю целевых переходов, а холодный старт закрывали контентные признаки.

+18% к переходам

Рост доли переходов

Ранжирование поднимает долю целевых переходов в блоке, и онлайн-эксперимент подтверждает эффект на живом трафике каталога.

12 мс

Отдача за миллисекунды

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

3 недели

Пилот за три недели

Пилот идёт три недели: собираем события, обучаем модель и запускаем онлайн-эксперимент на части трафика.

Как устроено

Механизм работы

  1. Кандидаты собираются дешёвыми методами

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

  2. Холодный старт закрывается контентом

    Холодный старт закрывается контентом: похожие товары, категории и профиль сессии дают разумную подборку новому пользователю, пока история поведения ещё набирается шаг за шагом.

  3. Обратная связь замыкается

    Обратная связь замыкается в цикл: свежие клики и покупки возвращаются в обучение, поэтому модель учитывает новое поведение и обновляет подборку каждый день.

  4. Разнообразие контролируется

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

Ограничения и цена

Где решение упирается

  • 01

    Петля популярности

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

  • 02

    Офлайн-метрика обманывает

    Рост качества сортировки даёт ориентир, а покупки проверяет онлайн-эксперимент. Офлайн-метрика обманывает: эффект видно только на живом трафике.

  • 03

    Смещённая разметка клика

    Пользователь видит то, что показала система, и учится на своих же показах. Смещённая разметка клика искажает обучение, поэтому добавляем случайные показы.

  • 04

    Разнообразие и ограничения

    Разнообразие удерживает интерес к каталогу и сохраняет выдачи широкими. Ограничение в ранжировании чередует категории, поэтому пользователь видит больше разных товаров.

Что закрывает система

Что закрывает система

Главная страница собирает подборку из истории пользователя, похожих товаров и свежих событий сессии.

Карточка товара дополняет выдачу сопутствующими позициями, которые покупатели выбирают вместе с текущей.

Рассылка и push подбирают товары под последние действия пользователя с учётом сезонности.

Поиск дополняет результаты похожими запросами и переранжирует их по ожидаемому клику.

Данные и признаки

Данные и признаки

События поведения собираются в поток: просмотры, корзины, покупки и поисковые запросы.

Признаки считаются по окнам: частоты, пары товаров и профиль пользователя за последние сессии.

Холодный старт закрывают контентные признаки: категория, бренд, цена и текстовое описание.

Метрики блока ведутся в дашборде: CTR, добавления в корзину и доля целевых переходов.

Стек

Технологии

Технологии, которые мы используем в работе, и их роль в проекте.

События и модели

События идут через Kafka, признаки считаются в ClickHouse, модели обучаются на PyTorch, инференс отдаёт Redis, а метрики — Grafana.

Собирает события поведения: просмотры и покупки доходят до обучения без потери порядка.Считает признаки по истории: частоты, пары товаров и профиль пользователя за окно.Обучение моделей подбора и ранжирования, включая тяжёлые последовательностные модели.Отдаёт готовые рекомендации за миллисекунды: держит задержку блока под нагрузкой.Показывает метрики блока и A/B: по ним видно онлайн-эффект, а не офлайн-цифру.
Оценка бюджета

Калькулятор стоимости

Это ориентировочный диапазон, а не коммерческое предложение. Точную смету подготовим после брифа: она зависит от объёма и числа интеграций.

Поверхности

3

Сложность

Realtime-отдача

Дополнительно

Поддержка

Первый год: обновления и мониторинг, ответ за 2 рабочих дня.

Услуга

Разработка систем рекомендаций

В смету входит работа команды. Оборудование, лицензии сторонних сервисов и командировки добавляем по согласованию.

Расчётная стоимость

2,45 млн. ₽

Срок работ

5 нед.

Вопросы

Частые вопросы

Что показывать новым пользователям?

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

Хватит ли офлайн-метрики?

Нет. Офлайн-метрика только фильтрует модели; эффект подтверждается онлайн-экспериментом.

Как избежать однообразия?

В ранжирование закладываем ограничение на разнообразие, иначе блок показывает одно и то же.

Сколько занимает пилот?

Пилот с A/B — три недели: сбор событий, модель и онлайн-эксперимент на части трафика.

Готовы обсудить задачу?

Оставьте заявку – вернёмся с предложением и предварительной оценкой.

Связаться с нами