Hybrid Search
hybrid search — объединение лексического и семантического поиска
Hybrid Search объединяет несколько способов найти документы. Лексическая ветка удерживает точные слова и коды, семантическая замечает близкий смысл и перефразировки, а их кандидаты собираются в один итоговый список.
Коротко
Коротко. Hybrid Search запускает несколько поисковых стратегий для одного запроса и объединяет найденные документы. Частый вариант сочетает лексический поиск по словам с семантическим поиском по смыслу. Первый не теряет точные названия и коды, второй понимает перефразировки.
Что это такое
Пользователь ищет тихий вентилятор AX-17.
В запросе спрятаны два разных сигнала:
AX-17— точная последовательность символов;тихий вентилятор— намерение, которое можно выразить и другими словами:бесшумный,не мешает спать,для ночной комнаты.
Лексический поиск уверенно находит документ с кодом AX-17, даже если его описание короткое. Семантический поиск замечает карточки с близким смыслом, хотя слова запроса и документа не совпадают буквально.
Hybrid Search не выбирает одного победителя заранее. Обе ветки возвращают кандидатов, после чего система собирает общий список.
Две дополняющие ветки
Лексический поиск
Он сравнивает слова, их формы, частоту и расположение в документах. Конкретная реализация может использовать классический полнотекстовый индекс, вероятностную функцию ранжирования или разреженные представления.
Сильная сторона этой ветки — буквальная точность. Она полезна для:
- имён и фамилий;
- артикулов и идентификаторов;
- команд и фрагментов кода;
- редких терминов;
- цитат и устойчивых формулировок.
Слабое место — разница в словах. Документ вентилятор для спокойного сна может получить низкую оценку по запросу тихий вентилятор, если система плохо учитывает синонимы.
Семантический поиск
Он представляет запрос и документы в пространстве признаков и оценивает их смысловую близость. Совпадение слов помогает не всегда: важнее, насколько похожи темы и намерения.
Эта ветка хорошо ловит:
- синонимы;
- перефразировки;
- разговорные описания;
- запросы без терминологии документа;
- смысловую связь между разными формулировками.
При этом редкий код может раствориться в общем смысле фразы. Для человека AX-17 выглядит важным, а векторное представление не обязано выделить его с нужной силой.
Как результаты становятся одним списком
Поиск обычно проходит в несколько этапов.
- Один запрос отправляется в две или больше веток.
- Каждая ветка возвращает собственный список документов и оценки.
- Повторяющиеся документы объединяются по идентификатору.
- Позиции или оценки переводятся в общий итоговый рейтинг.
- При необходимости небольшой набор кандидатов получает дополнительную сортировку.
Главная сложность — оценки разных поисков нельзя бездумно складывать. Значение семантической близости и балл полнотекстового индекса живут на разных шкалах. Для объединения нужны либо ранги, либо явная нормализация.
Reciprocal Rank Fusion
RRF объединяет не исходные оценки, а позиции документов в списках. Чем выше документ находится в отдельной ветке, тем больший вклад получает. Если он попал высоко сразу в несколько списков, вклады складываются.
Одна из форм записи выглядит так:
вклад = 1 / (k + позиция)
Параметр k сглаживает разницу между соседними местами. Это настройка метода, а не универсальная константа для любого поиска.
Плюс RRF в том, что ему не требуется приводить исходные оценки разных веток к одной числовой шкале. Минус — он использует в основном порядок документов и теряет часть информации о расстоянии между их оценками.
Взвешенное объединение
Другой подход сначала нормализует оценки, а затем складывает их с весами:
итог = вес₁ × лексическая оценка + вес₂ × семантическая оценка
Так можно явно усилить одну ветку. Например, в каталоге с большим количеством артикулов точные совпадения могут получить больший вес.
Качество зависит от нормализации и подобранных весов. Если шкалы дрейфуют между типами запросов, одна ветка способна незаметно подавить другую.
RRF и взвешенное объединение — не уровни качества, а разные способы использовать сигналы. Подход выбирают по проверке на реальных запросах.
Где появляется reranking
Reranker получает уже найденный набор и заново оценивает пары запрос — документ более дорогим способом. Он может учитывать точные формулировки, контекст и взаимодействие слов глубже, чем первичный индекс.
Hybrid Search расширяет и улучшает набор кандидатов. Reranking уточняет их порядок. Эти этапы дополняют друг друга, но не заменяют: повторная сортировка не вернёт документ, который ни одна ветка не нашла.
Что считается гибридом
Лексический плюс семантический поиск — самый узнаваемый вариант, но понятие шире. Система может объединять:
- поиск по заголовку и по основному тексту;
- несколько языковых индексов;
- полнотекстовый, векторный и графовый поиск;
- текстовые и визуальные представления;
- общую релевантность и персональные сигналы;
- результаты из разных коллекций.
Общий признак один: несколько независимых способов извлечения кандидатов сходятся в единый рейтинг.
Почему гибрид не всегда лучше
Дополнительная ветка может добавить не только полезные документы, но и шум. Если коллекция состоит почти исключительно из точных кодов, семантическая близость иногда мешает. В узком наборе естественных текстов сильного семантического поиска может быть достаточно.
Результат зависит от:
- качества каждого отдельного индекса;
- размера списков кандидатов;
- метода слияния;
- разнообразия реальных запросов;
- полноты и разметки коллекции;
- фильтров доступа и метаданных;
- того, какая ошибка считается дорогой для продукта.
Поэтому гибридную схему оценивают не по одному красивому примеру, а по набору запросов с ожидаемыми релевантными документами.
В RAG-системе
В RAG найденные фрагменты становятся контекстом для языковой модели. Если нужный фрагмент не попал в retrieval, модель не сможет опереться на него при ответе.
Hybrid Search полезен в документации, где рядом живут обычные вопросы, коды ошибок, версии протоколов, номера деталей и внутренние названия. Семантическая ветка понимает вопрос человека, а лексическая не теряет важные символы.
После слияния часто остаются дедупликация, reranking, проверка доступа и ограничение контекста. Сам hybrid search не отвечает пользователю — он формирует более подходящий набор источников.
С чем часто путают
- С semantic search. Семантическая ветка — один из участников, а hybrid объединяет несколько сигналов.
- С multimodal search. Мультимодальный поиск работает с разными типами данных. Он может быть гибридным, но это отдельное свойство.
- С reranking. Слияние формирует общий список кандидатов; reranker затем может пересортировать его.
- С sparse embeddings. Разреженное представление иногда используется в лексической ветке, но само по себе не определяет всю гибридную архитектуру.
- С федеративным поиском. Он собирает результаты из разных источников. Если списки объединяются несколькими сигналами, схема может одновременно быть и федеративной, и гибридной.
- С фильтрами. Фильтр отсеивает документы по условию, например по правам доступа. Он не заменяет ранжирование по релевантности.
Частые ошибки
- Складывать ненормализованные оценки. Большая числовая шкала одной ветки подавляет другую независимо от качества.
- Считать RRF универсальным победителем. Он удобен, но другой способ слияния может лучше соответствовать данным.
- Брать слишком короткие списки кандидатов. Нужный документ не успевает попасть в объединение.
- Игнорировать дубликаты. Один документ из нескольких индексов может занять несколько мест вместо усиления единой записи.
- Оценивать только средний запрос. Редкие коды и необычные перефразировки часто раскрывают слабые места системы.
- Забывать про задержку. Ветки можно запускать параллельно, но вычисление представлений, слияние и reranking всё равно требуют ресурсов.
- Смешивать retrieval и ответ модели. Хорошо сформулированный ответ не доказывает, что поиск нашёл верные источники.
Частые вопросы
Нужны ли два разных сервера?
Нет. Один движок может хранить несколько индексов и выполнять обе ветки. Можно использовать и разные системы — архитектура hybrid search от этого не меняется.
Какой метод слияния выбрать?
Без размеченных данных RRF часто удобен как понятная отправная точка. Если есть набор реальных запросов и оценка релевантности, веса и нормализацию можно подобрать под домен. Решение подтверждается сравнением, а не общим правилом.
Hybrid Search обязательно медленнее вдвое?
Нет. Ветки могут работать параллельно, и итоговая задержка зависит от самой медленной ветки плюс слияние. Но вычислительная стоимость и нагрузка обычно всё же выше, чем у одного простого поиска.
Можно ли объединить больше двух веток?
Да. Ранговые методы и многие схемы нормализации работают с несколькими списками. Важно, чтобы каждый дополнительный сигнал приносил полезных кандидатов, а не только повторял уже найденное.
Нужен ли hybrid search, если есть reranker?
Иногда да. Reranker улучшает порядок доступных кандидатов, но не расширяет набор за пределы того, что вернул retrieval.
Как понять, что гибрид помогает?
Сравнение проводят на одинаковом наборе запросов и релевантных документов. Полезно отдельно смотреть запросы с кодами, именами, синонимами и разговорными формулировками: у них разные причины ошибок.
Главное
Hybrid Search соединяет несколько способов найти документы. В привычной паре лексический поиск удерживает точные слова и коды, а семантический находит близкий смысл. Слияние превращает два списка кандидатов в один рейтинг, но качество зависит от данных, нормализации и проверки на реальных запросах — не от самого слова «hybrid».