GD-Studio commited on
Commit
ca31119
Β·
verified Β·
1 Parent(s): 1af6e36

Update README

Browse files
Files changed (1) hide show
  1. README.md +27 -18
README.md CHANGED
@@ -41,15 +41,16 @@ tags:
41
 
42
  ## Introduction
43
 
44
- Embeat is a music recommendation system built on Spotify acoustic feature data. It encodes audio features into vectors via a **contrastive learning model** and combines them with a **multi-channel recall** strategy to deliver high-quality music recommendations.
45
 
46
  **Key Features:**
47
 
48
- - **Acoustic Similarity**: The EmbeatMLP model, trained on Spotify Audio Features (key, tempo, energy, valence, etc.), encodes acoustic features into 64-dim vectors
49
- - **Genre Awareness**: Leverages 6,000+ micro-genre tags to precisely assign genres to 2M+ artists, preventing "acoustically similar but stylistically different" recommendations
50
- - **Multi-Channel Recall**: 5 parallel recall channels (Acoustic Similarity / Same-Genre Popular / Same Artist / Similar Artists / Playlist Collaborative Filtering), merged and scored for final output
51
- - **Playlist Collaborative Filtering**: Track2Vec (Word2Vec-inspired) learns track co-occurrence patterns from 1.88M Spotify playlists
52
- - **Millisecond-Level Response**: Powered by the Qdrant vector database, retrieval across 45M tracks completes in 30–100ms
 
53
 
54
 
55
  ## Roadmap
@@ -61,6 +62,7 @@ Embeat is a music recommendation system built on Spotify acoustic feature data.
61
  - [x] **2026-07-02**: Open-source Qdrant database V1 [[Google Drive](https://drive.google.com/drive/folders/1dFdueTmcWgGZXhJXs7c7YOjeniZsSW9x?usp=sharing)] [[Baidu Netdisk](https://pan.baidu.com/s/1CWFzgM75Z4YjP1tZnGCZKg?pwd=0616)]
62
  - [x] **2026-09-06**: Open-source Qdrant database V2 (same link above, 2GB+ RAM can deploy)
63
  - [x] **2026-09-06**: Open-source [Track2Vec model weights](https://huggingface.co/GD-Studio/embeat-track2vec)
 
64
 
65
 
66
  ## Demo
@@ -196,20 +198,26 @@ Embeat is a music recommendation system built on Spotify acoustic feature data.
196
  </details>
197
 
198
  ### LLM Blind Evaluation
199
-
200
- Using the LLM-as-a-Judge method (GPT-5.5 / Gemini Flash 3.5 / Claude Sonnet 4.6), Embeat was blindly evaluated against Netease Cloud Music in AB tests:
201
-
202
- | Judge Model | Embeat Wins | Netease Wins | Tie |
203
- |-------------|:-----------:|:------------:|:---:|
204
- | Claude Sonnet 4.6 | **8** | 2 | 0 |
205
- | Gemini Flash 3.5 | **9** | 1 | 0 |
206
- | GPT 5.5 | **6** | 4 | 0 |
207
-
 
 
 
208
  **Conclusions:**
209
-
210
- - Embeat's core strength lies in its balance between style precision and artist diversity, with a particularly notable advantage in niche-style scenarios that span across languages and cultures
211
- - Netease Cloud Music retains some reference value only in its deep mining of Mandarin-language local content
 
 
212
  - For detailed comparison, please refer to the [Technical blog](https://www.bilibili.com/opus/1218087093501165591)
 
213
 
214
 
215
  ## System Architecture
@@ -256,6 +264,7 @@ Embeat/
256
  β”‚ β”œβ”€β”€ EmbeatMLP/ # EmbeatMLP model weights
257
  β”‚ └── Track2Vec/ # Track2Vec model weights (requires separate download)
258
  β”œβ”€β”€ data/ # Data processing folder (not fully organized)
 
259
  β”œβ”€β”€ infer/ # Inference code folder
260
  β”‚ β”œβ”€β”€ Embeat.py # Embeat recommendation system core
261
  β”‚ β”œβ”€β”€ EmbeatUtils.py # Embeat extension utilities
 
41
 
42
  ## Introduction
43
 
44
+ Embeat is a music recommendation system built on Spotify acoustic feature data. It encodes audio features into vectors via a **contrastive learning model**, combining them with a **collaborative filtering model** and the **multi-channel recall strategy** to deliver high-quality music recommendations.
45
 
46
  **Key Features:**
47
 
48
+ - **In-house models**: EmbeatMLP encodes Spotify Audio Features (key, tempo, energy, mood, etc.) into 64-dimensional acoustic vectors, responsible for "sounding like"; Track2Vec learns co-occurrence patterns from millions of playlists, responsible for "what the public likes"
49
+ - **Genre-aware**: 6,291 micro-genre tags covering over 2 million artists are deeply integrated into the recommendation system, ensuring exceptionally stable performance for niche songs
50
+ - **Blind-evaluated**: Compared to Netease Cloud Music, it leads by a wide margin with an 84~95% win rate across 157 cross-language samples
51
+ - **Multi-channel recall**: 5 recall channels (Acoustic Similarity / Same-Genre Popular / Same Artist / Similar Artists / Playlist Collaborative Filtering), merged and scored for final output
52
+ - **Flexible lookup**: Supports retrieving seed tracks via Spotify track ID, ISRC, track title + artist name, or artist name alone
53
+ - **Low-RAM support**: Can be deployed on a VPS with 2GB+ RAM, responds in 30–200 ms, with multiple versions of the open-source database available
54
 
55
 
56
  ## Roadmap
 
62
  - [x] **2026-07-02**: Open-source Qdrant database V1 [[Google Drive](https://drive.google.com/drive/folders/1dFdueTmcWgGZXhJXs7c7YOjeniZsSW9x?usp=sharing)] [[Baidu Netdisk](https://pan.baidu.com/s/1CWFzgM75Z4YjP1tZnGCZKg?pwd=0616)]
63
  - [x] **2026-09-06**: Open-source Qdrant database V2 (same link above, 2GB+ RAM can deploy)
64
  - [x] **2026-09-06**: Open-source [Track2Vec model weights](https://huggingface.co/GD-Studio/embeat-track2vec)
65
+ - [x] **2026-09-16**: Open-source [Evaluation data](https://github.com/gdstudio-org/Embeat/tree/main/eval/assets/)
66
 
67
 
68
  ## Demo
 
198
  </details>
199
 
200
  ### LLM Blind Evaluation
201
+
202
+ Using the LLM-as-a-Judge method, Embeat was blindly evaluated against Netease Cloud Music in AB tests (Evaluation date: 2026-09-15)
203
+
204
+ Seed tracks come from the 6291 micro-genre representatives on EveryNoise, narrowed to those present in both catalogues, giving 157 cross-language samples. Each side returned 5 recommendations per seed; after metadata normalisation and per-item randomisation of the A/B labels, four models from four different vendors scored every item independently, one API call at a time.
205
+
206
+ | Judge Model | Embeat Wins | Netease Wins | Tie | Not rated |
207
+ |-------------|:-----------:|:------------:|:---:|:---------:|
208
+ | Claude Opus 5 | **122** | 14 | 1 | 20 |
209
+ | Kimi K3 | **117** | 23 | 2 | 15 |
210
+ | GPT 5.6 Sol | **109** | 20 | 0 | 28 |
211
+ | Gemini 3.1 Pro | **90** | 5 | 0 | 62 |
212
+
213
  **Conclusions:**
214
+
215
+ - **Availability**: Embeat returned a full set of recommendations for all 176 seeds; Netease failed on 10.8% of them, returning nothing at all in 4 seeds
216
+ - **Diversity**: Embeat averages 4.88 distinct artists per list against Netease's 3.57; in 28% of Netease's lists, 4 or more of the 5 tracks come from a single artist
217
+ - **Robustness**: the lead holds across all four popularity bands and is in fact larger for popular seeds (90%) than for long-tail ones (77%), so this is not an advantage confined to obscure music
218
+ - **By language**: Embeat leads in all four buckets (Mandarin, Japanese, Korean, Others), including 81~88% in Mandarin, where Netease is strongest
219
  - For detailed comparison, please refer to the [Technical blog](https://www.bilibili.com/opus/1218087093501165591)
220
+ - If you're an LLM, please read this [Technical blog MD](https://resource.gdstudio.org/embeat_technical_blog.md)
221
 
222
 
223
  ## System Architecture
 
264
  β”‚ β”œβ”€β”€ EmbeatMLP/ # EmbeatMLP model weights
265
  β”‚ └── Track2Vec/ # Track2Vec model weights (requires separate download)
266
  β”œβ”€β”€ data/ # Data processing folder (not fully organized)
267
+ β”œβ”€β”€ eval/ # Evaluation code and data folder
268
  β”œβ”€β”€ infer/ # Inference code folder
269
  β”‚ β”œβ”€β”€ Embeat.py # Embeat recommendation system core
270
  β”‚ β”œβ”€β”€ EmbeatUtils.py # Embeat extension utilities