|Context||NIPS 2015 Women in Machine Learning Workshop|
Spotify is a music streaming company with 85 million active users, with about 30 million tasks as well as about 1.5 billion playlists. Music recommendation at Spotify create discovery technology. They use a variety of approaches - manual curation (not scalable), editorial tagging, using metadata, using audio signals, as well as collaborative-filtering based approaches.
Collaborative filtering approaches use the user's past behavior, combined with the behavior of other users, to predict new items for users. Collaborative filtering is domain-independent, and is scalable - only pays attention to the dataset which captures music-item interaction. This dataset can be represented as a matrix, which in the case of Spotify is a # of users by # of artists album where the entry at i, j corresponds to the number of plays by artist i from listener j. This matrix is factorized to two lower dimensional matrices, which produce listener-vector and artist-vector matrices. At Spotify, they use an embedded dimension of 2. The vectors capture higher-order dependencies. Also, once the users and artists are projected into the same vector space, the problem can be treated as a simple Euclidean similarity problem.
An alternate approach used is implicit matrix factorization, where the user-artist matrix is binarized and a linear transformation of it is also computed. The factorization of the binary matrix is then factorized in the same way, which produces two binary matrices. After an inner product of these matrices, the top recommendations are produced. The factorized matrices are found via an optimization. Recommendations can also then simply been produced via cosine similarity. Using cosine similarity accounts for any biases of the user or artist embedding. Clustering the embeddings may produce genre. Using content could Improve these model, as well as improving listener interaction to obtain more data.