Это руководство впервые было представлено как часть учебного пособия на TheWebConf ‘21

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

Как правило, при работе с IR чем больше корпус, тем больше должен быть набор данных для оценки и тем более строгим должен быть процесс оценки. Одним из наиболее эффективных способов оценки релевантности поиска является маркировка данных с участием человека в цикле, из которых мы выбираем метод краудсорсинга.

Оценка качества поиска

Любая система IR работает, предоставляя вывод поискового запроса от наиболее релевантных до наименее релевантных, когда фразы набираются в строке поиска. Обычно пользователь просматривает первые 4–5 возвратов, выбирает что-то подходящее и игнорирует остальные.

Имея это в виду, крайне важно, чтобы система последовательно ранжировала результаты веб-поиска, принимая во внимание их релевантность, своевременность и масштабируемость, а также ряд офлайн-метрик, служащих для достижения этой цели. NDCG (Normalized Discounted Cumulative Gain) — это показатель качества ранжирования, который часто используется для измерения эффективности поисковой системы. В этом сценарии самая идеальная система сначала перечисляет элементы с самой высокой оценкой.

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

• Изменение функции дисконтирования с логарифмической на достижимую, например, 𝑟^(−1/2).

• Ограничение количества наиболее часто извлекаемых документов, т. е. использование NDCG@k.

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

Выборка запросов

Какие именно запросы следует использовать при автономной оценке? Некоторые утверждают, что это самые популярные запросы, которые пользователи сети делают на регулярной основе. Но как быть с теми запросами, которые делаются реже, возможно, даже один раз?

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

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

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

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

Получив наши образцы запросов, мы можем использовать их в трех ключевых областях автономной оценки:

• Измерение KPI (индикатор ключевой точки): общая ежедневная оценка обслуживания, используемая для определения того, насколько хорошо работает наше обслуживание.

• Корзина проверки: частое тестирование, включая, помимо прочего, эксперименты A/B и тонкую настройку нашего сервиса.

• Тестовая корзина: отдельная корзина для предварительных проверок, которую мы можем использовать для борьбы с переоснащением в корзине KPI.

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

Применение краудсорсинга

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

Человеческие суждения гораздо более надежны, когда речь идет о переобучении, что позволяет нам измерять релевантность поиска, не подвергаясь влиянию каких-либо факторов, встроенных в систему. Более того, мы можем использовать смесь публичных и управляемых/внутренних толп, чтобы получить наилучшие результаты, что, в свою очередь, позволит нам масштабировать наши измерения на порядок.

Краудсорсинговые задачи

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

Что касается специфики, то side-by-side (SbS) — или попарное сравнение — является одной из самых распространенных задач краудсорсинга. Участников просят сравнить результаты поиска друг с другом в виде изображения или текста — два одновременно — и выбрать наиболее подходящий.

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

• Ясность инструкций и обилие примеров, т. е. все ли понятно аннотаторам и нет ли противоречий или серых зон.

• Качество золотых (предварительно аннотированных) задач, т. е. новые аннотаторы могут отправлять правильные ответы, но их суждения не будут соответствовать золотому набору, если последний сам по себе скомпрометирован.

• Структура золотых задач, которая при плохой структуре (слишком простой или слишком сложной) приведет к переоценке или недооценке качества поиска.

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

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

Совокупность ответов

После того, как мы получили ответы от наших аннотаторов толпы, можно использовать ряд методов для объединения этих ответов, но не все они одинаково подходят для каждой ситуации. В то время как во многих задачах классификации есть встроенное предположение только об одном правильном ответе, задачи попарного сравнения, необходимые для ранжирования и оценки поисковых запросов, часто основаны на субъективных мнениях. Чтобы учесть этот важный фактор, мы можем использовать модель Брэдли-Терри для агрегирования.

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

Среди многих решений этой проблемы — интеграция NoisyBT в нашу модель, которая рассматривает не только элементы, но и аннотаторы как имеющие параметры качества — надежность и предвзятость. Затем вероятностное правдоподобие модифицируется путем применения метода градиентного спуска, как показано ниже. Для тех, кто ищет простоты, Crowd-Kit может помочь с агрегацией, предлагая все вышеупомянутые алгоритмы в библиотеке Python с открытым исходным кодом.

Выбор пар

Чтобы провести задачу попарного сравнения, нам нужно выбрать парные элементы. Вопрос в том, как мы это делаем? Чтобы узнать, какие из них выбрать, мы можем просто вычислить все возможные комбинации (для объектов n будет асимптотически n² пар); однако этот метод слишком дорог.

Вместо этого мы можем вычислить меньшие, но разумные пары подмножеств аналогично тому, как алгоритм сортировки слиянием выполняет такие попарные сравнения за O(n log n ). Наш опыт показывает, что достаточно отобрать k· n log n пар этих объектов, где гиперпараметр k необходимо настроить (обычно не превышает 12).

Заключение

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

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

Полезные ресурсы

Данные конференции по текстовому поиску: https://trec.nist.gov/data.html

Наборы данных релевантности агрегации Толока: https://toloka.ai/datasets