Данные
Для практических испытаний разработанного метода рекомендаций на основе узорных структур (RAPS), было принято решение воспользоваться свободно распространяемыми данными оценок фильмов, которые были собраны с сентября 1997 года по апрель 1998 года с помощью вебсайта MovieLens (movielens.umn.edu). Сбор данных проходил в рамках проекта The GroupLens Research Project Университета Миннесоты.
В выбранных данных представленно 100 000 оценок по 1682 фильмам от 943 различных пользователей. Причем каждый пользователь в этих данных поставил оценки не менее, чем 20 фильмам.
Данные представляют собой 100 000 строк вида:
user id | item id | rating | timestamp
То есть в каждой строке записано: номер пользователя, номер фильма, оценка, которую пользователь поставил этому фильму, и время, когда это произошло. алгоритм slope фильтрация узорный.
Точность и полнота
Для сравнивания методов рекомендаций Slope One и RAPS первоначально было принято решение воспользоваться стандартными мерами точности (precision) и полноты (recall):
(3.1).
(3.2).
Рисунок 3.1. Множества рекомендованных и релевантных фильмов.
Но уже в ходе первых проведенных экспериментов стало видно, что точность метода RAPS получается, в сравнении со Slope One, гораздо меньшей. Причина была в том, что RAPS каждому пользователю в среднем выдавал на порядок больше рекомендаций, чем Slope One, и большинство из этих рекомендованных фильмов пользователь не смотрел, и следовательно не оценивал.
Стало понятно, что так оценивать методы не совсем корректно. Действительно, если метод порекомендовал фильм, а пользователь его еще не оценил, то мы не можем точно знать, понравится он ему или нет на самом деле.
Тогда для сравнивания методов рекомендаций Slope One и RAPS была разработана модификация точности (precision) и полноты (recall), которые мы будем называть скорректированными точностью и полнотой.
Для каждого конкретного пользователя множество просмотренных им фильмов разбивается на два множества: множество фильмов, на которых обучаются алгоритмы (train movies), и множество контрольных фильмов (test movies). Первое множество состояло из 80% просмотренных фильмов, а второе соответственно из 20%. Причем фильмы из первого множества были оценены пользователем ранее, чем фильмы из второго множества. Для такого разбиения все оценки пользователя были упорядочены по времени проставления и потом поделены.
Итак, было принято решение скорректированную точность и полноту рассчитывать по формулам указанным ниже:
(3.3).
(3.4).
Такие оценки точности и полноты позволили избежать описанную выше проблему неопределенности, так как мы не знаем как именно пользователь оценит рекомендованный фильм. В реальной жизни мы бы могли спросить пользователя, верна ли рекомендация, но в нашем случае мы этого позволить не можем. Другими словами, при оценке точности и полноты данным методом мы считаем, что в данный конкретный момент, для заданного пользователя, фильмов кроме train movies и test movies просто не существует.
Рисунок 3.2. Множества рекомендованных, релевантных и контрольных фильмов.