This system re-ranks a given song recommendation list by calculating new scores for each song. These new scores are based on the initial recommendation score and the similarity between the audio features of the song and the given context in which a user is consuming it. The re-rank algorithm uses two models, a global and personalized one, which represent user preferences in certain contextual conditions. Initial results, tested on the #NowPlaying-RS dataset, show that the personalized model outperforms the global model and that such a re-ranking approach improves recommendation accuracy (measured using precision at k and mean average precision at k)
Input data processing: https://github.com/boninggong/DataPreProcess
Initial recommender system: https://github.com/boninggong/CARSKitModified
Re-rank system & Accuracy evaluation: this repository
- Pre-process data by executing the scripts within https://github.com/boninggong/DataPreProcess.
- Move nowplaying-rs-final.CSV to \out\artifacts\CARSKitjar\data\ in https://github.com/boninggong/CARSKitModified.
- Move nprs_ratings.CSV, nprs_audio_features.CSV, user_context_items.CSV and user_context_sums.CSV to \output\nprs\ in this repository.
- Run https://github.com/boninggong/CARSKitModified as described by the original CARSKit guide: http://arxiv.org/abs/1511.03780. This will create the initial recommendations that will be used as input to the re-rank system.
- Move the k recommendation file outputs (e.g. BPR-1.CSV to BPR-5.CSV for k = 5) within \out\artifacts\CARSKitjar\data\CARSKit.Workspace\ to \input\nprs_200\ in this repository.
- Move the k test set files (1-test.csv to k-test.csv) to \input\nprs_test\.
- You are now ready to run the scripts within this repository to re-rank the given song recommendations and compare accuracy results. The scripts themselves contain extra instructions where necessary.
NOTE: Only the #NowPlaying-RS dataset is supported in the full execution. The InCarMusic dataset was supported, but has been dropped because of its scarcity. There are still some of the initial results of the InCarMusic dataset in the results folder of previous runs.
