Hybrid Search

hybrid search — объединение лексического и семантического поиска

Раздел
Языковые модели
Обновлено
05.09.26

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

Коротко

Коротко. Hybrid Search запускает несколько поисковых стратегий для одного запроса и объединяет найденные документы. Частый вариант сочетает лексический поиск по словам с семантическим поиском по смыслу. Первый помогает искать точные названия и коды, второй — близкие формулировки. Оба могут ошибаться.

Что это такое

Пользователь ищет тихий вентилятор AX-17.

В запросе спрятаны два разных сигнала:

  • AX-17 — точная последовательность символов;
  • тихий вентилятор — намерение, которое можно выразить и другими словами: бесшумный, не мешает спать, для ночной комнаты.

Лексический поиск может найти документ с кодом AX-17, даже если описание короткое. Для точного совпадения нужно правильно настроить разбор кодов: некоторые анализаторы разделят артикул по дефису. Семантический поиск замечает карточки с близким смыслом, хотя слова запроса и документа не совпадают буквально.

Hybrid Search не выбирает одного победителя заранее. Обе ветки возвращают кандидатов, после чего система собирает общий список.

Две дополняющие ветки

Лексический поиск

Он сравнивает слова, их формы, частоту и расположение в документах. Конкретная реализация может использовать классический полнотекстовый индекс, вероятностную функцию ранжирования или разреженные представления.

Сильная сторона этой ветки — совпадения конкретных слов и символов. Она полезна для:

  • имён и фамилий;
  • артикулов и идентификаторов;
  • команд и фрагментов кода;
  • редких терминов;
  • цитат и устойчивых формулировок.

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

Семантический поиск

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

Эта ветка хорошо ловит:

  • синонимы;
  • перефразировки;
  • разговорные описания;
  • запросы без терминологии документа;
  • смысловую связь между разными формулировками.

При этом редкий код может раствориться в общем смысле фразы. Для человека AX-17 выглядит важным, а векторное представление не обязано выделить его с нужной силой.

Как результаты становятся одним списком

Поиск обычно проходит в несколько этапов.

  1. Один запрос отправляется в две или больше веток.
  2. Каждая ветка возвращает собственный список документов и оценки.
  3. Повторяющиеся документы объединяются по идентификатору.
  4. Позиции или оценки переводятся в общий итоговый рейтинг.
  5. При необходимости небольшой набор кандидатов получает дополнительную сортировку.

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

Reciprocal Rank Fusion

RRF объединяет не исходные оценки, а позиции документов в списках. Чем выше документ находится в отдельной ветке, тем больший вклад получает. Если он попал высоко сразу в несколько списков, вклады складываются.

Одна из форм записи выглядит так:

вклад = 1 / (k + позиция)

Параметр k сглаживает разницу между соседними местами. Это настройка метода, а не число возвращаемых документов. В этой записи позиции можно считать с единицы; некоторые движки считают их с нуля, поэтому при переносе параметров важна конкретная формула. Вклад отсутствующего в списке документа равен нулю, итоговая оценка — сумма вкладов всех веток.

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

Взвешенное объединение

Другой подход сначала нормализует оценки, а затем складывает их с весами:

итог = вес₁ × лексическая оценка + вес₂ × семантическая оценка

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

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

RRF и взвешенное объединение — не уровни качества, а разные способы использовать сигналы. Подход выбирают по проверке на реальных запросах.

Где появляется reranking

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

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

Что считается гибридом

Лексический плюс семантический поиск — самый узнаваемый вариант, но понятие шире. Система может объединять:

  • полнотекстовый, векторный и графовый поиск;
  • текстовые и визуальные представления;
  • несколько способов оценки релевантности.

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

Почему гибрид не всегда лучше

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

Результат зависит от:

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

Поэтому гибридную схему оценивают не по одному красивому примеру, а по набору запросов с ожидаемыми релевантными документами.

В RAG-системе

В RAG найденные фрагменты становятся контекстом для языковой модели. Если нужный фрагмент не попал в результаты поиска, модель не сможет опереться на него при ответе.

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

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

С чем часто путают

  • С semantic search. Семантическая ветка — один из участников, а hybrid объединяет несколько сигналов.
  • С multimodal search. Мультимодальный поиск работает с разными типами данных. Он может быть гибридным, но это отдельное свойство.
  • С reranking. Слияние формирует общий список кандидатов; reranker затем может пересортировать его.
  • С sparse embeddings. Разреженное представление иногда используется в лексической ветке, но само по себе не определяет всю гибридную архитектуру.
  • С федеративным поиском. Он собирает результаты из разных источников. Если списки объединяются несколькими сигналами, схема может одновременно быть и федеративной, и гибридной.
  • С фильтрами. Фильтр отсеивает документы по условию, например по правам доступа. Он не заменяет ранжирование по релевантности.

Частые ошибки

  • Складывать ненормализованные оценки. Большая числовая шкала одной ветки подавляет другую независимо от качества.
  • Считать RRF универсальным победителем. Он удобен, но другой способ слияния может лучше соответствовать данным.
  • Брать слишком короткие списки кандидатов. Нужный документ не успевает попасть в объединение.
  • Игнорировать дубликаты. Один документ из нескольких индексов может занять несколько мест вместо усиления единой записи.
  • Оценивать только средний запрос. Редкие коды и необычные перефразировки часто раскрывают слабые места системы.
  • Забывать про задержку. Ветки можно запускать параллельно, но вычисление представлений, слияние и reranking всё равно требуют ресурсов.
  • Смешивать retrieval и ответ модели. Хорошо сформулированный ответ не доказывает, что поиск нашёл верные источники.

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

Нужны ли два разных сервера?

Нет. Один движок может хранить несколько индексов и выполнять обе ветки. Можно использовать и разные системы — архитектура hybrid search от этого не меняется.

Какой метод слияния выбрать?

Без размеченных данных RRF часто удобен как понятная отправная точка. Если есть набор реальных запросов и оценка релевантности, веса и нормализацию можно подобрать под предметную область. Решение подтверждается сравнением, а не общим правилом.

Hybrid Search обязательно медленнее вдвое?

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

Можно ли объединить больше двух веток?

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

Нужен ли hybrid search, если есть reranker?

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

Как понять, что гибрид помогает?

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

Главное

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

Источник