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-0.2.0.tar.gz (731.3 kB view details)

Uploaded Source

Built Distribution

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

omnirec-0.2.0-py3-none-any.whl (85.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omnirec-0.2.0.tar.gz
  • Upload date:
  • Size: 731.3 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-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b5476767585d472e04e1640cc9add3e1371b9ff5ad9c69429285ea12317fd2a9
MD5 fa3cb8fab6bdab8fe9b2784044d4847c
BLAKE2b-256 26c59f646dec1110f3f515912cb7e4b87386a3fee8767df8f82b11bdb898096e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: omnirec-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 85.4 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-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af3705dc5d790fcfa093e1ed190535e99c2ac16e0012064f01644a61abc0c8b3
MD5 a1b503c71f217d1e68b93b377580d1ca
BLAKE2b-256 7f1546e98392090c10b2c81ce5cab16f7960695a43ba35c47d7d1672a1e07c23

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