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.1.1.tar.gz (709.4 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.1.1-py3-none-any.whl (66.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omnirec-0.1.1.tar.gz
  • Upload date:
  • Size: 709.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.13

File hashes

Hashes for omnirec-0.1.1.tar.gz
Algorithm Hash digest
SHA256 000a9017a327bd9fd598eebe6d42cd857102e023c43b06e313b4ebd776b4ac66
MD5 6800a7602b82e1937e23f79821d1400c
BLAKE2b-256 098fec7ff62243898da44eb5be0b4b3372a51b0dcff0ed094602116d63f2ce3e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: omnirec-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 66.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.13

File hashes

Hashes for omnirec-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ee9936f8e99510f18e4d70036a9f74c3f766d6ef756e4cbd6421c51b147c5ca
MD5 94dbf141cc39b6b52fb3402655a02415
BLAKE2b-256 c823ea369d809661c2f3a7b3d05788d08b6f895e3525d6e5a62c24fbc1727e78

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