Архитектура и ранжирование
Поиск на маркетплейсе — это сложная система, состоящая из множества компонентов. Важным обновлением стал переход на собственный сервис ранжирования. Теперь инференс моделей происходит в отдельном сервисе, а не в плагине ElasticSearch. Это дает разработчикам больше свободы в реализации новых функций. Сервис поддерживает формат ONNX, что позволяет добавлять дополнительные вычисления в граф модели.
Для подготовки данных используются инструменты Airflow и Spark. Они отвечают за сбор признаков для ранжирования, мониторинг параметров моделей и ежедневную разметку выдачи. Все изменения в системе проходят через A/B-тесты, где оцениваются не только поисковые метрики, но и бизнес-показатели: конверсия в корзину и заказ, а также общие метрики маркетплейса.
Умный опечаточник
Прежде чем запрос попадет в основной индекс, его проверяет специальный сервис — опечаточник (speller). Это критически важно: если пользователь введет слово с ошибкой, например «щина» вместо «шина», стандартный поиск может не найти подходящие товары. Даже векторный поиск не всегда справляется с такими случаями.
Классический опечаточник работает по схеме: определение наличия ошибки, подбор кандидатов из словаря и выбор лучшего варианта. В Uzum словарь замен обучается на данных маркетплейса с учетом русского и узбекского языков. Однако чисто текстовые признаки не всегда точны. Бывали случаи, когда система исправляла слово «стуль» на «сталь» вместо «стул», потому что с точки зрения текста эти варианты были равнозначны.
Чтобы решить проблему, команда внедрила градиентный бустинг, который учитывает не только текст, но и внешние данные: частоту запроса, количество покупок и добавлений в корзину по этому слову. Это позволило на 8% точнее исправлять запросы и на 50% снизить количество неверных исправлений, что привело к росту конверсии в заказ на 1%.
Система подсказок
Для удобства пользователей используются три вида подсказок: товарные, категорийные и текстовые. Текстовые подсказки обновляются раз в месяц на основе популярных названий товаров и запросов. При этом система фильтрует стоп-слова и нецензурную лексику.
Ранжирование подсказок строится на статистике продаж и частоте запросов за последние 30 дней. Запросы, которые не приводят к покупкам, имеют меньший приоритет. Это помогает пользователю быстрее найти нужный товар, не дописывая запрос до конца.
Персонализация поиска
Вторая итерация системы подсказок добавила элементы персонализации. Теперь алгоритм учитывает пол пользователя, его язык и историю трат. Для обучения модели используется композитный таргет: действия пользователя имеют разный «вес» (заказ — 3 балла, добавление в корзину — 2 балла, просто клик — 1 балл).
Персонализированный подход показал рост вовлеченности: пользователи стали чаще взаимодействовать с подсказками. Алгоритм учитывает, например, гендерные предпочтения: если запрос чаще ищут мужчины, то в подсказках для мужчин этот вариант будет выше, чем для женщин.
Что это значит
Эффективный поиск на маркетплейсе требует объединения текстовых алгоритмов с анализом реального поведения покупателей. Использование машинного обучения для исправления опечаток и персонализации подсказок напрямую влияет на конверсию в заказы и вовлеченность пользователей.
