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}
}
Project for music generation system based on object tracking and CGAN

Project for music generation system based on object tracking and CGAN The project was inspired by MIDINet: A Convolutional Generative Adversarial Netw

1 Nov 21, 2021
[AAAI2022] Source code for our paper《Suppressing Static Visual Cues via Normalizing Flows for Self-Supervised Video Representation Learning》

SSVC The source code for paper [Suppressing Static Visual Cues via Normalizing Flows for Self-Supervised Video Representation Learning] samples of the

7 Oct 26, 2022
Repository for the AugmentedPCA Python package.

Overview This Python package provides implementations of Augmented Principal Component Analysis (AugmentedPCA) - a family of linear factor models that

Billy Carson 6 Dec 07, 2022
LWCC: A LightWeight Crowd Counting library for Python that includes several pretrained state-of-the-art models.

LWCC: A LightWeight Crowd Counting library for Python LWCC is a lightweight crowd counting framework for Python. It wraps four state-of-the-art models

Matija Teršek 39 Dec 28, 2022
OneFlow is a performance-centered and open-source deep learning framework.

OneFlow OneFlow is a performance-centered and open-source deep learning framework. Latest News Version 0.5.0 is out! First class support for eager exe

OneFlow 4.2k Jan 07, 2023
Repo for Photon-Starved Scene Inference using Single Photon Cameras, ICCV 2021

Photon-Starved Scene Inference using Single Photon Cameras ICCV 2021 Arxiv Project Video Bhavya Goyal, Mohit Gupta University of Wisconsin-Madison Abs

Bhavya Goyal 5 Nov 15, 2022
Koç University deep learning framework.

Knet Knet (pronounced "kay-net") is the Koç University deep learning framework implemented in Julia by Deniz Yuret and collaborators. It supports GPU

1.4k Dec 31, 2022
A U-Net combined with a variational auto-encoder that is able to learn conditional distributions over semantic segmentations.

Probabilistic U-Net + **Update** + An improved Model (the Hierarchical Probabilistic U-Net) + LIDC crops is now available. See below. Re-implementatio

Simon Kohl 498 Dec 26, 2022
Multimodal Descriptions of Social Concepts: Automatic Modeling and Detection of (Highly Abstract) Social Concepts evoked by Art Images

MUSCO - Multimodal Descriptions of Social Concepts Automatic Modeling of (Highly Abstract) Social Concepts evoked by Art Images This project aims to i

0 Aug 22, 2021
The implemetation of Dynamic Nerual Garments proposed in Siggraph Asia 2021

DynamicNeuralGarments Introduction This repository contains the implemetation of Dynamic Nerual Garments proposed in Siggraph Asia 2021. ./GarmentMoti

42 Dec 27, 2022
[2021 MultiMedia] CONQUER: Contextual Query-aware Ranking for Video Corpus Moment Retrieval

CONQUER: Contexutal Query-aware Ranking for Video Corpus Moment Retreival PyTorch implementation of CONQUER: Contexutal Query-aware Ranking for Video

Hou zhijian 23 Dec 26, 2022
The official repository for paper ''Domain Generalization for Vision-based Driving Trajectory Generation'' submitted to ICRA 2022

DG-TrajGen The official repository for paper ''Domain Generalization for Vision-based Driving Trajectory Generation'' submitted to ICRA 2022. Our Meth

Wang 25 Sep 26, 2022
Official code for "InfoGraph: Unsupervised and Semi-supervised Graph-Level Representation Learning via Mutual Information Maximization" (ICLR 2020, spotlight)

InfoGraph: Unsupervised and Semi-supervised Graph-Level Representation Learning via Mutual Information Maximization Authors: Fan-yun Sun, Jordan Hoffm

Fan-Yun Sun 232 Dec 28, 2022
《Geo Word Clouds》paper implementation

《Geo Word Clouds》paper implementation

Russellwzr 2 Jan 28, 2022
Disentangled Face Attribute Editing via Instance-Aware Latent Space Search, accepted by IJCAI 2021.

Instance-Aware Latent-Space Search This is a PyTorch implementation of the following paper: Disentangled Face Attribute Editing via Instance-Aware Lat

67 Dec 21, 2022
Apply AnimeGAN-v2 across frames of a video clip

title emoji colorFrom colorTo sdk app_file pinned AnimeGAN-v2 For Videos 🔥 blue red gradio app.py false AnimeGAN-v2 For Videos Apply AnimeGAN-v2 acro

Nathan Raw 36 Oct 18, 2022
Implementing a simplified copy of Shazam application from scratch using MinHashing and LSH.

Building Shazam from scratch In this repository we tried to implement a simplified copy of the Shazam application able to tell you the name of a song

Arturo Ghinassi 0 Nov 17, 2022
Regularizing Nighttime Weirdness: Efficient Self-supervised Monocular Depth Estimation in the Dark (ICCV 2021)

Regularizing Nighttime Weirdness: Efficient Self-supervised Monocular Depth Estimation in the Dark (ICCV 2021) Kun Wang, Zhenyu Zhang, Zhiqiang Yan, X

kunwang 66 Nov 24, 2022
An official TensorFlow implementation of “CLCC: Contrastive Learning for Color Constancy” accepted at CVPR 2021.

CLCC: Contrastive Learning for Color Constancy (CVPR 2021) Yi-Chen Lo*, Chia-Che Chang*, Hsuan-Chao Chiu, Yu-Hao Huang, Chia-Ping Chen, Yu-Lin Chang,

Yi-Chen (Howard) Lo 58 Dec 17, 2022
Implementation of the HMAX model of vision in PyTorch

PyTorch implementation of HMAX PyTorch implementation of the HMAX model that closely follows that of the MATLAB implementation of The Laboratory for C

Marijn van Vliet 52 Oct 13, 2022