SSLRec is a PyTorch-based deep learning framework for recommender systems enhanced by self-supervised learning techniques. It contains commonly-used datasets, code scripts for data processing, training, testing, evaluation, and state-of-the-art research models.
Model | Paper | Venue |
---|---|---|
LightGCN | Lightgcn: Simplifying and powering graph convolution network for recommendation | SIGIR'20 |
SGL | Self-supervised graph learning for recommendation | SIGIR'21 |
HCCF | Hypergraph Contrastive Collaborative Filtering | SIGIR'22 |
NCL | Improving graph collaborative filtering with neighborhood-enriched contrastive learning | WWW'22 |
SimGCL | Are graph augmentations necessary? simple graph contrastive learning for recommendation | SIGIR'22 |
SSLRec is implemented under the following development environment:
- python==3.10.4
- numpy==1.22.3
- torch==1.11.0
- scipy=1.7.3
Dataset | # Users | # Items | # Interactions | Interaction Density |
---|---|---|---|---|
Sparse Gowalla | ||||
Sparse Yelp | ||||
Sparse Amazon | ||||
Yelp | ||||
MovieLens | ||||
Amazon |
To run a specific methods, change your directory to the corresponding directory (e.g. methods/sgl/). Run the training and testing with this command line: python Main.py
. Some important arguments shared by most methods are as follows:
-
data
: This is a string arguments specifying which dataset to run on. Currently we have released six datasets:sp_gowalla
,sp_yelp
,sp_amazon
,yelp
,ml10m
andamazon
. -
latdim
: This denotes the dimensionality of latent embeddings. By default it is set as32
for all methods. -
gnn_layer
: For GNN-based methods, this parameter determines the number of GNN layers. -
reg
: This parameter determines the weight for weight-decay regularization ($l_2$ regularization). -
ssl_reg
: For most methods that utilize only one SSL training objective, this parameter specify the weight for SSL loss term. -
temp
: For most methods that utilize only one SSL training objective, this parameter specify the temperature factor for SSL. -
keepRate
: For methods that conduct random drop, this parameter specify the rate to keep values.