Kakao Arena - Melon Playlist Continuation 대회의 연대사회13팀 코드
This is our second-place solution for the Kakao Arena - Melon Playlist Continuation Challenge (Song nDCG: 0.321238, Tag nDCG: 0.507595). The task is to build a model that recommends songs relevant to playlists.
This is a Neighbor-based CF model. The model estimates the similarity between songs included in a playlist u (item i) and songs not included (item j) as follows, and the most similar songs is recommended.
We used a discriminative reweighting technique to improve model performance by penalizing songs that do not represent their playlists (Zhu et al., 2018). For example, if some items in a playlist are unrelated to the other songs in the playlist, we apply panelty to these items, making them less likely to be recommended. To accomplish this, we generate a vector r_j for each item j that represents the similarity between each item j and the entire set of songs in the target playlist. Then, using r_j, which learns the playlist representativeness of each song j, we train an L2-regularized support vector classifier (SVC) that predicts y_j (1 if a playlist u contains an item j, 0 otherwise).
Download train.json
, val.json
, test.json
into res/
folder (https://arena.kakao.com/).
python preprocess.py
to preprocess the dataset. python inference.py
to generate recommendations which are saved in results.json
.Zhu, L., He, B., Ji, M., Ju, C., & Chen, Y. (2018). Automatic music playlist continuation via neighbor-based collaborative filtering and discriminative reweighting/reranking. In Proceedings of the ACM Recommender Systems Challenge 2018 (pp. 1-6). https://github.com/LauraBowenHe/Recsys-Spotify-2018-challenge