Гибридный поиск
Гибридный поиск - это техника извлечения, которая параллельно выполняет плотный векторный поиск (семантический) и разреженный поиск по ключевым словам (BM25), а затем объединяет результаты в единый ранжированный список. Он улавливает одновременно и "сходство по смыслу", и "точное совпадение токенов" в рамках одного запроса.
Гибридный поиск - это техника извлечения, которая параллельно выполняет плотный векторный поиск (семантический) и разреженный поиск по ключевым словам (BM25), а затем объединяет результаты в единый ранжированный список. Он улавливает одновременно и "сходство по смыслу", и "точное совпадение токенов" в рамках одного запроса.
Почему это важно
Плотный векторный поиск отлично справляется с семантическими совпадениями ("доступные ноутбуки" ≈ "бюджетные лэптопы"), но дает сбой на редких токенах вроде кодов товаров, артикулов (SKU) и имен собственных. Поиск по ключевым словам безошибочно находит точные токены, но упускает перефразировки. Гибридный поиск выигрывает в обоих случаях - продакшн-системы RAG в Anthropic, OpenAI и Elastic единодушно сообщают, что гибридный подход стабильно превосходит каждый из них в отдельности, обычно давая прирост полноты (recall) на 10-30% на реальных бенчмарках извлечения.
Как это работает
1. Двойное извлечение: Один и тот же запрос проходит через оба индекса - векторный индекс (плотные эмбеддинги) и инвертированный индекс (BM25 или TF-IDF).
2. Нормализация оценок: Плотные и разреженные оценки находятся в разных масштабах. Их нормализуют - по min-max, z-score или по рангу.
3. Слияние: Оценки объединяются в единое ранжирование. Самые популярные методы:
- Reciprocal Rank Fusion (RRF):
score = Σ 1/(k + rank_i)- на основе рангов, не требует настройки, чрезвычайно надежен. - Взвешенная сумма:
α * dense + (1-α) * sparse- требует настройки α под каждую область. - Обучаемое слияние: Небольшая модель предсказывает оптимальный вес для каждого запроса.
4. Опциональное переранжирование: Кросс-энкодер переранжирует топ-k объединенных кандидатов для финальной точности.
Когда его использовать
Специализированная лексика: Медицинские коды, юридические ссылки, номера деталей.
Смешанные типы запросов: Когда пользователи ищут как естественным языком, так и точными строками.
Важна полнота длинного хвоста: Редкие запросы, где BM25 по-прежнему силен.
Вы получаете ноль результатов от одних только векторов: Часто это сбой точного совпадения - гибридный поиск его исправляет.
Компромиссы
Задержка: Два индекса означают два запроса. Смягчается параллельным выполнением.
Хранение индекса: Нужно поддерживать и векторный, и инвертированный индекс.
Сложность настройки: Взвешенное слияние требует размеченных данных для настройки. RRF этого избегает.
Не всегда выигрыш: В областях, где эмбеддинги очень сильны (чисто перефразировочные задачи), один лишь плотный поиск может сравняться с гибридным.
Гибридный поиск против чистого векторного поиска
| Аспект | Чистый векторный | Гибридный |
|---|---|---|
| Семантические совпадения | Сильно | Сильно |
| Точные совпадения токенов | Слабо | Сильно |
| Редкие токены, артикулы (SKU) | Слабо | Сильно |
| Инфраструктура | Простая | Два индекса |
| Типичный прирост полноты | Базовый уровень | +10-30% |
Современные векторные базы данных (Pinecone, Weaviate, Qdrant, Elasticsearch) предлагают гибридный поиск как полноценную функцию, поэтому операционные затраты невелики.
Источники: