RecSys Roadmap
8 недельный план
🧭 Общая структура
Уровни:
- Базовый уровень – понимание задач, метрик, простых моделей
- Средний уровень – классические модели, практические кейсы
- Продвинутый уровень – дип-обучение, архитектуры, продакшен
- Экспертный уровень – масштабирование, бейзлайны в индустрии, 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