Автор: Гума С.Н., Коломойцева И.А.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование в рамках III форума Инновационные перспективы Донбасса
(ИУСМКМ — 2018): IX Международная научно-техническая конференция
Гума С.Н., Коломойцева И.А. Интернет-сайт для рекомендации фильмов. Рассмотрена проблема автоматизации подбора интересного контента. Проанализированы подходы к генерации рекомендаций, выявлены недостатки существующих аналогичных систем. Определена структура системы и модули, составляющие логику рекомендательной системы.
В среднем в год выходит около 350 полнометражных фильмов, и наблюдается тенденция к увеличению этого числа. В таких условиях зрителю, который увлекается просмотром фильмов, необходимо документировать свои впечатления и делиться ими с остальными. Для этой цели были разработаны сервисы, содержащие информацию о фильмах и позволяющие пользователям высказать своё мнение.
Технологии развиваются, чтобы облегчить жизнь пользователям, поэтому большинство таких сервисов внедряют функцию рекомендаций по предпочтениям. Существует множество реализаций алгоритма выдачи рекомендаций, но не все они являются эффективными в области кино, вследствие чего многие сервисы со временем оказываются бесполезными после оценивания некоторого количества фильмов.
Внедрение рекомендательной системы является коммерчески выгодным, так как пользователь с большей вероятностью обратит внимание на сервис, который поможет ему в поиске продуктов в определённой отрасли. Рекомендации применяются при поиске фильмов, музыке, товаров в интернет-магазине, новостей и услуг различного рода. К примеру, рекомендательная система позволит без больших временных затрат продолжить просмотр фильмов, выше других в списке показав те фильмы, которые соответствуют вкусам данного пользователя.
В связи с этим актуальным является создание собственной системы, которая бы отвечала требованиям современного пользователя, активно использующего рекомендательные сервисы для поиска новых фильмов.
Для уточнения функциональных характеристик, которые должна иметь разрабатываемая рекомендательная система, был проведён анализ продуктов, схожих по назначению. Были рассмотрены веб-приложения, реализующие поисковые алгоритмы как коллаборативной фильтрации, так и фильтрации содержимого.
IMDb.com — наиболее известный в мире сервис, предоставляющий информацию обо всех вышедших фильмах, сериалах, шоу. Содержит также новостные статьи на соответствующую тему, интервью, информацию о кассовых сборах, персонах, участвовавших в съёмках. Но главный интерес для данного проекта составляет наличие системы рейтинга и рекомендаций, составление которых происходит по принципу коллаборативной фильтрации, то есть предложения фильмов, которые были высоко оценены другими людьми со схожими вкусами. Этому же алгоритму следуют Netflix, Movielens и Кинопоиск, которым необходимо некоторое начальное количество оценок для составления списков рекомендаций. Данные системы со временем утрачивают свою эффективность, т.к. у пользователя появляется слишком много фильмов, которые он уже видел.
Movieterra — основывается на данных пользователя и описании фильмов, однако может посоветовать только премьеры, идущие в кинотеатрах. Здесь применяются алгоритмы, основанные на содержании (content-based), которые не требуют больших объёмов данных для составления рекомендаций и работают корректно без предварительного опроса пользователя. Из-за того, что Movieterra предоставляет информацию только о премьерах, этот сервис имеет ограниченную целевую аудиторию.
Существуют такие подходы к формированию рекомендаций: коллаборативная фильтрация (collaborative filtering) и контентная фильтрация (content-based filtering).
Алгоритмы, основанные методике коллаборативной фильтрации, основаны на подборе личных рекомендаций с использованием данных от других людей. Один из методов реализации заключается в объединении в группы пользователей, которым был интересен похожий контент. После чего производится фильтрация по популярности внутри группы контента текущей направленности. В итоге текущий пользователь получает как рекомендацию найденный наиболее популярный контент, с которым он ещё не взаимодействовал.
Алгоритмы контентной фильтрации основываются только на данных, полученных от текущего пользователя. В данном методе используется контент, с которым уже взаимодействовал пользователей, и ранжированный список элементов подобной тематики. Для генерации рекомендаций используются отличия между списком пользователя и списком похожих элементов.
Создание алгоритма, который сочетает в себе элементы контентной и коллаборативной фильтрации, увеличивает эффективность рекомендательной системы, а значит, позволяет более точно предсказать, что пользователь захочет видеть здесь и сейчас.
На рис. 1 представлена структура модулей разрабатываемой системы.
Разрабатываемая система представляет собой веб-приложение. Клиент взаимодействует с системой через графический пользовательский интерфейс. При входе на сайт пользователю предлагается регистрация или авторизация, если пользователь уже есть в базе данных. В процессе пользования сайтом пользователь помечает просмотренные фильмы оценками или переносит их в свои списки. Для более эффективной работы рекомендательной системы среди списков предусмотрены обязательные, такие как Больше не предлагать
и Просмотренные
. Первый список необходим для отсеивания фильмов, которые пользователь сам пометил как неинтересные ему, а второй — помогает усовершенствовать сгенерированный список рекомендованных фильмов таким образом, чтобы пользователю больше не были предложены фильмы, которые он уже видел.
Каждому фильму соответствует отдельная страница с подробной информацией. На этой странице пользователь может посмотреть описание фильма, отзывы других пользователей, их оценки этому фильму, а также самостоятельно оставить отзыв.
Модуль базы данных отвечает за хранение информации обо всех пользователях, зарегистрированных в системе, их оценках, о фильмах и их создателях. База данных взаимодействует как с пользовательским интерфейсом, так и с модулем составления рекомендаций.
Подробнее модуль составления рекомендаций рассмотрен на рис. 2.
Модуль составления рекомендаций сочетает в себе функции сбора информации, анализа данных и генерацию рекомендаций.
Модуль сбора информации берёт информацию из учётной записи пользователя, в которой хранятся: список просмотренных фильмов, оценки к этим фильмам, список нежелательных фильмов, который заполняется вручную пользователем.
Модуль анализа данных выявляет общие признаки у просмотренных фильмов. Эта информация передаётся модулю генерации рекомендаций, который использует полученные данные для создания списка фильмов, которые могут понравиться пользователю. Этот список может изменяться каждый раз, когда пользователь ставит новую оценку.
Для реализации данного проекта выбрана система управления содержимым (CMS) WordPress. Преимуществом данной платформы является бесплатное распространение. Несмотря на то, что эта система предназначена для управления блогами, её гибкость позволяет настроить сайт и для предоставления рекомендаций фильмов.
Логика веб-приложения реализована с помощью языка общего назначения PHP, версия 7.1. Данный язык был выбран по причине его универсальности — при разработке код на PHP может внедряться в разметку. Кроме того, выбранная CMS имеет налаженные средства разработки именно на этом языке.
MySQL является свободной реляционной системой управления базами данных (СУБД). Эта СУБД обладает необходимым функционалом для обеспечения сохранности данных разрабатываемой рекомендательной системы.
В процессе анализа проблемной области были обнаружены недостатки существующих рекомендательных систем, такие как утрата эффективности со временем и ограниченный круг пользователей вследствие направленности на рекомендацию только премьерных фильмов. Были рассмотрены алгоритмы построения рекомендаций: основанные на использовании данных одного текущего пользователя и многих пользователей со схожими вкусами. После чего была построена схема рекомендательной системы, которая будет внедрена в разрабатываемый сайт, и выбраны оптимальные средства реализации. Таким образом, было спроектировано веб-приложение по рекомендации фильмов с использованием данных текущего пользователя.