Полигон алгоритмов коллаборативной фильтрации

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м (TOCright)
 
(3 промежуточные версии не показаны)
Строка 1: Строка 1:
{{TOCright}}
{{TOCright}}
-
== Функциональные возможности системы ==
+
== Назначение системы ==
-
=== Требования ===
+
Система «Полигон алгоритмов коллаборативной фильтрации (collaborative filtering, CF)» будет служить платформой для испытания и тестирования новых алгоритмов CF, оценки успешности решения различных прикладных задач. Позволит сопоставить алгоритмы и построить выводы о целесообразности использования того или иного алгоритма для решения конкретной бизнес-задачи. А также позволит автору нового алгоритма выявить его недостатки, наметить области модернизации, направления совершенствования.
-
Полигон должен:
+
Пользователями Системы будут являться специалисты по анализу данных, эксперты в различных предметных областях, разработчики алгоритмов CF.
-
* работать с набором реализаций алгоритмов CF
+
== Цели создания «Полигона» ==
-
* предоставлять данные на вход алгоритмам в стандартизованном виде
+
-
* обрабатывать результаты работы и генерировать отчеты
+
-
Пользователь должен иметь возможность:
+
* Создать коллектив единомышленников – специалистов в области создания рекомендующих систем на основе алгоритмов CF;
 +
* создать платформу для решения задач коллаборативной фильтрации, возникающих в различных предметных областях;
 +
* предоставить технологию пополнения библиотеки алгоритмов и базы задач;
 +
* предоставить методику тестирования различных алгоритмов CF;
 +
* выработать критерии оценки качества решения задач;
 +
* создать возможности для более удобного исследования свойств алгоритмов CF, в том числе собственных.
-
* хммм
+
== Функциональные возможности системы ==
-
 
+
=== Требования ===
-
Реализации алгоритмов CF должны:
+
'''Полигон должен:'''
-
 
+
* Поддерживать способ удобной загрузки новых алгоритмов CF;
-
* хмм
+
* обеспечивать интерфейс удобного описания нового эксперимента;
 +
* обеспечивать хранение и работу с репозиторием алгоритмов CF;
 +
* предоставлять данные на вход алгоритмам в стандартизованном виде;
 +
* обрабатывать данные и генерировать отчеты.
 +
'''Пользователь должен иметь возможность:'''
 +
* Загружать новый алгоритм в систему в виде независимого модуля/выполнимого файла;
 +
* описывать параметры нового алгоритма;
 +
* загружать новые данные в систему в установленном формате;
 +
* тестировать все имеющиеся в репозитории алгоритмы на различных наборах данных.
 +
'''Реализации алгоритмов CF должны:'''
 +
* Принимать на вход данные в установленном формате;
 +
* принимать на вход набор параметров алгоритма;
 +
* генерировать скрытые профили пользователей и ресурсов.
== Варианты постановок задач ==
== Варианты постановок задач ==
Строка 47: Строка 62:
: 1628 объектов
: 1628 объектов
: 2,811,983 оценок
: 2,811,983 оценок
 +
 +
; [http://www.informatik.uni-freiburg.de/~cziegler/BX/ Book-Crossing Dataset]
 +
: 278,858 пользователей
 +
: 271,379 объектов
 +
: 1,149,780 оценок
 +
: 0.0015% заполненность
; Neilsen Media Research dataset
; Neilsen Media Research dataset
Строка 58: Строка 79:
== Генераторы модельных данных, под какие алгоритмы CF заточены ==
== Генераторы модельных данных, под какие алгоритмы CF заточены ==
== Оценка качества ==
== Оценка качества ==
-
=== Функционалы для оценки качества (это оччень скользский вопрос!) ===
+
=== Функционалы для оценки качества ===
 +
Функционалы для оценки качества будут зависить от типа задачи. Существуют два основных типа задач CF: восстановление пропущенных значений в матрице расстояний и построение ранжированных списков ближайших пользоватлей и ресурсов (рекомендующих списков).
 +
Для оценки качества необходимо знать "правильные" рекомендации для части пользователей и/или ресурсов.
 +
Есть несколько вариантов получения таких рекомендаций:
 +
* Ручная разместка части пользователей/ресурсов экспертами.
 +
* Если заранее известна матрица, связывающая те сущности, которые нужно подобрать, то использовать ее.
=== Графики, которые позволят судить о качестве алгоритмов и сравнивать их ===
=== Графики, которые позволят судить о качестве алгоритмов и сравнивать их ===
=== Графики, которые позволят следить за тем, что у конкретных алгоритмов происходит внутри, ===
=== Графики, которые позволят следить за тем, что у конкретных алгоритмов происходит внутри, ===

Текущая версия

Содержание

Назначение системы

Система «Полигон алгоритмов коллаборативной фильтрации (collaborative filtering, CF)» будет служить платформой для испытания и тестирования новых алгоритмов CF, оценки успешности решения различных прикладных задач. Позволит сопоставить алгоритмы и построить выводы о целесообразности использования того или иного алгоритма для решения конкретной бизнес-задачи. А также позволит автору нового алгоритма выявить его недостатки, наметить области модернизации, направления совершенствования.

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

Цели создания «Полигона»

  • Создать коллектив единомышленников – специалистов в области создания рекомендующих систем на основе алгоритмов CF;
  • создать платформу для решения задач коллаборативной фильтрации, возникающих в различных предметных областях;
  • предоставить технологию пополнения библиотеки алгоритмов и базы задач;
  • предоставить методику тестирования различных алгоритмов CF;
  • выработать критерии оценки качества решения задач;
  • создать возможности для более удобного исследования свойств алгоритмов CF, в том числе собственных.

Функциональные возможности системы

Требования

Полигон должен:

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

Пользователь должен иметь возможность:

  • Загружать новый алгоритм в систему в виде независимого модуля/выполнимого файла;
  • описывать параметры нового алгоритма;
  • загружать новые данные в систему в установленном формате;
  • тестировать все имеющиеся в репозитории алгоритмы на различных наборах данных.

Реализации алгоритмов CF должны:

  • Принимать на вход данные в установленном формате;
  • принимать на вход набор параметров алгоритма;
  • генерировать скрытые профили пользователей и ресурсов.

Варианты постановок задач

Конкретныe прикладные задачи с данными

Netflix Prize
NetflixPrize.com, (данные)
480,000 пользователей
17,770 объектов
100,480,507 оценок
1.23% заполненность
Jester dataset
Anonymous Ratings from the Jester Online Joke Recommender System
  • 73,421 пользователей
    100 объектов
    ~4.1 миллиона оценок
    54.5% заполненность
  • 63,974 пользователей
    150 объектов
    ~1.7 миллионов оценок
    17.7% заполненность
MovieLens datasets
  • 100,000 ratings for 1682 movies by 943 users
  • 1 million ratings for 3900 movies by 6040 users
  • 10 million ratings and 100,000 tags for 10681 movies by 71567 users
LibimSeTi dating agency dataset
135,359 пользователей
168,791 объектов
17,359,346 оценок
0.76% заполненность
EachMovie dataset (supposed to be unavailable)
72,916 пользователей
1628 объектов
2,811,983 оценок
Book-Crossing Dataset
278,858 пользователей
271,379 объектов
1,149,780 оценок
0.0015% заполненность
Neilsen Media Research dataset
Media Metrix
UC Irvine Census data

TODO: check TheInfo Infochimps

Генераторы модельных данных, под какие алгоритмы CF заточены

Оценка качества

Функционалы для оценки качества

Функционалы для оценки качества будут зависить от типа задачи. Существуют два основных типа задач CF: восстановление пропущенных значений в матрице расстояний и построение ранжированных списков ближайших пользоватлей и ресурсов (рекомендующих списков). Для оценки качества необходимо знать "правильные" рекомендации для части пользователей и/или ресурсов. Есть несколько вариантов получения таких рекомендаций:

  • Ручная разместка части пользователей/ресурсов экспертами.
  • Если заранее известна матрица, связывающая те сущности, которые нужно подобрать, то использовать ее.

Графики, которые позволят судить о качестве алгоритмов и сравнивать их

Графики, которые позволят следить за тем, что у конкретных алгоритмов происходит внутри,

См. также

Ссылки

Личные инструменты