Релевантность и оценка — Azure Cognitive Search
- Статья
В этой статье объясняется релевантность и алгоритмы оценки, используемые для вычисления оценок поиска в Когнитивный поиск Azure. Оценка релевантности вычисляется для каждого совпадения, найденного в полнотекстовом поиске, где самым сильным совпадениям назначаются более высокие оценки поиска.
Релевантность применяется только к полнотекстовом поиску. Запросы фильтров, автозавершение и предлагаемые запросы, поиск с подстановочными знаками или нечеткие поисковые запросы не оцениваются и не ранжируются по релевантности.
В Когнитивный поиск Azure можно настроить релевантность поиска и повысить оценку поиска с помощью следующих механизмов:
- Настройка алгоритма оценки
- Семантический ранжирование (в предварительной версии, описано в этой статье)
- Профили оценки
- Пользовательская логика оценки, включенная с помощью параметра featuresMode
Примечание
Матчи оцениваются и ранжируются от высокого к низкому. Оценка возвращается как «@search.score». По умолчанию в ответе возвращаются первые 50 элементов, но можно использовать параметр $top, чтобы вернуть меньше или больше элементов (до 1000 в одном ответе) и параметр $skip, чтобы получить следующий набор результатов.
Оценка релевантности
Оценка релевантности означает вычисление оценки поиска, которая служит индикатором релевантности элемента в контексте текущего запроса. Чем выше оценка, тем более релевантен элемент.
Оценка поиска вычисляется на основе статистических свойств строковых входных данных и самого запроса. Когнитивный поиск Azure находит документы, соответствующие условиям поиска (некоторые или все в зависимости от searchMode), отдавая предпочтение документам, которые содержат несколько экземпляров условия поиска. Оценка поиска возрастает, если условие поиска редко встречается в индексе данных, но часто — внутри документа. Основу для такого подхода к вычислению релевантности называют TF-IDF или частотой условия — инверсная частота в документе.
Оценки поиска можно повторять во всем результирующем наборе. Если несколько попаданий имеют одинаковую оценку поиска, порядок одних и того же оцененных элементов не определен и не является стабильным. Выполните запрос еще раз, и, возможно, позиции элементов изменятся, особенно если вы используете бесплатную службу или оплачиваемую службу с несколькими репликами. Если есть два элемента с одинаковой оценкой, невозможно определить, какой из них отобразится первым.
Если вы хотите разорвать связь между повторяющимися оценками, вы можете добавить предложение $orderby, чтобы упорядочить элементы по оценке, а затем упорядочить по другому сортируемому полю (например, $orderby=search.score() desc,Rating desc
). Дополнительные сведения см. в статье Синтаксис $orderby OData в Когнитивном поиске Azure.
Примечание
@search.score = 1
указывает на результирующий набор без оценивания или без ранжирования. Оценка одинакова для всех результатов. Неохваченные результаты возникают, когда форма запроса является нечетким поиском, запросами с подстановочными знаками или регулярными выражениями или пустым поиском (search=*
иногда в сочетании с фильтрами, где фильтр является основным средством для возврата совпадения).
Алгоритмы оценки в поиске
Когнитивный поиск Azure предоставляет следующие алгоритмы оценки:
Алгоритм | Использование | Диапазон |
---|---|---|
BM25Similarity | Исправлен алгоритм для всех служб поиска, созданных после июля 2020 г. Этот алгоритм можно настроить, но нельзя переключиться на более старый (классический). | Неограниченными. |
ClassicSimilarity | Присутствует в более старых службах поиска. Вы можете согласиться на BM25 и выбрать алгоритм для каждого индекса. | 0 < 1.00 |
Как BM25, так и классические — это функции извлечения, подобные TF-IDF, которые используют частоту терминов (TF) и обратную частоту документов (IDF) в качестве переменных для вычисления оценок релевантности для каждой пары «документ-запрос», которая затем используется для ранжирования результатов. Хотя концептуально похоже на классический, BM25 коренится в вероятностном получении информации, что дает более интуитивно понятные совпадения, как измеряется исследованиями пользователей.
BM25 предлагает расширенные параметры настройки, такие как предоставление пользователю возможности решить, как масштабируется оценка релевантности с учетом частоты совпадающих терминов. Дополнительные сведения см. в разделе Настройка алгоритма оценки.
Примечание
Если вы используете службу поиска, созданную до июля 2020 г., скорее всего, используется предыдущий алгоритм оценки по умолчанию, ClassicSimilarity
который можно обновить для каждого индекса. Дополнительные сведения см. в статье Включение оценки BM25 в старых службах .
В следующем видео-фрагменте приводится краткое объяснение алгоритмов ранжирования, которые используются в Когнитивном поиске Azure. Дополнительные сведения можно получить, просмотрев полное видео.
Вариант оценки
Показатели поиска дают общее представление о релевантности, отражающее качество совпадений относительно других документов в том же результирующем наборе. Но оценки не всегда совпадают между запросами, поэтому при работе с запросами вы можете заметить небольшие расхождения в порядке упорядочения документов поиска. Существует несколько объяснений, почему это может произойти.
Причина | Описание |
---|---|
Изменчивость данных | Содержимое индекса меняется по мере того, как вы добавляете, изменяете или удаляете документы. Частота терминов изменяется при обработке обновлений индекса с течением времени, что влияет на показатели поиска соответствующих документов. |
Несколько реплик | Для служб, использующих несколько реплик, запросы к каждой реплике выдаются параллельно. Статистика индекса, используемая для вычисления оценки показателей поиска, вычисляется отдельно для каждой реплики, а результаты объединяются и упорядочиваются в ответе на запрос. Реплики в основном являются зеркальным отражением друг друга, но статистика может отличаться из-за наличия небольших различий. |
Идентичные результаты | Если несколько документов имеют одинаковый рейтинг, то один из них может появиться первым. |
Для обеспечения масштабируемости Когнитивный поиск Azure распределяет каждый индекс горизонтально через процесс сегментирования. Это означает, что части индекса являются физически разделенными.
По умолчанию оценка документа вычисляется на основе статистических свойств данных в сегменте. Этот подход, как правило, не является проблемой для большого объема данных. Он обеспечивает лучшую производительность, чем вычисление оценки на основе информации по всем сегментам.
Тем не менее, использование этой оптимизации производительности может привести к тому, что два очень похожих (или даже идентичных) документа будут иметь разные оценки релевантности, если они окажутся в разных сегментах.Если вы предпочитаете вычислять оценку на основе статистических свойств всех сегментов, вы можете сделать это, добавив scoringStatistics=global в качестве параметра запроса (или добавив «scoringStatistics»: «global» в качестве параметра текста запроса).
POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2020-06-30 { "search": "<query string>", "scoringStatistics": "global" }
Использование scoringStatistics гарантирует, что все сегменты в одной реплике обеспечивают одинаковые результаты. Тем не менее, разные реплики могут немного отличаться друг от друга, так как они всегда обновляются с последними изменениями в индексе. В некоторых случаях вам может потребоваться, чтобы пользователи во время «сеанса запроса» получали более согласованные результаты.
sessionId
как часть запросов. sessionId
является уникальной строкой, которую вы создаете для ссылки на уникальный сеанс пользователя.POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2020-06-30 { "search": "<query string>", "sessionId": "<string>" }
Пока используется та же самая строка sessionId
, будет предпринята максимальная попытка нацеливания на одну и ту же реплику, что повысит согласованность результатов, которые увидят пользователи.
Повторное использование одних и тех же значений sessionId
может повлиять на балансировку нагрузки запросов по репликам, а также негативно повлиять на производительность службы поиска. Значение, используемое в качестве sessionId, не может начинаться с символа «_».
Профили оценки
Вы можете настроить способ ранжирования для разных полей, определив пользовательский профиль оценки. Профили оценки предоставляют критерии для повышения оценки соответствия на основе характеристик контента. Например, может, вам нужно повысить приоритет совпадений на основе потенциального дохода, повысить уровень более новых элементов или, возможно, элементов, которые слишком долго находились на складе.
Профиль повышения — часть определения индекса, состоящая из взвешенных полей, функций и параметров. Дополнительные сведения о таком определении см. в статье Добавление профилей повышения в индекс службы Когнитивного поиска Azure.
Параметр featuresMode (предварительная версия)
В запросах поиска документов имеется новый параметр featuresMode, который может предоставить дополнительные сведения о релевантности на уровне полей. В то время как @searchScore
вычисляется для всего документа (насколько этот документ является релевантным в контексте этого запроса), с помощью параметра featuresMode можно получать сведения об отдельных полях, как указано в структуре @search. features
. В этой структуре содержатся все поля, используемые в запросе (определенные поля используются с помощью конструкции searchFields
- Число уникальных токенов, найденных в поле
- Оценка подобия или мера того, насколько содержимое поля сходно с термином из запроса
- Частота термина или количество раз, когда термин из запроса был найден в поле
Для запроса, предназначенного для полей «description» (описание) и «title» (заголовок), ответ, который содержит @search.features
, может выглядеть следующим образом:
"value": [ { "@search.score": 5.1958685, "@search.features": { "description": { "uniqueTokenMatches": 1.0, "similarityScore": 0.29541412, "termFrequency" : 2 }, "title": { "uniqueTokenMatches": 3. 0, "similarityScore": 1.75451557, "termFrequency" : 6 }
Вы можете использовать эти величины в пользовательских решениях оценки или применить эту информацию для отладки проблем, связанных с релевантностью поиска.
См. также раздел
- Профили оценки
- Справочник по REST API
- Поиск документов (REST API Когнитивного поиска Azure)
- Библиотеки службы «Поиск Azure» для .NET
Релевантность – приемлемость, соответствие чему-либо
Обновление статьи: 05 августа 2022 года
Релевантный (релевантность, relevant) – уместный, значимый, соответствующий, имеющий отношение к чему-либо.
В поисковой оптимизации сайтов (SEO) понятие «релевантность» имеет особое значение по отношению к контенту веб-страниц и сайта в целом. Чтобы страницы сайта высоко ранжировались в поисковых системах, их контент должен быть максимально релевантен а) тематике страниц и б) поисковым запросам пользователей.
Релевантность контента тематике страниц означает, что контент – тексты, изображения, видео и проч. – должен описывать только то, чему посвящена страница сайта. Если это, например, статья, под названием «Как построить баню своими руками», – в ней должна быть представлена только эта тема. Если страница коммерческого сайта, например интернет-магазина одежды, посвящена теме «мужские куртки», на странице должны быть представлены только мужские куртки – а не женские, обувь, свитера и проч.
Релевантность контента поисковым запросам пользователей означает, что в контенте страницы должны быть слова и фразы, соответствующие тому, как их задают пользователи в поиске по соответствующей теме. Есть рассматривать бизнес-сайт, то речь о том, как представляют себе данный бизнес реальные люди и как ищут по нему информацию – например, определённые товары.
Эти два понятия совокупно еще называют релевантность поиска. Насколько полно соответствие задаваемого вопроса той информации, которая представлена на сайте и будет означать релевантность содержимого пользовательскому поиску.
Так при вводе запроса алгоритмы поисковых систем сканируют содержимое сайтов и формируют выдачу в порядке полноты релевантности или соответствия контента (оценка происходит на основании внешних и внутренних факторов: внутреннего наполнения и авторитета сайта в данной отрасли). Самые полезные и информативные страницы будут занимать верхние позиции.
Например, при поиске фразы «SEO продвижение сайта в Москве» будут показаны страницы, предоставляющие услугу раскрутки сайта в столичном регионе, содержимое которых максимально соответствует смыслу запроса.
Правило релевантности одинаково верно для коммерческих и информационных страниц. Так наша статья в блоге «ТОП 11 лучших сервисов для подбора ключевых слов» первая в выдаче Google по запросу «сервис подбора ключевых слов с сайта».
Часто бывает, что предприниматель описывает на сайте свой бизнес – продукцию и услуги – своими словами, не попадая при этом в лексику (поисковые запросы) своей целевой аудитории. А надо, чтобы попадал – максимально. Для этого необходимо собрать по своей тематике поисковые запросы и заложить их в виде ключевых слов и фраз (ключей) в контент своего сайта. Отдельно сформированный набор ключей сайта будет являться его семантическим ядром (СЯ), которое должно быть а) максимально полным и б) структурированным.
Полнота СЯ означает максимальный охват поисковых запросов по данной теме. Это, соответственно, увеличивает охват целевой аудитории, приходящей на сайт из поиска, что имеет критическое значение для коммерческих сайтов. Для интернет-магазинов с широким ассортиментом объём СЯ может достигать десятков тысяч ключей.
Структурированность (кластеризация) означает, что ключи в СЯ должны быть разбиты на группы и подгруппы (кластеры), соответствующие, например, товарным группам и отдельным товарам, которые, в свою очередь, представлены на отдельных страницах сайта. Это и позволяет сделать каждую веб-страницу максимально релевантной её тематике и конкретному интересу (интенту) целевой аудитории. Если пользователи ищут мужские куртки, им должна быть показана страница сайта, на которой представлены только мужские куртки. А это значит, что на данной странице не должно быть других – нерелевантных ключей и в целом нерелевантной информации.
При этом – и для расширения полноты СЯ, и во избежание переспама по отдельным ключам – в текстовом контенте веб-страницы стоит использовать не только прямые соответствия (прямые вхождения) ключей наиболее популярным поисковым запросам (высоко-, среднечастотным), но и непрямые соответствие (непрямые вхождения) – например словоформы, разбавления ключевых фраз дополнительными словами, перестановки слов, – а также синонимичные вхождения. Всё это позволяет сделать контент максимально естественным (не спамным) и при этом высоко релевантным как тематике конкретной страницы сайта, так и соответствующим поисковым запросам пользователей (интенту).
При ранжировании страниц сайтов алгоритмы поисковых систем учитывают и релевантность их контента специфичным поисковым запросам, и релевантность контента тематике отдельной страницы.
Например, если на странице будет хорошее соответствие контента определённым запросам («где купить мужскую куртку» и т.п.), но при этом будет информация, не имеющая отношения к данной теме (нерелевантная), поисковики сочтут эту страницу низкорелевантной и не дадут ей хороших позиций в своей выдаче – даже по целевым запросам (о мужских куртках).
С другой стороны, если контент страницы будет высоко релевантным данной теме (представлены только мужские куртки и ничего более), но в нём будет слишком мало ключей по ней – например, не будет коммерческих вхождений, таких как «цена мужской куртки», «заказать мужскую куртку», «купить мужскую куртку онлайн» и т.д. – это тоже негативно скажется на SEO страницы, т.к. в поиске она будет показываться меньшему числу людей (часть аудитории по неохваченным запросам будет выпадать).
Таким образом, при поисковой оптимизации сайта и отдельных веб-страниц следует одновременно ориентироваться и на релевантность контента заявленной тематике сайта (страницы), и на релевантность контента интенту пользователей, т. е. поисковым запросам, соответствующим данной тематике.
Дополнительно смежные вопросы рассматриваются в статьях Ключевые слова/фразы, Семантическое ядро, Поисковый запрос, Вхождение, Переспам, Интент.
В целом, оптимизация контента – прежде всего, текстов сайтов – является базовой составляющей SEO и требует хороших компетенций. Мы рекомендуем Вам обращаться в нашу компанию. Наши профессионалы не только проконсультируют Вас по всем SEO-вопросам, включая текстовую оптимизацию сайтов, но и возьмут на себя полное продвижение Вашего веб-ресурса.
Заказать контекстную рекламу
Контрольный список производительности Tableau: фильтрация — избегайте «только релевантных значений» в быстрых фильтрах
Серия контрольных списков производительности Tableau предназначена для того, чтобы помочь вам оптимизировать производительность панели мониторинга и конфигурацию сервера Tableau. Каждый пост расширяет один элемент, указанный в контрольном списке производительности Tableau.
Скорость имеет значение, ребята! Сегодняшние потребители отчетов ожидают, что их информационные панели будут работать так же быстро, как веб-страницы. Теперь, когда высокоскоростной интернет является стандартом в бизнесе, есть с чем конкурировать. Вот почему так важно оптимизировать каждую приборную панель для достижения наилучшей производительности.
Следующий элемент в нашем разделе «Фильтрация»:
«Избегайте выбора «Только релевантные значения» для ваших быстрых фильтров. Для этого требуются последовательные запросы. Не используйте это, когда в этом нет необходимости».
Давайте разберемся, что это значит и почему это может негативно сказаться на производительности вашей приборной панели.
Дополнительная настройка
Как говорит Джули Эндрюс в «Звуках музыки»:
«Давайте начнем с самого начала, это очень хорошее место для начала».
Добро пожаловать за ушным червем. Что вообще означает опция Только релевантные значения ? Параметр по умолчанию для быстрого фильтра — Все значения в базе данных , что в значительной степени соответствует звучанию: быстрый фильтр сделает все значения в базе данных для этого конкретного поля доступными для выбора пользователем.
В отличие от Только релевантные значения . Этот параметр сначала сравнивает значения, возвращаемые из базы данных, со значениями других быстрых фильтров. Затем он показывает только те значения, которые применяются с учетом выбора, сделанного в других фильтрах. Его можно найти в меню фильтра вот здесь:
Хорошим примером этого может быть информационная панель, отображающая информацию о Соединенных Штатах. Допустим, есть региональный фильтр и фильтр на уровне штата. При выборе Только релевантные значения для фильтра Состояние он сначала просматривает Регион , выбранный пользователем. Если региональный фильтр настроен на регион Western , то фильтр на уровне штата будет отображать только штаты из региона Western . Таким образом, пользователь не может сделать недопустимую комбинацию фильтров. СЧЕТ! Ты убиваешь меня, Табло.
Просто чтобы довести до конца, если Только релевантные значения — это , а не , выбранные для фильтра Состояние , тогда это создаст пустое представление, если выбран регион Западный . Выбирается любой штат за пределами региона Western .
Ограничения производительности
Я ненавижу сообщать какие-то потенциально плохие новости, но здесь я должен предупредить. Проблема с этой настройкой возникает, когда быстрых фильтров больше двух. Tableau вынужден выполнять не только один запрос, чтобы получить все значения для каждого быстрого фильтра, но должен запустить второй подзапрос, чтобы заполнить представление для каждого выбора на основе релевантности с другими фильтрами на панели инструментов. В результате этих подзапросов производительность вашей информационной панели может сильно пострадать (выявив здесь мою внутреннюю королеву драмы).
Это ограничение идет рука об руку с предыдущим пунктом контрольного списка производительности Tableau «Ограничить количество быстрых фильтров». В общем, чем больше быстрых фильтров вы добавите на свою панель инструментов, независимо от того, включают ли они только релевантные значения или нет, тем больше возможностей испортить производительность вашего отчета.
Вы можете использовать наш инструмент Best Practice Analyzer (часть набора инструментов Workbook), чтобы пометить книги с этой потенциальной проблемой.
Лучшее решение
Итак, как нам обойти проблемы производительности быстрого фильтра с релевантностью? Так же, как мы делали с обычными быстрыми фильтрами: используйте фильтр действий на панели инструментов, когда можете! Фильтр действий не требует отдельного запроса или подзапроса для получения результатов.
Это не только повысит производительность панели мониторинга, но и создаст более понятный и интуитивно понятный интерфейс для пользователей отчетов. Это можно сделать, выбрав любое представление на панели инструментов и выбрав Использовать как фильтр .
Это означает, что всякий раз, когда потребитель отчета щелкает метку данных, он автоматически фильтрует всю информационную панель по этому значению. Бу да!!
Освоение лучших практик
Если вы хотите стать гуру Tableau Server, то изучение этих лучших практик по повышению производительности просто необходимо. Почаще проверяйте, когда мы добавляем новые сообщения, и углубляйтесь в каждый пункт контрольного списка производительности Tableau.
Еще один отличный способ определить передовой опыт – использовать аналитические данные, предлагаемые нашим Анализатором производительности, входящим в состав Workbook Tools for Tableau. Он проверит все ваши рабочие книги, рабочие листы, информационные панели и источники данных на соответствие списку лучших практик, чтобы убедиться, что вы используете все советы и приемы, чтобы гарантировать, что ваши визуализации движутся со скоростью света.
Как всегда, не стесняйтесь обращаться к нам, если у вас есть какие-либо вопросы относительно производительности или чего-либо, связанного с Tableau! Будем рады помочь.
Свяжитесь с нами!
The Data School — Tableau Практическое руководство: Показать только релевантные значения Фильтр
Джессика Палмер
В этом блоге описано, как отображать только те значения, которые в одном фильтре соответствуют значению, выбранному в другом фильтре. Это гарантирует, что пользователь может выбирать только те значения, которые применимы к первому выбранному значению.
В данных примера есть три фильтра для Года, Категории и Докладчика, чтобы создать список из 3 рекомендуемых выступлений для просмотра пользователем на основе этих фильтров. Тем не менее, категории меняются из года в год, а выступающие меняются в зависимости от категории. Это может привести к длинному списку значений, некоторые из которых могут не относиться к выбранному году (это повлияет на категорию и категорию докладчика) или категории (это повлияет на фильтр динамика). Это не только выглядит неаккуратно на приборной панели, но и может привести к путанице, если пользователь нажмет на категорию или динамик, которых не было в выбранном году, так как представление будет просто пустым.
На этом изображении выбран 2019 год, а в фильтре категорий есть много значений, которые пользователь может выбрать, не все из которых применимы к 2019 году. Все значения в базе данных» на «Только релевантные значения». Теперь, когда выбран 2019 год, список категорий становится короче, показывая только категории, которые имели место в 2019 году, и только докладчиков, выступавших в 2019 году, если категория не выбрана. Когда категория выбрана, в списке докладчиков должны отображаться только те докладчики, которые относятся к выбранной категории и которые выступали в 2019 году.. На изображении выше показано, где выбрать «Только релевантные значения» в меню параметров фильтра. Теперь, когда к фильтру применены «Только релевантные значения», отображается более короткий список значений в фильтре категории по сравнению с первым изображением, когда 2019 г. был выбран в фильтре «Год».Эти фильтры следует применять к контексту на листе. Щелкните правой кнопкой мыши фильтр на карточке фильтров на листе, где применяются фильтры, и нажмите «Добавить в контекст».
На этом рисунке показано, где добавить контекст к фильтру на листеСуществует потенциальная проблема с использованием «Только релевантные значения», о которой важно помнить. Если он установлен для всех трех фильтров: «Год», «Категория», «Диктор», то если выбрана категория или значение говорящего, то фильтр года будет иметь только одно или два значения, которые применяются к выбранной категории или значению говорящего. Поэтому, если я хочу выбрать другой год, чтобы увидеть, кто выступал в этом году или какие категории доступны, мне придется очистить все фильтры или выбрать все в категории и говорящем. Это иногда немного сбивает с толку и затрудняет конечного пользователя при попытке перейти к определенному выбору видео. В настоящее время это проблема для фильтров категорий и динамиков, где выбор динамика уменьшает отображаемые значения категории, а выбор категории уменьшает отображаемые значения динамика, но для панели мониторинга это не было проблемой. Таким образом, «Только релевантные значения» хорошо работает только в том случае, если фильтры находятся в четкой иерархии в этом примере: «Год» → «Категория» → «Диктор». Следовательно, первый фильтр в иерархии, в данном случае «Год», должен «Сохранить все значения в базе данных».