BM25 (Best Matching 25) – это алгоритм оценки и ранжирования релевантности текстовых документов в поисковых системах. Он был разработан Джо Баярдом и Трэвисом Хьюзом в 1994 году для улучшения алгоритма BM-11.
Лексический поиск — это классический подход к информационному поиску, основанный на прямом сопоставлении слов (лексем) из запроса пользователя со словами в документах. В отличие от семантического поиска, который пытается понять смысл и контекст, лексический ищет точные или морфологически изменённые совпадения ключевых терминов. Основная проблема здесь — не просто найти документы, где встречаются слова, а ранжировать их по релевантности: насколько хорошо документ отвечает на запрос. Для этого нужна формула, которая учитывает не только наличие слов, но и их важность.
Именно здесь на сцену выходит BM25 (Best Matching 25) — один из самых эффективных и широко используемых алгоритмов ранжирования в лексическом поиске (его используют Elasticsearch, Lucene, Solr). BM25 развивает идеи старой модели TF-IDF. Он учитывает три ключевых фактора:
Частота термина (TF): чем чаще слово из запроса встречается в документе, тем лучше. Однако BM25 вводит «насыщение» — после определённого порога добавление новых повторений перестаёт сильно влиять на релевантность.
Обратная частота документа (IDF): редкие слова (например, «квантовая физика») важнее частых (например, «и», «или»). BM25 понижает вес стоп-слов.
Нормализация длины документа: короткий документ, где нашлось нужное слово, скорее всего, релевантнее длинной книги, где это слово случайно упомянуто разок.
Почему BM25 до сих пор популярен, несмотря на развитие нейросетей? Он не требует обучения, работает быстро (простая формула и инвертированные индексы) и предсказуем. Его два настраиваемых параметра (k1 — насыщение TF, и b — влияние длины документа) позволяют адаптировать алгоритм под разные коллекции текстов (например, для коротких твитов или многотомных юридических документов). Хотя BM25 и не понимает смысла «машина = автомобиль», для точных запросов (поиск по ID, названиям, цитатам) он часто превосходит тяжелые семантические модели, оставаясь золотым стандартом «быстрого и достаточно хорошего» поиска.
Актуальные версии
Okapi BM25
BM25L
BM25+
BM25-Adpt
BM25T
Формула BM25, используемая поисковыми алгоритмами, представляет собой коммерческую тайну и постоянно модифицируется. Кроме того, речь идёт не о единой для всех документов формуле.
Для чего используется
Алгоритм Okapi BM-25 используется для проверки релевантности конкретного документа в отношении конкретного поискового запроса. Он учитывает не только количество совпадений ключевых слов, но и их распределение по документу. BM25 имеет несколько параметров, которые могут быть настроены для лучшей производительности и релевантности результатов поиска.
BM25 рассчитывает балл релевантности для каждого документа путем анализа значимости каждого слова в запросе и его частоты в документе. Он также учитывает факторы, такие как длина документа и общая длина коллекции документов. BM25 работает с неупорядоченным списком терминов (Мешок слов (Bag of Words) и множестве документов, оцениваемых с точки зрения использования слов запроса в каждом документе из коллекции. Близость слов не учитывается.
Большинство текстовых анализаторов, используемых в практике SEO, основаны на одной из версий BM25, оценивающей ключевые слова в определенных текстовых зонах документа на сравнении с некоторым эталонным корпусом. В качестве такого корпуса чаще всего служат страницы из топа поисковой выдачи, поскольку они формально соответствуют эталонной разметке и требованиям поисковой системы. Однако надо учитывать, что попадание в топ выдачи современных поисковых систем может быть связано не только с высокой текстовой релевантностью, но и множеством более весомых факторов ранжирования (хостовых, ссылочных, поведенческих, коммерческих).
Для применения BM25 на практике необходима предварительная обработка текста: удаление стоп-слов, строчных букв, стемминг или лемматизация. На вход необходимо подавать только токены.
Отличие от TF-IDF и других похожих алгоритмов
BM25, как и TF-IDF, это методология, связанная с семантикой распределения, для выявления самых весомых слов контекста в рамках документа. Отличие состоит в том, что BM25 учитывает длину документа и насыщенности слов внутри документа, в то время как TF-IDF фокусируется на частоте терминов и придает больший вес реже встречающимся терминам. Кроме того, TF-IDF дает преимущество более длинным документам, поскольку в них больше объема для включения конкретных терминов.
BM25 можно рассматривать как частный случай TF-IDF, отличающийся от базового алгоритма определенным выбором TF и IDF, с исключением случайных совпадений и сортировкой n-грамм и слов. Для этого используются вспомогательные “веса”, учитывающие зоны документа и информативность n-грамм.
Преимущества алгоритма BM25 включают его простоту и эффективность, а также учет различных факторов, влияющих на релевантность документа. Он является одним из самых популярных алгоритмов оценки в поисковых системах и активно используется в практике SEO.
Проблематика
С помощью BM25 можно просчитать только базовые метрики, связанные с заданным ключевым словом.
BM25 относится к алгоритмам лексического поиска и не может быть использован для семантического, кроме как способа предварительной обработки данных.
В качестве метрики оценки качества текста BM25 можно использовать только для оценки уже существующего контента. Попытка задать эти метрики на уровне технического задания для копирайтера приведет к резкому снижению качества контента (читабельность, естественность и т.п.).
Обязательное условие использования на практике – проход по всей коллекции документов.
В Яндекс оценка контента с помощью BM25 остаётся основой первичного ранжирования: благодаря сравнению вхождений ключевых слов в определенные текстовые зоны заданного URL с некоторым эталонным корпусом, поисковый алгоритм может предположить тематику и соответствие определенным запросам. Однако это уже не работает для вторичного ранжирования, когда оцениваются более сложные и комплексные показатели, в том числе – не-текстового характера (хостовые, поведенческие и т.п.).
Полноценная оптимизация контента возможна только при сочетании двух основных факторов: текст должен быть понятен поисковым алгоритмам, и текст должен соответствовать запросам посетителей сайта. Анализ текста с использованием BM25 в таком виде может быть полезен только для выявления проблематики, но не как инструмент оптимизации.