This week’s task is to analyze an existing recommender system that appears interesting by following these steps:

  1. Perform a Scenario Design analysis for the recommendation system.
  2. Attempt to reverse engineer what you can about the site, from the site interface and any available information that you can find on the Internet or elsewhere.
  3. Include specific recommendations about how to improve the site’s recommendation capabilities going forward.

Spotify Music Recommender System

Spotify is a popular music streaming service. It provides free of charge (ad sponsored) and paid subscribtion plans. On its website and in the application, it offers music recommendations in a few ways. For this week’s task I will focus on the “Discover Weekly”. This is a custom playlist made up of 30 songs that is renewed every week and provided separately to each registered user. According to some accounts1,2, this feature has been very popular with the users.

1. Scenario Design Analysis for “Discover Weekly”

Scenario Design Analysis for Spotify’s Customers

  1. Who are the target users?
    The target users are the subscribers of Spotify.

  2. What are their key goals?
    Their key goal is to listen to their favorite songs and new music they might like.

  3. How can the recommender system help them accomplish these goals?
    The “Discover Weekly” recommender system can help the users with discovering new content that is similar to their favorite songs, and thus likely also enjoyable to listen to. By providing the recommended content in a separate and regularly updated playlist, it creates a user-friendly “go to” option for the time when the user wants to be inspired by something new.

Scenario Design Analysis for Spotify’s Organization

  1. Who are the target users?
    Spotify business decision makers

  2. What are their key goals?
    Increase profit by developing a growing base of premium tier subscribers and a growing catalogue of music.

  3. How can the recommender system help them accomplish these goals?
    The “Discover New” feature facilitates repeated use of the service, as it is updated weekly. Based on the good performance of the recommender system, it allows the users to discover the tracks they really like. As the system is based around both hits (songs added to playlists by many users) and towards individual user preferences, it allows both famous artists and smaller bands gain a larger audience by appearing on the “Discover Weekly” playlists and thus makes Spotify more attractive for musicians.

2. “Reverse Engineering”

This part is based on studying 2 and especially 3 and 4, where Spotify’s engineers explain the development of the “Discover Weekly” service.

Discover Weekly current recommendation pipeline is based on three main inputs which are themselves outputs of offline models:

  • Collaborative filtering models based on frequency of track plays by users that establish similarity between tracks and users
  • Natural Language Processing models that use current news and blog posts from relevant websites (“Rolling Stone”, “Pitchfork”) as inputs and produce some form of a topic model for tracks as an output
  • Deep Learning models of track audio use raw audio spectrograms as input and produce a classification of tracks into clusters that sound similar

The three inputs are combined in a recommendation model that finally produces a prediction if the user will play the track or not.

The approach is described in detail in the following presentation from Spotify:

From Idea to Execution: Spotify's Discover Weekly from Chris Johnson

3. Recommendations

As the current implementation of the recommendation engine seems vastly successful, it is hard for an outsider to come up with additional improvements, as they would likely involve fine tuning of the models or the weights of particular model inputs.

As a user of the Discovery Weekly feature, I would recommend putting more weight into the track skipping behavior, as this is the most obvious indicator that the recommendation was irrelevant.

Also, the current implementation is based on the idea that users rate the songs implicitly by listening to them from zero to many times. Using the information from “starred” tracks or maybe letting users rate each song on the “discover weekly” playlist with 1 to 5 stars could help improve the CF models by providing an explicit rank to compare against. Thus, the quality of the recommendations can be quickly tested in extremely large samples.