Why This Is Shitty
- Runs on CPU only (no GPU acceleration)
- Tiny embedding dimensions (16-32 vs. 128+ in production)
- Synthetic data that doesn't reflect real user behavior
- No proper train/validation/test split
- Overfits on synthetic data (by design)
- No regularization, dropout, or other fancy tricks
- Simple random negative sampling (no hard negatives)
- No A/B testing, no online learning, no cold start handling
But that's the point. Understanding limitations teaches you more than seeing a polished demo. Read the blog post for a deep dive.