< Back to projects

Reinforcement Learning · Flask · Spotify API

Music Recommendation Platform

Delivers curated playlists by pairing NLP-driven intent detection with feedback loops that adapt to what listeners actually enjoy in-session.

Screenshot of the music recommendation dashboard

Problem Statement

Pilots listening to new music often bounce after the first 15 seconds. We built the Music Recommendation Platform to respond to that drop-off in real time by mixing content-based filtering with reinforcement feedback.

System Design

  1. Intent Detection – A mini BERT classifier interprets natural-language requests such as "late-night coding" or "jazz for brunch" into seed vectors.
  2. Candidate Generation – Spotify audio features feed a similarity search powered by FAISS.
  3. Interactive Feedback – Each thumbs-up or skip updates a contextual multi-armed bandit that reprioritises candidates.

Recommendation dashboard

Feedback Loop

flowchart LR
    A[User Request] --> B(Intent Detection)
    B --> C(Candidate Pool)
    C --> D{Feedback?}
    D -- Like --> E(Update Positive Weights)
    D -- Skip --> F(Update Negative Weights)
    E --> C
    F --> C

Impact

  • 27% increase in session length across beta testers.
  • Average of 3.4 on-the-fly adaptations per listening session.
  • Generated explainable recommendations by surfacing the acoustic features behind each pick.

What's Next

  • Experiment with contextual embeddings from OpenAI's text-embedding-3-large model.
  • Roll out collaborative playlists so multiple listeners train the policy together.