Skip to content

Latest commit

 

History

294 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toposonico

This monorepo contains all code used for toposonico.com, a navigable map and recommender for 17M discographic entities across music tracks, artists, albums and labels.

Toposonico Mobile View

How it works

Toposonico is built around a skipgram word2vec model trained over ~6M playlists. Tracks are embedded in a 128d space. Embeddings for albums, artists and labels are computed marginalizing over tracks. The 2D map was built with UMAP.

The model was trained in the cloud with a NVIDIA A100. UMAP was trained in the cloud too, using the fast RAPIDS CuML implementation. The recommender indexes were built and tuned with FAISS. The frontend slippy map was implemented with MapLibre GL JS over tiles built with tippecanoe.

Project structure

The project is structured in three main piecies:

  • ml contains everything needed to train the recommender model, export its embeddings and UMAP representation, and to build lookup tables for tracks, album, artists and labels.
  • db implements a pipeline transforming the previous data products into a proper database and a collection of GeoJSON files.
  • web is itself split into multiple components: a TS-React frontend living in frontend, a Python FastAPI backend living in backend, and a Martin tile server living in tileserver.

Each of these subprojects contains a README describing in more detail each component usage and goal.

About

A recommender and map for music tracks, artists, albums and labels.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages