Skip to content

The whole re-rank system implemented using Python 3 for my MSc thesis research

Notifications You must be signed in to change notification settings

boninggong/Re-rankSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Re-rankSystem

Introduction


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)

Execution Pipeline


Execution Pipeline

Input data processing: https://github.com/boninggong/DataPreProcess
Initial recommender system: https://github.com/boninggong/CARSKitModified
Re-rank system & Accuracy evaluation: this repository

Running the system


  1. 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.
  2. 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\.
  3. 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.

About

The whole re-rank system implemented using Python 3 for my MSc thesis research

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages