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

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

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

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

Это подчеркивает, что системы рекомендаций имеют ограничения: предложение «хорошего» продукта не гарантирует, что он приведет к положительному и полноценному опыту для клиента. Так была ли это хорошая рекомендация?

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

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

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

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

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

Как измерить предвзятость популярности?

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

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

Где:

  • |U_t| это количество пользователей
  • |Л_у| — количество элементов в рекомендуемом списке L_u для пользователя u.
  • φ(i) — это количество раз, когда «элемент i» был оценен в обучающем наборе.

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

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

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

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

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

Здесь:

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

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

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

APLT = Σ (20/50)/100 = 0,4

Таким образом, APLT в этом сценарии составляет 0,4 или 40%, подразумевая, что в среднем 40% элементов в рекомендуемых списках относятся к набору с длинным хвостом.

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

Показатель «Среднее покрытие элементов с длинным хвостом» (ACLT) оценивает долю элементов с длинным хвостом, включенных в общие рекомендации. В отличие от APLT, ACLT учитывает охват длинных элементов среди всех пользователей и оценивает, эффективно ли эти элементы представлены в рекомендациях. Это определяется как:

ACLT = Σ Σ 1(i ∈ Γ) / |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), где подход к ранжированию предполагает, что ваша модель ML одновременно оптимизирует как релевантность ранжирования, так и влияние на позицию. Мы можем использовать тот же подход с показателем популярности, этот показатель может использовать любой из вышеупомянутых показателей, например, среднюю популярность рекомендаций.

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

xQUAD Фреймворк

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

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

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

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

Если вам понравился этот контент, найдите меня в linkedin :).

Рекомендации

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

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