Coder Social home page Coder Social logo

afcarl / samantha Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grouplens/samantha

0.0 0.0 0.0 3.92 MB

Samantha - A generic recommender and predictor server

Home Page: https://grouplens.github.io/samantha/

License: MIT License

Java 93.18% Scala 0.26% HTML 0.18% CSS 0.01% JavaScript 0.16% Python 6.22%

samantha's Introduction

What is Samantha

  • A generic recommender and predictor server for both offline machine learning and recommendation modeling and fast online production serving.
  • MIT licence, oriented to production use (online field experiments in research and typical industrial use)

What Samantha Can Do

  • Full-fledged, self-contained server that can be used in production right away with one configuration file, including the following components
  • Data management, including offline and online, in (indexing) and out (post-processing), through configurable backends of most relational databases (e.g. MySQL, PostresSQL, SQLServer etc.), ElasticSearch or Redis.
  • Model management, including online updating, building, loading, dumping and serving.
  • Data processing pipeline based on a data expanding and feature extraction framework
  • State-of-the-art models: collaborative filtering, matrix factorization, knn, trees, boosting and bandits/reinforcement learning
  • Experimental framework for randomized A/B and bucket testing
  • Feedback (for online learning/optimization) and evaluation (for experimenting) loops among application front-end, application back-end server and Samantha
  • Abstracted model parameter server (through extensible variable and index spaces)
  • Generic oracle-based optimization framework/solver with classic solvers
  • Flexible model dependency, e.g. model ensemble, stacking, boosting
  • Schedulers for regular model rebuilding or backup
  • Integration with other state-of-the-art systems including XGBoost and TensorFlow.
  • Control and customize all these components through one centralized configuration file

The Targeted Users of Samantha

  • Individuals or organizations who want to deploy a data-driven predictive system with minimum effort. They might need it to support answering relevant research questions involving an intelligent predictive part in their system or just to have an initial try to see the effects of such a predictive component.
  • Individuals or organizations who are working on comparing and developing new machine learning or recommendation models or algorithms, especially those who care about deploying their models/algorithms into production and evaluate them in front of end users

Documentation

Introduction

Setup

Java API of the Server

Citation

  • Qian Zhao. 2018. User-Centric Design and Evaluation of Online Interactive Recommender Systems. Ph.D. Thesis. University of Minnesota.

Note

  • Samantha is a project developed by Qian Zhao, Ph.D. at GroupLens Research lab (graduated on May 2018) and originated from his research projects there. Samantha might be integrated with Lenskit in future.

For the paper GB-CENT

  • The experiments were run with Samantha in: Qian Zhao, Yue Shi, Liangjie Hong. GB-CENT: Gradient Boosted Categorical Embedding and Numerical Trees. In Proceedings of the 26th International World Wide Web conference (WWW 2017), ACM, 2017.
  • Go to branch qian/gbcent, docs/README.md for details

samantha's People

Contributors

qian2015 avatar taavi223 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.