Алгоритм информационного поиска BM25
Материал из MachineLearning.
(Новая: {{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником ~~~~}} == Формальная постановк...) |
|||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником [[Участник:Nikita Zinoviсh|Nikita Zinoviсh]] 19: | + | {{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником [[Участник:Nikita Zinoviсh|Nikita Zinoviсh]] 19:08, 18 июля 2026 (MSD)}} |
== Формальная постановка задачи информационного поиска == | == Формальная постановка задачи информационного поиска == | ||
| - | В | + | В основе алгоритма BM25 лежит вероятностная модель [[Информационный поиск|информационного поиска]]. Пусть задана конечная коллекция документов <tex> D_j \in \mathcal{D} </tex> объемом <tex> N </tex> и пользовательский запрос <tex> Q </tex>. Словарь коллекции (множество всех уникальных терминов) обозначим как <tex> V </tex>. |
| - | + | Введем бинарную целевую [[Случайная величина|случайную величину]] релевантности <tex> R \in \{0, 1\} </tex>, где событие <tex> R = 1 </tex> означает, что документ удовлетворяет информационную потребность пользователя (релевантен), а <tex> R = 0 </tex> — не удовлетворяет. | |
| + | |||
| + | Математическая задача ранжирования сводится к сортировке множества <tex> \mathcal{D} </tex> по убыванию апостериорной [[Вероятность|вероятности]] <tex> P(R=1 \mid D, Q) </tex>. | ||
== Вероятностная модель ранжирования == | == Вероятностная модель ранжирования == | ||
| - | Согласно принципу вероятностного ранжирования, вместо самой вероятности | + | Согласно принципу вероятностного ранжирования (Probabilistic Ranking Principle), монотонное преобразование функции ранжирования не меняет порядка документов. Поэтому вместо вычисления самой вероятности вычисляется [[Отношение шансов|отношение шансов]] (odds ratio). |
| + | |||
| + | Применяя [[Теорема Байеса|теорему Байеса]] к числителю и знаменателю, получаем: | ||
:<tex> O(R \mid D, Q) = \frac{P(R=1 \mid D, Q)}{P(R=0 \mid D, Q)} = \frac{P(D \mid R=1, Q) P(R=1 \mid Q)}{P(D \mid R=0, Q) P(R=0 \mid Q)} </tex> | :<tex> O(R \mid D, Q) = \frac{P(R=1 \mid D, Q)}{P(R=0 \mid D, Q)} = \frac{P(D \mid R=1, Q) P(R=1 \mid Q)}{P(D \mid R=0, Q) P(R=0 \mid Q)} </tex> | ||
| - | Поскольку априорные | + | Поскольку априорные шансы <tex> \frac{P(R=1 \mid Q)}{P(R=0 \mid Q)} </tex> являются константой для данного запроса и не зависят от конкретного документа <tex> D </tex>, их можно отбросить. Для вычислительной устойчивости и перевода умножения в сложение ранжирующую функцию (Retrieval Status Value, RSV) определяют как [[Логарифм|логарифм]] отношения правдоподобий: |
:<tex> \mathrm{RSV} \propto \log \frac{P(D \mid R=1, Q)}{P(D \mid R=0, Q)} </tex> | :<tex> \mathrm{RSV} \propto \log \frac{P(D \mid R=1, Q)}{P(D \mid R=0, Q)} </tex> | ||
== Бинарная модель независимости (BIM) == | == Бинарная модель независимости (BIM) == | ||
| - | Для вычисления | + | Для вычисления <tex> P(D \mid R, Q) </tex> используется Бинарная модель независимости. Документ <tex> D </tex> представляется как вектор инцидентности <tex> \mathbf{x} = (x_1, x_2, \dots, x_{|V|}) </tex>, где <tex> x_i \in \{0, 1\} </tex> показывает присутствие (<tex> 1 </tex>) или отсутствие (<tex> 0 </tex>) термина <tex> i </tex> в документе. |
| - | Вводится | + | Вводится сильное предположение об [[Условная независимость|условной независимости]] признаков (аналогично [[Наивный байесовский классификатор|наивному байесовскому классификатору]]): |
:<tex> P(D \mid R, Q) = \prod_{i=1}^{|V|} P(x_i \mid R, Q) </tex> | :<tex> P(D \mid R, Q) = \prod_{i=1}^{|V|} P(x_i \mid R, Q) </tex> | ||
| - | + | === Вывод функции веса термина === | |
| + | Обозначим вероятности появления термина в релевантных и нерелевантных документах как: | ||
| + | :<tex> p_i = P(x_i=1 \mid R=1, Q), \quad q_i = P(x_i=1 \mid R=0, Q) </tex> | ||
| - | :<tex> \ | + | Тогда вероятность генерации документа принимает вид: |
| + | :<tex> P(D \mid R=1, Q) = \prod_{i=1}^{|V|} p_i^{x_i} (1-p_i)^{1-x_i} </tex> | ||
| + | :<tex> P(D \mid R=0, Q) = \prod_{i=1}^{|V|} q_i^{x_i} (1-q_i)^{1-x_i} </tex> | ||
| - | + | Подставим это в функцию RSV: | |
| + | :<tex> \mathrm{RSV} = \log \prod_{i=1}^{|V|} \frac{p_i^{x_i} (1-p_i)^{1-x_i}}{q_i^{x_i} (1-q_i)^{1-x_i}} </tex> | ||
| - | + | Перегруппируем множители, умножив и разделив выражение под произведением на <tex> (1-p_i)^{x_i} </tex> и <tex> (1-q_i)^{x_i} </tex>: | |
| + | :<tex> \mathrm{RSV} = \log \prod_{i=1}^{|V|} \left( \frac{p_i (1-q_i)}{q_i (1-p_i)} \right)^{x_i} \left( \frac{1-p_i}{1-q_i} \right) </tex> | ||
| - | :<tex> \mathrm{ | + | Разделим логарифм произведения на сумму логарифмов: |
| + | :<tex> \mathrm{RSV} = \sum_{i=1}^{|V|} x_i \log \frac{p_i (1-q_i)}{q_i (1-p_i)} + \sum_{i=1}^{|V|} \log \frac{1-p_i}{1-q_i} </tex> | ||
| - | = | + | Второе слагаемое является константой для всех документов (зависит только от свойств запроса и коллекции), поэтому его можно исключить. Поскольку <tex> x_i = 0 </tex> для терминов, отсутствующих в документе, и мы предполагаем, что для терминов вне запроса <tex> Q </tex> выполняется <tex> p_i = q_i </tex>, итоговая сумма вычисляется только по терминам запроса: |
| - | + | ||
| - | + | :<tex> \mathrm{RSV} = \sum_{i \in Q, x_i=1} \log \frac{p_i (1-q_i)}{q_i (1-p_i)} = \sum_{i \in Q, x_i=1} w_i </tex> | |
| + | |||
| + | === Аппроксимация вероятностей и IDF === | ||
| + | Для вычисления веса <tex> w_i </tex> требуются оценки <tex> p_i </tex> и <tex> q_i </tex>. Пусть в коллекции из <tex> N </tex> документов известно <tex> R </tex> релевантных. Термин <tex> i </tex> встречается в <tex> n_i </tex> документах всей коллекции и в <tex> r_i </tex> релевантных документах. Применяя [[Сглаживание Лапласа|сглаживание]] по правилу Халдейна (прибавление <tex> 0.5 </tex>), получаем: | ||
| + | |||
| + | :<tex> p_i = \frac{r_i + 0.5}{R + 1}, \quad q_i = \frac{n_i - r_i + 0.5}{N - R + 2} </tex> | ||
| + | |||
| + | В ситуации первичного поиска (ad-hoc retrieval), когда информация о релевантности отсутствует (<tex> R=0, r_i=0 </tex>), принимается допущение, что термин с равной вероятностью может встретиться в релевантном документе (<tex> p_i = 0.5 </tex>). Вероятность <tex> q_i </tex> оценивается как доля документов с термином во всей коллекции. Подставляя эти значения в <tex> w_i </tex>, получаем классическую формулу обратной частоты документа (Inverse Document Frequency): | ||
| + | |||
| + | :<tex> \mathrm{IDF}_i = \log \frac{0.5 \cdot (N - n_i + 0.5)}{0.5 \cdot (n_i + 0.5)} = \log \frac{N - n_i + 0.5}{n_i + 0.5} </tex> | ||
| + | |||
| + | == Ограничения BIM и двухпуассоновская модель (2-Poisson) == | ||
| + | BIM оперирует бинарными векторами, теряя информацию о частоте термина в документе (Term Frequency, <tex> \mathrm{tf} </tex>). Для строгого моделирования <tex> \mathrm{tf} </tex> исследователи (в частности, С. Робертсон) обратились к модели элитных множеств. | ||
| + | |||
| + | Предполагается существование скрытой переменной элитности <tex> E_i \in \{0, 1\} </tex>. Если документ «элитен» по отношению к термину <tex> i </tex> (то есть действительно посвящен этой теме), то частота термина моделируется [[Распределение Пуассона|распределением Пуассона]] с высоким математическим ожиданием <tex> \lambda_1 </tex>. Для неэлитных документов используется <tex> \lambda_2 </tex>, причем <tex> \lambda_1 \gg \lambda_2 </tex>. Априорная вероятность элитности равна <tex> \pi </tex>. Распределение частоты описывается смесью: | ||
| + | |||
| + | :<tex> P(\mathrm{tf}_i = k) = \pi \frac{e^{-\lambda_1} \lambda_1^k}{k!} + (1-\pi) \frac{e^{-\lambda_2} \lambda_2^k}{k!} </tex> | ||
| + | |||
| + | === Функция насыщения частоты === | ||
| + | Байесовский вывод весовых коэффициентов из этой смеси приводит к сложным нелинейным уравнениям. Для практического применения была выведена асимптотическая аппроксимация — функция насыщения (TF saturation). | ||
| + | |||
| + | В отличие от векторной модели [[TF-IDF]], где вес термина растет линейно или логарифмически, в BM25 вес асимптотически стремится к пределу: | ||
:<tex> S(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1} </tex> | :<tex> S(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1} </tex> | ||
| - | где <tex> \ | + | где гиперпараметр <tex> k_1 \ge 0 </tex> контролирует скорость насыщения. Первое вхождение слова (переход от <tex> 0 </tex> к <tex> 1 </tex>) дает наибольший прирост функции. При <tex> \mathrm{tf}_i \to \infty </tex> значение функции стремится к <tex> 1 </tex>. |
== Нормализация по длине документа == | == Нормализация по длине документа == | ||
| - | + | Функция насыщения должна учитывать длину документа. Существуют две конфликтующие гипотезы: | |
| + | 1. '''Гипотеза многословности (Verbosity):''' Длинный документ содержит те же понятия, что и короткий, но описывает их бо́льшим числом слов. В этом случае абсолютная частота <tex> \mathrm{tf} </tex> должна быть жестко нормирована. | ||
| + | 2. '''Гипотеза многотемности (Scope):''' Длинный документ охватывает больше независимых тем. Нормировка должна быть минимальной, так как совпадение термина — независимое событие в рамках новой темы. | ||
| - | + | Для баланса в BM25 вводится параметр <tex> b \in [0, 1] </tex>. Параметр <tex> k_1 </tex> масштабируется множителем длины <tex> B </tex>: | |
:<tex> B = 1 - b + b \cdot \frac{|D|}{\mathrm{avdl}} </tex> | :<tex> B = 1 - b + b \cdot \frac{|D|}{\mathrm{avdl}} </tex> | ||
| - | где <tex> |D| </tex> — длина текущего документа, <tex> \mathrm{avdl} </tex> — средняя длина документа в | + | где <tex> |D| </tex> — длина текущего документа в словах, <tex> \mathrm{avdl} </tex> (average document length) — средняя длина документа в корпусе. Подстановка <tex> B </tex> в знаменатель функции насыщения дает: |
:<tex> S'(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\mathrm{avdl}}\right)} </tex> | :<tex> S'(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\mathrm{avdl}}\right)} </tex> | ||
| - | == | + | При <tex> b=1 </tex> применяется полная нормализация (документы считаются многословными), при <tex> b=0 </tex> нормализация отключается (документы считаются многотемными). |
| - | + | ||
| - | + | == Финальная математическая модель BM25 == | |
| + | Сборка всех вероятностных компонентов — логарифма отношения шансов (IDF), функции насыщения частоты термина в документе и опциональной функции частоты термина в самом запросе (<tex> \mathrm{qtf}_i </tex>) — дает итоговое уравнение семейства Okapi BM25: | ||
| - | + | :<tex> \mathrm{RSV}(D, Q) = \sum_{i \in Q} \mathrm{IDF}_i \cdot \frac{\mathrm{tf}_i \cdot (k_1 + 1)}{\mathrm{tf}_i + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\mathrm{avdl}}\right)} \cdot \frac{\mathrm{qtf}_i \cdot (k_3 + 1)}{\mathrm{qtf}_i + k_3} </tex> | |
| - | + | Множители <tex> (k_1 + 1) </tex> и <tex> (k_3 + 1) </tex> в числителях выступают в роли нормировочных констант, не влияющих на относительный порядок ранжирования, но обеспечивающих предел насыщения функции, равный <tex> 1 </tex> (до умножения на IDF). Для коротких пользовательских запросов, где слова встречаются по одному разу (<tex> \mathrm{qtf}_i = 1 </tex>), третий множитель тождественно равен единице и часто опускается в программных реализациях. | |
== См. также == | == См. также == | ||
| Строка 66: | Строка 99: | ||
* [[Наивный байесовский классификатор]] | * [[Наивный байесовский классификатор]] | ||
* [[Распределение Пуассона]] | * [[Распределение Пуассона]] | ||
| - | * [[ | + | * [[Сглаживание Лапласа]] |
== Литература == | == Литература == | ||
| Строка 72: | Строка 105: | ||
* ''Manning, C. D., Raghavan, P., Schütze, H.'' Introduction to Information Retrieval. — Cambridge University Press, 2008. | * ''Manning, C. D., Raghavan, P., Schütze, H.'' Introduction to Information Retrieval. — Cambridge University Press, 2008. | ||
* ''Sparck Jones, K., Walker, S., Robertson, S. E.'' A probabilistic model of information retrieval: development and comparative experiments. — Information Processing & Management, 2000. | * ''Sparck Jones, K., Walker, S., Robertson, S. E.'' A probabilistic model of information retrieval: development and comparative experiments. — Information Processing & Management, 2000. | ||
| + | * ''Baeza-Yates, R., Ribeiro-Neto, B.'' Modern Information Retrieval: The Concepts and Technology behind Search (2nd Edition). — Addison-Wesley, 2011. | ||
Текущая версия
| | Статья написана с использованием LLM Gemini Pro 3.1 и проверена участником Nikita Zinoviсh 19:08, 18 июля 2026 (MSD) |
Содержание |
Формальная постановка задачи информационного поиска
В основе алгоритма BM25 лежит вероятностная модель информационного поиска. Пусть задана конечная коллекция документов объемом
и пользовательский запрос
. Словарь коллекции (множество всех уникальных терминов) обозначим как
.
Введем бинарную целевую случайную величину релевантности , где событие
означает, что документ удовлетворяет информационную потребность пользователя (релевантен), а
— не удовлетворяет.
Математическая задача ранжирования сводится к сортировке множества по убыванию апостериорной вероятности
.
Вероятностная модель ранжирования
Согласно принципу вероятностного ранжирования (Probabilistic Ranking Principle), монотонное преобразование функции ранжирования не меняет порядка документов. Поэтому вместо вычисления самой вероятности вычисляется отношение шансов (odds ratio).
Применяя теорему Байеса к числителю и знаменателю, получаем:
Поскольку априорные шансы являются константой для данного запроса и не зависят от конкретного документа
, их можно отбросить. Для вычислительной устойчивости и перевода умножения в сложение ранжирующую функцию (Retrieval Status Value, RSV) определяют как логарифм отношения правдоподобий:
Бинарная модель независимости (BIM)
Для вычисления используется Бинарная модель независимости. Документ
представляется как вектор инцидентности
, где
показывает присутствие (
) или отсутствие (
) термина
в документе.
Вводится сильное предположение об условной независимости признаков (аналогично наивному байесовскому классификатору):
Вывод функции веса термина
Обозначим вероятности появления термина в релевантных и нерелевантных документах как:
Тогда вероятность генерации документа принимает вид:
Подставим это в функцию RSV:
Перегруппируем множители, умножив и разделив выражение под произведением на и
:
Разделим логарифм произведения на сумму логарифмов:
Второе слагаемое является константой для всех документов (зависит только от свойств запроса и коллекции), поэтому его можно исключить. Поскольку для терминов, отсутствующих в документе, и мы предполагаем, что для терминов вне запроса
выполняется
, итоговая сумма вычисляется только по терминам запроса:
Аппроксимация вероятностей и IDF
Для вычисления веса требуются оценки
и
. Пусть в коллекции из
документов известно
релевантных. Термин
встречается в
документах всей коллекции и в
релевантных документах. Применяя сглаживание по правилу Халдейна (прибавление
), получаем:
В ситуации первичного поиска (ad-hoc retrieval), когда информация о релевантности отсутствует (), принимается допущение, что термин с равной вероятностью может встретиться в релевантном документе (
). Вероятность
оценивается как доля документов с термином во всей коллекции. Подставляя эти значения в
, получаем классическую формулу обратной частоты документа (Inverse Document Frequency):
Ограничения BIM и двухпуассоновская модель (2-Poisson)
BIM оперирует бинарными векторами, теряя информацию о частоте термина в документе (Term Frequency, ). Для строгого моделирования
исследователи (в частности, С. Робертсон) обратились к модели элитных множеств.
Предполагается существование скрытой переменной элитности . Если документ «элитен» по отношению к термину
(то есть действительно посвящен этой теме), то частота термина моделируется распределением Пуассона с высоким математическим ожиданием
. Для неэлитных документов используется
, причем
. Априорная вероятность элитности равна
. Распределение частоты описывается смесью:
Функция насыщения частоты
Байесовский вывод весовых коэффициентов из этой смеси приводит к сложным нелинейным уравнениям. Для практического применения была выведена асимптотическая аппроксимация — функция насыщения (TF saturation).
В отличие от векторной модели TF-IDF, где вес термина растет линейно или логарифмически, в BM25 вес асимптотически стремится к пределу:
где гиперпараметр контролирует скорость насыщения. Первое вхождение слова (переход от
к
) дает наибольший прирост функции. При
значение функции стремится к
.
Нормализация по длине документа
Функция насыщения должна учитывать длину документа. Существуют две конфликтующие гипотезы:
1. Гипотеза многословности (Verbosity): Длинный документ содержит те же понятия, что и короткий, но описывает их бо́льшим числом слов. В этом случае абсолютная частота должна быть жестко нормирована.
2. Гипотеза многотемности (Scope): Длинный документ охватывает больше независимых тем. Нормировка должна быть минимальной, так как совпадение термина — независимое событие в рамках новой темы.
Для баланса в BM25 вводится параметр . Параметр
масштабируется множителем длины
:
где — длина текущего документа в словах,
(average document length) — средняя длина документа в корпусе. Подстановка
в знаменатель функции насыщения дает:
При применяется полная нормализация (документы считаются многословными), при
нормализация отключается (документы считаются многотемными).
Финальная математическая модель BM25
Сборка всех вероятностных компонентов — логарифма отношения шансов (IDF), функции насыщения частоты термина в документе и опциональной функции частоты термина в самом запросе () — дает итоговое уравнение семейства Okapi BM25:
Множители и
в числителях выступают в роли нормировочных констант, не влияющих на относительный порядок ранжирования, но обеспечивающих предел насыщения функции, равный
(до умножения на IDF). Для коротких пользовательских запросов, где слова встречаются по одному разу (
), третий множитель тождественно равен единице и часто опускается в программных реализациях.
См. также
- TF-IDF
- Модель векторного пространства
- Теорема Байеса
- Наивный байесовский классификатор
- Распределение Пуассона
- Сглаживание Лапласа
Литература
- Robertson, S., Zaragoza, H. The Probabilistic Relevance Framework: BM25 and Beyond. — Foundations and Trends in Information Retrieval, 2009.
- Manning, C. D., Raghavan, P., Schütze, H. Introduction to Information Retrieval. — Cambridge University Press, 2008.
- Sparck Jones, K., Walker, S., Robertson, S. E. A probabilistic model of information retrieval: development and comparative experiments. — Information Processing & Management, 2000.
- Baeza-Yates, R., Ribeiro-Neto, B. Modern Information Retrieval: The Concepts and Technology behind Search (2nd Edition). — Addison-Wesley, 2011.

