Понимание современных систем ранжирования, которые можно использовать для поиска информации.

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

  1. Классификация - цель которой состоит в том, чтобы пометить конкретный экземпляр данных в сегменты в зависимости от различных функций.
  2. Регрессия - когда мы хотим получить непрерывное действительное число в качестве выходных данных для данного набора функций.

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

Введение в RankNet

В 2005 году Крис Берджес и др. и др. в Microsoft Research представили новый подход к созданию моделей обучения ранжированию. Их подход (который можно найти здесь) использовал вероятностную функцию стоимости, которая использует пару элементов выборки, чтобы узнать, как их ранжировать. Эта функция по существу пытается минимизировать количество замен, необходимых для исправления неправильного порядка выбранных элементов. В их статье этот подход дополнительно исследуется путем реализации этой функции затрат с помощью нейронной сети, оптимизированной с помощью градиентного спуска. Эта сеть, называемая RankNet, также тестируется на некоторых реальных данных, чтобы показать ее эффективность.

Как реализовано в документе, работа RankNet кратко описана ниже.

Обучение сети

  1. Строится двухслойная нейронная сеть с одним выходным узлом. Выходное значение соответствует релевантности этого элемента набору, а входной слой может иметь несколько узлов в зависимости от размера вектора признаков.
  2. Из набора данных выбираются две случайные выборки, и прямое распространение выполняется для каждой из этих выборок индивидуально, в результате чего создаются два выходных значения, по одному для каждого элемента.
  3. Определяется стоимость, которая является функцией активации (e g: sigmoid) разницы этих двух выходных значений. Предполагается, что первая выборка имеет более высокий рейтинг, чем вторая, и рассчитываются соответствующие потери.
  4. Эта потеря распространяется обратно в сеть, чтобы изучить выбранный пример.
  5. Шаги 2–4 выполняются до завершения обучения (в зависимости от количества эпох).

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

Получение рейтинга набора

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

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

Далее этот подход был протестирован на реальных данных - результатах поисковой системы по заданному запросу. Важно отметить, что, поскольку эта модель не выполняет традиционную классификацию или регрессию, ее точность должна определяться на основе показателей качества ранжирования. В качестве меры точности ранжирования для реального примера был выбран NDCG (Нормально дисконтированный совокупный прирост), который является популярным методом оценки эффективности конкретного ранжированного набора. NDCG дает результат от 0 до 1, где 1 представляет наиболее оптимальный порядок элементов. После обучения шести различных функций ранжирования (включая две разные реализации RankNet) на тестовом наборе были получены следующие результаты для заданных векторов признаков запроса / документа результатов поиска.

Таким образом, мы видим, что среднее значение NDCG для RankNet (как одноуровневого, так и двухуровневого) значительно выше, чем у других функций ранжирования.

Будущие улучшения

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

LambdaRank

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

Кроме того, они получили еще лучшие результаты, когда усилили этот градиент за счет изменения в NDCG, которое произошло в результате обмена документами. Таким образом, LambaRank оказался более быстрым в обучении, в сочетании с повышением точности.

LambdaMART

В другой ревизии была представлена ​​древовидная версия LambaRank с градиентным усилением . Это оказалось даже более точным, чем две предыдущие модели в наборах экспериментальных данных.

Заключение

Таким образом, мы познакомились с некоторыми современными методами обучения ранжированию, которые очень полезны, когда мы хотим упорядочить набор элементов в системе поиска информации. Возникает вопрос: что мешает нам реализовать эти модели? Ответ прост - НИЧЕГО!

(Для тех, кому интересно, мою собственную реализацию RankNet с использованием Keras и TensorFlow можно найти по адресу https://github.com/devanshgoenka97/RankNet )

использованная литература

[1]: Берджес, К., Шакед, Т., Реншоу, Э., Лазье, А., Дидс, М., Гамильтон, Н., и Халлендер, Г. (2005). Обучение ранжированию с помощью градиентного спуска. ICML 2005 .

[2]: Burges, C., Ragno, R.J., & Le, Q.V. (2007). Обучение ранжированию с помощью негладких функций затрат.

[3]: Wu, Q., Burges, C., Svore, K., & Gao, J. (2009). Адаптация ускорения для поиска информации. Поиск информации, 13, 254–270 .

[4]: Burges, C. (2010). От RankNet к LambdaRank к LambdaMART: обзор.