ML-сервис музыкальных рекомендаций в ВКР: архитектура, метрики, развёртывание
| Параметр | Значение |
|---|---|
| Поддомен | AI / ML |
| Роль эксперта | Data / ML-инженер |
| Primary keyword | Рекомендательная система музыки в дипломе |
| LSI-запросы (5–10) | коллаборативная фильтрация, content‑based, матрица разложения, MAP@K, NDCG, Apache Spark, FastAPI, Docker, Kubernetes, датасет Spotify, спектрограммы |
| Ключевые сущности | ГОСТ 34, ISO/IEC 25010, OWASP, Kubernetes, метрики Precision@K / Recall@K |
| Реальные вопросы студентов | Как выбрать датасет для музыки? Какие метрики оценки? Нужно ли писать код с нуля? Как доказать эффективность? Как оформить архитектуру? |
Введение. Недавняя статья на The Verge об альбоме Wabi Sabi группы Sotomayor вызвала живой отклик подписчиков. Она описывает музыку как «чистую радость», «хаотичную и танцевальную». Студент‑разработчик может превратить такие качественные оценки в техническую задачу: как научить модель предсказывать настроение трека на основе аудио‑признаков и текстов? Это отличная отправная точка для ВКР по ML — от сбора данных до развёртывания микросервиса. В этом материале разберём, как упаковать идею в диплом, какие инструменты выбрать и каких ошибок избежать.
Основная часть: от музыкального инсайта к дипломному проекту
1. Архитектура решения (Глава 2)
Для ВКР по рекомендательной системе музыки типичная архитектура включает:
- Сбор данных — парсинг метаданных (Spotify API, Last.fm) и извлечение аудио‑фич (темп, тональность, спектрограмма).
- Хранилище — PostgreSQL для метаинформации, S3 для аудио‑файлов.
- Бэкенд — FastAPI с эндпоинтами
/recommendи/train. - ML‑модель — ансамбль коллаборативной и content‑based фильтрации (например, LightFM или Neural Collaborative Filtering).
- Оценка — A/B‑тестирование на отложенной выборке с метриками MAP@K, NDCG.
- Развёртывание — Docker + Kubernetes (K8s) с автовосстановлением.
Диаграмму C4 (уровень контейнеров) можно нарисовать в Draw.io — покажите, как клиентское приложение взаимодействует с API, а API — с моделью и базой.
2. Где разместить статью про Sotomayor в ВКР
В первой главе (теория) ссылайтесь на статью как на пример качественного описания пользовательского опыта. Анализируете, какие признаки (энергичность, танцевальность, «чистая радость») можно формализовать в числовые метрики — например, темп, валентность, танцевальность (есть в Spotify API). Во второй главе покажите, как эти признаки подаются на вход модели. В третьей — сравните результаты с реальными отзывами слушателей.
Пример расчёта метрики Precision@K для музыкальных рекомендаций:
def precision_at_k(relevant, predicted, k=10):
pred_k = predicted[:k]
hits = len(set(pred_k) & set(relevant))
return hits / k if k > 0 else 0
3. Инструменты и метрики
Используйте OpenTelemetry для сбора логов и трассировки запросов — это повысит зрелость работы и впишется в требования ISO/IEC 25010 по надёжности. Метрики поддомена: Precision@K, Recall@K, NDCG. Для сравнения моделей — F1‑score. Для бизнес‑эффективности — Time‑to‑Recommend (latency p95).
Пример конфигурации трейсинга в FastAPI:
from opentelemetry import trace
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
app = FastAPI()
FastAPIInstrumentor.instrument_app(app)
4. Чему вы научитесь
- Проектировать архитектуру ML‑сервиса с учётом масштабирования (K8s).
- Настраивать CI/CD‑пайплайн (GitHub Actions + Docker Hub + Kubernetes).
- Валидировать модели на исторических данных и A/B‑тестах.
- Оформлять ТЗ по ГОСТ 34 и описывать нефункциональные требования по ISO 25010.
- Считать TCO (Total Cost of Ownership) для облачного развёртывания.
1️⃣ Плохая обработка нечисловых данных – тексты песен и отзывы «чистая радость» не входят в матрицу признаков. Решение: использовать TF‑IDF или эмбеддинги (BERT).
2️⃣ Игнорирование холодного старта – для новых треков без истории (как Wabi Sabi) коллаборативная фильтрация не работает. Нужно падать на content‑based.
3️⃣ Отсутствие A/B‑тестирования в третьей главе – метрики на исторических данных недостаточны. Покажите, как вы проводили сплит‑тест (например, 10% пользователей на новую модель).
FAQ (часто задаваемые вопросы)
1. Какой датасет лучше взять для музыкальных рекомендаций?
Самый доступный – Million Song Dataset (Kaggle) или Spotify API (есть колонки danceability, energy, valence). Для ВКР достаточно 10–20 тысяч треков. Не берите датасет «вслепую» – проверьте, что в нём есть жанры, близкие к тому, что описывается в статье (электроника, инди).
2. Нужно ли писать модель с нуля?
Нет. Используйте библиотеки Surprise, LightFM, Implicit. Ваша задача – адаптировать под конкретную предметную область (настроение треков). Экспертная комиссия ценит, когда вы обосновываете выбор библиотек в тексте.
3. Как оформить архитектуру в дипломе?
Обязательно – диаграмма C4 (уровень контейнеров). Не рисуйте лишних блоков. Названия стрелок должны быть глаголами: «вызывает API», «загружает веса модели». Ссылайтесь на ГОСТ 34.601‑90 на этапе проектирования.
4. Как доказать эффективность, если нет доступа к живым пользователям?
Используйте offline‑метрики (Precision@K, NDCG) на отложенной тестовой выборке. Дополнительно проведите юзабилити‑тестирование с 3–5 респондентами – попросите оценить рекомендации по шкале от 1 до 5. В третьей главе это будет сильным аргументом.
✓ Все ссылки на источники (статья The Verge, датасет, GitHub) рабочие.
✓ Задачи ВКР соответствуют выводам – нет лишних функций.
✓ Диаграмма C4 и блок‑схема алгоритма включены в приложения.
✓ Приведены метрики хотя бы для двух моделей (baseline vs предложенная).
✓ Оформление по ГОСТ – нумерация, сноски, список литературы.
✓ Уникальность текста > 75% (проверить в Antiplagiat).
✓ Внедрение (пусть даже эмуляция) описано в третьей главе.
Источник: Sotomayor’s Wabi Sabi is the funnest record of 2026 (опубликовано 2026‑03‑15)