Code Monkey home page Code Monkey logo

openrec's Introduction



Docs

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.

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

Use download_dataset.sh script.

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



openrec's People

Contributors

ylongqi avatar ebagdasa avatar whongyi avatar kellywang95 avatar christinatsan avatar christycui avatar

Watchers

Shafi Ahmed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.