ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ 4
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ 5
ВВЕДЕНИЕ 6
1 Анализ рекомендательных систем 8
1.1 Теоретическая основа рекомендательных систем 8
1.2 Сравнительный анализ алгоритмов рекомендательных систем 13
1.3 Анализ требований к разработке 17
1.3.1 Назначение разработки 17
1.3.2 Требования к программной реализации 17
1.4 Концепция разрабатываемой рекомендательной системы 19
2 Разработка графовой рекомендательной системы 25
2.1 Графовые модели рекомендательной системы 25
2.2 Организация структуры хранения данных графовых моделей 27
2.3 Процесс индексирования модели рекомендательной системы 30
2.4 Подготовка моделей системы к горизонтальному масштабированию .. 32
2.5 Предлагаемый алгоритм анализа элементов 34
2.6 Оптимизация скорости исполнения запросов 36
3 Оценка результатов исследования 38
3.1 Тестирование совместимости 38
3.2 Тестирование корректности 39
3.3 Тестирование эффективности 44
3.4 Методология маркетингового исследования при внедрении 45
3.5 Дальнейшие перспективы исследования 49
ЗАКЛЮЧЕНИЕ 50
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 51
ПРИЛОЖЕНИЕ А. Иллюстрационные материалы 53
ПРИЛОЖЕНИЕ Б. Листинг 56
ПРИЛОЖЕНИЕ В. Презентация
Рекомендательные системы являются важнейшей составляющей крупных веб-порталов, будь то социальная сеть, видеохостинг или поисковой сервис. Именно с их помощью пользователи получают возможность просматривать ту информацию, которая отличается от страниц, которые они посещают обычно, но при этом является похожей, делая сервисы удобнее и разнообразнее. Для того, чтобы предложить пользователю интересные ему статьи, видео или фото, применяются различные алгоритмы, различающиеся скоростью, используемой информацией о рекомендуемых сущностях, а также проблемами, решение которых стоит перед программистом. Среди проблем рекомендательных систем можно выделить: проблему холодного старта пользователя, проблему холодного старта контента, проблему разнообразия рекомендаций, проблему обновления рекомендаций и т.д. Различные алгоритмы имеют индивидуальные преимущества и недостатки в решении этих проблем.
Одной из компаний, которая предложила использующее графовые модели решение, стала Pinterest. Их рекомендательная система Pixie [1] используется для обработки терабайтов данных и быстрого формирования рекомендаций. Кроме того, подобная рекомендательная система на графовых моделей GraphJet [2] используется в экосистеме проекта Twitter для формирования персонализированных рекомендаций твитов и пользователей платформы микроблоггинга. Простота и эффективность этого подхода заключается в использовании графового представления предметной области.
Целью исследования является разработка рекомендательной системы, способной функционировать на единственном устройстве и предоставлять рекомендации в режиме реального времени.
При разработке были модифицированы уже существующие концепции и решения, что привело к системе, совмещающей их сильные стороны и удовлетворяющей требованиям. Библиотека графовой рекомендательной системы может использовать различные виды моделей: невзвешенные простые графы, взвешенные простые графы и взвешенные мульти-графы.
Для распространения моделей используется сериализация в бинарный формат CBOR. С помощью редакторов, реализованных в составе библиотеки, возможно индексирование данных предметной области и конвертирование графовых моделей между форматами хранения.
Для генерации кандидатов для рекомендации используются несколько видов запросов, которые можно адаптировать под различные виды систем: поиск элементов, похожих на выбранный элемент, поиск элементов, похожих на набор элементов (удобно для генерации рекомендаций, похожих на историю просмотра пользователя), поиск элементов, связанных с агрегатором (например, пользователем прикладной системы), и поиск элементов, связанных с множеством агрегаторов (например, пользователями сообщества или друзьями). Гибкая природа разработки позволяет ей адаптироваться к условиям различных прикладных программных средств.
В результате выполнения задания на магистерскую работу было разработано программное обеспечение рекомендательной системы на основе графовой модели.
Разработка проведена в системе Windows 10 с использованием языка программирования Kotlin в среде IntelliJ IDEA Community Edition.
В работе были рассмотрены основные принципы проектирования рекомендательных систем, разработан и оптимизирован графовый рекомендательный движок, позволяющий гибко встраивать решение в различные прикладные программы. Также, реализован механизм индексации графовых моделей и их распространения в виде файла или по сети. Для асинхронного исполнения запросов к рекомендательной системе использовалась технология Kotlin Coroutines.
В ходе выполнения работы были выполнены следующие задачи:
- изучение применяемых алгоритмов в области рекомендательных систем,
- анализ требований к разрабатываемой рекомендательной системе,
- составление концепции графовой рекомендательной системы,
- реализация рекомендательного движка на основе графовой модели,
- разработка механизма сериализации графовой модели,
- оптимизация скорости выполнения запросов к программному решению.
Осуществлено модульное тестирование разработанной программной библиотеки, которое показало корректность и эффективность его работы, а также соответствие поставленным требованиям.
1. Eksombatchai C. et al. Pixie: A system for recommending 3+ billion items to 200+ million users in real-time // Proceedings of the 2018 world wide web conference. - 2018. - С. 1775-1784.
2. Sharma A. et al. GraphJet: Real-time content recommendations at Twitter // Proceedings of the VLDB Endowment. - 2016. - Т. 9. - №. 13. - С. 1281¬1292.
3. Фальк К. Рекомендательные системы на практике // ДМК Пресс. - 2020.
4. Гришин, Е. В. Обзор алгоритмов и моделей рекомендательных систем / Е. В. Гришин, Л. В. Гурьянов // Информационные технологии в науке и образовании. Проблемы и перспективы: сборник статей по материалам X Всероссийской научно-практической конференции, Пенза, 15 марта 2023 года.
- Пенза: Пензенский государственный университет, 2023. - С. 115-118.
5. Van den Oord A., Dieleman S., Schrauwen B. Deep content-based music recommendation //Advances in neural information processing systems. - 2013. - Т. 26.
6. Sarwar B. et al. Item-based collaborative filtering recommendation algorithms //Proceedings of the 10th international conference on World Wide Web.
- 2001. - С. 285-295.
7. El-Kishky A. et al. TwHIN: Embedding the twitter heterogeneous information network for personalized recommendation //Proceedings of the 28th ACM SIGKDD conference on knowledge discovery and data mining. - 2022. - С. 2842-2850.
8. Lempel R., Moran S. SAL SA: the stochastic approach for link-structure analysis //ACM Transactions on Information Systems (TOIS). - 2001. - Т. 19. - №. 2. - С. 131-160.
9. Gupta P. et al. Wtf: The who to follow service at twitter //Proceedings of the 22nd international conference on World Wide Web. - 2013. - С. 505-514.
10. Гришин, Е. В. Сериализация графовых моделей рекомендательных систем / Е. В. Гришин, Л. В. Гурьянов // Новые информационные технологии и системы (НИТиС-2022) : Сборник научных статей по материалам XIX Международной научно-технической конференции, посвященной 75-летию кафедры «Вычислительная техника» ПГУ, Пенза, 17-18 ноября 2022 года. - Пенза: Пензенский государственный университет, 2022. - С. 242-245.
11. Elizarov R. et al. Kotlin coroutines: design and implementation //Proceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. - 2021. - С. 68¬84.
12. Гришин, Е. В. Применение Котлин сопрограмм в запросах к графовой рекомендательной системе / Е. В. Гришин, Л. В. Гурьянов // Новые информационные технологии и системы (НИТиС-2023) : Сборник научных статей по материалам XX Международной научно-технической конференции, посвященной 80-летнему юбилею Пензенского государственного университета, Пенза, 16-17 ноября 2023 года. - Пенза: Пензенский государственный университет, 2023. - С. 106-109.
13. Wang R. et al. Dcn v2: Improved deep & cross network and practical lessons for web-scale learning to rank systems //Proceedings of the web conference
2021. - 2021. - С. 1785-1797.
14. Wang Z., She Q., Zhang J. MaskNet: Introducing feature-wise multiplication to CTR ranking models by instance-guided mask //arXiv preprint arXiv:2102.07619. - 2021.