Рекомендательная система для ранжирования постов в социальной сети.
Проект написан в виртуальном окружении с Python 3.8.5
Все версии библиотек зафиксированы в requirements.txt
model.py - файл с обучением модели (в данной реализации catboost)
app.py - сам сервис
load_features.py - загрузка данных
load_model.py - загрузка модели
schema.py - схема валидации ответа сервера
Цель: построение рекомендательной системы на основе данных об активности пользователей социальной сети, сравнение подходов с использованием Catboost и нейросетевой модели для оценки качественной разницы на целевой метрике.
Стек: sklearn, catboost, pandas, numpy, fastapi, matplotlib, pytorch, postgresql, sqlalchemy, redash
Этапы работы: Продумал архитектуру, выбрал контентный подход;
Выгрузил данные из базы данных;
Очистил (удаление ботов, аномалии в активности), обработал пропуски;
Векторизовал тексты постов, выделил новые признаки, закодировал топики;
Сформировал готовые таблицы, загрузил в бд, построил модель, отранжировал посты по вероятности;
Спроектировал микросервис для интеграции модели;
Результат: добился лучшего качества в 0.62 и статистически обосновал качественные различия в подходах.