keimy@system:~/projects/market-recsys$ ./run_overview.sh --extended
███╗   ███╗██████╗ ██████╗ ██╗  ██╗███████╗████████╗
████╗ ████║██╔══██╗██╔══██╗██║ ██╔╝██╔════╝╚══██╔══╝
██╔████╔██║███████║██████╔╝█████═╝ █████╗     ██║   
██║╚██╔╝██║██╔══██║██╔══██╗██╔═██╗ ██╔══╝     ██║   
██║ ╚═╝ ██║██║  ██║██║  ██║██║  ██╗███████╗   ██║   
╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝   ╚═╝   

Дипломный проект: E-Commerce Маркетплейс с ML-системой рекомендаций LightFM

Полнофункциональная e-commerce платформа на Django с изолированным ML-микросервисом на базе LightFM (WARP loss) для расчета векторного сходства и формирования персональных рекомендаций.

Проект рождался из учебного и инженерного интереса: разобраться, как гиганты e-commerce (Ozon, Wildberries, Amazon) подбирают рекомендации и похожие товары в реальном времени. В результате получилась масштабируемая система из двух независимых звеньев: монолитного маркетплейса на Django и умного ML-микросервиса на LightFM, связанных через общую базу данных PostgreSQL.

keimy@system:~/projects/market-recsys$
// LOGO
Market & RecSys Platform Logo
TECHNOLOGIES & STACK
Python Python 3.10
Django Django
PostgreSQL
Redis
LightFM
NumPy
SQLAlchemy
HTMX
Chart.js
Pillow
Docker Compose
keimy@system:~/projects/market-recsys$ ./inspect_modules.sh --all

// АРХИТЕКТУРА И МОДУЛИ

// COMPONENT 01

Веб-платформа Маркетплейса

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

[ 01 ]
Каталог товаров & Динамическая фильтрация: Структурированный выбор по категориям, ценовым сегментам, брендам и продавцам. Поиск по подстроке и сортировка по цене/рейтингу.
[ 02 ]
Корзина & Личный кабинет покупателя: Мгновенное добавление товаров, редактирование количества, расчет итоговой стоимости, управление профилем и сохранение истории заказов.
[ 03 ]
Кабинет продавца (Merchant Portal): Выделенный интерфейс для продавцов: добавление новых товаров с загрузкой медиа через Pillow, управление остатками и отслеживание продаж.
[ 04 ]
Система отзывов & Рейтинги: Модуль комментирования и выставления оценок с автоматическим пересчетом средневзвешенного рейтинга товара.
[ 05 ]
Список Избранного (Wishlist): Возможность сохранять понравившиеся товары в один клик для последующего быстрого доступа.
Python Python 3.10
Django Django
PostgreSQL
Redis
HTMX
Chart.js
Pillow
django-widget-tweaks
psycopg2
medusa-market.duckdns.org
// COMPONENT 02

ML-Сервис рекомендаций

Автономный ML-микросервис на LightFM. Вычисляет скрытые связи между пользователями и товарами, формируя персональные товарные подборки в фоновом режиме.

[ 01 ]
WARP Loss & 30 Скрытых компонентов: Обучение модели на функции потерь WARP (Weighted Approximate-Rank Pairwise), оптимизированной для ранжирования топов подборок.
[ 02 ]
Гибридная факторизация (Collaborative + Features): Совмещение матрицы взаимодействий с признаками пользователей (пол, возраст) и товаров (категория, сегмент цены, продавец).
[ 03 ]
Фильтр купленного (Known Positives Removal): Алгоритм автоматической отфильтровки товаров, которые пользователь уже приобретал или просматривал.
[ 04 ]
Изолированный Docker-воркер: Запуск процессов обучения в отдельном контейнере без нагрузки на CPU основного веб-сервера.
Python Python 3.10
LightFM
NumPy
SQLAlchemy
OpenBLAS
Docker
// COMPONENT 03

Вычислитель векторного сходства

Математический модуль анализа векторного пространства товаров. Рассчитывает косинусное сходство эмбеддингов для выявления взаимозаменяемых и сопутствующих товаров.

[ 01 ]
Косинусная близость векторов: Извлечение эмбеддингов товаров из модели LightFM и расчет косинусного расстояния (dot_product / (item_norm * target_norm)).
[ 02 ]
Формирование Топ-20 аналогий: Автоматический отбор 20 самых близких по смыслу и поведению товаров для каждой позиции в каталоге.
[ 03 ]
Транзакционная запись в БД: Мгновенное сохранение результатов сходства в таблицу product_similarities для показа на странице товара.
Python Python 3.10
LightFM
NumPy
PostgreSQL
SQLAlchemy
Redis
// COMPONENT 04

Движок взаимодействия & Логирование событий

Подсистема отслеживания пользовательского поведения (Interaction Stream). Фиксирует действия на сайте и переводит их в взвешенную обучающую выборку.

[ 01 ]
Приоритетная шкала весов: Присвоение баллов действиям: просмотр карточки товара (view = 1.0), добавление в корзину (cart = 3.0), покупка (purchase = 5.0).
[ 02 ]
Атомарное агрегирование (MAX Weight): Дедупликация и объединение максимальных весов взаимодействий через SQL-группировку.
[ 03 ]
Защита от голодания данных: Автоматическая обработка пустых стартовых выборок без сбоев и остановки процесса обучения.
Python Python 3.10
Redis
Django Django ORM
PostgreSQL
// COMPONENT 05

База данных & Инфраструктура

Единый слой хранения данных, объединяющий реляционные таблицы Django и асинхронные таблицы результатов ML-сервиса рекомендаций.

[ 01 ]
Реляционная схема Django: Таблицы пользователей, товаров, категорий, корзин, заказов и отзывов.
[ 02 ]
Таблицы рекомендаций (user_recommendations & product_similarities): Оптимизированные структуры хранения рангов и скоров для мгновенной отдачи через SQL.
[ 03 ]
Compose Оркестрация: Управление контейнерами PostgreSQL, Django-приложения и RecSys-воркера в единой Docker-сети.
PostgreSQL
Redis
Docker Compose
SQLAlchemy
psycopg2