Алгоритм: составьте рекомендацию для фильмов, которые вам могут понравиться - PullRequest
6 голосов
/ 31 марта 2010

Мне нужна помощь в разработке алгоритма для рекомендаций по фильмам.

Каждый пользователь в системе оценивает фильмы по шкале от 1 до 100.

Таблицы состоят из:

Table Movies
ID    Name    Year    Rating    Runtime

Table Con_MoviesToGenres
MovieID    GenreID

Table Con_MovieToUser
MovieID    UserID    Grade

Я пытаюсь создать запрос SELECT, чтобы получить 5 наиболее рекомендуемых фильмов для конкретного фильма.

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

Бонус: если пользователь присваивает фильму низкую оценку -> он теряет коэффициент рекомендации.

Обновление: Я имел в виду одного пользователя и один заголовок.Каждый раз, когда пользователь заходит на «страницу фильма», он получает рекомендации для других фильмов, которые ему могут понравиться.

Ответы [ 5 ]

2 голосов
/ 31 марта 2010

Если пользователь A и пользователь B просмотрели 10 общих фильмов, и между их оценками существует высокая положительная корреляция (подразумевая, что у них одинаковое мнение о фильмах), вы можете взять фильм, который пользователь B дал высокую оценку. оцените и порекомендуйте его пользователю A.

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

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

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

1 голос
/ 31 марта 2010

Возможно, вы захотите проверить конкурс NetFlix. Нашел статью об этом здесь . Может, по крайней мере, дать вам хорошие идеи ...

1 голос
/ 31 марта 2010

Может не относиться к SQL, но если вам нравится python, в этой теме есть учебник под названием Коллективный разум

1 голос
/ 31 марта 2010

Это должно быть сделано на атомарном уровне: вычислять рекомендации для одного заголовка ИЛИ пользователя одновременно.

Нет способа уместить все детали в запросе SQL. Это должно быть сделано в реальном коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...