All Projects → ylongqi → Openrec

ylongqi / Openrec

Licence: apache-2.0
OpenRec is an open-source and modular library for neural network-inspired recommendation algorithms

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Openrec

Niftynet
[unmaintained] An open-source convolutional neural networks platform for research in medical image analysis and image-guided therapy
Stars: ✭ 1,276 (+254.44%)
Mutual labels:  deep-neural-networks, ml
Andrew Ng Notes
This is Andrew NG Coursera Handwritten Notes.
Stars: ✭ 180 (-50%)
Mutual labels:  deep-neural-networks, ml
Onnx
Open standard for machine learning interoperability
Stars: ✭ 11,829 (+3185.83%)
Mutual labels:  deep-neural-networks, ml
Ludwig
Data-centric declarative deep learning framework
Stars: ✭ 8,018 (+2127.22%)
Mutual labels:  deep-neural-networks, ml
Ml Examples
Arm Machine Learning tutorials and examples
Stars: ✭ 207 (-42.5%)
Mutual labels:  deep-neural-networks, ml
Caffe2
Caffe2 is a lightweight, modular, and scalable deep learning framework.
Stars: ✭ 8,409 (+2235.83%)
Mutual labels:  deep-neural-networks, ml
Djl
An Engine-Agnostic Deep Learning Framework in Java
Stars: ✭ 2,262 (+528.33%)
Mutual labels:  deep-neural-networks, ml
Serving
A flexible, high-performance serving system for machine learning models
Stars: ✭ 5,306 (+1373.89%)
Mutual labels:  deep-neural-networks, ml
Oneflow
OneFlow is a performance-centered and open-source deep learning framework.
Stars: ✭ 2,868 (+696.67%)
Mutual labels:  deep-neural-networks, ml
Chameleon recsys
Source code of CHAMELEON - A Deep Learning Meta-Architecture for News Recommender Systems
Stars: ✭ 202 (-43.89%)
Mutual labels:  deep-neural-networks, recommendation-system
Skater
Python Library for Model Interpretation/Explanations
Stars: ✭ 973 (+170.28%)
Mutual labels:  deep-neural-networks, ml
Tensorflow
An Open Source Machine Learning Framework for Everyone
Stars: ✭ 161,335 (+44715.28%)
Mutual labels:  deep-neural-networks, ml
Mnn
MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
Stars: ✭ 6,284 (+1645.56%)
Mutual labels:  deep-neural-networks, ml
Dltk
Deep Learning Toolkit for Medical Image Analysis
Stars: ✭ 1,249 (+246.94%)
Mutual labels:  deep-neural-networks, ml
Ffdl
Fabric for Deep Learning (FfDL, pronounced fiddle) is a Deep Learning Platform offering TensorFlow, Caffe, PyTorch etc. as a Service on Kubernetes
Stars: ✭ 640 (+77.78%)
Mutual labels:  deep-neural-networks, ml
Deephyper
DeepHyper: Scalable Asynchronous Neural Architecture and Hyperparameter Search for Deep Neural Networks
Stars: ✭ 117 (-67.5%)
Mutual labels:  deep-neural-networks, ml
Compression
Data compression in TensorFlow
Stars: ✭ 458 (+27.22%)
Mutual labels:  deep-neural-networks, ml
Tfmesos
Tensorflow in Docker on Mesos #tfmesos #tensorflow #mesos
Stars: ✭ 194 (-46.11%)
Mutual labels:  deep-neural-networks, ml
Darkon
Toolkit to Hack Your Deep Learning Models
Stars: ✭ 231 (-35.83%)
Mutual labels:  deep-neural-networks, ml
mildnet
Visual Similarity research at Fynd. Contains code to reproduce 2 of our research papers.
Stars: ✭ 76 (-78.89%)
Mutual labels:  ml, 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:

  • BPR (openrec.tf2.recommenders.BPR): Bayesian Personalized Ranking (Rendle et al., 2009)
  • WRMF (openrec.tf2.recommenders.WRMF): Weighted Regularized Matrix Factorization (Hu et al., 2008)
  • UCML (openrec.tf2.recommenders.UCML): Collaborative Metric Learning with uniformly sampled triplets (Hsieh et al., 2017)
  • GMF (openrec.tf2.recommenders.GMF): Generalized Matrix Factorization, a.k.a., Neural Collaborative Filtering (He et al., 2017)
  • DLRM (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:

  • All OpenRec modules will be compatible with tf.keras.layers.Layer, so that they can be used seamlessly with any Tensorflow 2.0 code base.
  • All OpenRec models will be compatible with tf.keras.Model.
  • All input data pipelines will be compatible with tf.data.Dataset but are made much more friendly for recommendation models.
  • Minimizing boilerplate while keeping the modularity and adaptability of OpenRec.

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:

  • A new paradigm for defining, extending, and building recommenders.
    • Remove boilerplate class structure of recommenders.
    • Introduce a macro-based recommender construction paradigm.
    • Disentangle module construction and connection.
    • Support module construction directly using Tensorflow and Keras APIs.
  • A more efficient and customizable pipeline for recommender training and evaluation.
    • A new Dataset class for complex data input.
    • A customizable ModelTrainer handling complex training/evaluation scenarios.
    • Caching mechanism to speed up evaluation of complex recommenders.
  • Provide model training and evaluation examples for new interfaces.

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).

  • Install OpenRec from PyPI (recommended):
pip install openrec
  • Install OpenRec from source code:

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



Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].