Home

Awesome

<p align="center"> <img src="logo.png" alt="SSLRec" /> </p>

<p align="center"> <a href="https://github.com/HKUDS/SSLRec/blob/main/docs/User%20Guide.md">🤗User Guide</a> • <a href="https://github.com/HKUDS/SSLRec/blob/main/docs/Models.md">🧪Models</a> • <a href="https://github.com/HKUDS/SSLRec/blob/main/docs/Datasets.md">📜Datasets</a> • <a href="https://arxiv.org/abs/2308.05697">📑SSLRec Paper</a> </p> <p align="center"> <a href="https://twitter.com/huang_chao4969" target="_blank"> <img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/Data Intelligence Lab at HKU" /> </a> </p> <img src='SSLRec_cover.png' />

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.

<p align="center"> <img src="framework.png" alt="Framework" /> </p>

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

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

Highlighted Features

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:

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 gowalla 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:

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!

<a href="https://github.com/HKUDS/SSLRec/graphs/contributors"> <img src="https://contrib.rocks/image?repo=HKUDS/SSLRec" /> </a>

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:

@inproceedings{ren2024sslrec,
  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},
  booktitle={Proceedings of the 17th ACM International Conference on Web Search and Data Mining},
  pages={567--575},
  year={2024}
}