Git Product home page Git Product logo

sslrec's Introduction

Self-Supervised Learning for Recommendation

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.

Implemented Methods

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

Environment

SSLRec is implemented under the following development environment:

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

Datasets

Dataset # Users # Items # Interactions Interaction Density
Sparse Gowalla $25,557$ $19,747$ $294,983$ $5.9\times 10^{-4}$
Sparse Yelp $42,712$ $26,822$ $182,357$ $1.6\times 10^{-4}$
Sparse Amazon $76,469$ $83,761$ $966,680$ $1.5\times 10^{-4}$
Yelp $29,601$ $24,734$ $1,517,326$ $2.1\times 10^{-3}$
MovieLens $69,878$ $10,196$ $9,988,816$ $1.4\times 10^{-2}$
Amazon $78,578$ $77,801$ $3,190,224$ $5.2\times 10^{-4}$

Usage

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 and amazon.
  • latdim: This denotes the dimensionality of latent embeddings. By default it is set as 32 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.

sslrec's People

Contributors

chaohuang7 avatar

Stargazers

 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.