Giter Site home page Giter Site logo

dmhyun / peris Goto Github PK

View Code? Open in Web Editor NEW
35.0 3.0 1.0 1.15 MB

Official code of Beyond Learning from Next Item: Sequential Recommendation via Personalized Interest Sustainability [CIKM'22]

Home Page: https://dl.acm.org/doi/abs/10.1145/3511808.3557415

Python 99.26% Shell 0.74%
machine-learning pytorch recommender-system sequential-recommendation

peris's Introduction

Beyond Learning from Next Item: Sequential Recommendation via Personalized Interest Sustainability

Official implementation of CIKM'22 paper

Overview

Sequential Recommender Systems

There have been two groups of existing sequential models: user- and item-centric models. This work proposes a recommender system taking advantages of the models in both categories.

graph

Personalized Interest Sustainability with supplementaion schemes

We formulate a task to predict which items each user will consume in the recent period of the training time based on users' consumption history. We then devise simple yet effective schemes to supplement users’ sparse consumption history in both intrinsic and extrinsic manners.

graph

Recommendation Performance

PERIS significantly outperforms baseline models including general, user-centric, and item-centric sequential models on 11 real-world datasets. This result indicates the effectiveness of the personalized interest sustainability.

graph

Major Requirements

  • Python
  • Pytorch
  • Numpy

Preprocessing Data

  1. Download user-item consumption data (and extract the compressed file) into ./data/.

    • Amazon
      [Example] wget http://snap.stanford.edu/data/amazon/productGraph/categoryFiles/ratings_Cell_Phones_and_Accessories.csv
    • Yelp
    • Google Maps
    • Other data you want

    Please make sure your data in the same csv format of Amazon data.

    • For Yelp and Google datasets, run the following code to transform the data format.
    python preprocess_yelp.py YELP_DATA.json
    python preprocess_google.py reviews.clean.json
  2. Split your data into training/validation/test data in ./data/.

python split_data.py your_decompressed_file.csv
  1. Build a dataset for training a recommender syetem with using the splitted data.
python build_recdata.py generated_directory 

Training

Train a recommender system with a model name.

python train.py --model_name peris --dataset your_dataset --learning_rate 1e-3 --lamb 0.5 --mu 0.3 --K 128 

Available models

Model Paper Conference
peris Beyond Learning from Next Item: Sequential Recommendation via Personalized Interest Sustainability CIKM'22
lsan Lightweight Self-Attentive Sequential Recommendation CIKM'21
simplex SimpleX: A Simple and Strong Baseline for Collaborative Filtering CIKM'21

Citation

If you use this repository for your work, please consider citing our paper:

@inproceedings{hyun2022beyond,
  title={Beyond Learning from Next Item: Sequential Recommendation via Personalized Interest Sustainability},
  author={Hyun, Dongmin and Park, Chanyoung and Cho, Junsu and Yu, Hwanjo},
  booktitle={Proceedings of the 31st ACM International Conference on Information \& Knowledge Management},
  pages={812--821},
  year={2022}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.