Как работает семантический поиск

Классический keyword-поиск (BM25, TF-IDF) ранжирует документы по частоте вхождения слов запроса. Это работает для точных запросов («iPhone 15 Pro 256gb»), но ломается на описательных («что взять в поход на три дня с детьми»).

Семантический поиск решает эту задачу через эмбеддинги:

  1. Языковая модель (BERT, E5, multilingual-E5 и др.) кодирует запрос в числовой вектор — точку в многомерном пространстве.
  2. Все товары в каталоге также закодированы в векторы и хранятся в векторной базе данных.
  3. При поиске система находит товары, чьи векторы ближайшие к вектору запроса — по косинусному расстоянию или скалярному произведению.
Запрос: "тёплые кроссовки для зимы"
Вектор запроса: [0.23, -0.14, 0.87, ...]

Ближайшие товары:
  - "Кроссовки утеплённые Gore-Tex" (similarity: 0.94)
  - "Ботинки зимние Salomon" (similarity: 0.91)
  - "Кроссовки с флисовой подкладкой" (similarity: 0.89)

Гибридный поиск: лучшее из двух миров

На практике большинство промышленных систем используют гибридный поиск — комбинацию keyword и semantic:

Метод Сильные стороны Слабости
Keyword (BM25) Точные артикулы, бренды, числа Не понимает синонимы, нет устойчивости к опечаткам
Semantic Синонимы, разговорные запросы, намерения Может «размывать» точные запросы
Hybrid Точность + смысл Сложнее настройка весов

Гибридный подход: keyword-результаты и semantic-результаты смешиваются с весами (например, 60/40) или через reranking-модель.

Применение в e-commerce

  • Снижение zero results. Каталог из 50 000 товаров с keyword-поиском даёт 10–15% нулевых результатов. Семантический поиск находит ближайшие альтернативы.
  • Длиннохвостые запросы. 70–80% поисковых запросов уникальны — никогда не вводились раньше. Семантика работает с ними без специальной настройки.
  • Мультиязычность. Модели типа multilingual-E5 понимают запросы на разных языках в едином векторном пространстве.
  • Визуальный поиск. Мультимодальные модели кодируют изображения и текст в общее пространство: поиск по фото вместо описания.

Совет: внедрение семантического поиска — это не замена, а дополнение к существующей поисковой системе. Начинайте с гибридного подхода и A/B-теста: semantic vs existing — на реальном трафике.