В
статья · обновлено · 6 мин чтения· Команда AISSE

Векторный поиск: что это и как работает

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

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

Как работает векторный поиск

Модель читает текст и выдаёт набор чисел — вектор. Правило одно: близкие по смыслу тексты дают близкие векторы.

Дальше всё просто:

  1. Каждой карточке каталога один раз считается вектор — по названию, описанию и характеристикам.
  2. Запросу клиента считается вектор в момент поиска.
  3. Система ищет карточки, чьи векторы ближе всего к вектору запроса.

Никакого перебора слов не происходит. Сравниваются смыслы.

Чем это отличается от обычного поиска

Полнотекстовый поиск отвечает на вопрос «где встречаются эти слова». Векторный — на вопрос «что похоже по смыслу».

Разница на примерах:

  • «чем поднять плиту на третий этаж» → находит кран-манипулятор, хотя слова «кран» в запросе нет;
  • «что-нибудь недорогое для дачи» → находит технику и услуги нужного класса, а не карточку со словом «недорогое»;
  • «мойка высокого давления» → тут отлично сработает и обычный поиск: слова совпадают.

Отсюда вывод: векторный поиск не отменяет полнотекстовый, он закрывает те запросы, где слова не совпадают.

Семантический векторный поиск: в чём разница

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

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

Как это устроено у крупных площадок

Маркетплейсы и классифайды вроде Авито, Озона и Яндекс Маркета используют векторный семантический поиск давно. По их публичным докладам схема похожа:

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

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

Где он ошибается

Слабые места нужно знать заранее:

  • Точные артикулы и модели. «JCB 3CX» — это не смысл, а строка. Векторный поиск здесь проигрывает точному совпадению.
  • Числа и единицы. «Стрела 22 метра» модель понимает как смысл, а не как условие. Числовые ограничения должны работать фильтром поверх.
  • Пустые карточки. Если в описании три слова, вектор посчитан по трём словам.
  • Похожее вместо нужного. Модель всегда найдёт что-то ближайшее. Без порога отсечения она будет предлагать похожее там, где правильный ответ — «такого нет».

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

Что нужно, чтобы это заработало на вашем каталоге

  • Осмысленные названия. Не «Модель 4213», а «Экскаватор-погрузчик, ковш 0,3 м³».
  • Описание хотя бы в одно-два предложения, желательно с назначением: для чего эта позиция.
  • Характеристики отдельными полями, а не сплошным текстом.
  • Регулярная переиндексация: вектор считается при загрузке карточки, изменили описание — пересчитайте.

Подробный чек-лист — в статье как подготовить каталог к умному поиску.

Сколько это стоит по ресурсам

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

  • Индексация. Считается один раз на карточку и повторяется при изменении. Для каталога в несколько тысяч позиций это минуты.
  • Поиск. Сравнение векторов — быстрая операция. До нескольких тысяч карточек она уверенно укладывается в доли секунды даже без специальной базы.
  • Хранение. Вектор — это несколько сотен чисел на карточку. На больших каталогах имеет смысл специализированное хранилище, на средних хватает обычной базы.

Вывод и следующий шаг

Векторный поиск — рабочий инструмент против запросов, где клиент описывает задачу своими словами. Он не заменяет точный поиск и фильтры, а дополняет их.

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

Частые вопросы

Векторный поиск и семантический — это одно и то же?

Почти. «Семантический» описывает результат — поиск по смыслу. «Векторный» описывает способ, которым это сделано.

Нужна ли специальная база данных?

Не всегда. На каталогах до нескольких тысяч позиций близость считается прямо в приложении. Векторные расширения баз нужны, когда карточек десятки тысяч. Сравнение вариантов — в статье векторный поиск в PostgreSQL, Elasticsearch и векторных БД.

Как часто пересчитывать векторы?

При каждом изменении названия, описания или характеристик карточки. Цена и наличие на вектор не влияют.

Векторный поиск работает с опечатками?

Обычно да, потому что смысл сохраняется. Но грубые опечатки в редких словах лучше чинить отдельно.

Можно ли совместить его с фильтрами?

Не просто можно, а нужно: фильтры отсекают по жёстким условиям, вектор ранжирует то, что осталось.

Что делать, если поиск выдаёт «похожее», а не нужное?

Настроить порог отсечения и явно говорить клиенту, что точного совпадения нет. Об этом — честное «нет» работает лучше похожего товара.

Читайте также

Посмотреть на своём каталоге, как это работает: демо за пять минут.

Ярлыки: Поиск

Статья полезна?

Комментарии

Пока никто не написал. Будьте первым.

Написать комментарий

Комментарии выходят после проверки. Ссылки на другие сайты не пропускаем.

Читайте дальше

Проверьте на своём каталоге
Регистрация, загрузка каталога и первый осмысленный ответ — за один день.
Начать бесплатно Задать вопрос