Hi everyone,
I wanted to start a discussion around music recommendations on ListenBrainz, particularly around TROI, which currently recommends music based on similar users’ listening patterns. That approach is well understood and effective in many situations, but it also represents a very specific way of thinking about recommendation: if users listened to similar music in the past, they are likely to enjoy similar music in the future. While this works well, it also naturally limits recommendations to what exists within a user’s listening neighborhood.
I’ve been thinking about whether ListenBrainz could benefit from having a public, low-risk, experimental space to explore additional recommendation signals alongside TROI, without changing or replacing the existing system. This post is meant to open that discussion.
Motivation
TROI’s similar-user approach is strong, but it doesn’t explicitly model a few other aspects of listening behavior that many users intuitively care about. For example, some users enjoy going deeper into artists they already love, while others prefer discovering new artists connected indirectly to their taste. Some users value genre consistency, others value era, and others still prefer exploration driven by social signals.
These aren’t shortcomings of TROI, but they do raise a question i.e. should ListenBrainz experiment with other ways of shaping recommendations, and if so, how can that be done transparently and reversibly?
High-level idea
The idea is to build a clearly labeled experimental recommenderthat lives on the Explore page. Instead of relying on a single signal, recommendations would be generated from multiple simple perspectives, each capturing a different way users discover music. The system would then combine these perspectives into a single recommendation set.
Importantly, this would remain:
- Opt-in
- Experimental
- Separate from TROI
- Open to feedback and iteration
How recommendations are divided into four sections
To make the system easier to reason about (both for users and contributors), recommendations are intentionally **segregated into four sections,**each representing a distinct discovery strategy. In the current prototype, each section contributes 25 tracks, for a total of 100 recommendations.
This 25–25–25–25 split is a starting point, not an assumption that all users want all discovery strategies equally.
# 1. Discovery via collaborator networks
This section is based on artist relationships rather than user similarity.
-
Identifies artists who have collaborated with multiple artists the user already enjoys
-
Treats collaboration as a signal of shared musical context or scene
-
Prioritizes collaborators who appear repeatedly across the user’s favorite artists
This reflects how many people discover music organically: through liner notes, features, and shared creative circles.
# 2. Broader exploration of familiar artists
This section expands outward to artists the user listens to regularly, but not obsessively.
-
Uses artists ranked just below the user’s top favorites
-
Treats them as a single pool rather than isolated silos
-
Limits how many songs come from any one artist to avoid dominance
The intent here is to surface depth from artists the user already likes, but may not actively seek out.
# 3. Deep dive into top artists
This section focuses on artists the user already listens to the most.
-
Looks at the user’s top few artists by listening history
-
Recommends songs by those artists that the user has not heard yet
-
Prioritizes familiarity while still encouraging exploration within known catalogs
This reflects the idea that liking an artist does not necessarily mean having explored their full discography.
# 4. Similar-user discovery (future extension)
This section aligns most closely with what TROI already does today.
-
Uses listening overlap between users
-
Surfaces songs enjoyed by multiple users with similar listening behavior
-
Acts as a form of social validation
In this experimental setup, similar-user recommendations are treated as **one component,**rather than the sole driver.
Why keep these sections separate?
Keeping recommendations separated by strategy makes the system easier to explain, critique, and evaluate.
Instead of asking whether a recommendation is “good” or “bad” in isolation, users and contributors can reason about **why**a song appeared and whether that discovery path makes sense. This structure also makes it easier to compare strategies against each other and understand which ones users actually find useful.
Scoring and configurability
The current prototype already uses an explicit weighting mechanism rather than a fixed or opaque formula.
Tracks are scored using a small set of interpretable parameters, such as:
-
genre and tag alignment
-
artist familiarity versus exploration
-
collaboration signals
-
era alignment
These parameters are intentionally separated and tunable. This makes it feasible to expose limited user-facing configurability, such as adjusting how much era, genre, or exploration should matter, without requiring users to understand the underlying implementation.
Different users may value different sections
One important assumption this experiment explicitly avoids is that all users value all discovery strategies equally.
Some users may strongly prefer deeper exploration of artists they already love, while others may care more about collaborator-based discovery or social validation. By keeping sections independent, the system allows future experimentation where:
-
sections can be upweighed or downweighed
-
some sections can be disabled entirely
-
different defaults can be tested for different listening profiles
This kind of experimentation is difficult to explore when recommendations are produced by a single monolithic model.
Why the Explore page
Explore already represents curiosity, browsing, and discovery without strong guarantees. Placing an experimental recommender there aligns expectations and avoids presenting it as a definitive recommendation system.
It also provides a natural environment for iteration, feedback, and discussion.
Questions for the community
I’d really value feedback on questions like:
-
Does TROI’s current similar-user approach cover most discovery needs, or are there gaps it doesn’t address well?
-
Is there value in exposing alternative recommendation strategies publicly, even in an experimental form?
-
Does separating recommendations by discovery strategy make the system clearer or more confusing?
-
Would limited configurability help users better understand recommendations, or add unnecessary complexity?
-
How should success for an experimental recommender be evaluated: engagement, feedback, listening behavior, or something else?
-
Would it make more sense to frame this as an experimental playlist generator rather than a recommender?
Critical feedback is especially welcome.
Possible next steps
If this direction seems worthwhile, the next step would be to keep the scope intentionally limited, clearly label the system as experimental, and iterate based on community feedback rather than expectations.
Thanks for reading, and I’m looking forward to hearing thoughts.
