OpenRec is an open-source and modular library for neural network-inspired recommendation algorithms. Each recommender is modeled as a computational graph that consists of a structured ensemble of reusable modules connected through a set of well-defined interfaces. OpenRec is built to ease the process of extending and adapting state-of-the-art neural recommenders to heterogeneous recommendation scenarios, where different users', items', and contextual data sources need to be incorporated.
For the structure and the design philosophy of OpenRec, please refer to the following paper published in WSDM'18:
Longqi Yang, Eugene Bagdasaryan, Joshua Gruenstein, Cheng-Kang Hsieh, and Deborah Estrin. 2018. OpenRec: A Modular Framework for Extensible and Adaptable Recommendation Algorithms. In Proceedings of WSDM’18, February 5–9, 2018, Marina Del Rey, CA, USA.
2020-02-17 OpenRec now uses Tensorflow 2.0 by default. Supports for Tensorflow 1.x are deprecated (all prior APIs have been moved to openrec.tf1
). Currently supported recommendation algorithms include:
openrec.tf2.recommenders.BPR
): Bayesian Personalized Ranking (Rendle et al., 2009)openrec.tf2.recommenders.WRMF
): Weighted Regularized Matrix Factorization (Hu et al., 2008)openrec.tf2.recommenders.UCML
): Collaborative Metric Learning with uniformly sampled triplets (Hsieh et al., 2017)openrec.tf2.recommenders.GMF
): Generalized Matrix Factorization, a.k.a., Neural Collaborative Filtering (He et al., 2017)openrec.tf2.recommenders.DLRM
): Deep Learning Recommendation Model, developed by Facebook (Naumov et al., 2019)2019-07-12 OpenRec is being migrated to Tensorflow 2.0. Major changes to expect:
To get things started, we introduce OpenRec (Tensorflow 2.0) implementations of deep learning recommendation model (DLRM). Check out tf2_examples/dlrm_criteo.py
.
To experiment with these new features, do pip3 install .
inside the repo and then import openrec.tf2
. You need to have Tensorflow 2.0 installed (Follow the instructions here).
More examples, tutorials and documents will be available soon. Check out tf2_examples/
.
2018-08-31 Introducing new modular interfaces for OpenRec. Major changes:
More recommenders, examples, documents and tutorials are under development. Please checkout following events where we will present OpenRec new features:
Strata Data Conference 2018: https://conferences.oreilly.com/strata/strata-ny/public/schedule/detail/68280
Recsys 2018: https://recsys.acm.org/recsys18/tutorials/#content-tab-1-1-tab
To use original openrec, simply import openrec.legacy
.
Before installing OpenRec, please install TensorFlow backend (GPU version is recommended).
pip install openrec
First, clone OpenRec using git
:
git clone https://github.com/ylongqi/openrec
Then, cd
to the OpenRec folder and run the install command:
cd openrec
python setup.py install
All datasets can be downloaded from Google drive here.
@inproceedings{yang2018openrec,
title={OpenRec: A Modular Framework for Extensible and Adaptable Recommendation Algorithms},
author={Yang, Longqi and Bagdasaryan, Eugene and Gruenstein, Joshua and Hsieh, Cheng-Kang and Estrin, Deborah},
booktitle={Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining},
year={2018},
organization={ACM}
}