web24.team

Почему персональные рекомендации не работают: сколько данных нужно для ранжирования и рекомендаций

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

«Давайте добавим персональные рекомендации» — одна из самых частых просьб к техническому партнёру, и почти всегда за ней стоит недооценка того, сколько данных для этого нужно. ML-модель ранжирования, обученная на десятке взаимодействий на товар, не находит закономерности — она запоминает шум и в проде ведёт себя хуже простой эвристики. Разница между «работает», «сомнительно» и «не сработает» здесь не вопрос вкуса, а вопрос арифметики: трафика, размера каталога и истории заказов достаточно — или нет.

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

Данные клиента

Уникальные визиты на сайт/в приложение за сутки
Для A/B-оценки
Реалистичная оценка для ранжирования — 10–20%
Для 1:1-персонализации
0 — если неизвестно
3,2
взаимодействий / SKU (в среднем)
1 059
взаимодействий / категорию
127 026
всего item-взаимодействий
22
дней до значимого A/B (при 15%)
Что можно строить
Эвристика: популярность + маржа + свежесть
Работает
Не требует истории заказов вообще — считается по каталожным и транзакционным метаданным. Работает с первого дня и покрывает 100% каталога, включая товары без единого заказа. Это база, на которой стоит всё остальное.
Ранжирование категорий
Работает
1 059 взаимодействий на категорию — достаточно для обучения ранжирования категорий (LTR или взвешенная эвристика).
«С этим товаром покупают» (basket analysis)
Работает
7 057 заказов достаточно для association rules (FP-Growth) — «с этим товаром покупают» будет находить реальные, а не случайные пары.
Персонализированное ранжирование товаров (LTR по всему каталогу)
Не сработает
3,2 взаимодействий на SKU — это в 16× ниже порога cold-start. Item-level ML-модель будет переобучаться на шуме. Используйте эвристику + basket analysis вместо неё.
Индивидуальная персонализация (1:1)
Не сработает
Данные о повторных клиентах не заданы. Без истории конкретного пользователя индивидуальная персонализация невозможна в принципе — заполните поля выше, если такие данные есть.
Контекстные бандиты / онлайн-обучение
Сомнительно
800 сессий/день — бандит будет работать, но медленно и шумно сходиться. Обычный A/B, скорее всего, надёжнее на этом объёме.
Важная оговорка. Метрика «взаимодействий на SKU» — это среднее по каталогу. В реальности распределение степенное (закон Парето): топ-товары наберут тысячи заказов, а длинный хвост — 0–2. Реальная доля товаров без всякой истории почти всегда выше, чем показывает среднее. Проверяйте это отдельным SQL-запросом на реальном распределении, а не полагайтесь только на калькулятор.
Сколько ждать статистически значимый A/B
эффект +10%
47 дней
эффект +20%
12 дней
эффект +30%
6 дней
При базовой конверсии 3,0% и 800 сессиях/день нужно 17 269 сессий суммарно (обе группы), чтобы отличить эффект +15% от случайных колебаний с 95% значимостью. Меньший трафик — эффект физически нельзя доказать в разумный срок, даже если модель действительно лучше.
Расчёты основаны на пороге cold-start ≈50 взаимодействий/SKU и стандартной формуле размера выборки для двух пропорций (95% значимость, 80% мощность).

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