Алгоритм информационного поиска BM25

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником ~~~~}} == Формальная постановк...)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником [[Участник:Nikita Zinoviсh|Nikita Zinoviсh]] 19:06, 18 июля 2026 (MSD)}}
+
{{well|Статья написана с использованием LLM '''Gemini Pro 3.1''' и проверена участником [[Участник:Nikita Zinoviсh|Nikita Zinoviсh]] 19:08, 18 июля 2026 (MSD)}}
== Формальная постановка задачи информационного поиска ==
== Формальная постановка задачи информационного поиска ==
-
В классическом [[Информационный поиск|информационном поиске]] задача ранжирования сводится к оценке вероятности того, что документ релевантен запросу. Пусть задана коллекция документов <tex> D </tex> и запрос пользователя <tex> Q </tex>. Введем бинарную [[Случайная величина|случайную величину]] релевантности <tex> R \in \{0, 1\} </tex>, где <tex> R = 1 </tex> означает, что документ релевантен, а <tex> R = 0 </tex> — нерелевантен.
+
В основе алгоритма BM25 лежит вероятностная модель [[Информационный поиск|информационного поиска]]. Пусть задана конечная коллекция документов <tex> D_j \in \mathcal{D} </tex> объемом <tex> N </tex> и пользовательский запрос <tex> Q </tex>. Словарь коллекции (множество всех уникальных терминов) обозначим как <tex> V </tex>.
-
Цель вероятностной модели отранжировать документы по убыванию условной [[Вероятность|вероятности]] <tex> P(R=1 \mid D, Q) </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>.
== Вероятностная модель ранжирования ==
== Вероятностная модель ранжирования ==
-
Согласно принципу вероятностного ранжирования, вместо самой вероятности удобно использовать [[Отношение шансов|отношение шансов]] (odds ratio) релевантности к нерелевантности. Применяя [[Теорема Байеса|теорему Байеса]], получаем:
+
Согласно принципу вероятностного ранжирования (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> P(R=1 \mid Q) </tex> и <tex> P(R=0 \mid Q) </tex> зависят только от запроса и одинаковы для всех документов в коллекции, они не влияют на порядок ранжирования. Для удобства вычислений и предотвращения арифметического переполнения переходят к монотонной функции — [[Логарифм|логарифму]] отношения шансов (Retrieval Status Value, RSV):
+
Поскольку априорные шансы <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) ==
-
Для вычисления условных вероятностей документа применяется Бинарная модель независимости (Binary Independence Model). Документ <tex> D </tex> и запрос <tex> Q </tex> представляются как векторы в <tex> V </tex>-мерном пространстве словаря коллекции, где <tex> x_i \in \{0, 1\} </tex> отражает присутствие или отсутствие <tex> i </tex>-го термина.
+
Для вычисления <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>
-
Тогда формула RSV разбивается на сумму по терминам запроса (термины, отсутствующие в запросе, сокращаются):
+
=== Вывод функции веса термина ===
 +
Обозначим вероятности появления термина в релевантных и нерелевантных документах как:
 +
:<tex> p_i = P(x_i=1 \mid R=1, Q), \quad q_i = P(x_i=1 \mid R=0, Q) </tex>
-
:<tex> \mathrm{RSV} = \sum_{i \in Q} \log \frac{p_i (1 - q_i)}{q_i (1 - p_i)} </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>
-
где <tex> p_i = P(x_i=1 \mid R=1) </tex> — вероятность появления термина в релевантных документах, а <tex> q_i = P(x_i=1 \mid R=0) </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> p_i </tex> постоянно для всех терминов (например, <tex> 0.5 </tex>), а <tex> q_i </tex> аппроксимируется долей документов, содержащих термин во всей коллекции. Пусть <tex> N </tex> — общее число документов, а <tex> \mathrm{df}_i </tex> — число документов, содержащих термин <tex> i </tex>. Тогда <tex> q_i \approx \frac{\mathrm{df}_i}{N} </tex>, и мы получаем классическую формулу Inverse Document Frequency (IDF):
+
Перегруппируем множители, умножив и разделив выражение под произведением на <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{IDF}_i = \log \frac{N - \mathrm{df}_i + 0.5}{\mathrm{df}_i + 0.5} </tex>
+
Разделим логарифм произведения на сумму логарифмов:
 +
:<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>
-
== Ограничения BIM и учет частоты терминов (TF) ==
+
Второе слагаемое является константой для всех документов (зависит только от свойств запроса и коллекции), поэтому его можно исключить. Поскольку <tex> x_i = 0 </tex> для терминов, отсутствующих в документе, и мы предполагаем, что для терминов вне запроса <tex> Q </tex> выполняется <tex> p_i = q_i </tex>, итоговая сумма вычисляется только по терминам запроса:
-
Главный недостаток BIM — бинарность вектора, игнорирующая частоту термина (Term Frequency, TF). Для учета многократного вхождения термина используется модель элитных множеств на основе [[Распределение Пуассона|распределения Пуассона]] (2-Poisson model).
+
-
В отличие от линейного учета частоты, BM25 вводит нелинейную функцию «насыщения» (TF saturation). Суть в том, что первое появление слова в тексте несет огромный сигнал, а разница между десятым и одиннадцатым вхождениями минимальна. Функция насыщения имеет вид:
+
:<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> \mathrm{tf}_i </tex> — частота термина <tex> i </tex> в документе, а <tex> k_1 \ge 0 </tex> — эмпирический гиперпараметр, регулирующий скорость насыщения. При <tex> k_1 \to 0 </tex> модель вырождается в бинарную, а при <tex> k_1 \to \infty </tex> стремится к линейному учету частоты.
+
где гиперпараметр <tex> k_1 \ge 0 </tex> контролирует скорость насыщения. Первое вхождение слова (переход от <tex> 0 </tex> к <tex> 1 </tex>) дает наибольший прирост функции. При <tex> \mathrm{tf}_i \to \infty </tex> значение функции стремится к <tex> 1 </tex>.
== Нормализация по длине документа ==
== Нормализация по длине документа ==
-
Вероятность встретить термин возрастает в длинных текстах. Существуют две гипотезы о длинных документах: гипотеза «многословности» (verbosity) и гипотеза «многотемности» (scope). BM25 использует параметр <tex> b \in [0, 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> k_1 </tex> в функции насыщения заменяется на <tex> k_1 \cdot B </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>
-
== Финальная математическая модель BM25 ==
+
При <tex> b=1 </tex> применяется полная нормализация (документы считаются многословными), при <tex> b=0 </tex> нормализация отключается (документы считаются многотемными).
-
Объединяя логарифм отношения шансов из BIM, пуассоновское насыщение частоты и нормализацию длины, получаем итоговое уравнение функции ранжирования 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)} </tex>
+
== Финальная математическая модель BM25 ==
 +
Сборка всех вероятностных компонентов — логарифма отношения шансов (IDF), функции насыщения частоты термина в документе и опциональной функции частоты термина в самом запросе (<tex> \mathrm{qtf}_i </tex>) — дает итоговое уравнение семейства Okapi BM25:
-
Дополнительный множитель <tex> (k_1 + 1) </tex> в числителе введен исключительно для удобства масштабирования: таким образом асимптотический предел функции насыщения при <tex> \mathrm{tf}_i \to \infty </tex> равен <tex> 1 </tex> (до умножения на IDF).
+
:<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>
-
Эта математически обоснованная комбинация весов оказалась настолько надежной, что остается индустриальным стандартом (baseline) для лексического поиска, обеспечивая строгий баланс между редкостью слова, его частотой в документе и размером самого документа.
+
Множители <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 лежит вероятностная модель информационного поиска. Пусть задана конечная коллекция документов  D_j \in \mathcal{D} объемом  N и пользовательский запрос  Q . Словарь коллекции (множество всех уникальных терминов) обозначим как  V .

Введем бинарную целевую случайную величину релевантности  R \in \{0, 1\} , где событие  R = 1 означает, что документ удовлетворяет информационную потребность пользователя (релевантен), а  R = 0 — не удовлетворяет.

Математическая задача ранжирования сводится к сортировке множества  \mathcal{D} по убыванию апостериорной вероятности  P(R=1 \mid D, Q) .

Вероятностная модель ранжирования

Согласно принципу вероятностного ранжирования (Probabilistic Ranking Principle), монотонное преобразование функции ранжирования не меняет порядка документов. Поэтому вместо вычисления самой вероятности вычисляется отношение шансов (odds ratio).

Применяя теорему Байеса к числителю и знаменателю, получаем:

 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)}

Поскольку априорные шансы  \frac{P(R=1 \mid Q)}{P(R=0 \mid Q)} являются константой для данного запроса и не зависят от конкретного документа  D , их можно отбросить. Для вычислительной устойчивости и перевода умножения в сложение ранжирующую функцию (Retrieval Status Value, RSV) определяют как логарифм отношения правдоподобий:

 \mathrm{RSV} \propto \log \frac{P(D \mid R=1, Q)}{P(D \mid R=0, Q)}

Бинарная модель независимости (BIM)

Для вычисления  P(D \mid R, Q) используется Бинарная модель независимости. Документ  D представляется как вектор инцидентности  \mathbf{x} = (x_1, x_2, \dots, x_{|V|}) , где  x_i \in \{0, 1\} показывает присутствие ( 1 ) или отсутствие ( 0 ) термина  i в документе.

Вводится сильное предположение об условной независимости признаков (аналогично наивному байесовскому классификатору):

 P(D \mid R, Q) = \prod_{i=1}^{|V|} P(x_i \mid R, Q)

Вывод функции веса термина

Обозначим вероятности появления термина в релевантных и нерелевантных документах как:

 p_i = P(x_i=1 \mid R=1, Q), \quad q_i = P(x_i=1 \mid R=0, Q)

Тогда вероятность генерации документа принимает вид:

 P(D \mid R=1, Q) = \prod_{i=1}^{|V|} p_i^{x_i} (1-p_i)^{1-x_i}
 P(D \mid R=0, Q) = \prod_{i=1}^{|V|} q_i^{x_i} (1-q_i)^{1-x_i}

Подставим это в функцию RSV:

 \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}}

Перегруппируем множители, умножив и разделив выражение под произведением на  (1-p_i)^{x_i} и  (1-q_i)^{x_i} :

 \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)

Разделим логарифм произведения на сумму логарифмов:

 \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}

Второе слагаемое является константой для всех документов (зависит только от свойств запроса и коллекции), поэтому его можно исключить. Поскольку  x_i = 0 для терминов, отсутствующих в документе, и мы предполагаем, что для терминов вне запроса  Q выполняется  p_i = q_i , итоговая сумма вычисляется только по терминам запроса:

 \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

Аппроксимация вероятностей и IDF

Для вычисления веса  w_i требуются оценки  p_i и  q_i . Пусть в коллекции из  N документов известно  R релевантных. Термин  i встречается в  n_i документах всей коллекции и в  r_i релевантных документах. Применяя сглаживание по правилу Халдейна (прибавление  0.5 ), получаем:

 p_i = \frac{r_i + 0.5}{R + 1}, \quad q_i = \frac{n_i - r_i + 0.5}{N - R + 2}

В ситуации первичного поиска (ad-hoc retrieval), когда информация о релевантности отсутствует ( R=0, r_i=0 ), принимается допущение, что термин с равной вероятностью может встретиться в релевантном документе ( p_i = 0.5 ). Вероятность  q_i оценивается как доля документов с термином во всей коллекции. Подставляя эти значения в  w_i , получаем классическую формулу обратной частоты документа (Inverse Document Frequency):

 \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}

Ограничения BIM и двухпуассоновская модель (2-Poisson)

BIM оперирует бинарными векторами, теряя информацию о частоте термина в документе (Term Frequency,  \mathrm{tf} ). Для строгого моделирования  \mathrm{tf} исследователи (в частности, С. Робертсон) обратились к модели элитных множеств.

Предполагается существование скрытой переменной элитности  E_i \in \{0, 1\} . Если документ «элитен» по отношению к термину  i (то есть действительно посвящен этой теме), то частота термина моделируется распределением Пуассона с высоким математическим ожиданием  \lambda_1 . Для неэлитных документов используется  \lambda_2 , причем  \lambda_1 \gg \lambda_2 . Априорная вероятность элитности равна  \pi . Распределение частоты описывается смесью:

 P(\mathrm{tf}_i = k) = \pi \frac{e^{-\lambda_1} \lambda_1^k}{k!} + (1-\pi) \frac{e^{-\lambda_2} \lambda_2^k}{k!}

Функция насыщения частоты

Байесовский вывод весовых коэффициентов из этой смеси приводит к сложным нелинейным уравнениям. Для практического применения была выведена асимптотическая аппроксимация — функция насыщения (TF saturation).

В отличие от векторной модели TF-IDF, где вес термина растет линейно или логарифмически, в BM25 вес асимптотически стремится к пределу:

 S(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1}

где гиперпараметр  k_1 \ge 0 контролирует скорость насыщения. Первое вхождение слова (переход от  0 к  1 ) дает наибольший прирост функции. При  \mathrm{tf}_i \to \infty значение функции стремится к  1 .

Нормализация по длине документа

Функция насыщения должна учитывать длину документа. Существуют две конфликтующие гипотезы: 1. Гипотеза многословности (Verbosity): Длинный документ содержит те же понятия, что и короткий, но описывает их бо́льшим числом слов. В этом случае абсолютная частота  \mathrm{tf} должна быть жестко нормирована. 2. Гипотеза многотемности (Scope): Длинный документ охватывает больше независимых тем. Нормировка должна быть минимальной, так как совпадение термина — независимое событие в рамках новой темы.

Для баланса в BM25 вводится параметр  b \in [0, 1] . Параметр  k_1 масштабируется множителем длины  B :

 B = 1 - b + b \cdot \frac{|D|}{\mathrm{avdl}}

где  |D| — длина текущего документа в словах,  \mathrm{avdl} (average document length) — средняя длина документа в корпусе. Подстановка  B в знаменатель функции насыщения дает:

 S'(\mathrm{tf}_i) = \frac{\mathrm{tf}_i}{\mathrm{tf}_i + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\mathrm{avdl}}\right)}

При  b=1 применяется полная нормализация (документы считаются многословными), при  b=0 нормализация отключается (документы считаются многотемными).

Финальная математическая модель BM25

Сборка всех вероятностных компонентов — логарифма отношения шансов (IDF), функции насыщения частоты термина в документе и опциональной функции частоты термина в самом запросе ( \mathrm{qtf}_i ) — дает итоговое уравнение семейства Okapi BM25:

 \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}

Множители  (k_1 + 1) и  (k_3 + 1) в числителях выступают в роли нормировочных констант, не влияющих на относительный порядок ранжирования, но обеспечивающих предел насыщения функции, равный  1 (до умножения на IDF). Для коротких пользовательских запросов, где слова встречаются по одному разу ( \mathrm{qtf}_i = 1 ), третий множитель тождественно равен единице и часто опускается в программных реализациях.

См. также

Литература

  • 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.