Коллаборативная фильтрация — это метод машинного обучения, который использует информацию о предпочтениях множества пользователей для предсказания интересов конкретного пользователя. Алгоритм анализирует оценки книг, данные различными пользователями, и находит пользователей со схожими вкусами. На основе этого формируются персональные рекомендации.
Система работает в три этапа. Сначала пользователь оценивает прочитанные книги, создавая свой профиль предпочтений. Затем алгоритм вычисляет косинусное сходство между векторами оценок разных пользователей, используя метрику косинусного расстояния. На основе найденных пользователей с похожими вкусами система формирует список книг, которые высоко оценили похожие пользователи, но которые ещё не были прочитаны текущим пользователем.
Система использует только пользовательские оценки книг. Каждая оценка представляет собой числовое значение (например, от 1 до 5), которое отражает степень удовлетворённости пользователя прочитанной книгой. Дополнительно могут учитываться метаданные книг (жанр, автор, год издания), но основой алгоритма являются именно пользовательские оценки и паттерны их распределения.
Для получения персональных рекомендаций необходима регистрация в системе. Это позволяет сохранять историю оценок пользователя и формировать индивидуальный профиль предпочтений. Без регистрации пользователь может только просматривать общую информацию о системе, но не получать персонализированные рекомендации.
В отличие от обычных онлайн-магазинов, которые часто предлагают популярные или рекламируемые товары, данная система использует алгоритмы машинного обучения для создания действительно персонализированных рекомендаций. Рекомендации основаны на анализе поведения пользователей со схожими предпочтениями, а не на маркетинговых стратегиях. Это позволяет находить менее известные, но релевантные для конкретного пользователя книги.
Да, алгоритм коллаборативной фильтрации может быть расширен различными способами. Например, можно добавить гибридный подход, сочетающий коллаборативную и контентную фильтрацию. Также возможно применение более сложных методов машинного обучения, таких как матричная факторизация, нейронные сети или ансамбли алгоритмов. Система спроектирована с учётом возможности модернизации и масштабирования.
Проект реализован с использованием современных веб-технологий. Frontend построен на HTML5, CSS3 и фреймворке Bulma для стилизации. Для вычислений и алгоритмов машинного обучения используется Python с библиотеками NumPy и SciPy для работы с матрицами и вычисления метрик сходства. Backend может быть реализован на Flask или Django. База данных используется для хранения пользовательских оценок и метаданных о книгах.