ToR[e]cSys is a PyTorch Framework to implement recommendation system algorithms

Overview

ToR[e]cSys


News

It is happy to know the new package of Tensorflow Recommenders.


ToR[e]cSys is a PyTorch Framework to implement recommendation system algorithms, including but not limited to click-through-rate (CTR) prediction, learning-to-ranking (LTR), and Matrix/Tensor Embedding. The project objective is to develop a ecosystem to experiment, share, reproduce, and deploy in real world in a smooth and easy way (Hope it can be done).

Installation

TBU

Documentation

The complete documentation for ToR[e]cSys is available via ReadTheDocs website.
Thank you for ReadTheDocs! You are the best!

Implemented Models

1. Subsampling

Model Name Research Paper Year
Word2Vec Omer Levy et al, 2015. Improving Distributional Similarity with Lessons Learned from Word Embeddings 2015

2. Negative Sampling

Model Name Research Paper Year
TBU

3. Click through Rate (CTR) Model

Model Name Research Paper Year
Logistic Regression / /
Factorization Machine Steffen Rendle, 2010. Factorization Machine 2010
Factorization Machine Support Neural Network Weinan Zhang et al, 2016. Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction 2016
Field-Aware Factorization Machine Yuchin Juan et al, 2016. Field-aware Factorization Machines for CTR Prediction 2016
Product Neural Network Yanru QU et al, 2016. Product-based Neural Networks for User Response Prediction 2016
Attentional Factorization Machine Jun Xiao et al, 2017. Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks 2017
Deep and Cross Network Ruoxi Wang et al, 2017. Deep & Cross Network for Ad Click Predictions 2017
Deep Factorization Machine Huifeng Guo et al, 2017. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
Neural Collaborative Filtering Xiangnan He et al, 2017. Neural Collaborative Filtering 2017
Neural Factorization Machine Xiangnan He et al, 2017. Neural Factorization Machines for Sparse Predictive Analytics 2017
eXtreme Deep Factorization Machine Jianxun Lian et al, 2018. xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems 2018
Deep Field-Aware Factorization Machine Junlin Zhang et al, 2019. FAT-DeepFFM: Field Attentive Deep Field-aware Factorization Machine 2019
Deep Matching Correlation Prediction Wentao Ouyang et al, 2019. Representation Learning-Assisted Click-Through Rate Prediction 2019
Deep Session Interest Network Yufei Feng et al, 2019. Deep Session Interest Network for Click-Through Rate Prediction 2019
Elaborated Entire Space Supervised Multi Task Model Hong Wen et al, 2019. Conversion Rate Prediction via Post-Click Behaviour Modeling 2019
Entire Space Multi Task Model Xiao Ma et al, 2019. Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate 2019
Field Attentive Deep Field Aware Factorization Machine Junlin Zhang et al, 2019. FAT-DeepFFM: Field Attentive Deep Field-aware Factorization Machine 2019
Position-bias aware learning framework Huifeng Guo et al, 2019. PAL: a position-bias aware learning framework for CTR prediction in live recommender systems 2019

4. Embedding Model

Model Name Research Paper Year
Matrix Factorization / /
Starspace Ledell Wu et al, 2017 StarSpace: Embed All The Things! 2017

5. Learning-to-Rank (LTR) Model

Model Name Research Paper Year
Personalized Re-ranking Model Changhua Pei et al, 2019. Personalized Re-ranking for Recommendation 2019

Getting Started

There are several ways using ToR[e]cSys to develop a Recommendation System. Before talking about them, we first need to discuss about components of ToR[e]cSys.

A model in ToR[e]cSys is constructed by two parts mainly: inputs and model, and they will be wrapped into a sequential module (torecsys.models.sequential) to be trained by Trainer (torecsys.trainer.Trainer). \

For inputs module (torecsys.inputs), it will handle most kinds of inputs in recommendation system, like categorical features, images, etc, with several kinds of methods, including token embedding, pre-trained image models, etc.

For models module (torecsys.models), it will implement some famous models in recommendation system, like Factorization Machine family. I hope I can make the library rich. To construct a model in the module, in addition to the modules implemented in PyTorch, I will also implement some layers in torecsys.layers which are called by models usually.

After the explanation of ToR[e]cSys, let's move on to the Getting Started. We can use ToR[e]cSys in the following ways:

  1. Run by command-line (In development)

    
    

torecsys build --inputs_config='{}'
--model_config='{"method":"FM", "embed_size": 8, "num_fields": 2}'
--regularizer_config='{"weight_decay": 0.1}'
--criterion_config='{"method": "MSELoss"}'
--optimizer_config='{"method": "SGD", "lr": "0.01"}'
... ```

  1. Run by class method

    
    

import torecsys as trs

build trainer by class method

trainer = trs.trainer.Trainer()
.bind_objective("CTR")
.set_inputs()
.set_model(method="FM", embed_size=8, num_fields=2)
.set_sequential()
.set_regularizer(weight_decay=0.1)
.build_criterion(method="MSELoss")
.build_optimizer(method="SGD", lr="0.01")
.build_loader(name="train", ...)
.build_loader(name="eval", ...)
.set_target_fields("labels")
.set_max_num_epochs(10)
.use_cuda()

start to fit the model

trainer.fit() ```

  1. Run like PyTorch Module

    
    

import torch import torch.nn as nn import torecsys as trs

some codes here

inputs = trs.inputs.InputsWrapper(schema=schema) model = trs.models.FactorizationMachineModel(embed_size=8, num_fields=2)

for i in range(epochs): optimizer.zero_grad() outputs = model(**inputs(batches)) loss = criterion(outputs, labels) loss.backward() optimizer.step() ```

(In development) You can anyone you like to train a Recommender System and serve it in the following ways:

  1. Run by command-line

    > torecsys serve --load_from='{}'
  2. Run by class method

    
    

import torecsys as trs

serving = trs.serving.Model()
.load_from(filepath=filepath) .run() ```

  1. Serve it yourself

    
    

from flask import Flask, request import torecsys as trs

model = trs.serving.Model()
.load_from(filepath=filepath)

@app.route("/predict") def predict(): args = request.json inference = model.predict(args) return inference, 200

if name == "main": app.run() ```

For further details, please refer to the example in repository or read the documentation. Hope you enjoy~

Examples

TBU

Sample Codes

TBU

Sample of Experiments

TBU

Authors

License

ToR[e]cSys is MIT-style licensed, as found in the LICENSE file.

E-Commerce recommender demo with real-time data and a graph database

🔍 E-Commerce recommender demo 🔍 This is a simple stream setup that uses Memgraph to ingest real-time data from a simulated online store. Data is str

g-despot 3 Feb 23, 2022
This is our Tensorflow implementation for "Graph-based Embedding Smoothing for Sequential Recommendation" (GES) (TKDE, 2021).

Graph-based Embedding Smoothing (GES) This is our Tensorflow implementation for the paper: Tianyu Zhu, Leilei Sun, and Guoqing Chen. "Graph-based Embe

Tianyu Zhu 15 Nov 29, 2022
Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk

Annoy Annoy (Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python bindings to search for points in space that are close to a given quer

Spotify 10.6k Jan 01, 2023
Group-Buying Recommendation for Social E-Commerce

Group-Buying Recommendation for Social E-Commerce This is the official implementation of the paper Group-Buying Recommendation for Social E-Commerce (

Jun Zhang 37 Nov 28, 2022
Bundle Graph Convolutional Network

Bundle Graph Convolutional Network This is our Pytorch implementation for the paper: Jianxin Chang, Chen Gao, Xiangnan He, Depeng Jin and Yong Li. Bun

55 Dec 25, 2022
A recommendation system for suggesting new books given similar books.

Book Recommendation System A recommendation system for suggesting new books given similar books. Datasets Dataset Kaggle Dataset Notebooks goodreads-E

Sam Partee 2 Jan 06, 2022
A movie recommender which recommends the movies belonging to the genre that user has liked the most.

Content-Based-Movie-Recommender-System This model relies on the similarity of the items being recommended. (I have used Pandas and Numpy. However othe

Srinivasan K 0 Mar 31, 2022
A framework for large scale recommendation algorithms.

A framework for large scale recommendation algorithms.

Alibaba Group - PAI 880 Jan 03, 2023
A Python implementation of LightFM, a hybrid recommendation algorithm.

LightFM Build status Linux OSX (OpenMP disabled) Windows (OpenMP disabled) LightFM is a Python implementation of a number of popular recommendation al

Lyst 4.2k Jan 02, 2023
基于个性化推荐的音乐播放系统

MusicPlayer 基于个性化推荐的音乐播放系统 Hi, 这是我在大四的时候做的毕设,现如今将该项目开源。 本项目是基于Python的tkinter和pygame所著。 该项目总体来说,代码比较烂(因为当时水平很菜)。 运行的话安装几个基本库就能跑,只不过里面的数据还没有上传至Github。 先

Cedric Niu 6 Nov 19, 2022
Learning Fair Representations for Recommendation: A Graph-based Perspective, WWW2021

FairGo WWW2021 Learning Fair Representations for Recommendation: A Graph-based Perspective As a key application of artificial intelligence, recommende

lei 39 Oct 26, 2022
QRec: A Python Framework for quick implementation of recommender systems (TensorFlow Based)

QRec is a Python framework for recommender systems (Supported by Python 3.7.4 and Tensorflow 1.14+) in which a number of influential and newly state-of-the-art recommendation models are implemented.

Yu 1.4k Dec 27, 2022
Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recommender Systems

DANSER-WWW-19 This repository holds the codes for Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recom

Qitian Wu 78 Dec 10, 2022
Self-supervised Graph Learning for Recommendation

SGL This is our Tensorflow implementation for our SIGIR 2021 paper: Jiancan Wu, Xiang Wang, Fuli Feng, Xiangnan He, Liang Chen, Jianxun Lian,and Xing

151 Dec 20, 2022
Books Recommendation With Python

Books-Recommendation Business Problem During the last few decades, with the rise

Çağrı Karadeniz 7 Mar 12, 2022
Code for ICML2019 Paper "Compositional Invariance Constraints for Graph Embeddings"

Dependencies NOTE: This code has been updated, if you were using this repo earlier and experienced issues that was due to an outaded codebase. Please

Avishek (Joey) Bose 43 Nov 25, 2022
大规模推荐算法库,包含推荐系统经典及最新算法LR、Wide&Deep、DSSM、TDM、MIND、Word2Vec、DeepWalk、SSR、GRU4Rec、Youtube_dnn、NCF、GNN、FM、FFM、DeepFM、DCN、DIN、DIEN、DLRM、MMOE、PLE、ESMM、MAML、xDeepFM、DeepFEFM、NFM、AFM、RALM、Deep Crossing、PNN、BST、AutoInt、FGCNN、FLEN、ListWise等

(中文文档|简体中文|English) 什么是推荐系统? 推荐系统是在互联网信息爆炸式增长的时代背景下,帮助用户高效获得感兴趣信息的关键; 推荐系统也是帮助产品最大限度吸引用户、留存用户、增加用户粘性、提高用户转化率的银弹。 有无数优秀的产品依靠用户可感知的推荐系统建立了良好的口碑,也有无数的公司依

3.6k Dec 30, 2022
Recommender systems are the systems that are designed to recommend things to the user based on many different factors

Recommender systems are the systems that are designed to recommend things to the user based on many different factors. The recommender system deals with a large volume of information present by filte

Happy N. Monday 3 Feb 15, 2022
Spark-movie-lens - An on-line movie recommender using Spark, Python Flask, and the MovieLens dataset

A scalable on-line movie recommender using Spark and Flask This Apache Spark tutorial will guide you step-by-step into how to use the MovieLens datase

Jose A Dianes 794 Dec 23, 2022
An open source movie recommendation WebApp build by movie buffs and mathematicians that uses cosine similarity on the backend.

Movie Pundit Find your next flick by asking the (almost) all-knowing Movie Pundit Jump to Project Source » View Demo · Report Bug · Request Feature Ta

Kapil Pramod Deshmukh 8 May 28, 2022