/ebnerd-benchmark

Ekstra Bladet Recommender System repository for benchmarking the EBNeRD dataset.

Primary LanguagePythonMIT LicenseMIT

Introduction

Hello there 👋🏽

We recommend to check the repository frequently, as we are updating and documenting it along the way!

EBNeRD

Ekstra Bladet Recommender System repository, created for the RecSys'24 Challenge.

Getting Started

We recommend conda for environment management, and VS Code for development. To install the necessart packages and run the example notebook:

# 1. Create and activate a new conda environment
conda create -n <environment_name> python=3.11
conda activate <environment_name>

# 2. Clone this repo within VSCode or using command line:
git clone https://github.com/ebanalyse/ebnerd-benchmark.git

# 3. Install the core ebrec package to the enviroment:
pip install .

Running GPU

tensorflow-gpu; sys_platform == 'linux'
tensorflow-macos; sys_platform == 'darwin'

Data manipulation and enrichement

We have created a small notebook demo showing how one can join histories and create binary labels.

Algorithms

To get started quickly, we have implemented a couple of News Recommender Systems, specifically, Neural Recommendation with Long- and Short-term User Representations (LSTUR), Neural Recommendation with Personalized Attention (NPA), Neural Recommendation with Attentive Multi-View Learning (NAML), and Neural Recommendation with Multi-Head Self-Attention (NRMS). The source code originates from the brilliant RS repository, recommenders. We have simply stripped it of all non-model-related code.

For now, we have created a notebook where we train NRMS on EB-NeRD - this is a very simple version using the demo dataset. More implementation examples will come at a later stage.