AI-персонализация поиска в e-commerce: ранжирование и конверсия

Заказчики уходят, когда поиск не понимает, что они ищут: каталог большой, а выдача одинаковая для всех. Мы разрабатываем персонализацию поиска в e-commerce под ключ — от данных до ранжирования. Результат — рост доли заказов из поиска и меньше пустых выдач.
Часто задаваемые вопросы

Почему персонализация поиска в e-commerce теряет конверсию

Значительная часть покупателей приходит в магазин не через каталог, а через строку поиска. Персонализация поиска в e-commerce — это не «умные подсказки», а управление порядком выдачи под конкретный запрос, профиль покупателя и состояние склада. Когда этот слой настроен слабо, потери возникают раньше, чем человек дойдёт до корзины.

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

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

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

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

Что меняется после внедрения: эффекты в измеримых величинах

Персонализация поиска измеряется не «умностью» модели, а изменением воронки. Метрики снимаем на одном и том же трафике до и после внедрения — иначе рост объясняется акцией или сезоном, а не ранжированием.

Доля заказов из выдачи

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

Время до релевантного ответа

Отклик держим за счёт кэша представлений запросов и предрасчёта частых формулировок, переранжирование укладываем в тот же бюджет времени. Поисковый слой на Elasticsearch отдаёт базовую выдачу, поверх которой работает ранжировщик — покупатель не ждёт, пока модель досчитает.

Устойчивость на сезонных пиках

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

Класс ошибок, который уходит

Раньше пустые запросы, опечатки и слишком общие формулировки приводили к выдаче «не то» или к пустой странице. Теперь такие запросы достраиваются и получают осмысленный набор товаров, а доля пустых выдач и повторных уточнений падает — это видно по логам, а не по ощущениям.

Способы персонализации: что подходит и чего не хватает

Способы персонализации различаются не движком, а источником сигнала: правило, написанное человеком, статистика по своим запросам и заказам или их комбинация. Что подойдёт — зависит от объёма трафика, однородности каталога и наличия истории поиска.

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

Вариант Когда подходит Ограничения
Ручные правила сортировки Небольшой каталог, узкая ниша, ассортимент меняется редко Не масштабируется: правила конфликтуют между собой, пересмотр после каждой закупки — вручную
Готовые фильтры и шаблонные блоки Каталог наполнен, истории запросов и заказов пока нет Одинаковая выдача для всех: не учитывает частотность, регион и поведение, не вытягивает близкие по смыслу запросы
Обучение на своих данных Есть поток запросов, клики, заказы и разметка релевантности Нужен объём для сходимости и контур переобучения; на редких запросах работает хуже правил
Гибридная схема Каталог растёт, ассортимент неоднородный, есть и правила, и данные Сложнее в поддержке: приоритеты слоёв, согласованность признаков, логирование решений

Крайние случаи, которые ломают схему

Холодный старт: новый товар или редкий запрос без кликов модель не поднимет, пока не наберётся статистика. До этого работает резервный слой — правило, товарный признак вроде наличия и срока поставки или словарь синонимов.

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

Этапы внедрения: от аудита данных до передачи решений

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

  1. Аудит данных. Логи запросов, доля запросов без результата, полнота атрибутов каталога, разметка событий. На шумных данных модель ранжирования учится предсказывать клики, а не покупки.
  2. Схема сигналов. Фиксируем, что доступно в момент запроса: текущая сессия, история покупок, наличие, цена, бренд. Отдельно — признаки, обновляемые в реальном времени, и те, что пересчитываются раз в сутки.
  3. Настройка ранжирования. Базовый порядок выдачи остаётся опорой, поверх — переранжирование верхней части списка, обработка опечаток и синонимов, ограничения по наличию.
  4. Проверка гипотез. Правило проверяем на доле трафика: доля запросов с кликом по товару, добавления в корзину, переходы в оформление. Раскатка постепенная, с выключателем на каждое правило.
  5. Передача проекта. Конфигурации, схема сигналов, метрики и регламент правок остаются вашей команде — развитие не требует постоянного подрядчика.

Критерии готовности на каждом этапе

  • Аудит — карта данных и список проблем с оценкой влияния на выдачу.
  • Схема сигналов — согласованы источники, признаки и частота обновления.
  • Ранжирование — правила воспроизводимы: есть конфигурация и тестовый стенд.
  • Гипотезы — прирост подтверждён на контрольной группе, решение зафиксировано.
  • Передача — ваши инженеры сами правят правила и читают отчётность.

Что остаётся у вас: конфигурации, схемы и регламенты

Всё, что мы настраиваем, остаётся в вашем контуре — не в закрытом кабинете подрядчика. Артефакты передаём в виде, пригодном для чтения, правок и передачи другому инженеру, чтобы персонализация поиска не зависела от конкретных людей.

  • Конфигурации ранжирования — веса сигналов, правила буста и затухания, порядок применения фильтров, лимиты на персонализацию по новым пользователям.
  • Схема сигналов — какие события собираются, из каких систем, с какой задержкой попадают в ранжирование и как связываются с карточкой товара.
  • Политики доступа — роли в команде, кому доступны выгрузки запросов и истории пользователей, сроки хранения, порядок обработки чувствительных данных.
  • Документация — методика оценки качества выдачи, разбор известных ограничений модели, журнал изменений с обоснованием каждого.
  • Регламент обновления — периодичность пересборки индексов, порядок выката новой версии, условия и процедура отката на предыдущую.
  • Дашборды качества — конверсия поиска, доля пустых выдач, доля запросов без подходящего результата, распределение позиций кликов.

Поддержка своими силами

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

Что происходит после передачи

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

Кейс: рост доли заказов после перестройки ранжирования

Интернет-магазин с ассортиментом около миллиона позиций: поиск — вторая по доле точка входа после каталога, но порядок выдачи держался на текстовой релевантности и общей популярности. Поведение и история покупателя на выдачу не влияли, а редкие формулировки и опечатки отдавали пустой экран: доля заказов из поиска — 7%, доля пустых запросов — 18%.

Ранжирование перестроили поверх Elasticsearch: базовая выдача осталась, поверх неё считаем поведенческие сигналы — клики, добавления в корзину, возвраты в категорию, — историю заказов и контекст текущей сессии. Пустые запросы закрыли словарём синонимов, исправлением опечаток и подстановкой ближайшей категории: вместо нулевого результата покупатель видит родственные товары с пометкой «похожие».

Метрики до и после

За шесть недель наблюдения доля заказов из выдачи выросла с 7% до 12%, доля пустых запросов упала с 18% до 6%, конверсия выдачи — в 1,6 раза. Поднялась и глубина сессии: доля запросов, после которых покупатель не переформулирует условие, выросла с 61% до 79%.

Сравнивали не «до и после» на глаз: два окна равной длины плюс контрольная группа, где ранжирование не трогали — в ней доля заказов за тот же период прибавила доли процента. Часть прироста объясняется сезонным спросом, поэтому итог фиксировали по парам недель и отдельно смотрели категории с разной сезонностью.

Что делать, если каталог уже подключён к готовому движку?

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

Вариант Когда подходит Ограничения
Дообучение платформы Каталог и запросы стабильны, накоплена история переходов и заказов Модель учится на том, что уже показывали: новинки и редкие запросы остаются в конце выдачи
Замена подхода Движок не отдаёт нужные сигналы, нужны свои признаки и свои веса Долгий цикл: свой индекс, свои правила, вывод на трафик только после сравнения качества
Гибридная схема Нужен прирост быстро и при этом контроль над ранжированием Сложнее эксплуатация: два контура, нужна синхронизация и единая точка отказа

Почему чаще берут гибрид

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

Перевод без простоя делаем долями. Сначала теневой режим, где новая логика считает выдачу, но не показывается покупателю, затем доля трафика, потом полный перевод. Откат — тем же переключателем, без повторного развёртывания и потери накопленной истории.

Технические вопросы: данные, холодный старт, откат

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

Какой объём данных нужен, чтобы ранжирование работало?

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

Магазин без истории заказов — что делать?

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

Как выдача ведёт себя в сезон?

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

Что с карточками, которых уже нет в каталоге?

Снятые позиции убираем из индекса и из обучающей выборки по расписанию: остаточная популярность иначе поднимает их в выдаче и даёт пустые переходы. Новым карточкам признаки считаем по атрибутам.

Можно ли откатить изменения ранжирования?

Да. Версии модели и набор правил храним отдельно, переключение — в конфигурации, без правки кода. Если метрики выдачи ухудшаются, возвращаем предыдущую версию за минуты.

Обсудим задачу: что нужно от вас для старта

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

  • Данные: обезличенная выгрузка поисковых запросов, показов, кликов и добавлений в корзину за период, которого хватит на обучение ранжирования, плюс описание полей и справочник товаров.
  • Целевые метрики: что считаем результатом — доля переходов в карточку, доля запросов с пустой выдачей, глубина просмотра; текущие значения нужны как точка отсчёта.
  • Точки интеграции: где вызывается поиск — сайт, приложение, внутренние сервисы; требования к времени ответа и поведению выдачи, когда часть сервисов недоступна.
  • Ограничения: правила показа товаров, промо-приоритеты, требования к обезличиванию данных и то, что менять в выдаче нельзя.
  • Технический контур: доступы для развёртывания и откатов, стенды, регламент выпуска изменений и нагрузочных проверок.
  • Сроки этапов: желаемая дата включения персонализации и окна, когда допустимо поэтапно открывать её на долю посетителей.

Опишите задачу в удобном виде — вернёмся с оценкой, планом работ и сроками этапов. Если части вводных пока нет, это не блокирует старт: соберём их вместе на технической встрече и сразу определим, какой объём данных закрывает первый этап.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139