Skip to main content

Recommender Systems Dataset from FINN.no containing the presented items and whether and what the user clicked on.

Project description

FINN.no Slate Dataset for Recommender Systems

We release the FINN.no slate dataset to improve recommender systems research. The dataset includes both search and recommendation interactions between users and the platform over a 30 day period. The dataset has logged both exposures and clicks, including interactions where the user did not click on any of the items in the slate. To our knowledge there exists no such large-scale dataset, and we hope this contribution can help researchers constructing improved models and improve offline evaluation metrics.

A visualization of a presented slate to the user on the frontpage of FINN.no

For each user u and interaction step t we recorded all items in the visible slate equ (up to the scroll length equ), and the user’s click response equ. The dataset consists of 37.4 million interactions, |U| ≈ 2.3) million users and |I| ≈ 1.3 million items that belong to one of G = 290 item groups. For a detailed description of the data please see the paper.

A visualization of a presented slate to the user on the frontpage of FINN.no

FINN.no is the leading marketplace in the Norwegian classifieds market and provides users with a platform to buy and sell general merchandise, cars, real estate, as well as house rentals and job offerings. For questions, email simen.eide@finn.no or file an issue.

Install

pip install recsys_slates_dataset

How to use

To download the generic numpy data files:

from recsys_slates_dataset import data_helper
data_helper.download_data_files(data_dir="data")

Download and prepare data into ready-to-use PyTorch dataloaders:

from recsys_slates_dataset import dataset_torch
ind2val, itemattr, dataloaders = dataset_torch.load_dataloaders(data_dir="data")

Organization

The repository is organized as follows: - The dataset is placed in data/ and stored using git-lfs. We also provide an automatic download function in the pip package (preferred usage). - The code open sourced from the article “Dynamic Slate Recommendation with Gated Recurrent Units and Thompson Sampling” is found in (code_eide_et_al21/). However, we are in the process of making the data more generally available which makes the code incompatible with the current (newer) version of the data. Please use the v1.0 release of the repository for a compatible version of the code and dataset.

Quickstart dataset Open In Colab

We provide a quickstart Jupyter notebook that runs on Google Colab (quickstart-finn-recsys-slate-data.ipynb) which includes all necessary steps above. It gives a quick introduction to how to use the dataset.

Example training scripts

We provide an example training jupyter notebook that implements a matrix factorization model with categorical loss that can be found in examples/. It is also runnable using Google Colab: matrix_factorization.ipynb
There is ongoing work in progress to build additional examples and use them as benchmarks for the dataset.

Dataset files

The dataset data.npz contains the following fields: - userId: The unique identifier of the user. - click: The items the user clicked on in each of the 20 presented slates. - click_idx: The index the clicked item was on in each of the 20 presented slates. - slate_lengths: The length of the 20 presented slates. - slate: All the items in each of the 20 presented slates. - interaction_type: The recommendation slate can be the result of a search query (1), a recommendation (2) or can be undefined (0).

The dataset itemattr.npz contains the categories ranging from 0 to 290. Corresponding with the 290 unique groups that the items belong to. These 290 unique groups are constructed using a combination of categorical information and the geographical location.

The dataset ind2val.json contains the mapping between the indices and the values of the categories (e.g. "287": "JOB, Rogaland") and interaction types (e.g. "1": "search").
## Citations This repository accompanies the paper “Dynamic Slate Recommendation with Gated Recurrent Units and Thompson Sampling” by Simen Eide, David S. Leslie and Arnoldo Frigessi. The article is under review, and the preprint can be obtained here.

If you use either the code, data or paper, please consider citing the paper.

Eide, S., Leslie, D.S. & Frigessi, A. Dynamic slate recommendation with gated recurrent units and Thompson sampling. Data Min Knowl Disc (2022). https://doi.org/10.1007/s10618-022-00849-w

Todo

This repository is currently work in progress, and we will provide descriptions and tutorials. Suggestions and contributions to make the material more available are welcome. There are some features of the repository that we are working on:

  • Add more usable functions that compute relevant metrics such as F1, counterfactual metrics etc.
  • The git lfs is currently broken by removing some lines in .gitattributes that is in conflict with nbdev. The dataset is still usable using the building download functions as they use a different source. However, we should fix this. An issue is posted on nbdev.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recsys_slates_dataset-1.0.3.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

recsys_slates_dataset-1.0.3-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file recsys_slates_dataset-1.0.3.tar.gz.

File metadata

  • Download URL: recsys_slates_dataset-1.0.3.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.2 pkginfo/1.7.0 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for recsys_slates_dataset-1.0.3.tar.gz
Algorithm Hash digest
SHA256 96dc30413d6a12d7772b97123a5a7519a3f2ef023d548de364dba59b0f1a655c
MD5 1ca2c57802677485036c7c8dad22b7b9
BLAKE2b-256 2c2f1dd7ed6f97185f4ad4f5959f0616a97a3613612aa43137b42c69da955126

See more details on using hashes here.

File details

Details for the file recsys_slates_dataset-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: recsys_slates_dataset-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.2 pkginfo/1.7.0 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for recsys_slates_dataset-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 14b2eb17d051b158421d9124ac86b5713bc2c83716e3060f3ab03abf7c59c433
MD5 c6507ea107a7da97ae24f5ab832cfe73
BLAKE2b-256 f090a995c7fa0967f37756e93ccaedab29783dda46337f7830afc14b02988a4c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page