← Back to projects
Completed

Music Taste Recommender

Business-driven hybrid recommendation engine

+267%Diversity improvement
0.89Relevance maintained
217KTracks processed
500Simulated users evaluated
PythonSentence-TransformersScikit-learnStreamlitHugging Facepandas

The Problem

Streaming platforms face a filter bubble problem: pure relevance optimization traps users in familiar content, increasing long-term churn and reducing catalog utilization.

The Solution

Hybrid 402-dimensional embeddings combining audio features and genre semantics, with a configurable re-ranking stage that balances relevance and diversity according to business strategy.

Impact

Breaks the filter bubble by lifting genre diversity from 19% to 70% while keeping relevance at 0.89, so streaming users explore more of the catalog instead of churning out - evaluated across 500 simulated users and 5 configurable business strategies.

Engineering Challenges

Dimensionality imbalance between audio and genre embeddings

Genre embeddings (384 dims) dominated audio features (18 dims) in cosine similarity. A 10x weight on audio features restored balanced influence without retraining.

Configurable business strategies without retraining

Different business objectives (retention vs discovery) required different recommendation behaviors. A re-ranking stage with configurable weights solved this without touching the embedding space.

Lessons Learned

Re-ranking is more flexible than embedding optimization

Optimizing the embedding space for diversity would require retraining. A lightweight re-ranking stage achieves the same result with full runtime configurability.

Business metrics must be defined before evaluation

Defining relevance, diversity and composite score upfront forced clarity on what the system was actually optimizing for.