My notes on models in recommendation systems. All models are implemented in PyTorch, with simple usage demos and brief introduction markdown notes.
Welcome to Notes-on-RecSys-Models! This repository is a collection of my learning notes and PyTorch implementations of classic and state-of-the-art recommendation system algorithms.
The goal of this project is to provide:
- Clean Code: Readable PyTorch implementations focused on the model structure.
- Theory: Brief markdown notes explaining the core idea behind each model.
- Practice: Simple demos to show how to input data and get predictions.
Here is the organization of the project:
Notes-on-RecSys-Models/
├── assets/ # Images and diagrams for documentation
├── Classic Models/ # Model implementations organized by stage
│ ├── Recall/ # Retrieval models
│ ├── Ranking/ # Fine-ranking models
│ └── Re-ranking/ # Re-ranking strategies
├── Data/ # Raw data storage (e.g., Amazon Review 2018)
├── Datasets/ # PyTorch Dataset wrappers and preprocessing logic
│ └── BaseDatasets.py # Base classes for datasets
├── Utils/ # Common utility functions (I/O, metrics)
└── README.md
Models are organized by the stage they are typically used in a recommendation pipeline: Recall (Retrieval), Ranking (Fine-sorting), and Re-ranking.
Goal: Retrieve a small set of relevant items from a massive pool of candidates efficiently.
| Model | Paper / Source | Code | Note | Status |
|---|---|---|---|---|
| YoutubeDNN | Deep Neural Networks for YouTube Recommendations | Link | 📝 | ✅ |
| MIND | Multi-Interest Network with Dynamic Routing for Recommendation at Tmall | Link | 📝 | ✅ |
| SDM | SDM: Sequential Deep Matching Model for Online Large-scale Recommender System | Link | 📝 | 🚧 |
| HSTU | Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations | ❌ | 📝 | ✅ |
| TIGER | Recommender Systems with Generative Retrieval | ❌ | 📝 | ✅ |
Goal: Accurately predict user preference (CTR/CVR) for the retrieved items to sort them.
| Model | Paper / Source | Code | Note | Status |
|---|
Goal: Optimize the final list for diversity, novelty, or business constraints.
| Model | Source / Concept | Code | Note | Status |
|---|
(Legend: ✅ Implemented, 🚧 In Progress, 📅 Planned)