Проблема семантической гладкости
В современных системах RAG (Retrieval-Augmented Generation) часто возникает парадокс: векторный поиск (dense retrieval) находит документы, которые семантически близки к запросу, но не содержат ключевых фактов. Например, при запросе "What does error code ZX-4821 mean?" система может вернуть общие инструкции по диагностике, пропустив документ с точным кодом ошибки. Векторная модель "сгладила" уникальную строку, не выделив её как значимый идентификатор.
Напротив, при запросе "Can I get my money back if the product arrived broken?" лексический поиск может провалиться, так как в политике возврата используется фраза "delivered in a defective condition", а не слова "money back" или "broken". Здесь побеждает плотный поиск, понимающий смысл, а не слова.
Эволюция: от булевой логики к BM25
История поиска — это не линейная замена старых методов новыми, а компромисс между сохранением и потерей информации. Булевый поиск был точен, но не ранжировал. TF-IDF добавил веса, но страдал от проблемы частоты повторений и длины документа. Алгоритм BM25 (Best Matching 25), представленный в 1994 году, решил эти проблемы, добавив два ключевых механизма:
- Насыщение частоты (Saturation): Повторение ключевого слова 10 раз не делает документ в 10 раз релевантнее, чем одно упоминание. Параметр k1 контролирует этот спад.
- Коррекция длины документа: Длинные документы не должны иметь преимущества только из-за большего количества слов. Параметр b нормализует счет относительно средней длины документа (avgdl).
Сравнение подходов к поиску
Ниже приведена таблица, иллюстрирующая сильные и слабые стороны различных методов индексации и поиска, которые необходимо учитывать при проектировании RAG-пайплайна:
| Метод | Сильная сторона | Слабая сторона | Пример успешного кейса |
|---|---|---|---|
| Булевый поиск | Абсолютная точность совпадения терминов | Нет ранжирования, нет понимания смысла | Поиск документа с точным кодом FSM-133i |
| TF-IDF | Учет редкости термина в коллекции | Игнорирует контекст, чувствителен к длине | Ранжирование документов по редким ключевым словам |
| BM25 (1994) | Учет насыщения частоты и длины документа | Требует точного совпадения слов (лексика) | Поиск специфичных терминов, акронимов, кодов |
| Dense Retrieval | Понимание семантики и парафразов | Потеря уникальных идентификаторов ("сглаживание") | Поиск по смыслу: "возврат денег" = "refund" |
Почему BM25 все еще актуален?
BM25 не выжил благодаря тому, что поле не придумало ничего лучше. Он выжил, потому что решает задачу, которую не могут решить плотные векторы: сохранение уникальности редких терминов. Современные гибридные системы (Hybrid Search) комбинируют BM25 для лексической точности и эмбеддинги для семантического поиска. Игнорирование BM25 в RAG-конвейере приводит к потере критически важной информации, закодированной в специфических названиях, кодах ошибок и технических терминах.
Источник: Towards Data Science ↗
