Learning an Adaptive Meta Model-Generator for Incrementally Updating Recommender Systems

Related tags

Deep LearningASMG
Overview

Learning an Adaptive Meta Model-Generator for Incrementally Updating Recommender Systems

This is our experimental code for RecSys 2021 paper "Learning an Adaptive Meta Model-Generator for Incrementally Updating Recommender Systems".

The paper is available here.
The video is available here.
The slide is available here.

Requirements

tensorflow 1.4.0
pandas
numpy

GPUs with memory >= 10GB

Data Preprocessing

The raw data can be obtained from:
Tmall Data data_format1
Sobazaar Data Data > Sobazaar-hashID.csv.gz
MovieLens Data ml-25m

To preprocess the above raw data, save them in the raw_data folder under the root directory, and do

cd preproc
python tmall_preproc.py
python soba_preproc.py
python ml_preproc.py

The preprocessed datasets will be saved in the datasets folder for later use.

Pretraining

To simulate the real-world applications, the first 10 periods of dataset are used to pretrain an initial Embedding&MLP base model, and all the compared model updating methods will restore from the same pretrained model.

To pretrain a model for Tmall/Sobazaar/MovieLens, do

cd Tmall/pretrain
python train_tmall.py

cd Sobazaar/pretrain
python train_soba.py

cd MovieLens/pretrain
python train_ml.py

The pretrained base model will be saved in Tmall/pretrain/ckpts, Sobazaar/pretrain/ckpts and MovieLens/pretrain/ckpts respectively.

All the hyper-parameters can be easily configured in train_config at the beginning of each entry file (i.e., train_xxx.py).

Note: pretraining must be done before conducting any model updating method.

Baselines and Variants

All the compared model updating methods for a specific dataset are contained in the folder named by that dataset.

Our proposed method:
ASMGgru_multi

Baseline methods:
IU
BU
SPMF
IncCTR
SML
SMLmf

Variants of ASMGgru_multi:
ASMGgru_zero
ASMGgru_full
ASMGgru_single
(we do not create a separate folder for ASMGgru_uniform, as it can be easily implemented in ASMGgru_multi, see the code for more details)

To perform any of the ASMGgru methods, we need to first conduct a run of IU to generate the input model sequence.

For example, to perform a run of IU experiment for Tmall, do

cd Tmall/IU
python train_tmall.py

Then we can proceed to perform any of the ASMGgru methods

cd Tmall/ASMGgru_multi
python train_tmall.py

Other model updating methods can be conducted on their own without any pre-requisite.

Note that for SMLmf, since it is based on a different base model (i.e., Matrix Factorization), additional pretraining needs to be performed for this method.

cd Tmall/SMLmf/pretrain
python train_tmall.py

Then

cd Tmall/SMLmf/SML
python train_tmall.py

All the hyper-parameters can be easily configured in train_config at the beginning of each entry file (i.e., train_xxx.py).

The evaluation results can be found from the path with the following format:

/ /ckpts/ / /test_metrics.txt

where is configured in train_config of the entry file, containing some essential hyper-parameter settings, and by default is date20141030 for Tmall and period30 for MovieLens and Sobazaar.

Here are some examples of the possible paths that the evaluation results may reside:

Tmall/ASMGgru_multi/ckpts/ASMGgru_multi_linear_train11-23_test24-30_4emb_4mlp_1epoch_3_0.01/date20141030/test_metrics.txt

MovieLens/IU/ckpts/IU_train11-23_test24-30_1epoch_0.001/period30/test_metrics.txt

Citation

If you find this repo useful in your research, please cite the following:

@inproceedings{peng2021learning,
  title={Learning an Adaptive Meta Model-Generator for Incrementally Updating Recommender Systems},
  author={Peng, Danni and Pan, Sinno Jialin and Zhang, Jie and Zeng, Anxiang},
  booktitle={Fifteenth ACM Conference on Recommender Systems},
  pages={411--421},
  year={2021}
}
Official implementation of the ICCV 2021 paper "Conditional DETR for Fast Training Convergence".

The DETR approach applies the transformer encoder and decoder architecture to object detection and achieves promising performance. In this paper, we handle the critical issue, slow training convergen

281 Dec 30, 2022
Implementation of CSRL from the AAAI2022 paper: Constraint Sampling Reinforcement Learning: Incorporating Expertise For Faster Learning

CSRL Implementation of CSRL from the AAAI2022 paper: Constraint Sampling Reinforcement Learning: Incorporating Expertise For Faster Learning Python: 3

4 Apr 14, 2022
How to Train a GAN? Tips and tricks to make GANs work

(this list is no longer maintained, and I am not sure how relevant it is in 2020) How to Train a GAN? Tips and tricks to make GANs work While research

Soumith Chintala 10.8k Dec 31, 2022
Deep Two-View Structure-from-Motion Revisited

Deep Two-View Structure-from-Motion Revisited This repository provides the code for our CVPR 2021 paper Deep Two-View Structure-from-Motion Revisited.

Jianyuan Wang 145 Jan 06, 2023
Code for EMNLP 2021 paper: "Learning Implicit Sentiment in Aspect-based Sentiment Analysis with Supervised Contrastive Pre-Training"

SCAPT-ABSA Code for EMNLP2021 paper: "Learning Implicit Sentiment in Aspect-based Sentiment Analysis with Supervised Contrastive Pre-Training" Overvie

Zhengyan Li 66 Dec 04, 2022
PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning"

PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning".

Berivan Isik 8 Dec 08, 2022
Graph Posterior Network: Bayesian Predictive Uncertainty for Node Classification (NeurIPS 2021)

Graph Posterior Network This is the official code repository to the paper Graph Posterior Network: Bayesian Predictive Uncertainty for Node Classifica

Maximilian Stadler 30 Dec 05, 2022
Semantic Segmentation Suite in TensorFlow

Semantic Segmentation Suite in TensorFlow. Implement, train, and test new Semantic Segmentation models easily!

George Seif 2.5k Jan 06, 2023
Code for paper "Multi-level Disentanglement Graph Neural Network"

Multi-level Disentanglement Graph Neural Network (MD-GNN) This is a PyTorch implementation of the MD-GNN, and the code includes the following modules:

Lirong Wu 6 Dec 29, 2022
YOLOv2 in PyTorch

YOLOv2 in PyTorch NOTE: This project is no longer maintained and may not compatible with the newest pytorch (after 0.4.0). This is a PyTorch implement

Long Chen 1.5k Jan 02, 2023
Controlling the MicriSpotAI robot from scratch

Abstract: The SpotMicroAI project is designed to be a low cost, easily built quadruped robot. The design is roughly based off of Boston Dynamics quadr

Florian Wilk 405 Jan 05, 2023
AugMix: A Simple Data Processing Method to Improve Robustness and Uncertainty

AugMix Introduction We propose AugMix, a data processing technique that mixes augmented images and enforces consistent embeddings of the augmented ima

Google Research 876 Dec 17, 2022
A benchmark dataset for mesh multi-label-classification based on cube engravings introduced in MeshCNN

Double Cube Engravings This script creates a dataset for multi-label mesh clasification, with an intentionally difficult setup for point cloud classif

Yotam Erel 1 Nov 30, 2021
Attentive Implicit Representation Networks (AIR-Nets)

Attentive Implicit Representation Networks (AIR-Nets) Preprint | Supplementary | Accepted at the International Conference on 3D Vision (3DV) teaser.mo

29 Dec 07, 2022
3ds-Ghidra-Scripts - Ghidra scripts to help with 3ds reverse engineering

3ds Ghidra Scripts These are ghidra scripts to help with 3ds reverse engineering

Zak 7 May 23, 2022
Async API for controlling Hue Lights

Hue API Async API for controlling Hue Lights Documentation: hue-api.nirantak.com Source: github.com/nirantak/hue-api Installation This is an async cli

Nirantak Raghav 4 Nov 16, 2022
This is the official PyTorch implementation for "Mesa: A Memory-saving Training Framework for Transformers".

Mesa: A Memory-saving Training Framework for Transformers This is the official PyTorch implementation for Mesa: A Memory-saving Training Framework for

Zhuang AI Group 105 Dec 06, 2022
Racing line optimization algorithm in python that uses Particle Swarm Optimization.

Racing Line Optimization with PSO This repository contains a racing line optimization algorithm in python that uses Particle Swarm Optimization. Requi

Parsa Dahesh 6 Dec 14, 2022
A map update dataset and benchmark

MUNO21 MUNO21 is a dataset and benchmark for machine learning methods that automatically update and maintain digital street map datasets. Previous dat

16 Nov 30, 2022
Leaf: Multiple-Choice Question Generation

Leaf: Multiple-Choice Question Generation Easy to use and understand multiple-choice question generation algorithm using T5 Transformers. The applicat

Kristiyan Vachev 62 Dec 20, 2022