[БЕЗ_ЗВУКА] В этом видео мы обсудим конкретные метрики качества ранжирования. Напомню, в задаче ранжирования нам даны объекты, и на некоторых парах этих объектов задан порядок. Известно, что один объект меньше другого. И требуется построить модель a, которая данный порядок будет хорошо восстанавливать. Введем несколько обозначений, и начнем мы с простой постановки, в которой ответы у нас дискретные, даже бинарные. То есть известно, что данный документ релевантен данному запросу или нерелевантен данному запросу. Везде далее для простых будем рассматривать именно на примере задачи ранжирования поисковой выдачи, когда есть запросы и документы, но все эти рассуждения хорошо обобщаются и на другие случаи задачи ранжирования. Итак, мы считаем, что есть запросы и документы, и для каждой пары запрос-документ или для некоторых пар известно значение y ответа — 0 или 1: релевантен данный документ запросу или нерелевантен. И пусть есть некоторая модель a, которая принимает на вход запрос q и документ d и оценивает релевантность данного документа данному запросу. Если модель выдала релевантности, мы можем по ним отранжировать документы, собственно, по релевантности данному запросу. Будем обозначать как dqi — i-й по порядку релевантности с точки зрения модели документ для запроса q. После того как мы ввели обозначения, можно задать нашу первую метрику ранжирования. Это будет точность на первых k документах, Precision@k. k является здесь параметром — то, для скольких первых документах мы хотим измерять качество. Например, если мы измеряем качество поисковой выдачи и на первой странице выдачи у нас десять документов, нам может быть интересно смотреть именно на точность среди первых десяти документов, на точность на уровне 10. Определяется она очень просто. Это доля релевантных документов среди первых k с точки зрения модели. Эта метрика полезная, мы хотим, чтобы было как можно больше релевантных документов среди первых k, но при этом у нее есть один недостаток — она никак не учитывает позиции релевантных документов среди первых k. Например, если k = 10 и среди этих десяти документов пять релевантных, то для данной метрики неважно, где они находятся — среди первых пяти документов или среди последних пяти документов. Но понятно, что мы хотим, чтобы они были как можно выше среди первых k. Это можно решить, если немного модифицировать данную метрику и определить среднюю точность, average precision. Данная метрика тоже измеряется на уровне k, и при этом формула ее выглядит вот так. Мы суммируем точности на первых i документах среди всех i от 1 до k для тех позиций, для тех i, на которых находятся релевантные документы. Это достигается путем умножения на y. После этого мы делим на количество релевантных документов среди первых k. Можно показать, что данная метрика уже зависит от порядка. Она будет достигать максимума, если все релевантные документы находятся в самом верху ранжированного списка. Если же они будут смещаться ниже, значение данной метрики будет ухудшаться. Порядок она уже учитывает, и это лучше, чем обычная точность на первых k документах. Заметим, что и точность, и средняя точность вычисляются для конкретного запроса q. Если у нас большая выборка, которая размечена для многих запросов, мы хотим усреднить после этого значение метрики «средняя точность» по всем запросам. Это делается по данной формуле. Средняя точность по всей выборке запросов вычисляется как усреднение средней точности по всем запросам q из Q множества запросов. Второй подход к измерению качества ранжирования — это метрика DCG. Она задается для более сложной ситуации, в которой оценки релевантности y могут быть вещественными, то есть если есть некоторая шкала релевантности. Документ не просто релевантен или нет, а есть разные градации. Все остальные обозначения остаются такими же. В этом случае метрика DCG вычисляется по вот такой формуле. В ней мы суммируем по всем позициям от первой до k-й, где k — это некоторый уровень, который тоже является параметром. Суммируем мы дроби. В числителе стоит 2 в степени истинная релевантность данного i-го документа по порядку минус 1. То есть, чем более релевантен документ на этой позиции, тем больше будет наш числитель. В знаменателе стоит логарифм позиции. Знаменатель, таким образом, штрафует за то, где именно находится документ. Если документ очень релевантен, но находится на слишком далекой от верха списка позиции, штраф будет большим. Если документ релевантен и находится вверху списка, штраф будет маленьким. Данная метрика, таким образом, учитывает и релевантность, и опять же позицию документа. Ее максимум будет достигаться, если все документы находятся в самом топе списка. Данную метрику принято нормировать, чтобы ее значения можно было интерпретировать и смотреть на них, и воспринимать их как значения от 0 до 1. Для этого нужно поделить значение DCG на данной модели и данной выборке на максимальное значение DCG на уровне k для данной выборки. Максимальное значение, как мы уже обсудили, достигается на идеальном ранжировании, если все релевантные документы находятся в самом верху списка. При этом они должны быть отсортированы еще и по значению релевантности, по y, который может быть разным, у нас там целая шкала. Итак, мы обсудили два подхода к измерению качества ранжирования — это точность и DCG. При этом точность в базовом варианте не учитывает порядок документов. Чтобы она учитывала, нужно перейти к средней точности. Метрика DCG позволяет учитывать шкалу релевантности, ситуацию, в которой могут быть разные степени релевантности документа запросу. И при этом она также учитывает позиции, на которых находятся релевантные документы. В следующем видео мы поговорим о том, с помощью каких моделей можно ранжировать документы и как с помощью моделей можно оптимизировать те метрики, которые мы обсуждали в этом видео.