Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Переранжирование

Обучение ранжированию

Данная функция была добавлена в версии 8.12.0 и доступна только определённым уровням подписки. Дополнительная информация доступна по адресу https://www.elastic.co/subscriptions.

Обучение ранжированию (LTR) использует обученную модель машинного обучения (ML) для построения функции ранжирования для вашей поисковой системы. Обычно модель используется как переранжировщик второй стадии, чтобы улучшить релевантность результатов поиска, возвращаемых более простым алгоритмом извлечения информации на первой стадии. Функция LTR принимает список документов и контекст поиска и возвращает отсортированные документы:

Learning To Rank overview
Рисунок 6. Обзор обучения ранжированию

Контекст поиска

Помимо списка документов для сортировки, функция LTR также требует контекста поиска. Обычно этот контекст поиска включает, по меньшей мере, поисковые запросы, введённые пользователем (text_query в приведённом выше примере). Контекст поиска также может содержать дополнительную информацию, используемую в режиме ранжирования. Это может быть информация о пользователе, выполняющем поиск (такая как демографические данные, геолокация или возраст); об запросе (например, длина запроса); или документе в контексте запроса (например, оценка для поля заголовка).

Список оценок

Модель LTR обычно обучается на списке оценок, который представляет собой набор запросов и документов с оценкой релевантности. Списки оценок могут быть сгенерированы человеком или машиной: они часто заполняются на основе аналитики поведения, часто с участием проверки человеком. Списки оценок определяют идеальную последовательность результатов для заданного поискового запроса. Цель LTR — подогнать модель к спискам оценок максимально точно для новых запросов и документов.

Список оценок является основным входным данными для обучения модели. Он состоит из набора данных, содержащего пары запросов и документов, а также соответствующие метки релевантности. Оценка релевантности обычно является двоичной (релевантный/нерелевантный) или более дробной меткой, например, оценкой от 0 (полностью нерелевантный) до 4 (высоко релевантный). В примере ниже используется оценка релевантности с градациями.

Judgment list example
Рисунок 7. Пример списка оценок

Примечания по спискам оценок

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

Количество и качество вашего списка оценок будут сильно влиять на общую производительность модели LTR. Следует очень тщательно учитывать следующие аспекты при построении списка оценок:

  • Большинство поисковых систем можно искать с помощью различных типов запросов. Например, в поисковой системе по фильмам пользователи ищут по названию, но также и по актёру или режиссёру. Очень важно поддерживать сбалансированное количество примеров для каждого типа запросов в вашем списке оценок. Это предотвращает переобучение и позволяет модели эффективно обобщать все типы запросов.
  • Пользователи часто предоставляют больше положительных примеров, чем отрицательных. Сбалансировав количество положительных и отрицательных примеров, вы поможете модели точнее различать релевантное и нерелевантное содержимое.

Извлечение функций

Только пары запросов и документов не предоставляют достаточной информации для обучения моделей ML, используемых в LTR. Оценки релевантности в списках оценок зависят от ряда свойств или функций. Эти функции необходимо извлечь, чтобы определить, как различные компоненты объединяются для определения релевантности документа. Список оценок плюс извлечённые функции составляют набор данных для обучения модели LTR.

Эти функции относятся к одной из трёх основных категорий:

  • Функции документа: Эти функции получены непосредственно из свойств документа. Пример: цена товара в интернет-магазине.
  • Функции запроса: Эти функции вычисляются непосредственно из запроса, введённого пользователем. Пример: количество слов в запросе.
  • Функции запрос-документ: Функции, используемые для предоставления информации о документе в контексте запроса. Пример: оценка BM25 для поля title.

Для подготовки набора данных к обучению функции добавляются к списку оценок:

Judgment list with features
Рисунок 8. Список оценок с функциями

Для этого в Elasticsearch используйте шаблонированные запросы для извлечения функций при построении набора данных для обучения и во время вывода во время запроса. Вот пример шаблонированного запроса:

[
  {
    "query_extractor": {
      "feature_name": "title_bm25",
      "query": { "match": { "title": "{{query}}" } }
    }
  }
]

Модели

Сердцем LTR, конечно же, является модель ML. Модель обучается с использованием описанных выше обучающих данных в сочетании с целевой функцией. В случае LTR целевой функцией является оптимальное ранжирование документов результатов по отношению к списку оценок, с учётом некоторой метрики ранжирования, например, nDCG или MAP. Модель использует только функции и метки релевантности из обучающих данных.

Пространство LTR быстро развивается, и с ним экспериментируют многие подходы и типы моделей. На практике Elasticsearch использует в частности модели градиентного усиления деревьев решений (GBDT) для вывода LTR.

Обратите внимание, что Elasticsearch поддерживает вывод модели, но сам процесс обучения должен происходить вне Elasticsearch, с использованием модели GBDT. Среди самых популярных моделей LTR, используемых сегодня, LambdaMART обеспечивает высокую производительность ранжирования с низкой задержкой вывода. Она использует модели GBDT и поэтому идеально подходит для LTR в Elasticsearch.

XGBoost — известная библиотека, предоставляющая реализацию LambdaMART, что делает её популярным выбором для LTR. Мы предлагаем помощники в eland для облегчения интеграции обученной модели XBGRanker в качестве вашей модели LTR в Elasticsearch.

Узнайте больше о тренировках в Обучении и развертывании модели LTR или ознакомьтесь с нашим интерактивным блокнотом LTR, доступным в репозитории elasticsearch-labs.

LTR в стеке Elastic

На следующих страницах этого руководства вы узнаете, как:

  • Обучать и развертывать модель LTR с помощью eland
  • Использовать модель LTR в качестве переранжировщика

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/learning-to-rank.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API