ML Vault
All notes

RecSys Roadmap

8 недельный план

🧭 Общая структура

Уровни:

  1. Базовый уровень – понимание задач, метрик, простых моделей
  2. Средний уровень – классические модели, практические кейсы
  3. Продвинутый уровень – дип-обучение, архитектуры, продакшен
  4. Экспертный уровень – масштабирование, бейзлайны в индустрии, research

1. 📘 БАЗОВЫЙ УРОВЕНЬ

Цель: понять, что такое рекомендательные системы и как они работают на простых примерах.

🔹 Теория:

  • Типы рекомендательных систем:
    • Коллаборативная фильтрация (user-based, item-based)
    • Content-based
    • Гибридные методы
  • Основные метрики:
    • Precision@k, Recall@k
    • MAP, NDCG, HR@k
    • Coverage, Diversity, Serendipity
  • Проблемы:
    • cold start, sparsity, scalability, popularity bias

🔹 Практика:

  • Построить item-based и user-based рекомендатель на Python (например, на MovieLens)
  • Использовать surprise и implicit библиотеки
  • Понять cosine similarity, matrix factorization (ALS, SVD)

📚 Ресурсы:

  • Курс: “Recommender Systems Specialization” (Coursera, by Univ. of Minnesota)
  • Книга: “Recommender Systems: An Introduction” – Jannach, Adomavicius
  • YouTube: Алгоритмика лекции / DataTalksClub Recsys series

2. 📗 СРЕДНИЙ УРОВЕНЬ

Цель: строить ML-based рекомендательные модели, использовать пайплайны.

🔹 Теория:

  • Factorization Machines (FM, FFM)
  • Matrix factorization: ALS, SVD++, BPR
  • Embedding модели
  • Введение в sequence-based модели (RNN, GRU4Rec)
  • Введение в feature engineering для рекомендаций

🔹 Практика:

  • Построить рекомендатель с ALS (PySpark)
  • Попробовать FM/FFM с libFM или xLearn
  • Построить модели с implicit feedback (BPR)
  • Сделать простой pipeline оффлайн-оценки рекомендаций (train/test split, cold-start eval)
  • Знакомство с метриками в offline + A/B

📚 Ресурсы:

  • “Deep Learning Based Recommender System: A Survey and New Perspectives” (2017)
  • GitHub: repo Microsoft Recommenders
  • Kaggle: соревнования и kernel’ы по рекомендациям

3. 📙 ПРОДВИНУТЫЙ УРОВЕНЬ

Цель: разрабатывать и деплоить нейросетевые рекомендатели.

🔹 Теория:

  • Deep Learning for RecSys:
    • Wide & Deep
    • DeepFM, xDeepFM
    • DIN, DIEN (attention-based)
    • SASRec, BERT4Rec
  • Session-based рекомендации (sequential modeling)
  • Two-tower модели, retrieval + ranking
  • Loss functions: BPR Loss, Hinge Loss, CrossEntropy, sampled softmax
  • Архитектуры для продакшена:
    • Candidate generation → Ranking → Reranking
  • Моделирование пользовательского поведения
  • Особенности продакшена: latency, scalability, feature store, A/B

🔹 Практика:

  • Построить two-tower модель (TensorFlow Rec, PyTorch)
  • Использовать NVIDIA Merlin или TensorFlow Recommenders
  • Подключить фичи из логов (event-based, временные признаки)
  • Встроить модель в pipeline (например, с MLflow, Airflow)

📚 Ресурсы:

  • Курс: “Recommender Systems” от Stanford (CS246 + CS276)
  • Paper: “YouTube Recommender System: Deep Neural Networks” (Covington et al.)
  • Модельные библиотеки: TFRS, DeepRec, LightFM, RecBole

4. 📕 ЭКСПЕРТНЫЙ УРОВЕНЬ

Цель: понимать и внедрять state-of-the-art подходы, строить масштабируемые решения.

🔹 Теория:

  • Модели в крупных продуктах (TikTok, YouTube, AliExpress, Amazon)
  • Retrieval via vector search (FAISS, Annoy, ScaNN)
  • Ранжирование: LambdaMART, GBDT+NN модели
  • Multi-objective ranking (на примере marketplace)
  • Online learning, bandits
  • Multimodal рекомендации (текст + изображение)
  • Meta-learning, reinforcement learning в recsys
  • Personalization and fairness

🔹 Практика:

  • Построить full-stack RecSys с real-time pipeline
  • Обработать миллионы пользователей с Faiss+AnnIndex
  • Оценить latency и throughput
  • Настроить online A/B и логгирование

📚 Ресурсы:

  • ACM RecSys конференции (ежегодные материалы)
  • DLRM от Facebook, Multi-gate Mixture-of-Experts (MMoE)
  • Arxiv: “A Survey of Neural Recommendation: From Collaborative Filtering to Content Understanding” (2020)

🔧 Инструменты и стек

  • Python: numpy, pandas, scikit-learn
  • Библиотеки: surprise, implicit, LightFM, TFRS, RecBole
  • DL: PyTorch, TensorFlow
  • Serving: ONNX, TorchServe, TF Serving
  • Data pipeline: Spark, Airflow, Kafka
  • A/B: Optimizely, custom logging
  • Vector search: Faiss, Weaviate, Vespa

📈 Примеры задач для собеседований

  • Реализовать user-based рекомендатель
  • Рассчитать MAP@k, NDCG@k
  • Объяснить отличие BPR и CrossEntropy
  • Сравнить DeepFM и Two-Tower
  • Спроектировать рекомендации на e-commerce / media / social platform