Рекомендательная система подработок по хобби: ML-кейс для ВКР на данных опроса

Поддомен: AI/ML · Роль эксперта: Data/ML-инженер

Введение: почему опрос «Авито» — это готовый датасет для диплома

24 марта 2026 года «Авито Подработка» опубликовала результаты исследования: 28% россиян при выборе частичной занятости ориентируются на собственные хобби и увлечения. Для маркетолога это строчка в пресс-релизе. Для выпускника ИТ-направления — это сигнал: спрос на персонализированный подбор вакансий сформирован, аудитория сегментирована, а значит, есть почва для рекомендательных алгоритмов, аналитических пайплайнов и веб-сервисов.

Тема выигрышная сразу с трёх сторон. Во-первых, она «живая»: комиссия видит, что вы работаете с реальным трендом, а не с выдуманным кейсом. Во-вторых, даёт повод построить полноценный ML-пайплайн — от сбора сырых ответов до ранжирования вакансий. В-третьих, легко укладывается в три главы ВКР по ГОСТ 19 и ГОСТ 34. Ниже — конкретные траектории, инструменты и подводные камни, с которыми вы точно столкнётесь.

FAQ: что студенты спрашивают первым делом

Где брать данные, если опрос закрыт?

Три законных пути: (1) провести собственный опрос через Google Forms или Яндекс.Взгляд на 150–300 респондентов; (2) собрать открытые резюме и вакансии с hh.ru и «Авито» через публичные API в рамках пользовательского соглашения; (3) синтезировать датасет на основе открытой статистики и явно это указать в разделе «Ограничения исследования». Комиссия нормально принимает синтетику, если она обоснована.

Какой стек выбрать, чтобы не утонуть?

Для рекомендательной системы хватит Python + pandas + scikit-learn + FastAPI. Если хотите «взрослый» стек — добавьте MLflow для трекинга экспериментов и PostgreSQL для хранения фичей. Тяжёлые нейросети здесь не нужны: коллаборативная фильтрация на матричной факторизации даёт приемлемое качество на малых данных.

Как считать эффективность модели, чтобы это убедило ГЭК?

Не одним Accuracy. Для ранжирования вакансий стандарт — Precision@K, Recall@K, NDCG@K. Плюс бизнес-метрика: конверсия в отклик на рекомендованную вакансию. Комиссия любит, когда техническая метрика привязана к продуктовой.

Как оформить архитектуру по ГОСТ?

Схему компонентов — по ГОСТ 19.701 (или в нотации C4 Level 2 «Контейнеры»). Диаграмму прецедентов и последовательности — в UML. Схему БД — в нотации IDEF1X или Crow’s Foot. Главное — единый стиль по всей работе и подписи элементов.

Темы ВКР: три рабочие траектории

Основная часть: как «вшить» статью в главы ВКР

Глава 1. Откуда взять проблематику и стандарты

Откройте тезис «28% выбирают подработку по хобби» как отправную точку в разделе «Актуальность». Дальше свяжите его с требованиями к качеству ПО: ISO/IEC 25010 даёт вам готовые характеристики — функциональная пригодность, производительность, удобство использования. Именно их вы будете измерять в третьей главе. Не забудьте про источники: официальная публикация CNews + 2–3 научные статьи по recommender systems за последние 5 лет. Комиссия режет за «один источник на всю теорию».

Глава 2. Проектирование и код

Здесь рисуем диаграммы. Минимальный набор: C4 Level 1 (контекст), C4 Level 2 (контейнеры), UML-диаграмма последовательности для сценария «пользователь → рекомендация», схема БД. Ниже — скелет content-based рекомендателя, который часто идёт в приложение ВКР.

# baseline: сопоставление хобби и категорий вакансий через TF-IDF
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

hobbies = ["фотография", "велоспорт", "кулинария и выпечка", "настольный теннис"]
vacancies = ["фотограф на мероприятие", "курьер на велосипеде",
             "кондитер на подработку", "тренер по настольному теннису"]

vec = TfidfVectorizer(analyzer="char_wb", ngram_range=(2, 4))
matrix = vec.fit_transform(hobbies + vacancies)
sim = cosine_similarity(matrix[:len(hobbies)], matrix[len(hobbies):])

for i, h in enumerate(hobbies):
    best = sim[i].argmax()
    print(f"{h} -> {vacancies[best]} (score={sim[i][best]:.3f})")

Далее заверните это в FastAPI-эндпоинт /recommend, добавьте кэш в Redis и логирование через OpenTelemetry. Три строки, а на защите это превращается в полноценный аргумент «сервис наблюдаемый, готов к нагрузке».

Глава 3. Метрики и эффективность

Считайте метрики на отложенной выборке. Данные бейзлайна: 70/15/15 — train/val/test. Минимум три алгоритма для сравнения: популярность (baseline), content-based, гибрид. Сведите результат в таблицу.

МодельPrecision@10Recall@10NDCG@10Комментарий
Популярность (baseline)0.110.080.14Простая, но персонализации нет
Content-based (TF-IDF)0.270.210.31Хорошо работает на малых данных
Гибрид (SVD + TF-IDF)0.340.260.39Лучшее качество в эксперименте

Важно: цифры в таблице — ваши, из вашего прогона. Не копируйте чужие, комиссия спрашивает по каждой ячейке. Если получилось скромно — так и напишите, обоснуйте размером датасета и предложите путь улучшения в разделе «Направления развития».

Требования к ТЗ и оформлению

Техническое задание оформите по ГОСТ 34.602. Постановка задач и функциональные требования — отдельные разделы, иначе нормоконтроль завернёт. Для программного изделия при необходимости используйте ГОСТ 19.201. Приложения: листинг кода, скрипты развёртывания, конфиги — всё отдельными приложениями с нумерацией А, Б, В.

Чек-лист «Что проверить перед сдачей»

  1. Каждая задача из введения закрыта конкретным выводом в заключении — построчно сверили?
  2. Все схемы пронумерованы, подписаны, на них есть ссылки в тексте. Единая нотация (UML/C4/IDEF).
  3. Метрики (Precision@K, NDCG@K, конверсия) посчитаны на отдельной выборке и обоснованы.
  4. Список литературы: 25+ источников, минимум 5 за последние 3 года, есть ссылки на нормативные документы.
  5. Оформление по ГОСТ: поля, шрифт, интервалы, нумерация страниц и приложений.
  6. Проверка на заимствования: оригинальность выше порога вуза, корректное цитирование источника CNews.
  7. Код воспроизводим: requirements.txt, README, инструкция запуска в приложении.

Типичные ошибки студентов

1. Обзор рекомендательных систем без привязки к данным опроса. Работа получается книжной. Исправление: в главе 1 добавьте подраздел «Сегментация аудитории на основе опроса “Авито”», покажите, какие категории хобби доминируют, и уже под них подбирайте модели. Ссылайтесь на исходную публикацию.

2. Обучают модель на всём датасете и меряют Accuracy. Это не защищается. Нужен train/val/test split, отчёт по Precision@K/NDCG@K, отдельная бизнес-метрика. Иначе вы не показываете, что понимаете специфику ранжирования.

3. «Архитектура» из одного блока «Сервер и ML». Комиссия это видит сразу. Нарисуйте минимум: клиент → API-шлюз → сервис рекомендаций → БД + кэш → трекинг экспериментов. Каждый блок подпишите технологией.

Если тема с рекомендателями вам близка, но не хватает времени на полный цикл — от сбора данных до защиты, — есть вариант распределить нагрузку. Наши специалисты по ML и архитектуре разбирают конкретно ваш случай, помогают сформировать структуру ВКР, подобрать метрики и оформить всё по ГОСТ. Первая консультация — бесплатно, объём материалов — до 120 часов. Можно начать с одной консультации по теме, без обязательств.

Материал подготовлен экспертами компании «ДипломТех». Мы помогаем студентам с 2010 года. Если вам нужна помощь в разработке темы, написании кода или оформлении работы по ГОСТ 19 и ГОСТ 34, наши специалисты готовы подсказать и направить.

Последнее обновление: 2026-09-16

Источник: 28% россиян при выборе подработки ориентируются на свои хобби и увлечения — «Авито Подработка» (опубликовано 2026-03-24)