Аннотация
ВВЕДЕНИЕ 5
1 Постановка задачи 6
2 Рекомендательные системы 7
3 Неявные и явные данные 9
4 Методы коллаборативной фильтрации 11
4.1 Тестирование методов коллаборативной фильтрации 12
4.2 Memory-based 14
4.3 Факторизация матрицы 17
4.4 Model-Based 18
4.4.1 ALS 18
4.4.2 SVD 21
5 Гибридные рекомендательные системы 23
5.1 Модель LightFM 24
6 Методы, основанные на содержании объекта 27
6.1 TF-IDF 27
6.2 Косинусная близость 29
6.3 Модель, основанная на фильтрации по популярности 31
7 Проектирование сервиса 32
7.1 Виды архитектур 32
7.1.1 Монолитная архитектура 33
7.1.2 Микросервисная архитектура 35
7.2 Реализация 38
7.2.1 Сервис получения статистики 38
7.2.2 Сервис моделей 40
7.2.3 Сервис отдачи рекомендаций 41
7.2.4 Базы данных 44
ЗАКЛЮЧЕНИЕ 48
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 49
ПРИЛОЖЕНИЕ А 52
С развитием Интернета количество данных стало увеличиваться настолько, что в нынешнее время люди не способны ознакомиться с действительно релевантной информацией. Данная проблема ещё носит название информационный взрыв [1].
Для более удобного поиска стало формироваться направление в создании рекомендательных систем, которые основываются на информации о пользователе и его истории поведения. Система помогает определить объекты, которые могут быть интересны конечному пользователю. Сами объекты могут из себя представлять: статьи, товары, музыку, тарифы, новости, фильмы и т. д.
Самым частым представлением рекомендаций является список объектов, которые отображаются на главной страницы сервиса или сопутствующие с объектом, на котором в данный момент находиться пользователь, как показано на примере рисунке 1. Примерами сервисов, использующих рекомендательные системы являются: «Авито», «Netflix», «Ozon»,«Кинопоиск»,«Youtube»,«Яндекс.Дзен» и другие.
Основными задачами рекомендательных систем являются увеличение конверсии, продажи более разнообразных объектов и улучшения понимания пользовательских потребностей и желаний. систему, а только некоторые компании готовы поддерживать подразделения, занимающиеся данным направлением [2], поэтому предлагается создать универсальный сервис с основными алгоритмами рекомендаций.
В результате работы были изучены: основные методы коллаборативной фильтрации, гибридные рекомендательные подходы, а также проведен анализ для алгоритмов ALS и LightFM. В результате анализа алгоритм ALS показал, что он не сильно зависит от числа компонентов. Алгоритм гибридной системы, наоборот, показал значительную зависимость от числа компонентов и наличия атрибутов у объектов, где эти атрибуты в достаточной мере повлияли на ранжированные метрики.
Из алгоритмов, основанных на содержании объекта, для рекомендаций похожих товаров, используются методы TF-IDF и косинусной близости. Однако, при анализе методов, была выявлена проблема в рекомендации похожих товаров, когда требуется показать, что можно порекомендовать с связке с данным товаром. Зачастую рекомендация сопутствующих товаров решается экспертным методом, но это так же может открыть новые цели в доработке данной системы.
Был реализован облачный сервис рекомендаций, в виде микросервисов, располагающий в себе различные методы для получения разных типов рекомендаций, такие как персональные рекомендации, похожие товары и популярные товары. Сервис рекомендательных систем был разделен на три сущности: сервис получения пользовательской статистики, сервис отдачи рекомендаций и сервис переобучения моделей. Главным аргументом в пользу микросервисной архитектуры является - масштабируемость, из-за возможных просадок одного из микросервисов.
Для дальнейшего работы предлагается создание системы комплектов, с целью предложения сопутствующих товаров, которые можно предложить отображать с связке с просматриваемым товаром. Так же для более объективной оценки системы требуется проводить A/B тестирование для реального анализа поведения пользователя и проверки работы каждого модуля.