Skip to content

"SCONE: A Novel Stochastic Sampling to Generate Contrastive Views and Hard Negative Samples for Recommendation", WSDM 2025

License

Notifications You must be signed in to change notification settings

jeongwhanchoi/SCONE

Repository files navigation

SCONE: A Novel Stochastic Sampling to Generate Contrastive Views and Hard Negative Samples for Recommendation

GitHub Repo stars Twitter Follow arXiv

Chaejeong Lee1, Jeongwhan Choi2*, Hyowon Wi3, Sung-Bae Cho2, Noseong Park3,
1Korea Telecom, 2Yonsei University, 3KAIST

This is the official PyTorch implementation of the WSDM 2025 paper "SCONE: A Novel Stochastic Sampling to Generate Contrastive Views and Hard Negative Samples for Recommendation".

📢 News!

  • Mar 18, 2025: Our official SCONE code is now open-source on GitHub!
  • Mar 12, 2025: We presented our work at WSDM 2025! 🚀
  • Oct 24, 2024: Our paper has been accepted to WSDM 2025! 🎉
  • May 1, 2024: 📄 We eleased the arXiv preprint of SCONE! Check it out here.

TL;DR

SCONE is a novel framework that:

  • Generates dynamic contrastive views via stochastic sampling
  • Creates diverse hard negative samples through stochastic positive injection
  • Provides a unified solution for both data sparsity and negative sampling challenges

Overall Framework

A stochastic process for contrastive views generation A stochastic positive injection for hard negative samples generation

Stochastic Process for Contrastive Views (Left):

  • Forward process corrupts original embedding to generate noisy view
  • Reverse process generates new contrastive view from noisy embedding

Stochastic Positive Injection (Right):

  • Generates hard negative samples by injecting positive information during reverse process
  • Results in semantically meaningful negative samples

The overall architecture combines LightGCN for graph embedding with SGM for both contrastive learning and negative sampling tasks.

Requirements

Run the following to install requirements:

conda env create --file environment.yml

Quick Start

Train and evaluate SCONE:

python main.py --dataset_name douban --model SCONE --output_dir ./SCONE_exp/
  • You can train our SCONE from scratch by run:

Main Arguments

  --dataset_name: Dataset Name
  --model : Model Name
  --output_dir: Working directory

Citation

If the code and paper are helpful for your work, please cite our paper:

@inproceedings{lee2024scone,
  author = {Lee, Chaejeong and Choi, Jeongwhan and Wi, Hyowon and Cho, Sung-Bae and Park, Noseong},
  title = {SCONE: A Novel Stochastic Sampling to Generate Contrastive Views and Hard Negative Samples for Recommendation},
  year = {2025},
  booktitle = {Proceedings of the Eighteenth ACM International Conference on Web Search and Data Mining},
  pages = {419–428},
  numpages = {10}
}

Star History

Star History Chart

About

"SCONE: A Novel Stochastic Sampling to Generate Contrastive Views and Hard Negative Samples for Recommendation", WSDM 2025

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages