Projects22collaborative Filtering

Collaborative Filtering

Введение

Collaborative filtering (коллаборативная фильтрация, групповая фильтрация) - метод, позволяющий предсказывать оценки данного пользователя для данного элемента исходя из оценок для этого элемента других пользователей (каким-то образом похожих на данного).

Принцип работы

Принцип довольно-таки прост:

  1. Создается база однотипных элементов;
  2. Задается шкала оценок;
  3. Пользователи проставляют оценки этим элементам по своему усмотрению (каждый пользователь, проставляя свои оценки, задает тем самым системе свой индивидуальный пользовательский профиль);
  4. На основе оценок элементам, проставленных всеми пользователями, и соответствия оценок конкретного пользователя оценкам других профилей клиент получает список рекомендуемых к ознакомлению объектов с приблизительной оценкой каждого из них.

Методы применения

Пусть r(u, a) - "рейтинг" элемента a. Если пользователь u просмотрел элемент a (до конца), то r(u, a) = 1, иначе - r(u, a) = 0

Представленные алгоритмы на каждом шаге t принимают на вход:

  1. Список элементов a1 , …, a t-1 , оцененных пользователем u.
  2. "Рейтинги" элементов : r(u, a1), …, r(u, at-1).

Каждому элементу a сопоставляется "количество очков" score(a). Элемент at рекомендуется пользователю выбором по наибольшему количеству очков, причем этот элемент не должен встречаться в списке a1,…,at-1.

Алгоритмы:

  • Popularity (POP) - Популярность

Алгоритм просто подсчитывает количества очков для каждого из элементов, согласно количеству пользователей из "тренировочного множества" (n):

score(a) = $\sum_{i=1}^{t-1}$r(ui,a)

  • K-nearest neighbor (K-NN) - K-ближайший сосед

Сначала алгоритм находит k пользователей u1,…,uk, чьи предподчтения наиболее близки к u.
Для этого определим "расстояние" между пользователями u и u', по отношению к элементам a1,…,at-1 как weight(u, u').
weight(u, u') - корелляция между пользователями u и u'.
Таким образом, согласно приведенной выше метрике, алгоритм найдет пользователей u1,…,uk, наиболее "близких к данному"
Тогда количество очков каждого элемента может быть рассчитано как взвешенная сумма рейтингов этих пользователей.

Системы, использующие Collaborative Filtering

Last.fm - музыкальный интернет-проект
Имхонет - рекомендательный сервис

Ссылки

Wikipedia
Personalized Active Learning for Collaborative Filtering (A.S. Harpale, Y. Yang)
Evaluating Collaborative Filtering Recommender Systems (J.L. Herlocker, J.A. Konstan, L.G. Terveen, J.T. Riedl)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License