Научная статья на тему 'Нейросетевая рекомендательная система по подбору контента для онлайн-кинотеатров'

Нейросетевая рекомендательная система по подбору контента для онлайн-кинотеатров Текст научной статьи по специальности «Техника и технологии»

CC BY
3
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Вестник кибернетики
ВАК
Область наук
Ключевые слова
рекомендательные системы / анализ данных / машинное обучение / математические методы принятия решений / нейронные сети / база данных / графический интерфейс / программный интерфейс / recommendation systems / data analysis / machine learning / decision-making mathematical methods / neural networks / database / graphical interface / program interface

Аннотация научной статьи по технике и технологии, автор научной работы — Кожихова К. Е., Тараканов Д. В., Чалей И. В.

В статье проведен сравнительный анализ по таким критериям оценки качества, как нагрузка на систему, объем потребляемой оперативной памяти, время, затраченное на обучение, RMSE (корень из среднеквадратичной ошибки), MAE (средняя абсолютная ошибка), FCP (процент прогнозируемого покрытия) и MSE (среднеквадратичная ошибка). С помощью математических методов принятия решений был выбран самый практичный алгоритм – система на архитектуре DLRM, которая продемонстрировала наилучшие результаты по точности и гибкости в обработке большого объема данных, несмотря на высокую ресурсозатратность. Реализация выбранного алгоритма включала разработку самого алгоритма, проектирование базы данных, создание графического интерфейса пользователя и разработку.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по технике и технологии , автор научной работы — Кожихова К. Е., Тараканов Д. В., Чалей И. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Neural network-based recommendation system for content selection in online movie theatres

The article describes a comparative analysis using the following quality assessment criteria: system load, RAM consumption, time spent on training, RMSE (Root Mean Square Error), MAE (Mean Absolute Error), FCP (First Contentful Paint) and MSE (Mean Square Error). Using mathematical decision-making methods, the most practical algorithm was selected, a system based on DLRM (Deep Learning Recommendation Model) architecture, which showed the best results in terms of accuracy and fl exibility in processing large amounts of data, despite having high resource intensiveness. The implementation of the selected algorithm included the development of the algorithm itself, database design, creation of a graphical user interface and development.

Текст научной работы на тему «Нейросетевая рекомендательная система по подбору контента для онлайн-кинотеатров»

BY 4.0

Научная статья (cc)'

УДК 004.5:519.81 -!

https://doi.org/10.35266/1999-7604-2024-4-4

Нейросетевая рекомендательная система по подбору контента для онлайн-кинотеатров

Ксения Евгеньевна Кожихова13, Дмитрий Викторович Тараканов2, Иван Вацлавович Чалей3

2Сургутский государственный университет, Сургут, Россия 3ПАО «Сургутнефтегаз», Сургут, Россия

[email protected], https://orcid.org/0009-0003-5564-2027 [email protected], https://orcid.org/0000-0003-1851-1039 [email protected], https://orcid.org/0000-0001-5274-4296

Аннотация. В статье проведен сравнительный анализ по таким критериям оценки качества, как нагрузка на систему, объем потребляемой оперативной памяти, время, затраченное на обучение, RMSE (корень из среднеквадратичной ошибки), MAE (средняя абсолютная ошибка), FCP (процент прогнозируемого покрытия) и MSE (среднеквадратичная ошибка). С помощью математических методов принятия решений был выбран самый практичный алгоритм - система на архитектуре DLRM, которая продемонстрировала наилучшие результаты по точности и гибкости в обработке большого объема данных, несмотря на высокую ресурсозатратность. Реализация выбранного алгоритма включала разработку самого алгоритма, проектирование базы данных, создание графического интерфейса пользователя и разработку.

Ключевые слова: рекомендательные системы, анализ данных, машинное обучение, математические методы принятия решений, нейронные сети, база данных, графический интерфейс, программный интерфейс

Для цитирования: Кожихова К. Е., Тараканов Д. В., Чалей И. В. Нейросетевая рекомендательная система по подбору контента для онлайн-кинотеатров // Вестник кибернетики. 2024. Т. 23, № 4. С. 34-52. https://doi.org/10.35266/1999-7604-2024-4-4.

Original article

Neural network-based recommendation system for content selection in online movie theatres

Kseniya E. Kozhikhova13, Dmitry V Tarakanov2, Ivan V Chaley3

12Surgut State University, Surgut, Russia 3 "Surgutneftegas" PJSC, Surgut, Russia

[email protected]://orcid.org/0009-0003-5564-2027 [email protected], https://orcid.org/0000-0003-1851-1039 [email protected], https://orcid.org/0000-0001-5274-4296

Abstract. The article describes a comparative analysis using the following quality assessment criteria: system load, RAM consumption, time spent on training, RMSE (Root Mean Square Error), MAE (Mean Absolute Error), FCP (First Contentful Paint) and MSE (Mean Square Error). Using mathematical decision-making methods, the most practical algorithm was selected, a system based on DLRM (Deep Learning Recommendation Model) architecture, which showed the best results in terms of accuracy and flexibility in processing large amounts of data, despite having high resource intensiveness. The implementation of the selected algorithm included the development of the algorithm itself, database design, creation of a graphical user interface and development.

Keywords: recommendation systems, data analysis, machine learning, decision-making mathematical methods, neural networks, database, graphical interface, program interface

For citation: Kozhikhova K. E., Tarakanov D. V., Chaley I. V. Neural network-based recommendation system for content selection in online movie theatres. Proceedings in Cybernetics. 2024;23(4):34-52. https://doi.org/10.35266/1999-7604-2024-4-4.

ВВЕДЕНИЕ

Разработка алгоритмов рекомендаций, которые учитывают индивидуальные предпочтения и поведенческие особенности пользователей, позволяет значительно повысить удовлетворенность пользователей и увеличить их лояльность к платформе. Данная тема особенно актуальна в контексте конкурентной борьбы между различными онлайн-киноте-атрами, где качественные рекомендации могут стать ключевым преимуществом. Помимо этого, успешная рекомендательная система позволит онлайн-кинотеатрам не только повысить удовлетворенность пользователей, но и улучшить такие бизнес-показатели, как удержание аудитории и время просмотра.

Целью данной работы является разработка наиболее эффективной рекомендательной системы по подбору видеоконтента для он-лайн-кинотеатров, основанной на сравнительном анализе различных методов и алгоритмов рекомендаций.

Рассмотрим несколько примеров успешного использования рекомендательных систем в онлайн-сервисах.

1. №Ш1х - крупнейшая развлекательная платформа, которая реализовала оригинальную версию своей системы рекомендаций в далеком 2000 г. [1]. В настоящее время №Ш1х использует продвинутую систему персонализированных рекомендаций, которая анализирует историю просмотров, рейтинг и поисковое поведение пользователя, чтобы предложить фильмы и телешоу, которые, скорее всего, ему понравятся. Алгоритм также учитывает жанр, актеров, режиссера и другие факторы, чтобы составить персональные рекомендации для каждого пользователя [2].

По оценкам №Ш1х, около 80 % общего времени просмотра видеоконтента приходится на систему рекомендаций, что является впечатляющим результатом [3].

2. Еще одним примером успешной реализации рекомендательной системы являет-

ся Amazon. По оценкам, около 35 % доходов Amazon приходится на систему рекомендаций [4].

Система рекомендаций Amazon предлагает продукты на основе истории покупок, поиска и поведения пользователя в приложении или на сайте. Она создает персонализированные рекомендации на основе предыдущих покупок пользователя, просмотренных товаров и товаров, добавленных в корзину [2].

Несмотря на разнообразие и гибкость методов, рекомендательные системы сталкиваются с серьезными проблемами, которые существенно влияют на качество моделей и усложняют процесс их разработки. Рассмотрим несколько из этих проблем [5].

1. Холодный старт

Это ситуация, когда система не имеет достаточной информации для генерации точных рекомендаций. Могут возникнуть такие ситуации, когда новый пользователь регистрируется на платформе, система не знает его предпочтений, в результате рекомендации могут быть неточными или общими, или, когда добавляется новый продукт или контент, система не имеет данных о его популярности и релевантности для различных пользователей.

2. Масштабируемость

Речь идет о способности системы обрабатывать и анализировать большие объемы данных, так как увеличение количества пользователей и объектов может существенно увеличить время выдачи рекомендаций.

3. Разреженность данных

Такая проблема возникает, когда большинство пользователей оценивают лишь небольшой процент доступного контента, что приводит к недостаточности данных и сложности в обучении модели.

4. Смещение данных

Данные могут быть смещены или неполными. Например, активные пользователи могут оставлять больше отзывов, что создает

неравномерное представление о предпочтениях всей аудитории.

5. Фильтрационный пузырь

Пользователи могут постоянно получать рекомендации на основе своих прошлых предпочтений, что препятствует открытию для них нового контента.

МАТЕРИАЛЫ И МЕТОДЫ

В рамках данной работы для обучения рекомендательных систем были использованы данные с веб-сайта MovieLens: 25 млн оценок, примененных к 62 тысячам фильмов 162 тысяч пользователей.

Данные представляют собой следующий набор из 4 файлов.

1. Links.csv - файл, в котором представлено соответствие id фильмов из базы MovieLens с их id в крупнейших базах данных о фильмах imbd.com и tmdb.com. Имеет поля:

- movield - id фильма;

- imdbId - id фильма на imdb.com;

- tmdbId - id фильма на tmdb.com.

2. Users. cvs - файл с информацией о пользователях, который содержит поля:

- userld - id пользователя;

- age - возраст;

- sex - пол.

Эти данные позволяют значительно повысить точность и релевантность рекомендаций, предлагаемых пользователям.

3. Movies.cvs - файл с фильмами, который содержит в себе следующую информацию:

- movield - id фильма;

- title - название фильма, в скобках после название указана дата выхода;

- genres - жанры фильмы, указаны через разделитель.

Пример данных представлен в табл. 1.

В файле представлено более 62 тысяч фильмов, которым присвоены 19 уникальных

жанров. Как видно из табл. 1, одному фильму может быть присвоено несколько жанров.

Построим диаграмму, показывающую распределение фильмов по жанрам, которая представлена на рис. 1.

Рис. 1 наглядно иллюстрирует, что ведущими жанрами являются драма и комедия, они встречаются гораздо чаще других жанров. Анализ этих данных также помогает лучше понять аудиторию и настроить алгоритмы рекомендаций для повышения их точности и релевантности.

Отсортируем фильмы по году выпуска и построим диаграмму, которая отражена на рис. 2.

Как видно из рис. 3, преимущественно в базе MovieLens присутствуют фильмы 2000-2010 гг. выпуска. Знание периодов наибольшего производства видеоконтента позволяет лучше учитывать временные предпочтения пользователей и предлагать более релевантные рекомендации.

4. Ratings.cvs - файл с оценками фильмов, которые поставили пользователи. Содержит следующие поля:

- userld - id пользователя;

- movield - id фильма;

- rating - оценка, поставленная пользователем данному фильму;

- timestamp - время, когда была поставлена оценка фильму, представленное в формате UNIX timestamp (количество секунд, прошедших с 01.01.1970).

Пример входных данных представлен в табл. 2.

Диапазон выставляемых оценок варьируется от 1,0 до 5,0 с шагом 0,5.

Данный файл является основополагающим в обучении методов и дальнейшей реализации рекомендательной системы, поэтому рассмотрим его подробнее. В ре-

Таблица 1

Пример входных данных movies.cvs

movield title genres

1 Toy Story (1995) Adventure|Animation|Children|Comedy|Fantasy

8957 Saw (2004) Horror|Mystery|Thriller

33615 Madagascar (2005) Adventure|Animation|Children|Comedy

Рис. 1. Диаграмма распределения количества фильмов по жанрам

Примечание: составлено авторами.

Рис. 2. Диаграмма распределения фильмов по годам выпуска

Примечание: составлено авторами.

зультате анализа получаем следующую информацию:

- минимальное количество оценок, поставленное одним пользователем: 20;

- медианное количество оценок, поставленное одним пользователем: 71,0;

- среднее количество оценок, поставленное одним пользователем: 153,80793153727367;

- максимальное количество оценок, поставленное одним пользователем: 32202;

- более 75 % пользователей поставили менее 162 оценок;

- максимальное количество оценок на один фильм: 81491;

- медианное количество оценок на один фильм: 60;

Таблица 2

Пример входных данных rating.cvs

userId movieId rating timestamp

5183 183309 5,0 1530336311

5183 183833 2,5 1546327827

5183 184619 4,0 1523971175

Примечание: составлено авторами.

- количество фильмов с одной оценкой: 10298;

- более 75 % фильмов имеют менее 36 оценок.

Данные показатели не являются оптимальными из-за высокой разреженности данных, что может негативно сказаться на точности прогнозирования.

Обучение методов было реализовано на языке программирования Python 3, который является одним из наиболее популярных языков для анализа данных и машинного обучения благодаря своей простоте и богатой экосистеме библиотек [6]. Также для обучения были применены библиотеки:

- numpy - библиотека для работы с многомерными массивами и матрицами, а также для выполнения различных математических операций [7];

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- pandas - библиотека для обработки и анализа данных, которая обеспечивает удобные инструменты для работы с таблицами и временными рядами [8];

- sklearn - библиотека машинного обучения, включающая множество алгоритмов для классификации, регрессии, кластеризации и снижения размерности [9];

- keras - высокоуровневый API для нейронных сетей, работающий поверх TensorFlow, который упрощает создание и обучение глу -боких нейронных сетей [10];

- surprise - специализированная библиотека для построения и анализа рекомендательных систем [11];

- csv - модуль для работы с CSV-файлами, позволяет читать и записывать данные в формате CSV [12];

- os - модуль для взаимодействия с операционной системой, обеспечивает доступ к файловой системе и позволяет выполнять системные команды [13];

- time - модуль для работы со временем, предоставляет функции для измерения времени, задержек и форматирования времени [14];

- psutil - библиотека для получения информации о системных ресурсах и процессах, используется для мониторинга производительности [15].

Обучение каждого метода можно разделить на три этапа:

1. Импорт библиотек для сбора критериев оценки качества и подготовки директории с файлами для обучения модели.

2. Индивидуальное обучение каждой модели, тестирование модели на тестовом наборе данных для получения значений критериев оценки качества.

3. Сохранение значений критериев, полученных на втором этапе, в csv-файлы для дальнейшего анализа.

Для каждого метода были собраны результаты работы метода:

- на неотсортированным наборе данных;

- на отсортированном наборе данных по возрасту и полу;

- на отсортированном наборе данных по жанру;

- на отсортированном наборе данных по жанру, возрасту и полу.

После получения всех результатов составлена результирующая таблица для каждого алгоритма.

Аппаратная часть, на которой были обучены алгоритмы рекомендательных систем:

процессор: Intel core i5-12400F, 6 ядер, 12 потоков;

оперативная память: ADATA 32GB DDR4.

Рассмотрим общие критерии оценки качества для каждого метода с целью дальнейшего выбора наиболее оптимального алгоритма рекомендательной системы.

Итоговый результат обучения метода Co-Clustering продемонстрирован в табл. 3.

Как видно из результирующей табл. 3, данный метод быстро обучился, при этом не используя большие ресурсы персонального компьютера.

Итоговый результат обучения метода KNNBaseline продемонстрирован в табл. 4.

Как видно из результирующей табл. 4, алгоритм достаточно быстро обучился, но ему потребовалось более 4 Гб оперативной памяти в среднем (17 Гб в максимуме).

Итоговый результат обучения метода KNNBasic продемонстрирован в табл. 5.

Как видно из результирующей табл. 5, алгоритм достаточно быстро обучился, но ему по-

Таблица 3

Общий результат обучения алгоритма Co-Clustering

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 15,30 134213632 2156,0000 0,9419 0,7311 0,5899 0,8872

По полу и возрасту 17,00 135294976 164,6500 0,9771 0,7568 0,5976 0,9555

По жанру 20,70 136196096 275,5400 0,9292 0,7152 0,6199 0,8643

По жанру, возрасту и полу 20,00 136228864 235,0182 0,9448 0,7266 0,5992 0,8942

Среднее общее 18,25 135483392 707,8021 0,9483 0,7324 0,6017 0,9003

Примечание: составлено авторами.

Таблица 4

Общий результат обучения алгоритма KNNBaseline

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 14,300 17231249415 1661,0000 0,8878 0,6802 0,6196 0,7882

По полу и возрасту 18,100 119967744 124,8583 0,9013 0,6903 0,6217 0,8126

По жанру 18,500 121020416 69,7937 0,8653 0,6520 0,6267 0,7494

По жанру, возрасту и полу 19,600 119853056 57,3000 0,8805 0,6637 0,6044 0,7771

Среднее общее 17,625 4398022658 478,2380 0,8837 0,6716 0,6181 0,7818

Примечание: составлено авторами.

Таблица 5

Общий результат обучения алгоритма KNNBasic

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 18,200 21971861513 1559,0000 0,9607 0,7445 0,4494 0,923

По полу и возрасту 18,800 123564032 124,1000 0,9698 0,7492 0,4880 0,9407

По жанру 19,800 123142144 64,8079 0,9937 0,7082 0,5631 0,8688

По жанру, возрасту и полу 36,900 122216448 53,3833 0,9458 0,7181 0,5338 0,8971

Среднее общее 23,425 5585196034 450,3228 0,9675 0,7300 0,5086 0,9074

Примечание: составлено авторами.

требовалось более 20 % ЦП и более 5 Гб оперативной памяти в среднем (21 Гб в максимуме).

Итоговый результат обучения метода КК^М^Бсоге продемонстрирован в табл. 6.

Как видно из результирующей табл. 6, алгоритм достаточно быстро обучился, но ему потребовалось более 5 Гб оперативной памяти в среднем (20 Гб в максимуме).

Итоговый результат обучения метода КМБ продемонстрирован в табл. 7.

Как видно из результирующей табл. 7, алгоритм быстро обучился, но ему потребовалось более 20 % ЦП и более 4 Гб оперативной памяти в среднем (13 Гб в максимуме).

Итоговый результат обучения метода 81ореОпе продемонстрирован в табл. 8.

Как видно из результирующей табл. 8, алгоритму для полного обучения на неотсор-

тированном наборе данных потребовалось 1,5 часа, при этом было затрачено более 10 Гб оперативной памяти (максимум), нагрузка на ЦП была в пределах нормы.

Итоговый результат обучения метода к-МеапБ продемонстрирован в табл. 9.

Из результирующей табл. 9 видно, что, как и предыдущему алгоритму, алгоритму к-МеапБ потребовалось время для полного обучения. В максимуме было использовано около 21 Гб оперативной памяти, но ЦП при этом не был сильно нагружен.

Итоговый результат обучения метода БУЮ продемонстрирован в табл. 10.

Как видно из результирующей табл. 10, алгоритм достаточно быстро обучился, не затратив больших ресурсов персонального компьютера.

Таблица 6

Общий результат обучения алгоритма KNNWithZScore

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 15,800 20887633928 1651,0000 0,9146 0,6956 0,5939 0,8366

По полу и возрасту 19,600 119324672 123,2833 0,9384 0,7133 0,6188 0,8812

По жанру 19,600 118132736 68,8753 0,8740 0,6579 0,6319 0,7650

По жанру, возрасту и полу 22,700 124276736 55,2333 0,9071 0,6832 0,6072 0,8272

Среднее общее 19,425 5312342018 474,5980 0,9085 0,6875 0,6130 0,8275

Примечание: составлено авторами.

Таблица 7

Общий результат обучения алгоритма NMF

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 15,0 1304428544 1791,0000 0,9371 0,7211 0,5991 0,8781

По полу и возрасту 17,3 142761984 153,0333 0,9604 0,7378 0,6142 0,9237

По жанру 25,8 142954496 251,5684 0,9143 0,6965 0,6253 0,8370

По жанру, возрасту и полу 26,3 143896576 188,7250 0,9400 0,7181 0,6024 0,8878

Среднее общее 21,1 433510400 596,0817 0,9380 0,7184 0,6103 0,8817

Примечание: составлено авторами.

Таблица 8

Общий результат обучения алгоритма SlopeOne

Набор данных ЦП, % Память, байт Время обучения,с RSME MAE FCP MSE

Неотсортированный 15,10 11318329348 5950,000 0,898 0,6899 0,6133 0,8063

По полу и возрасту 16,40 145141760 393,1000 0,9358 0,7161 0,6151 0,8764

По жанру 16,10 149635072 217,0853 0,8782 0,6645 0,6369 0,7720

По жанру, возрасту и полу 23,00 147943424 175,5417 0,9075 0,6881 0,6057 0,8275

Среднее общее 17,65 2940262401 1683,9320 0,9049 0,6897 0,6178 0,8206

Примечание: составлено авторами.

Таблица 9

Общий результат обучения алгоритма k-Means

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 14,90 22265462793 6032,0000 0,9181 0,6964 0,6136 0,843

По полу и возрасту 17,00 417189888 125,6083 0,9399 0,7150 0,6203 0,8841

По жанру 18,60 417157120 68,4605 0,8736 0,6580 0,6368 0,7642

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

По жанру, возрасту и полу 25,30 417652736 54,6083 0,9039 0,6810 0,6095 0,8212

Среднее общее 18,95 5879365634 1570,1690 0,9089 0,6876 0,6201 0,8281

Примечание: составлено авторами.

Таблица 10

Общий результат обучения алгоритма SVD

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 14,000 13481541632 1374,0000 0,8712 0,6703 0,6282 0,7591

По полу и возрасту 18,800 107778048 96,2667 0,8932 0,6858 0,6155 0,7982

По жанру 17,900 133238784 143,2632 0,8602 0,6589 0,6272 0,7407

По жанру, возрасту и полу 15,200 144293888 116,6667 0,8673 0,6635 0,6026 0,7539

Среднее общее 16,475 3466713088 432,5492 0,8730 0,6696 0,6184 0,7630

Примечание: составлено авторами.

Итоговый результат обучения метода ЮЬЯМ продемонстрирован в табл. 11.

Как видно из результирующей табл. 11, алгоритм очень долго обучался (максимальное значение - более 3-х дней), затратив при этом большие ресурсы ЦП, но не используя больше 2 Гб оперативной памяти.

Итоговый результат обучения гибридного метода к-МеапБ + БУЮ продемонстрирован в табл. 12.

Как видно из результирующей табл. 12, алгоритм долго обучался (максимально - больше суток), затратив в среднем 6 Гб оперативной памяти (22 Гб в максимуме).

Итоговый результат обучения гибридного метода ККЫВаБЮ + к-МеапБ продемонстрирован в табл. 13.

Как видно из результирующей табл. 13, алгоритм обучался долго (максимально - больше 1,5 дня), затратив в среднем 6 Гб оперативной памяти (22 Гб в максимуме).

Итоговый результат обучения гибридного метода КККВаБЮ + БУЮ продемонстрирован в табл. 14. Как видно из результирующей табл. 14, алгоритм обучался долго (максимально 1,5 дня), используя при этом около 30 % ЦП и 6 Гб памяти в среднем (22 Гб в максимуме). Данный метод достаточно требователен по ресурсам.

В табл. 15 приведен общий результат, взятый из строк «Среднее общее» в табл. 3-14, для всех обученных методов выше.

Как видно из табл. 15, алгоритмы все разные, имеют разные значения критериев и нет явного лидера по производительности и результату.

Таблица 11

Общий результат обучения алгоритма DLRM

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 91,70 1616904192 249894,0000 0,9773 0,739 0,5805 0,9551

По полу и возрасту 54,60 1480040448 1457,1250 0,9779 0,7452 0,5744 0,9565

По жанру 58,90 1447968768 2593,2074 0,9296 0,7038 0,5889 0,8655

По жанру, возрасту и полу 82,20 1341693952 1947,9750 0,9472 0,7211 0,5790 0,9009

Среднее общее 71,85 1471651840 63973,0800 0,9580 0,7273 0,5807 0,9195

Примечание: составлено авторами.

Таблица 12

Общий результат обучения алгоритма k-Means + SVD

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 18,7 22271754249 95095,0000 0,8770 0,6742 0,6197 0,7691

По полу и возрасту 18,8 1527545856 857,4000 0,8925 0,6852 0,6282 0,7967

По жанру 19,9 1530687488 1411,6689 0,8455 0,6451 0,6332 0,7154

По жанру, возрасту и полу 19,8 1528791040 965,3833 0,8631 0,6583 0,6046 0,7474

Среднее общее 19,3 6714694658 24582,3600 0,8695 0,6657 0,6214 0,7572

Примечание: составлено авторами.

Таблица 13

Общий результат обучения алгоритма KNNBasic + k-Means

Набор данных ЦП, % Память, байт Время обучения,с RSME MAE FCP MSE

Неотсортированный 17,2 22938648585 139540 0,9098 0,7005 0,5928 0,8277

По полу и возрасту 19,60 403456000 929,3917 0,9218 0,7077 0,6019 0,8500

По жанру 18,20 1521176576 1334,4958 0,8832 0,6689 0,6266 0,7811

По жанру, возрасту и полу 24,80 1527468032 990,3250 0,9020 0,6832 0,5998 0,8159

Среднее общее 19,95 6597687298 35698,5500 0,9042 0,6901 0,6053 0,8187

Таблица 14

Общий результат обучения алгоритма KNNBasic + 8УБ

Набор данных ЦП, % Память, байт Время обучения, с RSME MAE FCP MSE

Неотсортированный 18,700 22271754249 95095,0000 0,8920 0,6896 0,5927 0,7957

По полу и возрасту 26,200 414904320 956,4750 0,9076 0,7005 0,6006 0,8238

По жанру 34,200 419827712 1535,0605 0,8652 0,6630 0,6191 0,7494

По жанру, возрасту и полу 36,000 420458496 1141,7750 0,8762 0,6698 0,5964 0,7693

Среднее общее 28,775 5881736194 24682,0800 0,8853 0,6807 0,6022 0,7846

Примечание: составлено авторами.

Таблица 15

Общие показатели обучения всех методов

Алгоритм рек. системы Критерии

Y1 Y2 Y3 Y4 Y5 Y6 Y7

SVD 16,475 3466713088 432,5492 0,8730 0,6696 0,6184 0,7630

Co-Clustering 18,250 135483392 707,8021 0,9483 0,7324 0,6017 0,9003

KNNBaseline 17,625 4398022658 478,2380 0,8837 0,6716 0,6181 0,7818

KNNBasic 23,425 5585196034 450,3228 0,9675 0,7300 0,5086 0,9074

KNNWithZScore 19,425 5312342018 474,5980 0,9085 0,6875 0,6130 0,8275

NMF 21,100 433510400 596,0817 0,9380 0,7184 0,6103 0,8817

SlopeOne 17,650 2940262401 1683,9320 0,9049 0,6897 0,6178 0,8206

DLRM 71,850 1471651840 63973,0800 0,9580 0,7273 0,5807 0,9195

k-Means 18,950 5879365634 1570,1690 0,9089 0,6876 0,6201 0,8281

KNNBasic + k-Means 19,950 6597687298 35698,5500 0,9042 0,6901 0,6053 0,8187

KNNBasic + SVD 28,775 5881736194 24682,0800 0,8853 0,6807 0,6022 0,7846

k-Means + SVD 19,300 6714694658 24582,3600 0,8695 0,6657 0,6214 0,7572

Примечание: составлено авторами.

Для выбора наиболее оптимального алгоритма рекомендательной системы используем математические методы принятия решений.

Воспользуемся комбинированным критерием для выбора алгоритма. Для установки ограничений будет использован критерий Антиидеальной точки (У3, У4, У5, У6), а для выбора алгоритма - критерий Идеальной точки (У1, У2, У4).

1. Определение весов критериев.

Так как изначально нет оценок экспертов, попросим независимых экспертов оценить критерии. Оценки отображены в табл. 16.

Нормализуем полученные данные по (1):

Ьц = 1 -

aij - 1 п 5

(1)

где

а - значение из табл. 16,

у 5

п - количество критериев.

Нормализация оценок продемонстрирована в табл. 17.

Выполняем расчет по (2):

(2)

где

Ь - значение из табл. 17,

] 5

п - количество критериев,

Лп

. ba

у=0

ч - сумма рангов для /-го эксперта.

Вычисляем вес критерия по (3):

т

у>

La т

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(3)

где

¿=о

с - значение из табл. 18,

] 5

т - количество экспертов,

Zm

i=О

- сумма рангов для]-го критерия.

Все расчеты отображены в табл. 18.

Таблица 16

Оценка независимых экспертов

Эксперт Критерии Сумма рангов

Y1 Y2 Y3 Y4 Y5 Y6 Y7

Э1 1 3 4 6 6 6 2 28

Э2 2 1 5 7 4 6 3 28

Э3 3 2 4 6 6 6 1 28

Э4 3 4 1 7 6 5 2 28

Э5 2 1 4 6 5 7 3 28

Э6 4 5 1 3 2 6 7 28

Примечание: составлено авторами.

Таблица 17

Нормализация оценок экспертов

Эксперт Критерии Сумма рангов

Y1 Y2 Y3 Y4 Y5 Y6 Y7

Э1 1,00 0,71 0,86 0,57 0,29 0,29 0,29 4

Э2 0,86 1,00 0,71 0,43 0,57 0,29 0,14 4

Э3 0,71 0,86 1,00 0,57 0,29 0,29 0,29 4

Э4 0,71 0,57 0,86 1,00 0,29 0,43 0,14 4

Э5 0,86 1,00 0,71 0,57 0,43 0,14 0,29 4

Э6 0,57 0,43 0,14 1,00 0,86 0,29 0,71 4

Примечание: составлено авторами.

Таблица 18

Получение весов критериев от среднего значения суммы для каждого критерия

Эксперт Критерии Сумма рангов

Y1 Y2 Y3 Y4 Y5 Y6 Y7

Э1 0,25 0,18 0,21 0,14 0,07 0,07 0,07 1

Э2 0,21 0,25 0,18 0,11 0,14 0,07 0,04 1

Э3 0,18 0,21 0,25 0,14 0,07 0,07 0,07 1

Э4 0,18 0,14 0,21 0,25 0,07 0,11 0,04 1

Э5 0,21 0,25 0,18 0,14 0,11 0,04 0,07 1

Э6 0,14 0,11 0,04 0,25 0,21 0,07 0,18 1

СУММ 1,18 1,14 1,07 1,04 0,68 0,43 0,46 6

Вес коэф. 0,20 0,19 0,18 0,17 0,11 0,07 0,08 1

Примечание: составлено авторами.

2. Нормализация критериев

Для нормализации критериев используем критерий Севиджа. Нормализация критериев критерием Севиджа - это метод, использующийся в многокритериальном анализе, который позволяет привести к одной числовой шкале различные критерии, которые имеют разный масштаб и единицы измерения.

Сначала необходимо определить максимальное значение для каждого критерия. Затем для каждого критерия рассчитывается разность между максимальным значением и реальными значениями.

После этого для каждого критерия рассчитывается минимальное значение разности. Далее выбирается максимальное значение минимальной разности - это и будет максимальным критерием. Используя формулу, каждый показатель нормализуется по максимальному критерию.

Нормализованный показатель для каждого критерия рассчитывается по (4):

^тах ~ Стт

где

2г - реальное значение /-го критерия,

С - максимальное значение разности меж-

тах А

ду максимальным и реальным значениями, С - минимальное значение разности меж-

тт А

ду максимальным и реальным значениями. Расчеты приведены в табл. 19. Для критериев У1, У6 и У7 выполним смену направления. В табл. 20 представлены нормализованные критерии.

Данные в табл. 20 обозначают какую-либо величину. Необходимо перейти к безразмерным шкалам. Для этого используем Относительную нормализацию. Выполняем расчеты по (5):

(5)

где

a - значение из табл. 19,

MAX (a.) - значение максимума из табл. 20, Расчеты внесены в табл. 21. Применим ограничение в виде критерия Антиидеальной точки для критериев 3, 4, 5 и 6. Ограничения Антиидеальной точки используется для минимизации отклонения от наихудшего возможного решения. Этот метод заключается в том, чтобы найти решение, которое

Таблица 19

Нормализация критерием Севиджа

Алгоритм Критерии

Y1 Y2 Y3 Y4 Y5 Y6 Y7

X1 16,475 3466713088 432,5492 0,873 0,6696 0,6184 0,763

X2 18,25 135483392 707,8021 0,9483 0,7324 0,6017 0,9003

X3 17,625 4398022658 478,238 0,8837 0,6716 0,6181 0,7818

X4 23,425 5585196034 450,3228 0,9675 0,73 0,5086 0,9074

X5 19,425 5312342018 474,598 0,9085 0,6875 0,613 0,8275

X6 21,1 433510400 596,0817 0,938 0,7184 0,6103 0,8817

X7 17,65 2940262401 1683,932 0,9049 0,6897 0,6178 0,8206

X8 71,85 1471651840 63973,08 0,958 0,7273 0,5807 0,9195

X9 18,95 5879365634 1570,169 0,9089 0,6876 0,6201 0,8281

X10 19,95 6597687298 35698,55 0,9042 0,6901 0,6053 0,8187

X11 28,775 5881736194 24682,08 0,8853 0,6807 0,6022 0,7846

X12 19,3 6714694658 24582,36 0,8695 0,6657 0,6214 0,7572

Макс 71,85 6714694658 63973,08 0,9675 0,7324 0,6214 0,9195

Мин 16,475 135483392 432,5492 0,8695 0,6657 0,5086 0,7572

Примечание: составлено авторами.

Таблица 20

Нормализация критерием Севиджа

Алгоритм К штерии

Y1 Y2 Y3 Y4 Y5 Y6 Y7

X1 55,375 3466713088 432,5492 0,873 0,6696 0,003 0,1565

X2 53,6 135483392 707,8021 0,9483 0,7324 0,0197 0,0192

X3 54,225 4398022658 478,238 0,8837 0,6716 0,0033 0,1377

X4 48,425 5585196034 450,3228 0,9675 0,73 0,1128 0,0121

X5 52,425 5312342018 474,598 0,9085 0,6875 0,0084 0,092

X6 50,75 433510400 596,0817 0,938 0,7184 0,0111 0,0378

X7 54,2 2940262401 1683,932 0,9049 0,6897 0,0036 0,0989

X8 0 1471651840 63973,08 0,958 0,7273 0,0407 0

X9 52,9 5879365634 1570,169 0,9089 0,6876 0,0013 0,0914

X10 51,9 6597687298 35698,55 0,9042 0,6901 0,0161 0,1008

X11 43,075 5881736194 24682,08 0,8853 0,6807 0,0192 0,1349

X12 52,55 6714694658 24582,36 0,8695 0,6657 0 0,1623

Макс 55,375 6714694658 63973,08 0,9675 0,7324 0,1128 0,1623

Таблица 21

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Использование относительной нормализации

Алгоритм Критерии

Y1 Y2 Y3 Y4 Y5 Y6 Y7

Х1 0,297517 0,51628753 0,006761 0,902326 0,914255 5,48227 4,701171

Х2 0,329571 0,02017715 0,011064 0,980155 1 5,33422 5,547135

Х3 0,318284 0,65498476 0,007476 0,913385 0,916985 5,47961 4,817006

Х4 0,423025 0,83178705 0,007039 1 0,996723 4,508865 5,590881

Х5 0,35079 0,79115169 0,007419 0,939018 0,938695 5,434397 5,098583

Х6 0,381038 0,06456145 0,009318 0,969509 0,980885 5,410461 5,432532

Х7 0,318736 0,43788475 0,026323 0,935297 0,941699 5,47695 5,056069

Х8 1,297517 0,21916884 1 0,990181 0,993037 5,14805 5,665434

Х9 0,342212 0,87559687 0,024544 0,939432 0,938831 5,49734 5,10228

Х10 0,360271 0,98257443 0,558025 0,934574 0,942245 5,366135 5,044362

Х11 0,519639 0,87594991 0,38582 0,915039 0,92941 5,338652 4,834258

Х12 0,348533 1 0,384261 0,898708 0,90893 5,508865 4,665434

Гамма 0,20 0,19 0,18 0,17 0,11 0,07 0,08

Ъ 0,30 0,02 0,01 0,90 0,91 4,51 4,67

Примечание: составлено авторами.

максимально удалено от всех нежелательных характеристик (антиидеальных точек) и максимально близко к идеальным характеристикам.

Алгоритм использования ограничения Антиидеальной точки включает в себя следующие шаги.

1. Вычислить расстояние от каждой точки (варианта решения) в матрице оценок до антиидеальной точки по следующей (6):

где

(6)

] - это индекс критерия, у - это вес коэффициентов, который был найден на этапе обработки оценок экспертов,

z - это минимальное значение для критерия ] (из всех алгоритмов),

х - это значение критерия конкретного алгоритма.

2. Просуммировать и получить столбец с суммами для каждого метода рекомендательной системы.

3. На основе среднего значения столбца с суммами отсеять те методы рекомендаций, которые ниже среднего.

Расчеты в табл. 22.

Находим среднее значение z_gr для последнего столбца в табл. 22, равное 0,008138, и исключаем алгоритмы Х1, Х2, Х3, Х4, Х5, Х6, Х7, Х9 и Х11, т. к. они меньше рассчитанного значения z_gr.

Таблица 22

Использование ограничения критерием Антиидеальной точки

Алгоритм Y1 Y2 Y3 Y4 Y5 Y6 Y7 Сумма

Х1 0,000000 0,000000 0,000000 0,004834 0,004835

Х2 0,000001 0,000198 0,000106 0,003476 0,003780

Х3 0,000000 0,000006 0,000001 0,004808 0,004815

Х4 0,000000 0,000306 0,000099 0,000000 0,000404

Х5 0,000000 0,000048 0,000011 0,004370 0,004430

Х6 0,000000 0,000149 0,000066 0,004147 0,004363

Х7 0,000012 0,000040 0,000014 0,004782 0,004847

Х8 0,031458 0,000249 0,000090 0,002084 0,033882

Х9 0,000010 0,000049 0,000011 0,004985 0,005056

Х10 0,009690 0,000038 0,000014 0,003750 0,013492

Х11 0,004582 0,000008 0,000005 0,003513 0,008108

Х12 0,004544 0,000000 0,000000 0,005102 0,009646

3. Выбрать альтернативу с максимальным значением суммы (учитывая исключения, ко -торые были сделаны ограничением критерия Антиидеальной точки).

Расчеты находятся в табл. 23.

В данном случае лучшей альтернативой является алгоритм X8 - это нейронная сеть на базе архитектуры DLRM. Данный алгоритм показывает достаточно высокий результат точности, а также является одним из немногих алгоритмов, который не нагружает оперативную память, из-за чего имеет большую ресурсоемкость по входным данным для обучения модели и соответственно выдачи рекомендаций.

РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ

Реализация рекомендательной системы, построенной на архитектуре DLRM, включает в себя разработку алгоритма, проектирование базы данных, а также графического и программного интерфейса.

Система реализована на языке программирования Python с использованием библиотек numpy, pandas, csv, os, которые ранее применялись и при обучении методов. Помимо данных библиотек потребуются еще следующие:

- flask - легковесный веб-фреймворк для Python, предназначенный для создания веб-приложений и API [16];

- psycopg2 - библиотека для взаимодействия с PostgreSQL базами данных из Python

[17];

Таблица 23

Использование критерия Идеальной точки

Алгоритм Y1 Y2 Y3 Y4 Y5 Y6 Y7 Сумма

X1 0,000000 0,008930 0,000008 0,008937

X2 0,000040 0,000000 0,004655 0,004695

X3 0,000017 0,014621 0,000138 0,014775

X4 0,000608 0,023899 0,005128 0,029635

X5 0,000110 0,021566 0,001123 0,022799

X6 0,000269 0,000071 0,003523 0,003864

X7 0,000017 0,006330 0,000914 0,007261

X8 0,038584 0,001437 0,005988 0,046009

X9 0,000077 0,026548 0,001143 0,027768

X10 0,000152 0,033604 0,000860 0,034616

X11 0,001904 0,026570 0,000171 0,028645

X12 0,000100 0,034832 0,000000 0,034932

Примечание: составлено авторами.

Применим критерий Идеальной точки для оставшихся критериев. Критерий Идеальной точки широко используется в теории принятия решений при ранжировании альтернатив. Он является одним из наиболее эффективных критериев для принятия решений в группе.

Критерий Идеальной точки предполагает, что при принятии решения индивид выбирает тот вариант, который находится ближе всего к его идеальному представлению о желаемом результате. Основная идея заключается в том, чтобы найти оптимальное решение, которое минимизирует расстояние до всех критериев, максимально приближаясь к идеальному результату по каждому из них.

Алгоритм использования критерия Идеальной точки включает в себя следующие шаги:

1. Вычислить расстояние от каждой точки (варианта решения) в матрице оценок до идеальной точки по следующей (7):

где

] - это индекс критерия, у - это вес коэффициентов, который был найден на этапе обработки оценок экспертов, z - это минимальное значение для критерия ] (из всех алгоритмов),

х - это значение критерия конкретного алгоритма.

2. Просуммировать и получить столбец с суммами для каждого метода (алгоритма) рекомендательной системы.

- tkinter - встроенный в Python стандартный модуль для создания графических пользовательских интерфейсов (GUI) [18];

- pickle - встроенный модуль Python для сериализации и десериализации объектов (конвертация объектов в байтовый поток и обратно) [19].

Алгоритм работы рекомендаций будет зависеть от того, является ли человек зарегистрированным пользователем онлайн-киноте-атра или нет.

Если пользователь зарегистрирован на сервисе онлайн-кинотеатра, то берутся данные, хранящиеся в базе данных сервиса, и формируются в один список из userld. Затем этот список передается в функцию для выдачи предсказаний, загружается уже обученная модель алгоритма по рекомендательным системам, после чего выдается movield, который система заранее знает.

Если же пользователь не зарегистрирован, то есть два решения данной ситуации.

1. Предложить незарегистрированному пользователю список самых популярных и высоко оцененных фильмов/сериалов в сервисе, таким образом можно будет как получить в будущем информацию о данном пользователе, так и не испортить его впечатление в качестве посетителя сервиса.

2. Попросить пользователя ввести свои возраст, пол, а также выбрать предпочитаемые жанры фильмов и методом ближайших точек найти пользователей по похожим параметрам и предложить фильмы и сериалы, которые можно будет предложить пользователям с аналогичным данными профиля.

Блок-схема данного алгоритма реализована на рис. 3.

В первую очередь нужно спроектировать базу данных. В качестве СУБД была выбрана PostgreSQL, так как данная технология открыта и хорошо интегрируется с Python. На рис. 4 представлена будущая БД, которую необходимо разработать.

БД включает в себя 5 табл.:

- users - таблица, в которой хранится информация о пользователях, а точнее userId

Рис. 3. Блок-схема алгоритма рекомендаций

Примечание: составлено авторами.

(уникальный идентификатор пользователя), age (возраст пользователя) и sex (пол пользователя);

- movies - таблица, в которой хранится информация о видеоконтенте, а точнее movield (уникальный идентификатор), title (название видеоконтента), genres (жанр видеоконтента);

- ratings - таблица, в которой хранится информация об оценках пользователей, а точнее userld (уникальный идентификатор пользователя, который оставил оценку), movield (уникальный идентификатор видеоконтента в сервисе), rating (оценка пользователя), timestamp (время, когда была поставлена оценка пользователем);

- links - таблица, в который хранится информация об уникальном идентификаторе видеоконтента на крупных стри-минговых площадках, а точнее movield (уникальный идентификатор видеоконтента в сервисе MovieLens), imdbId (уникальный идентификатор видеоконтента в сервисе IMDb), tmdbId (уникальный идентификатор

Рис. 4. Схема базы данных

Примечание: составлено авторами.

видеоконтента в сервисе The Movie Database). Это сделано для будущей интеграции сервиса с другими система, так как movield предназначен только для внутренней БД, в то время как imdbId и tmdbId являются уникальными идентификаторами крупнейших внешних сервисов;

- recommendations - таблица, в который хранится информация о рекомендация для пользователей, а точнее userld (уникальный идентификатор пользователя), recommendation (список с movieId, который предлагается для просмотра пользователю).

Связи в БД между таблицами:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- users.userld - ratings.userld (связь один ко многим), так как один человек может оставлять множество оценок на различный видеоконтент;

- movies.movield - ratings.movield (связь один ко многим), так как один фильм может иметь множество оценок от пользователей;

- users.userld - recommendations.userld (связь один к одному), так как один человек всегда имеет лишь один список рекомендаций в сервисе;

- movies.movield - links.movield (связь один к одному), так как у одного фильма лишь одна привязка на IMDB и TMDB.

В ходе разработки системы по выдаче рекомендаций была реализована административная панель для работы с моделью, а также для

небольших точечных изменений данных в БД. Графический интерфейс, он же GUI, представляет собой способ взаимодействия пользователя с компьютером с использованием графических элементов, например окон, кнопок и меню [20].

Реализованный графический интерфейс представлен на рис. 5.

На интерфейсе расположены кнопки со следующим функционалом.

1. Кнопка «Выдача рекомендаций», представленная на рис. 6, отвечает за формирование списка рекомендаций. Можно выбрать csv-файл с id пользователей либо запросить загрузку актуальных данных из БД.

2. С помощью кнопки «Пользователи», которая изображена на рис. 7, можно добавить или удалить пользователя из БД, сделана для небольших точечных изменений.

3. С помощью кнопки «Фильмы», представленной на рис. 8, можно добавить или удалить фильм из БД, сделана для небольших точечных изменений.

4. Кнопка «Рейтинг», которая изображена на рис. 9, позволяет добавить или удалить рейтинг фильма из БД, сделана для небольших точечных изменений.

5. Кнопка «Ссылки» продемонстрирована на рис. 10, дает возможность добавить или удалить ссылку на фильм из БД, сделана для небольших точечных изменений.

Рис. 5. Главное меню ПО

Примечание: составлено авторами.

Данное меню было реализовано для небольших изменений данных. Для массовых изменений на стороне базы данных можно воспользоваться платформой pgAdmin или другими профильными инструментами.

Реализуем API рекомендательной системы для возможной будущей интеграции с существующими онлайн-кинотеатрами. Интерфейс реализован на базе библиотеки Flask.

Разработанный программный интерфейс приложения имеет следующие ссылки.

1./recommendations_client_service - get запрос для выдачи рекомендаций зарегистрированным пользователям в сервисе онлайн-ки-

Рис. 6. Выбор действий по кнопке «Выдача рекомендаций»

Примечание: составлено авторами.

нотеатра. Возвращает двухсотый код, а также json объект со списком фильмов (id, название, предполагаемая оценка пользователя), которые можно предложить человеку в качестве рекомендаций. В случае ошибки возвращает пятисотый код.

Имеет следующие параметры:

- user_id - id пользователя в сервисе он-лайн-кинотеатра;

- num_recommendations (необязательный) -количество рекомендаций на одного пользователя, по умолчанию выдает 5 рекомендаций.

2./recommendations_no_client_service_by_ model - get запрос для выдачи рекоменда-

^ Управлениеданны,,, — □ X

Пользователи

User ID I

1 Age

Sot I

Добавить пользователя 1

Удалить пользователя

Назад |

$ Управление данны.,, — □ X

Фильмы

Movie ID I

1 Title I

1 Genres I

1 Добавить фильм 1

Удалить фильм

Назад |

Рис. 7. Выбор действий по кнопке «Пользователи» Рис. 8. Выбор действий по кнопке «Фильмы»

Примечание: составлено авторами. Примечание: составлено авторами.

$ Управлениеданны... — □ X

Ссылки

Lint ID I

1 Movie ID I

1 IMDBID I

1 TMDBID I

1 Доба&ить ссылку 1

Удалить ссылку

Назад J

Рис. 9. Выбор действий по кнопке «Рейтинг»

Примечание: составлено авторами.

ций незарегистрированным пользователям, но про которых есть информация об их поле, возрасте и любимых жанрах, полученная с другого сервиса, к которому в дальнейшем с помощью API будет подключена рекомендательная система. Возвращает двухсотый код, а также json объект со списком фильмов (id и название), которые можно предложить человеку в качестве рекомендаций. В случае ошибки возвращает пятисотый код.

Имеет следующие параметры:

- sex - пол пользователя;

- age - возраст пользователя;

- genres - любимые жанры в формате: genrel |genre2 |.. ,|genreN;

- num_recommendations (необязательный) -количество рекомендаций на одного пользователя, по умолчанию выдает 25 рекомендаций.

ЗАКЛЮЧЕНИЕ

В рамках данной магистерской диссертации была проведена разработка рекомендательной системы для онлайн-кинотеатров. Основное внимание уделялось сравнению и анализу трех типов рекомендательных систем: совместной фильтрации, гибридных систем и систем на архитектуре DLRM.

Для оценки качества работы каждого алгоритма использовались различные критерии, включая нагрузку на систему, объем потребляемой оперативной памяти, время,

Рис. 10. Выбор действий по кнопке «Ссылки»

Примечание: составлено авторами.

затраченное на обучение модели, а также метрики качества рекомендаций: RMSE, MAE, FCP и MSE.

Проведенный анализ показал, что каждая из рассмотренных систем имеет свои сильные и слабые стороны. Совместная фильтрация продемонстрировала высокую точность рекомендаций при сравнительно низкой нагрузке на систему, но потребовала значительного времени на обучение модели. Гибридные системы показали хорошее соотношение между точностью и производительностью, комбинируя преимущества различных подходов. Система на архитектуре DLRM оказалась наиболее ресурсозатратной, однако она продемонстрировала наилучшую точность и гибкость в обработке большого объема данных.

На основе проведенного анализа и с использованием математических методов принятия решений был выбран наилучший алгоритм для реализации рекомендательной системы. Лидером оказалась система на архитектуре DLRM, обеспечившая оптимальное соотношение между точностью рекомендаций и производительностью системы.

Реализация выбранного алгоритма включала в себя несколько этапов: разработку самого алгоритма, проектирование базы данных для хранения и обработки данных, создание графического интерфейса пользователя и разработку

API для интеграции рекомендательной системы с другими компонентами онлайн-кинотеатра.

Разработанная система на архитектуре DLRM показала высокие результаты по точности и качеству рекомендаций, что подтверждает возможность ее использования в реальных условиях.

Список источников

1. Глубокое погружение в рекомендательную систему Netflix. Хабр : офиц. сайт. URL: https://habr.com/ru/ articles/677396/ (дата обращения: 24.06.2024).

2. 10 Remarkable Real-World Examples of Recommender Systems. URL: https://appstekcorp.com/blog/10-remarkable-real-world-examples-of-recommend-er-systems/ (дата обращения: 24.06.2024).

3. Deep Dive into Netflix's Recommender System. Medium. URL: https://towardsdatascience. com/deep-dive-into-netflixs-recommender-system-341806ae3b48 (дата обращения: 24.06.2024).

4. How retailers can keep up with consumers. URL: https://www.mckinsey.com/industries/retail/our-in-sights/how-retailers-can-keep-up-with-consumers (дата обращения: 24.06.2024).

5. Recommender systems: benefits and practical guidelines for software professionals. URL: https:// swforum.eu/online-sw-forum/software-technology/6/ recommender-systems-benefits-and-practical-guide-lines (дата обращения: 24.06.2024).

6. Python: Skillfactory media. Честные истории о карьере в IT. URL: https://blog.skillfactory.ru/glos-sary/python/ (дата обращения: 24.06.2024).

7. Библиотека NumPy: всё, что нужно знать новичку. URL: https://skillbox.ru/media/code/biblioteka-numpy-vsye-chto-nuzhno-znat-novichku/ (дата обращения: 24.06.2024).

8. Работаем с Pandas: основные понятия и реальные данные. URL: https://skillbox.ru/media/code/rabo-taem-s-pandas-osnovnye-ponyatiya-i-realnye-dannye/ (дата обращения: 24.06.2024).

9. Библиотека Scikit-learn: как создать свой первый ML-проект. Skillbox. URL: https://skillbox.ru/media/ code/biblioteka-scikitlearn-kak-sozdat-svoy-pervyy-mlproekt/ (дата обращения: 24.06.2024).

10. Keras: библиотека глубокого обучения на Python. URL: https://ru-keras.com/home/ (дата обращения: 24.06.2024).

11. Overview. A Python scikit for recommender systems. URL: https://surpriselib.com/ (дата обращения: 24.06.2024).

12. csv - CSV File Reading and Writing. URL: https:// docs.python.org/3/library/csv.html (дата обращения: 24.06.2024).

13. Библиотека os. Все о Python. Программирование на Python 3. URL: https://all-python.ru/osnovy/ os.html (дата обращения: 24.06.2024).

Таким образом, задачи, поставленные в начале исследования, были успешно решены, а цель достигнута. Результаты данной работы могут служить основой для дальнейших исследований в области рекомендательных систем и их применения в различных сферах, связанных с подбором персонализированного контента.

References

1. Glubokoe pogruzhenie v rekomendatelnuyu sistemu Netflix. URL: https://habr.com/ru/articles/677396/ (accessed: 24.06.2024). (In Russ.).

2. 10 Remarkable Real-World Examples of Recom-mender Systems. 2023. URL: https://appstekcorp. com/blog/10-remarkable-real-world-examples-of-recommender-systems/ (accessed: 24.06.2024).

3. Deep Dive into Netflix's Recommender System: Medium. URL: https://towardsdatascience. com/deep-dive-into-netflixs-recommender-system-341806ae3b48 (accessed: 24.06.2024).

4. How retailers can keep up with consumers. URL: https://www.mckinsey.com/industries/retail/our-in-sights/how-retailers-can-keep-up-with-consumers (accessed: 24.06.2024).

5. Recommender systems: benefits and practical guidelines for software professionals. URL: https:// swforum.eu/online-sw-forum/software-technology/6/ recommender-systems-benefits-and-practical-guide-lines (accessed: 24.06.2024).

6. Python. Skillfactory media. Chestnyye istorii o kary-ere v IT. URL: https://blog.skillfactory.ru/glossary/ python/ (accessed: 24.06.2024). (In Russ.).

7. Biblioteka NumRu: vsyo, chto nuzhno znat novichku. URL: https://skillbox.ru/media/code/biblioteka-numpy-vsye-chto-nuzhno-znat-novichku/ (accessed: 24.06.2024). (In Russ.).

8. Rabotaem s Pandas: osnovnye ponyatiya i realnye dannye. URL: https://skillbox.ru/media/code/rabo-taem-s-pandas-osnovnye-ponyatiya-i-realnye-dannye/ (accessed: 24.06.2024). (In Russ.).

9. Biblioteka Scikit-learn: kak sozdat svoy pervy ML-proekt: Skillbox. URL: https://skillbox.ru/media/ code/biblioteka-scikitlearn-kak-sozdat-svoy-pervyy-mlproekt/ (accessed: 24.06.2024). (In Russ.).

10. Keras: biblioteka glubokogo obuchenie na Python. URL: https://ru-keras.com/home/ (accessed: 24.06.2024). (In Russ.).

11. Overview. A Python scikit for recommender systems. URL: https://surpriselib.com/ (accessed: 24.06.2024).

12. csv - CSV File Reading and Writing. URL: https://docs. python.org/3/library/csv.html (accessed: 24.06.2024).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

13. Biblioteka os: Vse o Python. Programmirovanie na Python 3. URL: https://all-python.ru/osnovy/os.html (accessed: 24.06.2024). (In Russ.).

14. time - Time access and conversions. URL: https://docs. python.org/3/library/time.html (дата обращения: 24.06.2024).

15. psutil documentation. URL: https://psutil.readthedocs. io/en/latest/index.html (дата обращения: 24.06.2024).

16. Фреймворк Flask: как он работает и зачем нужен. URL: https://skillbox.ru/media/code/freymvork-flask-kak-on-rabotaet-i-zachem-nuzhen/ (дата обращения: 24.06.2024).

17. How to Connect and Operate PostgreSQL with Python Using psycopg2 Lib. URL: https://geekpython.in/in-tegrate-postgresql-database-in-python (дата обращения: 24.06.2024).

18. tkinter - Python interface to Tcl/Tk. URL: https://docs. python.org/3/library/tkinter.html (дата обращения: 24.06.2024).

19. pickle - Python object serialization. URL: https://docs. python.org/3/library/pickle.html (дата обращения: 24.06.2024).

20. GUI: Skillfactory media. Честные истории о карьере в IT. URL: https://blog.skillfactory.ru/glossary/gui/ (дата обращения: 24.06.2024).

14. time - Time access and conversions. URL: https://docs. python.org/3/library/time.html (accessed: 24.06.2024).

15. psutil documentation. URL: https://psutil.readthedocs. io/en/latest/index.html (accessed: 24.06.2024).

16. Freymvork Flask: kak on rabotaet i zachem nuzhen. URL: https://skillbox.ru/media/code/freymvork-flask-kak-on-rabotaet-i-zachem-nuzhen/ (accessed: 24.06.2024). (In Russ.).

17. How to Connect and Operate PostgreSQL with Python Using psycopg2 Lib. URL: https://geekpython. in/integrate-postgresql-database-in-python (accessed: 24.06.2024).

18. tkinter - Python interface to Tcl/Tk. URL: https://docs. python.org/3/library/tkinter.html (accessed: 24.06.2024).

19. pickle - Python object serialization. URL: https://docs. python.org/3/library/pickle.html (accessed: 24.06.2024).

20. GUI: Skillfactory media. Chestnyye istorii o karyere v IT. URL: https://blog.skillfactory.ru/glossary/gui/ (accessed: 24.06.2024). (In Russ.).

Информация об авторах

К. Е. Кожихова - аспирант.

Д. В. Тараканов - кандидат технических наук, доцент.

И. В. Чалей - доктор технических наук, профессор.

About the authors

K. E. Kozhikhova - Postgraduate. D. V. Tarakanov - Candidate of Sciences (Engineering), Docent.

I. V. Chaley - Doctor of Sciences (Engineering), Professor.

i Надоели баннеры? Вы всегда можете отключить рекламу.