Совместная фильтрация элементов

Совместная фильтрация «элемент-элемент» , или основанная на элементе , или «элемент-элемент » — это форма совместной фильтрации для рекомендательных систем , основанная на сходстве между элементами, рассчитанном с использованием оценок этих элементов людьми. Совместная фильтрация «элемент-элемент» была изобретена и использовалась Amazon.com в 1998 году. [1] [2] Впервые она была опубликована на академической конференции в 2001 году. [3]

Более ранние системы совместной фильтрации, основанные на схожести оценок между пользователями (известные как совместная фильтрация пользователь-пользователь), имели ряд проблем:

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

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

Метод

Сначала система выполняет этап построения модели, находя сходство между всеми парами элементов. Эта функция сходства может принимать различные формы, такие как корреляция между оценками или косинус этих векторов оценок. Как и в системах пользователь-пользователь, функции сходства могут использовать нормализованные оценки (корректируя, например, среднюю оценку каждого пользователя).

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

Результаты

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

Пример

Рассмотрим следующую матрицу:

Пользователь - Матрица статей
ПользовательСтатья 1Статья 2Статья 3
ДжонКупил этоКупил этоНе купил
ПьерКупил этоКупил этоКупил это
МэриНе купилКупил этоНе купил

Если пользователь заинтересован в статье 1, какой еще товар будет ему предложен системой, использующей алгоритм Amazon «от товара к товару»?

Цель — предложить пользователю статью с наибольшим значением косинуса. Вот как мы это делаем:


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

Пользователь - Матрица статьи (двоичная)
ПользовательСтатья 1Статья 2Статья 3
Джон110
Пьер111
Мэри010
  • А1 = [1, 1, 0]
  • А2 = [1, 1, 1]
  • А3 = [0, 1, 0]


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

  • А1 * А2 = (1*1) + (1*1) + (0*1) = 2
  • А1 * А3 = (1*0) + (1*1) + (0*0) = 1


В-третьих, находим норму каждого вектора.

  • ||А1|| = = = 1,4142 1 2 + 1 2 + 0 2 {\displaystyle {\sqrt {1^{2}+1^{2}+0^{2}}}} 2 {\displaystyle {\sqrt {2}}}
  • ||А2|| = = = 1,7320 1 2 + 1 2 + 1 2 {\displaystyle {\sqrt {1^{2}+1^{2}+1^{2}}}} 3 {\displaystyle {\sqrt {3}}}
  • ||А3|| = = = 1 0 2 + 1 2 + 0 2 {\displaystyle {\sqrt {0^{2}+1^{2}+0^{2}}}} 1 {\displaystyle {\sqrt {1}}}


В-четвертых, вычисляем косинус.

  • A1 и A2 = COS(θ) = = = = 0,8165 А 1 А 2 | | А 1 | | | | А 2 | | {\displaystyle {\frac {A1*A2}{||A1||*||A2||}}} 2 2 3 {\displaystyle {\frac {2}{{\sqrt {2}}*{\sqrt {3}}}}} 6 3 {\displaystyle {\frac {\sqrt {6}}{3}}}
  • A1 и A3 = COS(θ) = = = = = 0,7071 А 1 А 3 | | А 1 | | | | А 3 | | {\displaystyle {\frac {A1*A3}{||A1||*||A3||}}} 1 2 1 {\displaystyle {\frac {1}{{\sqrt {2}}*1}}} 1 2 {\displaystyle {\frac {1}{\sqrt {2}}}} 2 2 {\displaystyle {\frac {\sqrt {2}}{2}}}


Вывод: Если пользователя интересует статья 1. Алгоритм item-to-item предложит статью 2.

Ссылки

  1. ^ «Совместные рекомендации с использованием сопоставлений сходства элементов».
  2. ^ Линден, Г.; Смит, Б.; Йорк, Дж. (22 января 2003 г.). «Рекомендации Amazon.com: совместная фильтрация от элемента к элементу». IEEE Internet Computing . 7 (1): 76– 80. doi :10.1109/MIC.2003.1167344. ISSN  1089-7801. S2CID  14604122.
  3. ^ Сарвар, Бадрул; Карипис, Джордж; Констан, Джозеф; Ридл, Джон (2001). «Алгоритмы рекомендаций совместной фильтрации на основе элементов». Труды 10-й международной конференции по Всемирной паутине . ACM . С.  285–295 . CiteSeerX 10.1.1.167.7612 . doi :10.1145/371920.372071. ISBN  978-1-58113-348-6. S2CID  8047550.


Retrieved from "https://en.wikipedia.org/w/index.php?title=Item-item_collaborative_filtering&oldid=1272027026"