ML / MLOps Jupyter Notebook

Hybrid Anime Recommender

A production recommender system with full CI/CD, containerization, and K8s orchestration.

RecommenderKubernetesArgoCDMLOps

01 Background

Recommender systems sit at the intersection of ML and production engineering. The model is only half the challenge. This project was built to practice the full MLOps lifecycle: developing a hybrid recommender (content-based + collaborative filtering), containerizing it, deploying it to Kubernetes, and establishing automated CI/CD pipelines. The hybrid approach was chosen because neither content-based (ignores user behavior) nor collaborative filtering alone (ignores item attributes) achieves the best recommendations. Combining them captures both signal types.

02 How It Works

01

Content-Based Filtering

Anime metadata (genres, studios, rating, synopsis) is encoded using TF-IDF and cosine similarity. Items similar to previously liked content are ranked highly.

02

Collaborative Filtering

User-item interaction matrices are decomposed using matrix factorization. Latent factors capture behavioral patterns: users who liked similar anime are grouped, and their preferences propagate.

03

Hybrid Score Fusion

Content and collaborative scores are fused with a weighted combination tuned against a held-out validation set. The weights balance exploration (content) vs personalization (collaborative).

04

Flask API + Containerization

The recommender is served via a Flask API, containerized with Docker. A multi-stage Dockerfile minimizes image size for efficient Kubernetes pod spin-up.

05

Jenkins + ArgoCD CI/CD

Jenkins runs unit tests and builds Docker images on every commit. ArgoCD watches the Helm chart repository and auto-syncs Kubernetes deployments, full GitOps.

03 Results & Impact

Hybrid approach outperforms either content-based or collaborative filtering alone on NDCG@10

Full GitOps pipeline: code push to production deployment in under 5 minutes

Kubernetes deployment with auto-scaling handles traffic spikes without manual intervention

Model versioning via DVC ensures reproducible recommendation behavior