Подход Slope One
На вход алгоритм получает множество оценок всех пользователей (например как в таблице 2.1.), номер пользователя, для которого будут производиться рекомендации. Также на вход необходимо отправить левую и правую границу (и) оценки искомых фильмов, то есть, если мы хотим получить в качестве рекомендаций все фильмы с оценками от до, то левая и правая граница должны быть и соответственно. И последнее… Читать ещё >
Подход Slope One (реферат, курсовая, диплом, контрольная)
Slope One — это один из самых простых подходов к рекомендациям на основе коллаборативной фильтрации по схожести предметов, но в то же время точность рекомендаций алгоритма сравнима с более сложными и ресурсоемкими алгоритмами [6]. Он был разработан Даниелем Лемайром и Анной Маклахман в 2004 году и опубликован в 2005 году в статье [6].
Slope one будет использоваться в данном исследовании при проведении экспериментов для сравнения полученных результатов от подхода на основе узорных структур.
Метод Slope One работает с оценками объектов, полученных от пользователей. В нашем случае данные представляют собой оценки фильмов разными пользователями. Если — множество фильмов (в общем случае, вместо фильмов могут быть любые другие объекты), — множество пользователей, то оценки оценки пользователя данные различным объектам удобно представить таблицей:
Таблица 2.1. Оценки фильмов пользователями.
usermovie. | … | … | |
… | … | ||
… | … | … | … |
… | … | ||
… | … | … | … |
… | … |
Каждый пользователь посмотрел некоторое количество фильмов и дал им свою оценку. Оценки могут быть целыми числами от до, или, если пользователь не смотрел фильм, то вместо оценки будет стоять, то есть отсутствие оценки.
Теперь перейдем непосредственно к алгоритму:
1) На вход алгоритм получает множество оценок всех пользователей (например как в таблице 2.1.), номер пользователя, для которого будут производиться рекомендации. Также на вход необходимо отправить левую и правую границу (и) оценки искомых фильмов, то есть, если мы хотим получить в качестве рекомендаций все фильмы с оценками от до, то левая и правая граница должны быть и соответственно. И последнее: необходимо задать минимальную и максимальную оценки (и), допустимые в нашей задаче. Здесь имеется в виду то, что если например алгоритм спрогнозировал для объекта оценку, а максимально возможная оценка, то мы должны понимать как .
2) В первую очередь находим множество всех фильмов оцененных пользователем .
3) Для каждого неоцененного фильма пользователем выполняем шаг 4), тем самым считая прогнозируемую оценку для фильма. После этого переходим к шагу 5).
4) Для каждого оцененного пользователем фильма, находим — множество пользователей, которые посмотрели фильмы и. В случае если множество непустое, то есть мощность множества, считаем отклонение: и добавляем к множеству номер .
После того, как подсчитаны все существующие отклонения, считаем прогнозируемую оценку:, где как уже было сказано выше. В случае, если множество пусто, спрогнозировать оценку невозможно.
5) К данному шагу алгоритм подсчитал все возможные прогнозируемые оценки для фильмов из множества .
Алгоритм рекомедует все фильмы с оценками, учитывая минимальную и максимальную допустимые оценки.
Здесь необходимо сделать замечание о том, что если нужно получить топ-N рекомендаций, то можно отсортировать все полученные прогнозируемые оценки для объектов по убыванию, и в качестве рекомендаций взять первые N объектов.
Модельный пример
Рассмотрим работу алгоритма Slope One на простом примере:
Таблица 2.2. Пример данных для Slope One.
usermovie | |||
Попробуем предсказать оценку фильму .
1) Пусть, , и .
- 2) Находим — множество оцененных пользователем фильмов.
- 3)
4)
5) С учетом максимальной допустимой оценки, алгоритм предсказывает оценку для фильма, и следовательно рекомендует посмотреть его пользователю .