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 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.
The project is structured in three main piecies:
mlcontains everything needed to train the recommender model, export its embeddings and UMAP representation, and to build lookup tables for tracks, album, artists and labels.dbimplements a pipeline transforming the previous data products into a proper database and a collection of GeoJSON files.webis itself split into multiple components: a TS-React frontend living infrontend, a Python FastAPI backend living inbackend, and a Martin tile server living intileserver.
Each of these subprojects contains a README describing in more detail each component usage and goal.
