All Projects → zhenghaoz → Gorse

zhenghaoz / Gorse

Licence: apache-2.0
An open source recommender system service written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gorse

Spotify-Song-Recommendation-ML
UC Berkeley team's submission for RecSys Challenge 2018
Stars: ✭ 70 (-93.9%)
Mutual labels:  data-mining, collaborative-filtering, recommender-system
Recommendation Systems Paperlist
Papers about recommendation systems that I am interested in
Stars: ✭ 308 (-73.17%)
Mutual labels:  recommender-system, collaborative-filtering
Cornac
A Comparative Framework for Multimodal Recommender Systems
Stars: ✭ 308 (-73.17%)
Mutual labels:  recommender-system, collaborative-filtering
Newsrecommendsystem
个性化新闻推荐系统,A news recommendation system involving collaborative filtering,content-based recommendation and hot news recommendation, can be adapted easily to be put into use in other circumstances.
Stars: ✭ 557 (-51.48%)
Mutual labels:  recommender-system, collaborative-filtering
recommender
NReco Recommender is a .NET port of Apache Mahout CF java engine (standalone, non-Hadoop version)
Stars: ✭ 35 (-96.95%)
Mutual labels:  collaborative-filtering, recommender-system
Daisyrec
A developing recommender system in pytorch. Algorithm: KNN, LFM, SLIM, NeuMF, FM, DeepFM, VAE and so on, which aims to fair comparison for recommender system benchmarks
Stars: ✭ 280 (-75.61%)
Mutual labels:  recommender-system, collaborative-filtering
Neural graph collaborative filtering
Neural Graph Collaborative Filtering, SIGIR2019
Stars: ✭ 517 (-54.97%)
Mutual labels:  recommender-system, collaborative-filtering
BARS
Towards open benchmarking for recommender systems https://openbenchmark.github.io/BARS
Stars: ✭ 157 (-86.32%)
Mutual labels:  collaborative-filtering, recommender-system
Model Describer
model-describer : Making machine learning interpretable to humans
Stars: ✭ 22 (-98.08%)
Mutual labels:  data-mining, machinelearning
Recsys19 hybridsvd
Accompanying code for reproducing experiments from the HybridSVD paper. Preprint is available at https://arxiv.org/abs/1802.06398.
Stars: ✭ 23 (-98%)
Mutual labels:  recommender-system, collaborative-filtering
Recoder
Large scale training of factorization models for Collaborative Filtering with PyTorch
Stars: ✭ 46 (-95.99%)
Mutual labels:  recommender-system, collaborative-filtering
recsys spark
Spark SQL 实现 ItemCF,UserCF,Swing,推荐系统,推荐算法,协同过滤
Stars: ✭ 76 (-93.38%)
Mutual labels:  collaborative-filtering, recommender-system
Consimilo
A Clojure library for querying large data-sets on similarity
Stars: ✭ 54 (-95.3%)
Mutual labels:  recommender-system, collaborative-filtering
Summary Of Recommender System Papers
阅读过的推荐系统论文的归类总结,持续更新中…
Stars: ✭ 288 (-74.91%)
Mutual labels:  recommender-system, collaborative-filtering
Recommender-Systems-with-Collaborative-Filtering-and-Deep-Learning-Techniques
Implemented User Based and Item based Recommendation System along with state of the art Deep Learning Techniques
Stars: ✭ 41 (-96.43%)
Mutual labels:  collaborative-filtering, recommender-system
Rspapers
A Curated List of Must-read Papers on Recommender System.
Stars: ✭ 4,140 (+260.63%)
Mutual labels:  recommender-system, collaborative-filtering
BPR MPR
BPR, Bayesian Personalized Ranking (BPR), extremely convenient BPR & Multiple Pairwise Ranking
Stars: ✭ 77 (-93.29%)
Mutual labels:  collaborative-filtering, recommender-system
Recommender-System
In this code we implement and compared Collaborative Filtering algorithm, prediction algorithms such as neighborhood methods, matrix factorization-based ( SVD, PMF, SVD++, NMF), and many others.
Stars: ✭ 30 (-97.39%)
Mutual labels:  collaborative-filtering, recommender-system
Recsys2019 deeplearning evaluation
This is the repository of our article published in RecSys 2019 "Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches" and of several follow-up studies.
Stars: ✭ 780 (-32.06%)
Mutual labels:  recommender-system, collaborative-filtering
Elliot
Comprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation
Stars: ✭ 49 (-95.73%)
Mutual labels:  recommender-system, collaborative-filtering

Language: English | 中文

gorse: Go Recommender System Engine

Build Coverage Report GoDoc Document
build codecov Go Report Card GoDoc Build Docs

Gorse is an open source recommendation system written in Go. Gorse aims to be an universal open source recommender system that can be easily introduced into a wide variety of online services. By importing items, users and interaction data into Gorse, the system will automatically train models to generate recommendations for each user. Project features are as follows.

  • Supports multi-way matching (latest, popular, collaborative filtering based on matrix factorization) and FM-based personalized ranking.
  • Single node training, distributed prediction, and ability to achieve horizontal scaling in the recommendation phase.
  • Provide RESTful APIs for data CRUD and recommendation requests.
  • Provide CLI tools for data import and export, model tuning, and cluster status checking.

User Guide

Recommendation Principles

The process of Gorse recommending items consists of two phases, recall and sort. The recall phase finds a collection of candidate items from the whole set of items for subsequent sorting. Due to the large number of items, the recommendation system is unable to perform the computational workload of sorting all items, so the recall phase mainly uses some simple strategies or models to collect the candidate items. At present, the system has implemented three types of recall methods, namely "recent popular items", "latest items" and "collaborative filtering". The sorting stage sorts the recalled items by removing duplicate items and historical items, and the sorting stage combines the items and user characteristics to make recommendations with more accuracy.

System Architecture

Gorse is a single node training and distributed prediction recommender system. Gorse stores data in MySQL or MongoDB, with intermediate data cached in Redis. The cluster consists of a master node, multiple worker nodes, and server nodes. The master node is responsible for ranking model training, collaborative filtering model training, non-personalized item matching, configuration management, and membership management. The server node is responsible for exposing the RESTful APIs and online real-time recommendations. Worker nodes are responsible for personalized matching for each user - currently only collaborative filtering is supported. In addition, administrator can perform model tuning, data import and export, and system status checking via the CLI.

Contributors

Any kind of contribution is expected: report a bug, give a advice or even create a pull request.

Acknowledgments

gorse is inspired by following projects:

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