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!
Make sure you have TensorFlow 2.x and DeepCTR installed, and install from pip
:
pip install keras-recommenders
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)
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.
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.
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) |