подход коллективной фильтрации для советов / рекомендаций, связанных с зарегистрированными курсами - PullRequest
0 голосов
/ 28 ноября 2011

Я смотрю на конкретную проблему, где мне нужно создать рекомендацию. Обобщенная проблема заключается в следующем, Каждый пользователь зарегистрировался для, скажем, x курсов (c1, c2, c3, .. cx) В зависимости от каждого курса, я должен предоставить (скажем) 5 лучших советов / рекомендаций для пользователя (например, учебные материалы, которые могут быть полезны и т. Д.) Мне нужны элементы сотрудничества, чтобы узнать, какие рекомендации оказываются полезными для пользователей.
Я посмотрел на механизмы рекомендаций, такие как Apache Mahout Taste, но я не могу смоделировать свою проблему так, как это показано на примерах. (Дополнительные критерии фильтрации, когда пользователь связан с одним или несколькими курсами, а каждая рекомендация / совет могут быть связаны с одним или несколькими курсами, отбрасывают меня.)
Пожалуйста, дайте мне знать, если есть хороший способ моделирования такой проблемы? Любые указатели на документацию / примеры будут очень благодарны. Я только начинаю свои исследования в этой области, поэтому, пожалуйста, потерпите меня, если я неправильно понял какие-либо концепции.

Спасибо,
Вивек

1 Ответ

1 голос
/ 28 ноября 2011

Это может быть слишком просто, чтобы нуждаться в рекомендациях.Если у каждого курса есть набор связанных материалов, то, очевидно, что прохождение курса c1 означает, что они должны иметь соответствующие материалы для курса.Возможно, рейтинг среди всех материалов по популярности.Это может быть очень легко и выполнить большую часть того, что вам нужно.

Если вы хотите смоделировать это как CF, вы можете;Я не знаю, сколько у вас данных.Если у вас всего несколько пользователей и курсов, их будет слишком мало, чтобы давать полезные ответы.

Ваши пользователи имеют отношение к двум вещам: курсам и материалам.Вы не хотите рекомендовать курсы, а скорее материалы.Я бы построил две модели данных: одну с информацией о курсе пользователя, а другую с информацией о покупке материала пользователя.Используйте данные пользовательского курса в качестве основы для реализации пользовательского сходства, которая определяет сходство пользователя и пользователя.Затем соедините это вместе с NearestNUserNeighborhood, GenericUserBasedRecommender, но с использованием другой модели данных пользовательского материала.

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

...