Объем информации, доступной в интернете, растет с каждым годом. В связи с этим все большую популярность набирают рекомендательные системы. Их основная задача — автоматически предлагать пользователям тот контент, который их заинтересует.
Рекомендательные системы полезны как пользователям, так и плат-формам. Автоматизация поиска и фильтрации контента позволяет пользователю тратить меньше времени на нерелевантную информацию и получать только самую интересную и актуальную. В идеальном случае рекомендательная система должна сразу выдавать человеку те элементы, которые он сам бы выбрал, посмотрев все предлагаемые варианты. Чем проще пользователю найти подходящий контент, тем больше удовольствия он получает от использования сервиса. Что, в свою очередь, повышает его конкурентоспособность и может положительно влиять на конверсию.
Подбор и рекомендации похожих материалов особенно актуальны для современных дизайнеров. Первый этап работы над любым проектом — это поиск и анализ других работ на схожие темы с целью вычленения и заимствования успешных элементов и приемов. Из-за этого дизайнеры вынуждены тратить много времени на просмотр и отсев нерелевантного контента. Поскольку даже в конкретной области дизайнерских изображений множество доступных элементов слишком велико для человеческого восприятия, остро стоит проблема необходимости рекомендательных систем.
Взаимодействие пользователя с рекомендательной системой в целом происходит по одному и тому же сценарию вне зависимости от ее внутреннего устройства. Пользователь смотрит на контент, предоставленный на платформе, и какими-то действиями показывает интерес к некоторым элементам. В ответ на это система выдает ему рекомендации.
Существует три основных подхода к созданию рекомендательных систем: основанный на содержании, то есть использующий информацию исключительно о контенте, персонализированный, то есть использующий информацию исключительно о пользователях, и комбинированный. Комбинированный подход позволяет реализовать решение, сочетающее достоинства двух предыдущих подходов, и лишенное их недостатков, однако требует для своей работы значительно больше данных.
Постановка задачи
Цель этой работы — реализовать систему комбинированных рекомендаций эстетичных изображений, использующую коллаборативную фильтрацию. Для достижения этой цели поставлены следующие задачи.
• Исследовать подходы к реализации коллаборативной фильтрации.
• Разработать инфраструктуру поддержки пользователей.
• Создать модуль экспорта и обработки данных из системы аналитики.
• Спроектировать и разработать модуль коллаборативной фильтрации.
• Интегрировать модуль коллаборативной фильтрации с рекомендательной системой проекта graphica.ai.
• Провести апробацию в проекте graphica.ai.
В ходе данной работы была разработана система комбинированных рекомендаций по дизайнерскому контенту, позволяющая пользователям получать релевантные и персонализированные рекомендации.
В ходе работы были достигнуты следующие результаты:
• Проведен обзор подходов к реализации коллаборативной фильтрации, подходов к сбору действий пользователей и подходов к реализации механизма аутентификации.
• Реализована и интегрирована в сервис graphica.ai инфраструктура поддержки пользователей, включающая в себя сущность пользователя, библиотеки и возможность аутентификации.
• Реализован и интегрирован в сервис graphica.ai модуль получения и обработки данных из системы аналитики, использующий систему аналитики Amplitude.
• Разработан и интегрирован модуль коллаборативных рекомендаций, использующий алгоритм матричной факторизации, реализованный с помощью библиотеки tensorflow.
• Разработан модуль коллаборативной фильтрации, использующий модуль коллаборативных рекомендаций и предыдущую рекомендательную систему проекта graphica.ai.
• Модуль коллаборативной фильтрации интегрирован с рекомендательной системой проекта graphica.ai. Получившаяся система дает возможность персонализации рекомендаций и обрабатывает запросы на 0.2 секунды медленнее.
• Проведена апробация в проекте graphica.ai. Все 10 опрошенных пользователей предпочли разработанную в рамках данной работы рекомендательную систему старой.
[1] Yin Zheng, Cailiang Liu, Bangsheng Tang, and Hanning Zhou. Neural autoregressive collaborative filtering for implicit feedback. In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems, DLRS 2016, page 2-6, New York, NY, USA, 2016. Association for Computing Machinery.
[2] Yifan Hu, Yehuda Koren, and Chris Volinsky. Collaborative filtering for implicit feedback datasets. In Proceedings of the 2008 Eighth IEEE International Conference on Data Mining, ICDM ’08, page 263-272, USA, 2008. IEEE Computer Society.
[3] Joonseok Lee, Mingxuan Sun, and Guy Lebanon. A comparative study of collaborative filtering algorithms, 2012.
[4] John S. Breese, David Heckerman, and Carl Kadie. Empirical analysis of predictive algorithms for collaborative filtering. In Proceedings of the Fourteenth Conference on Uncertainty in Artificial Intelligence, UAI’98, page 43-52, San Francisco, CA, USA, 1998. Morgan Kaufmann Publishers Inc.
[5] Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl. Item-based collaborative filtering recommendation algorithms. In Proceedings of the 10th International Conference on World Wide Web, WWW ’01, page 285-295, New York, NY, USA, 2001. Association for Computing Machinery.
[6] Jon Herlocker Shilad Sen J. Ben Schafer, Dan Frankowski. Collaborative filtering recommender systems.
[7] S. Wei, N. Ye, S. Zhang, X. Huang, and J. Zhu. Collaborative filtering recommendation algorithm based on item clustering and global similarity. In 2012 Fifth International Conference on Business Intelligence and Financial Engineering, pages 69-72, 2012.
[8] Daniel Billsus Michael. Learning collaborative information filters, 1998.
[9] Ralf Nikolaus. Learning the parts of objects using non-negative matrix factorization (nmf), 2007.
[10] Yehuda Koren, Robert Bell, and Chris Volinsky. Matrix factorization techniques for recommender systems. Computer, 42(8):30-37, 2009.
[11] Xiaoyua Su. Taghi M. Khoshgoftaar. A survey of collaborative filtering techniques. In Advances in Artificial Intelligence 2009, pages 1-19, 2009.
[12] Келим Илья Игоревич. Архитектура и системы для комбинированных рекомендаций и поиска эстетичных изображений., 2020.
[13] Asela Gunawardana and Guy Shani. A survey of accuracy evaluation metrics of recommendation tasks. Journal of Machine Learning Research, 10(12), 2009.