Jump to content

Recommended Posts

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

Link to post
Share on other sites

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

 

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

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, в которой документ рассматривается как совокупность нескольких полей (таких как, например, заголовки, основной текст, ссылочный текст), длины которых независимо нормализуются, и каждому из которых может быть назначена своя степень значимости в итоговой функции ранжирования.
Link to post
Share on other sites
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, в которой документ рассматривается как совокупность нескольких полей (таких как, например, заголовки, основной текст, ссылочный текст), длины которых независимо нормализуются, и каждому из которых может быть назначена своя степень значимости в итоговой функции ранжирования.

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

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

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

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

Link to post
Share on other sites
20 часов назад, SEO Thresh сказал:

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

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

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

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

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

Link to post
Share on other sites
3 часа назад, StayinLight сказал:

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

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

Link to post
Share on other sites
24 минуты назад, StayinLight сказал:

почему???

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...