Балансировка акта устранение предвзятости популярности в рекомендательных системах

Балансировка акта устранение предвзятости в рекомендательных системах

Фото от Мелани Понгратц на Unsplash

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

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

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

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

Это показывает, что рекомендательные системы имеют свои ограничения – предложение “хорошего” товара не гарантирует положительного и насыщенного опыта для потребителя. Так что была ли это хорошая рекомендация в конечном итоге?

Почему важно измерять популярный эффект в рекомендательных системах?

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

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

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

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

Как измерить популярный эффект?

Средняя популярность рекомендаций

Средняя популярность рекомендаций (ARP) – это метрика, используемая для оценки популярности рекомендуемых товаров в списке. Она рассчитывает среднюю популярность товаров на основе количества оценок, полученных ими в обучающем наборе данных. Математически ARP рассчитывается следующим образом:

Где:

  • |U_t| – количество пользователей
  • |L_u| – количество товаров в рекомендованном списке L_u для пользователя u .
  • ϕ(i) – количество раз, когда “товар i” был оценен в обучающем наборе данных.

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

Пример: Предположим, у нас есть тестовый набор с 100 пользователями |U_t| = 100. Для каждого пользователя мы предлагаем рекомендованный список из 10 товаров |L_u| = 10. Если товар A был оценен 500 раз в обучающем наборе данных (ϕ(A) =. 500), а товар B был оценен 300 раз (ϕ(B) =. 300), то ARP для этих рекомендаций может быть рассчитан следующим образом:

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

Средний процент элементов длинного хвоста (APLT)

Метрика “Средний процент элементов длинного хвоста” (APLT) вычисляет среднюю долю элементов длинного хвоста в рекомендуемых списках. Она выражается следующим образом:

Здесь:

  • |Ut| представляет общее количество пользователей.
  • u ∈ Ut обозначает каждого пользователя.
  • Lu представляет рекомендуемый список для пользователя u.
  • Γ представляет множество элементов длинного хвоста.

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

Пример: Предположим, что есть 100 пользователей (|Ut| = 100). В среднем в рекомендуемом списке каждого пользователя из 50 элементов (|Lu| = 50) 20 элементов принадлежат к множеству длинного хвоста (Γ). Используя формулу, APLT будет равно:

APLT = Σ (20 / 50) / 100 = 0.4

Таким образом, в данном случае APLT равно 0.4 или 40%, что означает, что в среднем 40% элементов в рекомендуемых списках принадлежат к множеству длинного хвоста.

Среднее покрытие элементов длинного хвоста (ACLT)

Метрика “Среднее покрытие элементов длинного хвоста” (ACLT) оценивает долю элементов длинного хвоста, включенных в общие рекомендации. В отличие от APLT, ACLT учитывает покрытие элементов длинного хвоста по всем пользователям и определяет, насколько эти элементы эффективно представлены в рекомендациях. Она определяется следующим образом:

ACLT = Σ Σ 1(i ∈ Γ) / |Ut| / |Lu|

Здесь:

  • |Ut| представляет общее количество пользователей.
  • u ∈ Ut обозначает каждого пользователя.
  • Lu представляет рекомендуемый список для пользователя u.
  • Γ представляет множество элементов длинного хвоста.
  • 1(i ∈ Γ) – функция-индикатор, равная 1, если элемент i принадлежит множеству длинного хвоста Γ, и 0 в противном случае.

Проще говоря, ACLT вычисляет среднюю долю элементов длинного хвоста, которые представлены в рекомендациях для каждого пользователя.

Пример: Предположим, что есть 100 пользователей (|Ut| = 100) и в общей сложности 500 элементов длинного хвоста (|Γ| = 500). В рекомендуемых списках всех пользователей есть 150 случаев рекомендации элементов длинного хвоста (Σ Σ 1(i ∈ Γ) = 150). Общее количество элементов во всех рекомендуемых списках равно 3000 (Σ |Lu| = 3000). Используя формулу, ACLT будет равно:

ACLT = 150 / 100 / 3000 = 0.0005

Таким образом, в данном случае ACLT равно 0.0005 или 0.05%, что указывает на то, что в среднем 0.05% элементов длинного хвоста покрываются общими рекомендациями. Эта метрика помогает оценить покрытие нишевых элементов в системе рекомендаций.

Как исправить снижение популярности в системе рекомендаций

Обучение с учетом популярности

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

  • На этапе обучения вы используете популярность элемента в качестве одной из входных особенностей.
  • На этапе предсказания вы заменяете ее постоянным значением.
Image by Author

Фреймворк xQUAD

Один интересный метод исправления смещения популярности заключается в использовании так называемого фреймворка xQUAD. Он берет длинный список рекомендаций (R) вместе с вероятностными оценками от вашей текущей модели и создает новый список (S), который является гораздо более разнообразным, где |S| < |R|. Разнообразие этого нового списка контролируется гиперпараметром λ.

Я попытался описать логику этого фреймворка:

Image by Author

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

Image by Author
Image by Author

Чтобы выбрать следующий элемент для добавления в «S», мы вычисляем оценку для каждого элемента в R\S (R за исключением S). Для каждого выбранного элемента, добавленного в “S”, P(v/u) увеличивается, поэтому шанс выбора непопулярного элемента также увеличивается.

Ссылки

https://arxiv.org/pdf/1901.07555.pdf

https://www.ra.ethz.ch/cdstore/www2010/www/p881.pdf

How to Overcome Position Bias in Recommendation and Search?