Совместная фильтрация «элемент-элемент» , или основанная на элементе , или «элемент-элемент » — это форма совместной фильтрации для рекомендательных систем , основанная на сходстве между элементами, рассчитанном с использованием оценок этих элементов людьми. Совместная фильтрация «элемент-элемент» была изобретена и использовалась Amazon.com в 1998 году. [1] [2] Впервые она была опубликована на академической конференции в 2001 году. [3]
Более ранние системы совместной фильтрации, основанные на схожести оценок между пользователями (известные как совместная фильтрация пользователь-пользователь), имели ряд проблем:
Модели «элемент-элемент» решают эти проблемы в системах, в которых пользователей больше, чем элементов. Модели «элемент-элемент» используют распределение рейтинга на элемент , а не на пользователя . При большем количестве пользователей, чем элементов, каждый элемент имеет тенденцию иметь больше оценок, чем каждый пользователь, поэтому средний рейтинг элемента обычно не меняется быстро. Это приводит к более стабильным распределениям рейтинга в модели, поэтому модель не нужно перестраивать так часто. Когда пользователи потребляют, а затем оценивают элемент, похожие элементы этого элемента выбираются из существующей модели системы и добавляются в рекомендации пользователя.
Сначала система выполняет этап построения модели, находя сходство между всеми парами элементов. Эта функция сходства может принимать различные формы, такие как корреляция между оценками или косинус этих векторов оценок. Как и в системах пользователь-пользователь, функции сходства могут использовать нормализованные оценки (корректируя, например, среднюю оценку каждого пользователя).
Во-вторых, система выполняет этап рекомендаций . Она использует наиболее похожие элементы на уже оцененные пользователем элементы для создания списка рекомендаций. Обычно этот расчет представляет собой взвешенную сумму или линейную регрессию . Эта форма рекомендации аналогична "люди, которые высоко оценивают элемент X, как и вы, также склонны высоко оценивать элемент Y, а вы еще не оценили элемент Y, поэтому вам стоит попробовать".
Совместная фильтрация элемент-элемент имела меньше ошибок, чем совместная фильтрация пользователь-пользователь. Кроме того, ее менее динамичная модель вычислялась реже и хранилась в меньшей матрице, поэтому производительность системы элемент-элемент была лучше, чем у систем пользователь-пользователь.
Рассмотрим следующую матрицу:
Пользователь | Статья 1 | Статья 2 | Статья 3 |
---|---|---|---|
Джон | Купил это | Купил это | Не купил |
Пьер | Купил это | Купил это | Купил это |
Мэри | Не купил | Купил это | Не купил |
Если пользователь заинтересован в статье 1, какой еще товар будет ему предложен системой, использующей алгоритм Amazon «от товара к товару»?
Цель — предложить пользователю статью с наибольшим значением косинуса. Вот как мы это делаем:
Во-первых, мы преобразуем матрицу Пользователь-Статья в двоичную и создаем простую матрицу для каждой статьи.
Пользователь | Статья 1 | Статья 2 | Статья 3 |
---|---|---|---|
Джон | 1 | 1 | 0 |
Пьер | 1 | 1 | 1 |
Мэри | 0 | 1 | 0 |
Во-вторых, мы умножаем матрицу A1 на каждую матрицу, чтобы найти скалярное произведение.
В-третьих, находим норму каждого вектора.
В-четвертых, вычисляем косинус.
Вывод: Если пользователя интересует статья 1. Алгоритм item-to-item предложит статью 2.
Рекомендательные системы |
---|
Концепции |
Методы и проблемы |
Реализации |
Исследовать |