Обучение ранжированию - это задача автоматического построения модели ранжирования с использованием обучающих данных, чтобы модель могла сортировать новые объекты в соответствии с их степенью релевантности, предпочтения или важности. - Ти-Ян Лю, Microsoft Research (2009)

Как описано в предыдущем посте, обучение ранжированию (LTR) является основной частью современных поисковых систем и имеет решающее значение для рекомендаций, голосовых и текстовых помощников. Мы также увидели различные оценочные показатели и некоторые традиционные модели IR. В этом посте дается подробный обзор точечного, попарного и списочного подхода к LTR.

Определение проблемы

Рейтинг R функции ранжирования fθ по набору документов D равен
R = (R1, R2, R3…)

Если документы отсортированы по убыванию баллов:
fθ (R1) ≥ fθ (R2) ≥ fθ (R3) ≥. . .
и каждый документ находится в рейтинге:
d ∈ D ⇐⇒ d ∈ R

(средний действительно затрудняет написание уравнений)

Для контролируемых и полу-контролируемых методов LTR требуются следующие данные:

  • Запросы, обозначаемые q
  • Результат существующей функции ранжирования поиска, также известной как результаты, которые вы хотите повторно ранжировать, также называемые «документом» в контексте веб-поиска. Давайте обозначим это как: d
  • Ярлыки для пары "запрос-результат" (релевантно / нерелевантно).
    В реальных условиях такие данные могут быть получены из журналов поиска. Мы будем называть метку y.

Таким образом, для документа релевантность может быть обозначена как y (d). Чтобы ограничить объем и простоту понимания, мы не будем говорить о случае одного и того же документа для нескольких запросов, поэтому запрос не используется в нотации y (d).

Точечное обучение для ранжирования

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

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

Парное обучение для ранжирования

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

Здесь мы суммируем все пары, в которых один документ более релевантен, чем другой, а затем потеря шарнира приведет к тому, что оценка соответствующего документа будет выше, чем у менее релевантного документа. Если разница больше 1, то max () превратит ее в потерю шарнира, где мы больше не будем ее оптимизировать. Это отталкивает документы друг от друга, если есть разница в релевантности. Таким образом, оценки не обязательно должны совпадать с метками, они должны быть достаточно правильно ранжированы.
У попарного LTR есть одна проблема: каждая пара документов рассматривается как одинаково важная, такая настройка бесполезна в реальном сценарии, потому что мы ожидаем, что наша поисковые системы должны правильно отвечать в 10 лучших пунктах, а не в топ-50.
Такая система ранжирования не учитывает пары, которые она пытается исправить, и их положение в рейтинге, что снижает качество из 10 лучших результатов по улучшению хвостов, например. первые 50. Таким образом, он улучшает рейтинг очень далеко вниз по списку, но снижается наверху.

Определенно требовался другой, лучший подход.

Списочное обучение ранжированию

Идея списочного LTR заключается в прямой оптимизации показателей ранжирования.
Например, если мы заботимся о DCG (дисконтированный совокупный выигрыш) - популярном показателе ранжирования, о котором говорилось в предыдущем посте, с помощью списочного LTR мы бы оптимизировали этот показатель напрямую. Потому что, если показатель - это то, что говорит нам о качестве, то это то, что мы должны оптимизировать как можно точнее.

Проблема с DCG?
log2 (rank (di) + 1) не дифференцируема, поэтому мы не можем использовать здесь что-то вроде стохастического градиентного спуска (SGD).

Чтобы решить эту проблему, мы обычно:
1. Используем вероятностные аппроксимации ранжирования (например, ListNet).
2. Используем эвристику или границы метрик (например, LambdaRank, LambdaLoss)

Например, потеря LambdaRank является доказанной границей для DCG.

Здесь мы снова суммируем пары документов, но теперь есть вес, соответствующий (определяемый членом log () в уравнении), на который изменяется величина DCG (определяемая абсолютной дельтой DCG) при переключении пары .

Заключение

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

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

Ссылки:
1. Тие-Ян Лю, Microsoft Research Asia (2009),« Обучение ранжированию для поиска информации »
2. Бхаскар Митра и Ник Красвелл (2018),« Введение в поиск нейронной информации
3.
Харри Остерхейс (Google Brain), Рольф Ягерман на The Web Conf