Узнайте об Okapi BM25, алгоритме поиска на основе «мешка слов».

Цифровизация основана на принципе «клиент прежде всего» и с тех пор играет важную роль в обогащении пользовательского опыта. В этой статье объясняется, как алгоритм Okapi BM25 используется для повышения релевантности поиска и удобства пользователей в цифровом мире.

Представьте себе случай, когда вам нужна книга, и вы идете в книжный магазин — вы завалены книгами и не знаете, как легко найти нужную книгу. Обратите внимание на релевантное здесь слово, важность которого станет яснее по мере приближения к концу статьи.

Итак, лучше всего обратиться к владельцу книжного магазина, который задаст вам несколько вопросов:

  • Какой жанр вам больше по душе — технический, фантастика, комедия, мелодрама, триллер, фантастика?
  • Какой язык вы бы предпочли — английский, французский?
  • Должен ли он быть удобным для начинающих, среднего или экспертного уровня?
  • Есть предпочтения к автору?

На основе ваших ответов владелец книги отфильтровывает набор книг, которые лучше всего соответствуют вашим потребностям, и предоставляет вам образец набора. Теперь ваша задача сводится к тому, чтобы найти тот, который вам нравится больше всего из тех, которые вам предоставили, на основе вашего объяснения / взаимодействия с владельцем книги.

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

  • Найти документ или элемент, представляющий интерес для пользователя: теперь у нас нет такой роскоши, как владелец книги, который может понять наши намерения, задавая нам уточняющие вопросы. Нам нужно объяснить наш интерес, используя строку поиска, достаточную для отображения запрошенных ресурсов.
  • Интерес фиксируется в поисковом запросе: это то, что пользователь ожидает, что компьютер найдет совпадение. Вам нужно взаимодействовать с компьютерной/цифровой системой, у которой есть алгоритм, чтобы сопоставить ваш поисковый запрос с ближайшими товарами, установленными в их магазине.
  • Наиболее релевантные результаты должны отображаться вверху: обратите внимание, что поисковый запрос не указывает на один документ. Извлеченные документы должны быть расположены в порядке убывания их значимости для пользователя. В аналогии с книжным магазином вам был представлен набор образцов, чтобы выбрать наиболее подходящий для вас вариант. Здесь вам нужна система, которая может сортировать результаты за вас.

Основная тема заключается в том, чтобы убедиться, что пользователи могут эффективно взаимодействовать с системой и иметь доступ к ресурсам, которые они ищут.

Если вы еще не знакомы с тем, что такое поисковый запрос, как выглядят результаты, и вам интересно узнать, как упорядоченный набор отображаемых элементов изменяется при изменении вашего запроса, не беспокойтесь. Я объясню на примерах ниже:

Если вы ищете «синее платье для девочки», перейдите к наиболее известному примеру информационно-поисковой системы, например, к поисковой системе Google.

Обратите внимание, что если вы измените запрос на «голубой топ для девочки», результаты изменятся следующим образом:

Постоянно отмечайте, как явное раскрытие спецификаций вашего продукта меняет отображение. Теперь, если вы хотите указать требование «полный рукав»

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

Поиск информации — это процесс получения ресурсов информационной системы, которые соответствуют потребностям в информации, из набора этих ресурсов.

Поиск может быть как полнотекстовым, так и контекстным.

Полнотекстовый поиск работает, проверяя все слова во всех сохраненных документах, чтобы они соответствовали намерениям пользователя, указанным в поисковом запросе.

Он достаточно хорошо работает с небольшим набором документов, думайте о нем как о grep. Но когда вы говорите о масштабе, то есть о большом наборе документов или увеличении поисковых запросов, это не работает. Вот где индексация и поиск полезны.

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

  • Контент в Интернете не ограничивается только книжным магазином, в котором размещался однородный набор предметов, то есть только книги. Владелец книжного магазина, будучи знатоком своего дела, может быстро достать вам книгу, но может потерпеть неудачу, если вы попросите его купить вам подходящую одежду. Таким образом, многие интернет-пользователи имеют широкий спектр требований к разнородным наборам продуктов, начиная от гаджетов, продуктов питания, одежды, обуви и т. д.
  • Запросы исходят от пользователей с разным опытом. В конце концов, запросы создаются разными пользователями по-разному, и ожидается, что машина все это поймет и будет релевантной.
  • Кроме того, пользователи обычно не используют более 3-4 слов, чтобы выразить свои интересы.
  • Ответ должен быть быстрым — будете ли вы ждать, набрав поисковый запрос в Google, столько же, сколько ждали бы возвращения владельца магазина. Без прав.
  • Даже при индексации нельзя проиндексировать все документы, не все документы одинаковые, одни информативнее других.

Что важно помнить при построении и развертывании модели? Понимание своей конечной цели. Прочитайте наше интервью с экспертами по машинному обучению из Стэнфорда, Google и HuggingFace, чтобы узнать больше.

Итак, это непростая задача и требует продвинутых алгоритмов, одним из которых является BM25.

Давайте изучим несколько концепций, прежде чем углубляться в BM25.

  • Частота термина: Частота появления ключевого слова запроса в документе.
  • Частота обратного термина: важность ключевого слова в количестве документов.
  • Актуальность: вопрос на миллион долларов, не так ли? Типичный алгоритм машинного обучения не сможет получить удовольствие от производственного пути, если он не будет оценен как готовый к работе. Точно так же релевантность для пользователей необходимо измерять и оценивать с использованием определенных показателей, таких как точность и полнота.
  • Точность — из всех возвращенных результатов, сколько релевантных (из 4 возвращенных результатов, 1 зеленого и 3 красных, релевантным является только 1 результат, т. е. 1/4). Другие извлеченные результаты считаются релевантными, например, 3 красные точки в синей области, но это не так. Следовательно, помечены как ложные срабатывания, где положительный результат является «актуальным».
  • Отзыв — из всех релевантных результатов, сколько извлеченных результатов релевантны (один зеленый цвет возвращен из 3 соответствующих зеленых результатов, т. е. 1/3).

  • Обратите внимание, что если вам нужно улучшить отзыв, вы в конечном итоге поставите под угрозу точность, поскольку теперь вы извлекаете много документов, которые также принесут с собой нерелевантные документы. Это добавляет больше ложных срабатываний, тем самым снижая точность.

Окапи BM25:

BM25 означает Лучшее совпадение 25 и основывается на хорошо известном TF-IDF (метод оценки терминов) и оценивает документы, относящиеся к запросу. BM25 превосходит TF-IDF, учитывая длину документа и насыщенность терминов частотой.

Функция BM25 выглядит следующим образом:

где q: термин запроса, а «i» представляет собой i-й термин запроса.

например: «Здравствуйте, я Видхи» имеет q0 = Привет, q1 = Я, q2 = am, q3 = Видхи

Индивидуальные оценки рассчитываются для каждого термина запроса, а затем суммируются, чтобы получить окончательную оценку релевантности поискового запроса.

Частота обратного документа:

Он показывает, как часто термин встречается во всех документах, налагая штраф на общеупотребительные слова. Например, «я» встречается чаще, чем «есть» и «видхи».

Следовательно, более редкий термин получает более высокий множитель, так что его вклад в окончательный результат больше.

Длина документа:

fieldLen/avgFieldLen — это отношение длины документа к средней длине документа. В нем говорится, что если документ длиннее средней длины документов в корпусе, то в его документе больше терминов и ему следует дать меньший балл.

Вы можете проверить с помощью приведенной ниже формулы, так как отношение находится в знаменателе, оно обратно пропорционально показателю релевантности.

Подумайте о термине запроса, появляющемся в документе из 100 слов по сравнению с документом из 1000 слов, какой из них должен иметь больший вес?

Параметры: b и k

b — множитель отношения длины поля. Более высокое значение b означает повышенный эффект соотношения длины документа по сравнению со средней длиной. Точно так же b = 0 → длина документа не влияет на оценку, остается только k.

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

Например, TF/IDF приводит к более высокому баллу для термина, встречающегося в документе больше раз, тогда как BM25 взвешивает это влияние до определенного порога и сглаживает его влияние некоторое время спустя (пример частоты 10 здесь).

Подводя итог, можно сказать, что способность BM25 рассчитывать показатель релевантности на основе средней длины документа, увеличения частоты терминов и влияния длины документа делает его более надежным по сравнению с подходом TF/IDF.

Если вы хотите узнать больше об Okapi BM25, о других функциях ранжирования, подробностях об инвертированном индексе и о том, чем отличаются расчеты релевантности в зависимости от изменения параметров, дайте мне знать в комментариях, и я напишу их в своем следующем блоге.

А пока удачного обучения.

Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.