Обработка естественных меток в рекомендательных системах

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

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

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

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

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

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

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

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

Как обнаружить вырожденные петли обратной связи?

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

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

Далее, совокупное разнообразие – это один из показателей, который измеряет разнообразие элементов в списках рекомендаций всех пользователей. Увеличение совокупного разнообразия важно, поскольку оно приводит к более равномерному распределению элементов в списках рекомендаций, что предотвращает проблему «длинного хвоста».

Другой подход к обнаружению ухудшенных циклов обратной связи заключается в измерении коэффициента попадания в зависимость от популярности. Сначала разделите элементы на группы в зависимости от их популярности — например, группа 1 состоит из элементов, с которыми взаимодействовали менее 100 раз, группа 2 состоит из элементов, с которыми взаимодействовали более 100 раз, но менее 1000 раз и т. д. Затем они измерили точность прогнозирования рекомендательной системы для каждого из этих сегментов. Если рекомендательная система намного лучше рекомендует популярные товары, чем менее популярные, она, вероятно, страдает от предвзятости популярности.

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

Как исправить ухудшенные циклы обратной связи?

Двумя распространенными подходами к преодолению вырожденных циклов обратной связи являются рандомизация и позиционные функции.

Рандомизация

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

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

Рандомизация — это один из подходов, которого придерживается TikTok. Каждому новому видео случайным образом назначается первоначальный пул трафика (который может достигать сотен показов). Этот пул трафика используется для объективной оценки качества каждого видео и определения того, следует ли его переместить в более крупный пул трафика или пометить как нерелевантное.

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

Позиционный элемент

Ранее мы обсуждали, как положение рекомендуемого элемента может повлиять на то, как пользователь может выбрать этот элемент.

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

Если позиция, в которой отображается прогноз, каким-либо образом влияет на его обратную связь, мы можем захотеть закодировать информацию о позиции, используя позиционные функции. Позиционные признаки могут быть числовыми (например, позиции — 1, 2, 3,…) или логическими (например, отображается ли прогноз в первой позиции или нет).

Во время обучения мы добавляем к обучающим данным признак «рекомендуется ли фильм в первую очередь». Эта функция позволяет нашей модели узнать, насколько высокая рекомендация влияет на вероятность кликов по фильму.

Во время вывода мы хотим предсказать, нажмет ли пользователь на фильм независимо от того, где фильм рекомендован, поэтому мы можем установить для функции «1-я позиция» значение «Ложь». Затем мы смотрим на прогнозы модели для различных фильмов для каждого пользователя и можем выбрать порядок показа каждого фильма.

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

Справочник: «Проектирование систем машинного обучения», Чип Хьюен

Если статья окажется для вас полезной, подпишитесь на меня и свяжитесь со мной, чтобы получить дополнительную информацию о MLOps и ML.

Ютуб и LinkedIn