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

Опубликовано: 20 Июля, 2021

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

Двумя наиболее популярными формами совместной фильтрации являются:

  • На основе пользователей: здесь мы ищем пользователей, которые одинаково оценили различные элементы, а затем находим рейтинг недостающего элемента с помощью этих пользователей.
  • На основе предметов: здесь мы исследуем взаимосвязь между парой предметов (пользователь, который купил Y, также купил Z). Мы находим недостающую оценку с помощью оценок, присвоенных другим элементам пользователем.

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

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

Формула косинусного подобия:


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

Пример:
Рассмотрим один пример. Ниже приведена таблица наборов, которая содержит некоторые элементы и пользователя, оценившего эти элементы. Оценка явно и по шкале от 1 до 5. Каждая запись в таблице обозначает рейтинг дается д.в. го пользователя к Aj - й элемент. В большинстве случаев большинство ячеек пусты, так как пользователь оценивает только несколько элементов. Здесь мы взяли 4 пользователя и 3 элемента. Нам нужно найти недостающие оценки для соответствующего пользователя.

Пользователь / элемент Item_1 Пункт_2 Item_3
Пользователь_1 2 - 3
Пользователь_2 5 2 -
Пользователь_3 3 3 1
Пользователь_4 - 2 2

Шаг 1. Поиск сходства всех пар предметов.

Сформируйте пары предметов. Например, в этом примере пары элементов: (Элемент_1, Элемент_2), (Элемент_1, Элемент_3) и (Элемент_2, Элемент_3). Выберите каждый элемент для сопряжения по одному. После этого мы находим всех пользователей, которые оценили оба элемента в паре элементов. Сформируйте вектор для каждого элемента и вычислите сходство между двумя элементами, используя формулу косинуса, указанную выше.

 Сим (Item1, Item2)
В таблице мы видим, что только Пользователь_1 и Пользователь_2 оценили оба пункта 1 и 2. 
Таким образом, пусть I1 будет вектором для Item_1, а I2 - для Item_2. Потом,
I1 = 5U2 + 3U3 и,
I2 = 2U2 + 3U3

 Сим (Item2, Item3)
В таблице мы видим, что только User_3 и User_4 получили оценку по пунктам 1 и 2. 
Таким образом, пусть I2 будет вектором для Item_2, а I3 - для Item_3. Потом,
I2 = 3U3 + 2U4 и,
I3 = 1U3 + 2U4


 Сим (Item1, Item3)
В таблице мы видим, что только Пользователь_1 и Пользователь_3 поставили оценку по пунктам 1 и 2. 
Таким образом, пусть I1 будет вектором для Item_1, а I3 - для Item_3. Потом,
I1 = 2U1 + 3U3 и,
I3 = 3U1 + 1U3


Шаг 2. Создание недостающих оценок в таблице

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

 Рейтинг Item_2 для User_1

 Рейтинг Item_3 для User_2

 Рейтинг Item_1 для User_4


Поэтому в этой статье мы попытались понять основы работы совместной фильтрации по элементам с помощью небольшого примера.

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

https://en.wikipedia.org/wiki/Collaborative_filtering

https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf