Sparse Retrieval
Sparse Retrieval (разреженный поиск) — это метод информационного поиска, при котором документы и запросы представляются в виде разреженных векторов высокой размерности, где большинство координат равны нулю, а ненулевые значения соответствуют отдельным словам или термам. В отличие от плотных векторных представлений, разреженные векторы сохраняют прямую связь с лексикой: каждое измерение — это конкретный термин из словаря, а вес отражает его значимость. Классический пример — модель BM25, лежащая в основе большинства поисковых систем, включая ранние версии Google и Elasticsearch.
Как работает разреженный поиск
- Токенизация: запрос и документы разбиваются на слова, приводятся к базовой форме (лемматизация или стемминг).
- Построение инвертированного индекса: для каждого терма хранится список документов, где он встречается, с частотными характеристиками.
- Взвешивание: применяются схемы TF-IDF или BM25, учитывающие частоту термина в документе, его редкость в коллекции и длину документа.
- Ранжирование: документы сортируются по сумме весов совпавших терминов, топ-N возвращается пользователю.
Ключевое преимущество — точное лексическое совпадение: если пользователь ищет «купить шины R17», система гарантированно найдёт документы с этими словами. Это критично для навигационных и транзакционных запросов, где важна буквальность. Для проектов с большим каталогом товаров или услуг корректная настройка разреженного поиска напрямую влияет на конверсию, поэтому её часто доверяют специалистам по оптимизации сайта.
Сильные и слабые стороны
- Плюсы: интерпретируемость (видно, какие слова повлияли на выдачу), высокая скорость на инвертированных индексах, отсутствие необходимости обучать нейросеть, устойчивость к редким терминам и артикулам.
- Минусы: не понимает синонимы и перефразирования — запрос «автомобильные покрышки» не найдёт документ со словом «шины»; чувствителен к опечаткам; плохо работает с длинными естественно-языковыми запросами.
- Проблема словарного разрыва (vocabulary mismatch) — главная причина, по которой сегодня sparse-методы комбинируют с dense-подходами в гибридных системах.
Современные реализации — SPLADE, uniCOIL, DeepImpact — обучают нейросети генерировать разреженные векторы с расширением терминов: модель добавляет в вектор синонимы и связанные слова, сохраняя разреженность. Это даёт прирост nDCG на 10–15% относительно BM25 при сопоставимой скорости. Для англоязычных проектов такие настройки особенно важны, и их часто заказывают вместе с продвижением англоязычных сайтов.
Где применяется
- Поиск по сайту и внутренняя навигация интернет-магазинов.
- Первая стадия ранжирования в гибридных поисковых системах (candidate generation).
- Юридический и патентный поиск, где важна точность формулировок.
- RAG-системы: разреженный поиск отбирает релевантные фрагменты перед подачей в языковую модель.
В контексте генеративного поиска sparse retrieval часто выступает дополнением к Dense Retrieval: первый ловит точные совпадения, второй — семантику. Вместе они образуют Retrieval, лежащий в основе RAG (Retrieval-Augmented Generation). Для задач Passage Retrieval и Document Retrieval выбор между разреженным и плотным подходом определяется типом запросов: транзакционные и навигационные — sparse, информационные — dense.
