The official source code for "MUSE: Music Recommender System with Shuffle Play Recommendation Enhancement", accepted at CIKM 2023.
Recommender systems have become indispensable in music streaming services, enhancing user experiences by personalizing playlists and facilitating the serendipitous discovery of new music. However, the existing recommender systems overlook the unique challenges inherent in the music domain, specifically shuffle play, which provides subsequent tracks in a random sequence. Based on our observation that the shuffle play sessions hinder the overall training process of music recommender systems mainly due to the high unique transition rates of shuffle play sessions, we propose a Music Recommender System with Shuffle Play Recommendation Enhancement (MUSE). MUSE employs the self-supervised learning framework that maximizes the agreement between the original session and the augmented session, which is augmented by our novel session augmentation method, called transition-based augmentation. To further facilitate the alignment of the representations between the two views, we devise two fine-grained matching strategies, i.e., item- and similarity-based matching strategies. Through rigorous experiments conducted across diverse environments, we demonstrate MUSE’s efficacy over 12 baseline models on a large-scale Music Streaming Sessions Dataset (MSSD) from Spotify.
python: 3.9.17pytorch: 1.11.0numpy: 1.25.2pandas: 1.5.3scipy: 1.11.1pyyaml: 6.0tqdm: 4.65.0pyarrow: 11.0.0 orfastparquet: 2023.4.0 (for preprocessing)
💻 You can create the conda environment using the muse.yaml file.
conda env create --file muse.yaml
Data is available in the original challenge with published paper[1].
For the data preprocessing, please refer to the ./data/mssd-org/README.md file.
⌛ You can find the preprocessed data here.
python main.py
The arguments and its description are in the ./utils/argument.py file.
[1] B. Brost, R. Mehrotra, and T. Jehan, The Music Streaming Sessions Dataset (2019), Proceedings of the 2019 Web Conference