ML-рекомендации — это не «похожие товары из той же категории». Это модель, которая на основе паттернов поведения тысяч пользователей предсказывает, какой товар конкретный пользователь с наибольшей вероятностью добавит в корзину. Разница в конверсии между «похожими по категории» и реальными ML-рекомендациями может быть в 2–4 раза. ML-рекомендации в 3 раза эффективнее статических блоков похожих товаров. В Битриксе нет встроенного ML-движка, поэтому система строится из нескольких слоёв. По данным Яндекс.Метрики, персонализация даёт прирост конверсии в среднем на 15% — это подтверждает практика наших проектов. Клиенты экономят до 30% времени на подбор товаров благодаря персонализированным рекомендациям, а средний чек увеличивается на 20–30%.
Мы занимаемся настройкой ML-рекомендаций на 1С-Битрикс на протяжении 8 лет. За это время реализовали более 50 проектов для интернет-магазинов разного масштаба — от каталогов на 10 000 товаров до маркетплейсов с миллионами позиций. Сертифицированные специалисты Битрикс гарантируют корректную интеграцию любого ML-сервиса, будь то Retail Rocket, Яндекс.Персонализация или собственное решение на Python.
Как работает ML-рекомендация на Битриксе?
ML-модель не должна жить в PHP-коде Битрикса — обучение и инференс требуют ресурсов, несовместимых с веб-запросом. Правильная архитектура:
- Битрикс — собирает события поведения (просмотры, покупки, клики) и пишет их в очередь или базу данных
- ML-сервис (Python/FastAPI или готовое решение) — обучает модель на накопленных данных, отдаёт рекомендации по HTTP API
- Битрикс — запрашивает рекомендации у ML-сервиса и отображает в шаблоне
Какой ML-сервис выбрать для Битрикса?
| Сервис | Сложность интеграции | Контроль | Стоимость |
|---|---|---|---|
| Яндекс.Персонализация | Высокая (требуется Метрика + Реклама) | Низкий | По подписке (часть Яндекс.Бизнеса) |
| Retail Rocket | Средняя (готовый виджет) | Средний | По подписке |
| Собственный сервис на Python | Высокая (разработка с нуля) | Полный | Бесплатно (только ресурсы) |
Яндекс.Персонализация входит в экосистему Яндекса, требует передачи событий в Метрику и Яндекс.Рекламу. Без партнёрского доступа сложно настроить. Retail Rocket специализируется на e-commerce рекомендациях, есть готовый виджет для Битрикса — передача событий через JavaScript-трекер. Собственный сервис на Python даёт полный контроль, никаких зависимостей от сторонних платформ. Алгоритм: матричная факторизация (ALS через библиотеку implicit) или нейронные сети (NCF). Данные из b_user_behavior экспортируются в CSV, модель обучается офлайн раз в сутки, результаты записываются в Redis.
Передача событий в ML-сервис
При каждом просмотре товара или покупке Битрикс отправляет событие в очередь (Redis Pub/Sub, RabbitMQ или просто HTTP-запрос к ML-сервису):
// В шаблоне catalog.element $mlEvent = [ 'event' => 'view', 'user_id' => $GLOBALS['USER']->GetID() ?: ('anon_' . session_id()), 'item_id' => $arResult['ID'], 'timestamp' => time(), 'session_id' => session_id(), ]; // Асинхронная отправка без ожидания ответа $ch = curl_init('http://ml-service:8000/event'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($mlEvent), CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT_MS => 200, // Максимум 200ms — не блокируем рендеринг CURLOPT_NOSIGNAL => 1, ]); curl_exec($ch); curl_close($ch); Получение рекомендаций: кеш на Redis
ML-сервис возвращает список ID рекомендованных товаров для пользователя через REST API. Прямой запрос к ML-сервису при каждой загрузке страницы — неприемлемо. Кешировать на Redis с TTL 15 минут:
$redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $cacheKey = 'ml_recs_' . ($userId ?: 'anon_' . session_id()); $recommendedIds = $redis->get($cacheKey); if ($recommendedIds === false) { $response = file_get_contents( 'http://ml-service:8000/recommend?user_id=' . urlencode($userId) . '&limit=8' ); $recommendedIds = json_decode($response, true)['items'] ?? []; $redis->setex($cacheKey, 900, json_encode($recommendedIds)); } else { $recommendedIds = json_decode($recommendedIds, true); } Как решить проблему холодного старта?
Для пользователей без истории ML-модель не применима. Fallback-стратегия: показываем популярные товары на основе статистики заказов за последние 30 дней. Как только пользователь накопит 5+ событий (просмотры, клики), система автоматически переключается на ML-рекомендации. Если ML-сервис временно недоступен, снова падаем на популярные — такой дублирующий механизм обеспечивает стабильность рекомендаций. Кеш популярных товаров обновляется каждые 15 минут.
Что входит в настройку ML-рекомендаций
- Аудит текущей архитектуры Битрикса (производительность, кеширование, инфоблоки)
- Выбор и настройка ML-сервиса (готовый или собственный)
- Настройка сбора событий (просмотры, покупки, корзина)
- Разработка REST-маршрута для рекомендаций
- Кеширование рекомендаций (Redis)
- Fallback-логика для холодного старта
- Тестирование и A/B-тест конверсии
- Мониторинг и поддержка 2 недели
Результат: документация по архитектуре, доступы к ML-сервису, обучение ваших разработчиков, гарантия 3 месяца на код. Закажите консультацию — мы оценим ваш проект за 1 день и подберём оптимальное решение. Свяжитесь с нами для детальной оценки.
Сравнение: ML-рекомендации vs базовые cross-sells
| Параметр | Базовые cross-sells | ML-рекомендации |
|---|---|---|
| Конверсия | 1–3% | 5–12% |
| Персонализация | Нет | Полная (под каждого пользователя) |
| Обновление | Ручное (категории) | Автоматическое (раз в сутки) |
| Холодный старт | Не нужен | Требуется fallback |
| Нагрузка | Низкая | Требует Redis и отдельного сервиса |
ML-рекомендации показывают конверсию в 2–4 раза выше. Наш опыт: на одном проекте с каталогом 50 000 товаров после внедрения Retail Rocket выручка с рекомендаций выросла на 34% за месяц. Получите консультацию — подберём оптимальное решение под ваш бюджет и требования.







