Giter Site home page Giter Site logo

sslrec's Introduction

SSLRec

🤗User Guide🧪Models📜Datasets📑SSLRec Paper

Twitter Follow

SSLRec is a PyTorch-based open-source deep learning framework for recommender systems enhanced by self-supervised learning techniques. It's user-friendly and contains commonly-used datasets, code scripts for data processing, training, testing, evaluation, and state-of-the-art research models. SSLRec offers a vast array of utility functions and an easy-to-use interface that simplifies the development and evaluation of recommendation models.

Framework

Our framework includes various self-supervised learning recommendation algorithms, covering five major categories:

  • General Collaborative Filtering
  • Sequential Recommendation
  • Multi-Behavior Recommendation
  • Social Recommendation
  • Knowledge Graph-enhanced Recommendation

Our framework offers a unified training, validation, and testing process for each category, along with a standardized data preprocessing method using publicly available datasets. This makes it easy to reproduce various models and enables fair comparisons between different methods.

SSLRec News

  • 🎉🎉 The SSLRec paper is accepted by WSDM 2024 for an ORAL presentation!

  • 🔥 Early stop is now feasible in the training strategy. (Check Here for more details)

Highlighted Features

  • 🧩 Flexible Modular Architecture. The SSLRec framework features a modular architecture that allows for effortless customization and combination of modules. This enables users to create personalized recommendation models that fit their specific needs and requirements.

  • 🌟 Diverse Recommendation Scenarios. The SSLRec framework is a versatile tool for researchers and practitioners who are interested in building effective recommendation models across diverse recommender system research lines.

  • 💡 Comprehensive State-of-the-Art Models. Our SSLRec framework offers a wide range of SSL-enhanced recommendation models for various scenarios. Researchers can evaluate these models using advanced techniques and use them as a foundation for driving innovation in the field of recommender systems.

  • 📊 Unified Data Feeder and Standard Evaluation Protocols. The SSLRec framework features a unified data feeder and standard evaluation protocols that enable easy loading and preprocessing of data from various sources and formats, while ensuring objective and fair evaluation of recommendation models.

  • 🛠️ Rich Utility Functions. The SSLRec framework provides a vast array of utility functions that simplify the development and evaluation of recommendation models. These functions incorporate common functionalities of recommender systems and self-supervised learning for graph operations, network architectures, and loss functions.

  • 🤖 Easy-to-Use Interface. We offer a user-friendly interface that streamlines the training and evaluation of recommendation models. This allows researchers and practitioners to experiment with various models and configurations with ease and efficiency.

Implemented Models

We are committed to continuously adding new self-supervised models to the SSLRec framework to keep up with the latest developments in the field of recommender systems. Stay tuned for updates! 🔍

Here, we list the implemented models in abbreviation. For more detailed information, please refer to Models.

General Collaborative Filtering

Sequential Recommendation

Social Recommendation

Knowledge Graph-enhanced Recommendation

Multi-behavior Recommendation

Get Started

SSLRec is implemented under the following development environment:

  • python==3.10.4
  • numpy==1.22.3
  • torch==1.11.0
  • scipy==1.7.3
  • dgl==1.1.1

You can easily train LightGCN using our framework by running the following script:

python main.py --model LightGCN

This script will run the LightGCN model on the yelp datasets.

The training configuration for LightGCN is saved in lightgcn.yml. You can modify the values in this file to achieve different training effects. Furthermore, if you're interested in trying out other implemented models, you can find a list of them under Models, and easily replace LightGCN with your model of choice.

For users who wish to gain a deeper understanding, we recommend reading our User Guide. This guide provides comprehensive explanations of SSLRec's concepts and usage, including:

  • SSLRec framework architecture design
  • Implementing your own model in SSLRec
  • Deploying your own datasets in SSLRec
  • Implementing your own training process in SSLRec
  • Automatic hyperparameter tuning in SSLRec

and so on.

Improve SSLRec Together

If you come across any bugs or have suggestions for improvement, feel free to make a pull request or create an issue.

🤗 We warmly welcome contributions of all kinds, from bug fixes to new features and extensions.

A big thank you to all our contributors!

Citation

SSLRec: A Self-Supervised Learning Framework for Recommendation
Xubin Ren, Lianghao Xia, Yuhao Yang, Wei Wei, Tianle Wang, Xuheng Cai and Chao Huang*
WSDM 2024

If you find this work is helpful to your research, please consider citing our paper:

@article{ren2023sslrec,
  title={SSLRec: A Self-Supervised Learning Framework for Recommendation},
  author={Ren, Xubin and Xia, Lianghao and Yang, Yuhao and Wei, Wei and Wang, Tianle and Cai, Xuheng and Huang, Chao},
  journal={arXiv preprint arXiv:2308.05697},
  year={2023}
}

sslrec's People

Contributors

re-bin avatar weiwei1206 avatar akaxlh avatar louiswng avatar yuh-yang avatar hkuds avatar guspan-tanadi avatar helloelwin avatar zzmeei avatar heywecome avatar rick-cai avatar

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.