# 23: Searching for Neighbors with Voyager Page: https://stenobird.com/podcast/nerdout-spotify-4978381/23-searching-for-neighbors-with-voyager Text version: https://stenobird.com/podcast/nerdout-spotify-4978381/23-searching-for-neighbors-with-voyager.md Podcast: [NerdOut@Spotify](https://stenobird.com/podcast/nerdout-spotify-4978381) Published: 2023-10-19T13:00:00+00:00 Episode link: https://podcasters.spotify.com/pod/show/engineeringatspotify/episodes/23-Searching-for-Neighbors-with-Voyager-e2aopd6 Audio file: https://anchor.fm/s/805682b0/podcast/play/77407078/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2023-9-18%2F41e22c43-0eea-800f-8055-4a05556134f2.mp3 Processing state: not_requested JSON: https://stenobird.com/v1/public/podcasts/nerdout-spotify-4978381/episodes/23-searching-for-neighbors-with-voyager Duration seconds: 2076 ## Resource How do you get a machine to find a song that’s similar to another song? What properties of the song should it look for? And then does it just compare each track to every other track, one by one, until it finds the closest match? When you have a catalog of 100 million different music tracks, like we do at Spotify, that would take a long time. So, for these kinds of problems, we use a technique known as nearest neighbor search (NNS). This past summer at Spotify, we built a new library for nearest neighbor search: It’s called Voyager — and we open sourced it. Host and principal engineer Dave Zolotusky talks with Peter Sobot and Mark Koh, two of the machine learning engineers who developed Voyager. They discuss using nearest neighbor search for recommendations and personalization, how to go from searching for vectors in a 2D space to searching for them in a space with thousands of dimensions, the relative funkiness and danceability of Mozart and Bach, how to find a place on a map when you don’t have the exact coordinates, tricky acronyms (Annoy: “Approximate Nearest Neighbor Oh Yeah”) and initialisms (HNSW: “Hierarchical Navigable Small World”), why we stopped using our old NNS library, why we open sourced the new one, how it works for use cases beyond music (like LLMs), and looking for ducks in grass. Learn more about Spotify Voyager: About Voyager Voyager on GitHub Voyager documentation for Python Voyager documentation for Java Read what else we’re nerding out about on the Spotify Engineering Blog: engineering.atspotify.com You should follow us on Twitter @SpotifyEng and on LinkedIn ! ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/nerdout-spotify-4978381/episodes/23-searching-for-neighbors-with-voyager/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/nerdout-spotify-4978381/23-searching-for-neighbors-with-voyager.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.