Skip to main content

OmniRec: The all-in-one Python library providing a unified, cross-framework pipeline for reproducible and interoperable recommender system experimentation.

Project description

Welcome to the OmniRec Documentation

Overview

Welcome to OmniRec! OmniRec is an open-source Python library designed to be an all-in-one solution for reproducible and interoperable recommender systems experimentation.

Please visit omnirec.recommender-systems.com for comprehensive documentation, including user guides and API references.

You can download the full demo paper here.

Recommender systems research often faces challenges like fragmented data handling, inconsistent preprocessing, and poor interoperability between different toolkits. These issues can make it difficult to compare results and reproduce studies, slowing down scientific progress. OmniRec tackles these problems by providing a unified, transparent, and easy-to-use workflow for the entire experimentation process.

Key Features

  • Massive Dataset Collection: Get standardized access to over 230 datasets right out of the box.
  • Unified Preprocessing: Define your data cleaning, filtering, and splitting pipeline just once and apply it consistently across different models and frameworks.
  • Seamless Integration: OmniRec works with multiple state-of-the-art recommender system frameworks, including RecPack, RecBole, Lenskit, and Elliot.
  • Extensible by Design: Its modular architecture allows you to easily add new datasets, custom preprocessing steps, or interfaces to other frameworks.

Architecture

OmniRec's power comes from its simple yet flexible architecture, which is organized into four interconnected modules. This design enables a smooth end-to-end workflow from loading data to evaluating model performance.

Diagram showing the OmniRec architecture

Click here to download the PDF.

The OmniRec architecture, showing its four main components and the experimental workflow.

Here’s a brief look at each component:

1. Data Loader

The Data Loader is your starting point. It provides a simple way to load any of the registered datasets or even your own custom data. To ensure consistency, it performs initial preparations like removing duplicate interactions and normalizing user and item identifiers. It also exposes key dataset statistics, which are crucial for analysis and reproducible reporting.

2. Preprocessing Pipeline

Once your data is loaded, the Preprocessing Pipeline applies all the transformations you need. You can easily perform common operations such as:

  • Subsampling and k-core filtering
  • Converting explicit feedback (e.g., ratings) to implicit feedback (e.g., clicks)
  • Splitting data into training and testing sets using various strategies like random holdout, time-based holdout, or cross-validation.

The best part is that this pipeline is completely customizable, so you can add your own functions with minimal effort.

3. Recommender Interface

This is where the magic of interoperability happens. The Recommender Interface takes your preprocessed data and seamlessly exports it to widely-used recommender frameworks like Lenskit, RecPack, RecBole, and Elliot. This allows you to train models and generate predictions using the specific tools you need, all without having to rewrite your data preparation code. OmniRec even handles the Python environments for each library to solve dependency conflicts.

4. Evaluator

Finally, the Evaluator module provides a standardized way to assess your model's performance. It computes common ranking and rating-based metrics like nDCG@k, Recall@k, and RMSE. By centralizing the evaluation logic, OmniRec ensures that results are always comparable, no matter which underlying framework you used to train the model. All results can be stored with complete metadata, guaranteeing traceability and long-term reproducibility.

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

omnirec-1.0.0.tar.gz (767.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omnirec-1.0.0-py3-none-any.whl (97.5 kB view details)

Uploaded Python 3

File details

Details for the file omnirec-1.0.0.tar.gz.

File metadata

  • Download URL: omnirec-1.0.0.tar.gz
  • Upload date:
  • Size: 767.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for omnirec-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e07e4059e75e4aa2cf01d26f9e531219879dde36c4f179fb0774f924b4343a14
MD5 1dc044ce4064d0c8eee1b7043d18cc16
BLAKE2b-256 813c108a2a5c1cdb5b9fa3c91819803ea867170c3c75804d4eca336d535a4b2d

See more details on using hashes here.

File details

Details for the file omnirec-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: omnirec-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 97.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for omnirec-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b16603c2bf09f469fe6c8e07bae8558f2158a7f919f3e06e6dea341334c16a33
MD5 c30a5a7b2ff5dfd61f965ff6aa4af0ab
BLAKE2b-256 22e6dade33c578bcd669156bb3ee9c1dcf8118ca2fb1f581055120910416076a

See more details on using hashes here.

Supported by

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