StayinLight

Okapi BM25

7 сообщений в этой теме

Добрый день, уважаемые форумчане. Хотел спросить, можете пожалуйста объяснить простым языком алгоритм, или что это Okapi ВМ25, поскольку я не имею представления и не могу понять и насколько актуален этот алгоритм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде всё просто )))

 

Функция ранжирования

BM25 — поисковая функция на неупорядоченном множестве термов («мешке слов») и множестве документов, которые она оценивает на основе встречаемости слов запроса в каждом документе, без учёта взаимоотношений между ними (например, близости). Это не одна функция, а семейство функций с различными компонентами и параметрами. Одна из распространенных форм этой функции описана ниже.

Пусть дан запрос {\displaystyle Q}Q, содержащий слова {\displaystyle q_{1},...,q_{n}}q_{1},...,q_{n}, тогда функция BM25 даёт следующую оценку релевантности документа {\displaystyle D}D запросу {\displaystyle Q}Q:

{\displaystyle {\text{score}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot {\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot (1-b+b\cdot {\frac {|D|}{\text{avgdl}}})}},}{\text{score}}(D,Q)=\sum _{{i=1}}^{{n}}{\text{IDF}}(q_{i})\cdot {\frac  {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot (1-b+b\cdot {\frac  {|D|}{{\text{avgdl}}}})}},

где {\displaystyle f(q_{i},D)}f(q_{i},D) есть частота слова (англ. term frequency, TF) {\displaystyle q_{i}}q_{i} в документе {\displaystyle D}D, {\displaystyle |D|}|D| есть длина документа (количество слов в нём), а {\displaystyle avgdl}avgdl — средняя длина документа в коллекции. {\displaystyle k_{1}}k_{1} и {\displaystyle b}b — свободные коэффициенты, обычно их выбирают как {\displaystyle k_{1}=2.0}k_{1}=2.0 и {\displaystyle b=0.75}b=0.75.

{\displaystyle {\text{IDF}}(q_{i})}{\text{IDF}}(q_{i}) есть обратная документная частота (англ. inverse document frequency, IDF) слова {\displaystyle q_{i}}q_{i}. Есть несколько толкований IDF и небольших вариации его формулы. Классически, она определяется как:

{\displaystyle \log {\frac {N}{n(q_{i})}},}\log {\frac  {N}{n(q_{i})}},

где {\displaystyle N}N есть общее количество документов в коллекции, а {\displaystyle n(q_{i})}n(q_{i}) — количество документов, содержащих {\displaystyle q_{i}}q_{i}. Но чаще применяются «сглаженные» варианты этой формулы, например:

{\displaystyle {\text{IDF}}(q_{i})=\log {\frac {N-n(q_{i})+0.5}{n(q_{i})+0.5}},}{\text{IDF}}(q_{i})=\log {\frac  {N-n(q_{i})+0.5}{n(q_{i})+0.5}},

Заметим, что вышеуказанная формула IDF имеет следующий недостаток. Для слов, входящих в более чем половину документов из коллекции, значение IDF отрицательно. Таким образом, при наличии любых двух почти идентичных документов, в одном из которых есть слово, а в другом — нет, второй может получить бо́льшую оценку.

Иными словами, часто встречающиеся слова испортят окончательную оценку документа. Это нежелательно, поэтому во многих приложениях вышеприведённая формула может быть скорректирована следующими способами:

  • Игнорировать вообще все отрицательные слагаемые в сумме (что эквивалентно занесению в стоп-лист и игнорированию всех соответствующих высокочастотных слов);
  • Налагать на IDF некоторую нижнюю границу {\displaystyle \varepsilon }\varepsilon: если IDF меньше {\displaystyle \varepsilon }\varepsilon, то считать её равной {\displaystyle \varepsilon }\varepsilon.
  • Использовать другую формулу IDF, не принимающую отрицательных значений.

Интерпретация IDF в теории информации

Положим, что поисковое слово {\displaystyle q}q встречается в {\displaystyle n(q)}n(q) документах. Тогда случайно выбранный документ {\displaystyle D}D содержит слово с вероятностью {\displaystyle {\frac {n(q)}{N}}}{\frac  {n(q)}{N}} (где {\displaystyle N}N есть мощность множества документов в коллекции). В таком случае информационная ценность фразы «{\displaystyle D}D содержит {\displaystyle q}q» будет такова:

{\displaystyle -\log {\frac {n(q)}{N}}=\log {\frac {N}{n(q)}}.}-\log {\frac  {n(q)}{N}}=\log {\frac  {N}{n(q)}}.

Теперь положим, что имеется два поисковых слова {\displaystyle q_{1}}q_{1} и {\displaystyle q_{2}}q_{2}. Если они входят в документ независимо друг от друга, то вероятность обнаружить их в случайно выбранном документе {\displaystyle D}D такова:

{\displaystyle {\frac {n(q_{1})}{N}}\cdot {\frac {n(q_{2})}{N}},}{\frac  {n(q_{1})}{N}}\cdot {\frac  {n(q_{2})}{N}},

и содержание этого события

{\displaystyle \sum _{i=1}^{2}\log {\frac {N}{n(q_{i})}}.}\sum _{{i=1}}^{{2}}\log {\frac  {N}{n(q_{i})}}.

Это примерно то, что выражается компонентой IDF в BM25.

Модификации

  • При экстремальных значениях коэффициента {\displaystyle b}b в функции BM25 получаются функции ранжирования, известные под названиями BM11 (при {\displaystyle b=1}b=1) и BM15 (при {\displaystyle b=0}b=0).[1]
  • BM25F[2] — модификация BM25, в которой документ рассматривается как совокупность нескольких полей (таких как, например, заголовки, основной текст, ссылочный текст), длины которых независимо нормализуются, и каждому из которых может быть назначена своя степень значимости в итоговой функции ранжирования.
Skib понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, diplomdistant сказал:

Вроде всё просто )))

 

Функция ранжирования

BM25 — поисковая функция на неупорядоченном множестве термов («мешке слов») и множестве документов, которые она оценивает на основе встречаемости слов запроса в каждом документе, без учёта взаимоотношений между ними (например, близости). Это не одна функция, а семейство функций с различными компонентами и параметрами. Одна из распространенных форм этой функции описана ниже.

Пусть дан запрос {\displaystyle Q}Q, содержащий слова {\displaystyle q_{1},...,q_{n}}q_{1},...,q_{n}, тогда функция BM25 даёт следующую оценку релевантности документа {\displaystyle D}D запросу {\displaystyle Q}Q:

{\displaystyle {\text{score}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot {\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot (1-b+b\cdot {\frac {|D|}{\text{avgdl}}})}},}{\text{score}}(D,Q)=\sum _{{i=1}}^{{n}}{\text{IDF}}(q_{i})\cdot {\frac  {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot (1-b+b\cdot {\frac  {|D|}{{\text{avgdl}}}})}},

где {\displaystyle f(q_{i},D)}f(q_{i},D) есть частота слова (англ. term frequency, TF) {\displaystyle q_{i}}q_{i} в документе {\displaystyle D}D, {\displaystyle |D|}|D| есть длина документа (количество слов в нём), а {\displaystyle avgdl}avgdl — средняя длина документа в коллекции. {\displaystyle k_{1}}k_{1} и {\displaystyle b}b — свободные коэффициенты, обычно их выбирают как {\displaystyle k_{1}=2.0}k_{1}=2.0 и {\displaystyle b=0.75}b=0.75.

{\displaystyle {\text{IDF}}(q_{i})}{\text{IDF}}(q_{i}) есть обратная документная частота (англ. inverse document frequency, IDF) слова {\displaystyle q_{i}}q_{i}. Есть несколько толкований IDF и небольших вариации его формулы. Классически, она определяется как:

{\displaystyle \log {\frac {N}{n(q_{i})}},}\log {\frac  {N}{n(q_{i})}},

где {\displaystyle N}N есть общее количество документов в коллекции, а {\displaystyle n(q_{i})}n(q_{i}) — количество документов, содержащих {\displaystyle q_{i}}q_{i}. Но чаще применяются «сглаженные» варианты этой формулы, например:

{\displaystyle {\text{IDF}}(q_{i})=\log {\frac {N-n(q_{i})+0.5}{n(q_{i})+0.5}},}{\text{IDF}}(q_{i})=\log {\frac  {N-n(q_{i})+0.5}{n(q_{i})+0.5}},

Заметим, что вышеуказанная формула IDF имеет следующий недостаток. Для слов, входящих в более чем половину документов из коллекции, значение IDF отрицательно. Таким образом, при наличии любых двух почти идентичных документов, в одном из которых есть слово, а в другом — нет, второй может получить бо́льшую оценку.

Иными словами, часто встречающиеся слова испортят окончательную оценку документа. Это нежелательно, поэтому во многих приложениях вышеприведённая формула может быть скорректирована следующими способами:

  • Игнорировать вообще все отрицательные слагаемые в сумме (что эквивалентно занесению в стоп-лист и игнорированию всех соответствующих высокочастотных слов);
  • Налагать на IDF некоторую нижнюю границу {\displaystyle \varepsilon }\varepsilon: если IDF меньше {\displaystyle \varepsilon }\varepsilon, то считать её равной {\displaystyle \varepsilon }\varepsilon.
  • Использовать другую формулу IDF, не принимающую отрицательных значений.

Интерпретация IDF в теории информации

Положим, что поисковое слово {\displaystyle q}q встречается в {\displaystyle n(q)}n(q) документах. Тогда случайно выбранный документ {\displaystyle D}D содержит слово с вероятностью {\displaystyle {\frac {n(q)}{N}}}{\frac  {n(q)}{N}} (где {\displaystyle N}N есть мощность множества документов в коллекции). В таком случае информационная ценность фразы «{\displaystyle D}D содержит {\displaystyle q}q» будет такова:

{\displaystyle -\log {\frac {n(q)}{N}}=\log {\frac {N}{n(q)}}.}-\log {\frac  {n(q)}{N}}=\log {\frac  {N}{n(q)}}.

Теперь положим, что имеется два поисковых слова {\displaystyle q_{1}}q_{1} и {\displaystyle q_{2}}q_{2}. Если они входят в документ независимо друг от друга, то вероятность обнаружить их в случайно выбранном документе {\displaystyle D}D такова:

{\displaystyle {\frac {n(q_{1})}{N}}\cdot {\frac {n(q_{2})}{N}},}{\frac  {n(q_{1})}{N}}\cdot {\frac  {n(q_{2})}{N}},

и содержание этого события

{\displaystyle \sum _{i=1}^{2}\log {\frac {N}{n(q_{i})}}.}\sum _{{i=1}}^{{2}}\log {\frac  {N}{n(q_{i})}}.

Это примерно то, что выражается компонентой IDF в BM25.

Модификации

  • При экстремальных значениях коэффициента {\displaystyle b}b в функции BM25 получаются функции ранжирования, известные под названиями BM11 (при {\displaystyle b=1}b=1) и BM15 (при {\displaystyle b=0}b=0).[1]
  • BM25F[2] — модификация BM25, в которой документ рассматривается как совокупность нескольких полей (таких как, например, заголовки, основной текст, ссылочный текст), длины которых независимо нормализуются, и каждому из которых может быть назначена своя степень значимости в итоговой функции ранжирования.

на харбе попонятнее...

ну а так... я хз кто сейчас обращается к этому алгоритму, а точнее просчету по этому алгоритму...

хотя возможно частные случаи нацеленные на супер клиентов и супер компании - возможно...

я же всегда по стандартным оценкам все далал: тошнотка, релевантность, ципфа и т.д...

diplomdistant понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, SEO Thresh сказал:

на харбе попонятнее...

ну а так... я хз кто сейчас обращается к этому алгоритму, а точнее просчету по этому алгоритму...

хотя возможно частные случаи нацеленные на супер клиентов и супер компании - возможно...

я же всегда по стандартным оценкам все далал: тошнотка, релевантность, ципфа и т.д...

Да прочёл на харбе, улеглось на половину. Знание этого алгоритма запросил один сеошник занимающийся продвижением буржуй ресурсов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, StayinLight сказал:

Да прочёл на харбе, улеглось на половину. Знание этого алгоритма запросил один сеошник занимающийся продвижением буржуй ресурсов.

да в бурже они задрачиваются по черному...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, SEO Thresh сказал:

да в бурже они задрачиваются по черному...

почему???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, StayinLight сказал:

почему???

эммм ну хотя бы потому что если технически или контентно недоработаешь в гугле, бюджет на ссылки на изи умножай на 2 а то и на 3... там цены на продвижение и на спецов в разы отличаются...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу