vkrit / Recommender-Systems-Polimi

Competition for the Recommender Systems course @ PoliMi. The objective is to recommend relevant TV shows to users. Models were evaluated on their MAP@10.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Recommender Systems Challenge 2021 @ Polimi

header

Kaggle

This repository contains the files and datasets used for the kaggle competition of the recommender systems course at Politecnico di Milano. The competition took place from November 2021 till January 2022.

Overview

The application domain of the competition was TV show recommendation. Starting from a sparse User Rating Matrix with implicit feedback and an Item Content Matrix with information on the genre, subgenre and diffusion channels of each tv show, we had to recommend 10 relevant TV shows for each user. The quality of the recommender was evaluated with the MAP@10 metric.

Best Model

The final model is a 2-level hybrid recommender which averages the prediction of six different base recommenders. Please refer to the presentation slide deck for more details.

Recommenders

This repo contains the implementation of the following base recommenders :

  • User based Collaborative Filtering
  • Item Content Based Filtering
  • P3alpha and RP3Beta Graph Based models
  • Pure SVD
  • iALS
  • Slim BPR
  • EASER Recommender

The recommenders come from the course repository.

Installation

This repository requires Python 3.8. Requirements and dependencies can be installed using the following command.

pip install -r requirements.txt

Some of the models use Cython implementations. As written in the original repository you have to compile all Cython algorithms. In order to compile you must first have installed: gcc and python3 dev. Under Linux those can be installed with the following commands:

sudo apt install gcc 
sudo apt-get install python3-dev

If you are using Windows as operating system, the installation procedure is a bit more complex. You may refer to the official guide.

Now you can compile all Cython algorithms by running the following command. The script will compile within the current active environment. The code has been developed for Linux and Windows platforms. During the compilation you may see some warnings.

python run_compile_all_cython.py

Final grades

  • 30 out of 30 points
  • MAP@10 : 0.48549

About

Competition for the Recommender Systems course @ PoliMi. The objective is to recommend relevant TV shows to users. Models were evaluated on their MAP@10.


Languages

Language:Python 81.0%Language:Cython 19.0%