gdstudio-org/Embeat

Content-based music recommendation system, training on Spotify 45M tracks & 1.8M playlists. (Spotify track ID / ISRC in, similar songs out)

What it solves

Embeat addresses the challenge of high-quality music recommendation by combining acoustic similarity (how a song sounds) with collaborative filtering (what users actually like). It specifically aims to provide stable recommendations for both popular hits and niche, long-tail songs across various languages and genres.

How it works

The system uses a multi-channel recall strategy to generate recommendations based on a seed track:

  1. Acoustic Encoding: The EmbeatMLP model encodes Spotify acoustic features (like tempo, energy, and mood) into 64-dimensional vectors to find songs that sound similar.
  2. Collaborative Filtering: The Track2Vec model (based on Word2Vec Skip-Gram) analyzes millions of playlists to learn co-occurrence patterns, identifying tracks that the public tends to group together.
  3. Genre Integration: It utilizes over 6,000 micro-genre tags to ensure niche music is handled accurately.
  4. Multi-Channel Recall: Recommendations are gathered from five channels: acoustic similarity, same-genre popularity, same artist, similar artists, and playlist collaborative filtering. These results are then deduplicated and re-ranked for the final output.

Who it’s for

It is designed for developers building music discovery applications or researchers interested in acoustic feature encoding and collaborative filtering for audio content.

Highlights

  • Hybrid Approach: Combines a dual-tower MLP for acoustic features with a Skip-Gram model for user behavior.
  • High Performance: Claims a high win rate (84-95%) against Netease Cloud Music in blind LLM evaluations.
  • Efficient Deployment: Supports low-RAM environments (VPS with 2GB+ RAM) with fast response times (30-200ms).
  • Extensive Data: Includes a dataset of 45 million tracks and a pre-built Qdrant database for vector search.

Related

  • Project
  • Project
  • Project
  • Project