ММООЗЗГГ.ru

Словарь ИИ

Что такое BM25

Коротко

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

Поиск и RAG · BM25

Михаил МозгПроверено: 1 минута чтения

Ребенку

Представь, что ты ищешь в классной библиотеке книгу про жирафов. Книга, где слово «жираф» встречается много раз, скорее всего про них. А слово «и» есть во всех книгах, по нему ничего не найдешь. Еще толстая книга может случайно упомянуть жирафа один раз. BM25 считает все это и ставит нужную книгу первой.

Простыми словами

Это классический способ искать по совпадению слов, без нейросетей. Для каждого документа формула считает баллы. Слово из запроса встретилось несколько раз, баллов больше, но после нескольких повторов прибавка почти исчезает, так что текст, набитый одним словом, не выиграет. Редкое слово весит больше частого: «возврат» важнее предлога «на». Длинный документ немного штрафуется, потому что в нем слова попадаются просто из-за объема. Например, по запросу с маркой кабеля «ВВГнг 3х2,5» такой поиск сразу найдет карточку именно этого товара.

Для бизнеса

Поиск по словам до сих пор нужен почти в каждой системе ответов по документам. Он точен там, где нейросетевой поиск ошибается: артикулы, номера договоров, фамилии, коды ошибок, редкие отраслевые термины. Метод работает на обычном процессоре, не требует обучения и встроен в распространенные поисковые движки, поэтому почти ничего не стоит. Слабое место: синонимы и перефразировки, «вернуть деньги» он не свяжет с «оформить возврат». Для русского языка важна морфология: без приведения слов к начальной форме поиск пропустит падежи. Обычно его ставят рядом с поиском по смыслу. Для интернет-магазина такая связка закрывает и поиск по артикулу, и вопросы покупателей своими словами.

Для специалиста

BM25 это функция ранжирования из вероятностной модели релевантности (Probabilistic Relevance Framework), подробно разобранной в обзоре Robertson и Zaragoza (2009). Вес термина состоит из двух частей. Первая при отсутствии данных о релевантности сводится к форме IDF и выше у редких терминов. Вторая зависит от частоты термина в документе через функцию насыщения (saturation): вклад растет с частотой, но не превышает предела, крутизну задает параметр k1. Длина документа нормируется относительно средней с силой b. Модель не говорит, как выбирать параметры; по экспериментам, на которые ссылаются авторы, во многих случаях подходят 0,5 < b < 0,8 и 1,2 < k1 < 2. В Elasticsearch BM25 стоит по умолчанию с k1 = 1,2 и b = 0,75. Расширение BM25F учитывает поля документа: заголовок, текст, ссылки. В конвейерах RAG BM25 служит разреженным (sparse) ретривером в гибридном поиске и базовой линией: Dense Passage Retrieval (Karpukhin и др., 2020) сравнивали именно с ним. Для русского текста перед индексацией нужны лемматизация или стемминг.

Пример

Менеджер ищет в базе «счет 1047 от ООО Вектор». Поиск по смыслу предлагает похожие счета других клиентов, а BM25 сразу ставит первым документ с этим номером и названием.

Связанные термины

Вопросы и ответы

Зачем BM25, если есть поиск по смыслу?

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

Работает ли BM25 с русским языком?

Да, если перед индексацией слова привести к начальной форме или к основе. Без этого «договор» и «договора» считаются разными словами, и часть документов теряется.

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram