keras-recommenders

recommenders based Keras

APACHE-2.0 License

Downloads
43
Stars
5

Keras Recommenders

Keras Recommenders is a library for building recommender system models using Keras.

It was developed with a focus on enabling fast experimentation on recommender system.

It's built on Keras and aims to have a gentle learning curve in recommender models.

Note: Currently, Keras-recommenders is only support multi task learning framework, more models is preparing!

Welcome to join us!

Installation

Make sure you have TensorFlow 2.x and DeepCTR installed, and install from pip:

pip install keras-recommenders

Quick Start

from keras_recommenders.ple import PLE 

model = PLE(dnn_feature_columns, num_tasks=2, task_types=['binary', 'regression'], 
            task_names=['task 1','task 2'], num_levels=2, num_experts_specific=8,
            num_experts_shared=4, expert_dnn_units=[64,64], gate_dnn_units=[16,16],
            tower_dnn_units_lists=[[32,32],[32,32]])

model.compile("adam", loss=["binary_crossentropy", "mean_squared_error"], metrics=['AUC','mae'])

model.fit(X_train, [y_task1, y_task2], batch_size=256, epochs=5, verbose=2)

y_pred = model.predict(X_test, batch_size=256)


Multi-task Learning Models for Recommender Systems

Currently this project is developed based on DeepCTR :https://github.com/shenweichen/DeepCTR.

You can easy to use the code to design your multi task learning model for multi regression or classification tasks.

Example 1

Dataset: http://archive.ics.uci.edu/ml/machine-learning-databases/adult/

Task 1: (Classification) aims to predict whether the income exceeds 50K.

Task 2: (Classification) aims to predict this person’s marital status is never married.

Example 2

Dataset: https://archive.ics.uci.edu/ml/machine-learning-databases/census-income-mld/

Preparing

Model Description Paper
Shared-Bottom shared-bottom Multitask learning(1998)
ESMM Entire Space Multi-Task Model Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate(SIGIR'18)
MMoE Multi-gate Mixture-of-Experts Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts(KDD'18)
CGC Customized Gate Control Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations(RecSys '20)
PLE Progressive Layered Extraction Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations(RecSys '20)

Shared-Bottom & MMOE

ESMM

CGC

PLE

Package Rankings
Top 25.38% on Pypi.org
Related Projects