ylongqi / openrec

OpenRec is an open-source and modular library for neural network-inspired recommendation algorithms
http://www.openrec.ai
Apache License 2.0
412 stars 85 forks source link
deep-learning deep-neural-networks machine-learning ml recommendation recommendation-algorithm recommendation-system


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:

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.

Installation

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

Dataset download

All datasets can be downloaded from Google drive here.

Get started

How to cite

@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}
}

License

Apache License 2.0

Funders