Распределенная система рекомендаций Работу выполнил: И.И.Житков

advertisement
Распределенная система
рекомендаций
Работу выполнил: И.И.Житков
Цель
• Освоение принципов обработки и анализа
данных на примере сервиса рекомендаций
кинофильмов методами коллаборативной
фильтрации.
Объём информации
• Данные это просто сырая нефть. Она ценна,
но без переработки она не может быть понастоящему использована. Она должна
быть превращена в газ, пластик, химикаты,
и т.д., чтобы создать ценность; так и данные
нужно проанализировать и «раскусить»,
чтобы они стали ценными.
Майкл Палмер
Поставленная задача
• На основе открытых данных MovieLens
исследовательской группы GroupLens
составить список рекомендаций
кинофильмов для конкретного
пользователя.
Рекомендательная система
• Рекомендательная система — это
программа, которая на основе данных о
пользователе(User), предмете(Item) и
оценке предмета для конкретного
пользователя(Rate) выдает рекомендации.
Рекомендательная система
Существует четыре основных типа
рекомендательных систем:
• Основанные на контенте
• Коллаборативные
• Основанные на знаниях
• Гибридные
Коллаборативная фильтрация
• Коллаборативная фильтрация — метод
построения прогнозов в рекомендательных
системах, использующий известные
предпочтения (оценки) пользователей для
прогнозирования неизвестных
предпочтений другого пользователя.
• Находятся пользователи, разделяющие
оценочные суждения прогнозируемого
пользователя
• Используются оценки сходно мыслящих
пользователей, найденных на первом шаге
для вычисления рекомендации.
Пример
Имя
Купил (id)
Просмотрел (id)
Вася
1,6,7
2,3
Женя
1,2,3
5,7,4
8
6
Лариса
Алгоритм порекомендовал Васе:
— 2,3 товар, который во первых купил Женя общим товаром с id1 и в
добавок он уже был просматрен
— 8 товар Ларисы, т.к. купленный товар 6 она просмотрела.
Используемые средства
•
•
•
•
•
•
Язык реализации – Python
Версия языка в среде Linux – 2.7
Среда разработки – CanoPy
Операционная система – Ubuntu 13.04
Hadoop 1.2.1
PredictionIO Server v0.7.1
PredictionIO
• Работу PredictionIO можно представить как
3 блока: Приложение(App),
Инструмент(Engine) и Алгоритм (Algorithm).
• Приложение - база данных
• Инструмент - функциональная часть
проекта. Для каждого действия в пределах
одного Приложения может быть несколько
рабочих инструментов.
• Алгоритм
Реализация
• Для импорта данных в PredictionIO в файле
batch_import.py описаны функции извлечения
из фалов и передачи на сервер информации о
фильмах, пользователях и оценках
пользователей для фильмов.
• Для получения списка рекомендаций в файле
movie_rec_app.py задается имя инструмента, с
которым будет работать система.
• predict(self, movie, movie_rate)
Информация о готовом приложении
Пример работы программы
Заключение
• В ходе курсовой работы удалось построить
функционирующий сервис, выполняющий
поиск и выдачу рекомендаций
кинофильмов на основе пользовательских
предпочтений на основе открытых данных
исследовательской группы GroupLens.
Спасибо за внимание!
Download