Использование метода анализа формальных понятий для данных с интервалами и графами. Сущность алгоритма Slope One, предназначение фильтрации содержимого и коллаборативной фильтрации. Характеристики и особенности подхода на основе узорных структур.
Аннотация к работе
.2.2 Интервалы в качестве узоров 1.2.3 Интервальные векторы в качестве узоров 1.3 Выводы и результаты по главе 2.3 Подход на основе узорных структур (RAPS) 2.4 Выводы и результаты по главеРекомендательные системы - это специальные программы, главная цель которых заключается в формировании рекомендаций различных продуктов или сервисов для пользователей на основе их предпочтений [4]. С другой стороны выступают владельцы интернет-магазинов и сервисов: они заинтересованы в персональной рекламе и рекомендациях каждому конкретному пользователю, потому что такой подход может существенно увеличить прибыль компаний. В наши дни рекомендательные системы уже достаточно распространены и имеют большое количество применений. В первую очередь, рекомендательные системы используются в интернет-коммерции для того, чтобы помочь пользователям выбрать подходящие товары. Например, сервисы Pandora, GOODREADS, and IMDB используют рекомендательные системы для этих целей.Базовые определения анализа формальных понятий мы используем из [1]. Тогда тройка называется формальным контекстом. Элементы множества принято называть объектами, а элементы множества называют признаками формального контекста Попросту говоря, пара (или ) означает, что и находятся в бинарном отношении и это можно интерпретировать как “объект имеет признак ”. Оператор (1.1) для некоторого множества объектов возвращает максимальное множество признаков, которыми обладает каждый объект из множества .Вся информация в данном разделе взята из источников [2] и [3].Другими словами, рекомендации пользователю не зависят от оценок остальных пользователей. Пользователь-ориентированные системы пытаются найти пользователей с похожими предпочтениями, тогда как объект-ориентированные системы оценивают, понравится ли пользователю новый объект на основе его прошлых оценок «соседних» объектов, то есть объектов, близких по оценкам другими пользователями к данному. Системы, использующие методы «латентных факторов», пытаются выявить скрытые зависимости в оценках объектов пользователями для того чтобы разделить пользователей на группы. Если - множество фильмов (в общем случае, вместо фильмов могут быть любые другие объекты), - множество пользователей, то оценки оценки пользователя данные различным объектам удобно представить таблицей: Таблица 2.1. Оценки могут быть целыми числами от до , или, если пользователь не смотрел фильм, то вместо оценки будет стоять , то есть отсутствие оценки.В данной работе был предложен метод формирования рекомендаций на основе узорных структур (RAPS). Проведенные эксперименты, сравнивающие методы RAPS и Slope One, показали, что рекомендательная система на основе узорных структур имеет достаточно неплохие показатели точности, полноты и время работы.data_load.m: Данная программа загружает данные из исходного файла u.data и преобразует их в две глобальные разреженные матрицы: inf (с оценками) и timestamp (время проставления оценок), которые потом используются во всех остальных программах. Код (19 строк): clc clear all global user_num; S = load("u.data", "-ascii"); inf=sparse(user_num,item_num);main.m: Данная программа выполняет следующие действия: 1) Разбивает множество пользователей случайным образом на два множества train_users и test_users (80% и 20% соответственно). [recommendations,number_of_recommendations]=raps(train_items,train_users,user,left_border,right_border,item_num); [recommendations,number_of_recommendations]=raps(train_items,train_users,user,left_border,right_border,item_num); [recommendations,number_of_recommendations]=raps(train_items,train_users,user,left_border,right_border,item_num); [recommendations,ratings]=slope_one(train_items,train_users,user,left_border,right_border,min_border,max_border,item_num);raps.m: Этой функции на вход подается: множество оценок объектов данного пользователя (на которых происходит обучение), пользователи (на оценках которых обучаемся), номер пользователя (для которого хотим выдать рекомендации), левая и правая границы оценок хороших фильмов, количество имеющихся в базе объектов (фильмов). На выходе: recommendations (список рекомендуемых фильмов), number_of_recommendations (сколько раз порекомендован каждый фильм). Код (68 строк): function [recommendations,number_of_recommendations]=raps(items,train_users,user,left_border,right_border,item_num) global inf; if ((inf(user,items(k))>=left_border)&&(inf(user,items(k))<=right_border)) dleft=zeros(item_num,1); (inf(temp_index(i),item)>=left_border)&&(inf(temp_index(i),item)<=right_border) ) set_users=[set_users; temp_index(i)];slope_one.m: Этой функции на вход подается: множество оценок объектов данного пользователя (на которых происходит обучение), пользователи (на оценках которых обучаемся), номер пользователя (для которого хотим выдать рекомендации), левая и правая границы оценок хороших фильмов, левая и правая границы возможных (в данной модели) оценок, количество имеющихся в базе объектов (фильмов).