An open API service indexing awesome lists of open source software.

https://github.com/hkuds/dccf

[SIGIR'2023] "DCCF: Disentangled Contrastive Collaborative Filtering"
https://github.com/hkuds/dccf

collaborative-filtering contrastive-learning disentangled-representations graph-neural-networks recommender-system self-supervised-learning

Last synced: about 2 months ago
JSON representation

[SIGIR'2023] "DCCF: Disentangled Contrastive Collaborative Filtering"

Awesome Lists containing this project

README

          

# Disentangled Contrastive Collaborative Filtering

This is the PyTorch implementation by @Re-bin for DCCF model proposed in this paper:

>**Disentangled Contrastive Collaborative Filtering**
> Xubin Ren, Lianghao Xia, Jiashu Zhao, Dawei Yin, Chao Huang*\
>*SIGIR 2023*

\* denotes corresponding author


DCCF

In this paper, we propose a disentangled contrastive learning method for recommendation, which explores latent factors underlying implicit intents for interactions. In particular, a graph structure learning layer is devised to enable the adaptive interaction augmentation, based on the learned disentangle user (item) intent-aware dependencies. Along the augmented intent-aware graph structures, we propose a intent-aware contrastive learning scheme to bring the benefits of disentangled self-supervision signals.

## Environment

The codes are written in Python 3.8.13 with the following dependencies.

- numpy == 1.22.3
- pytorch == 1.11.0 (GPU version)
- torch-scatter == 2.0.9
- torch-sparse == 0.6.14
- scipy == 1.9.3

## Dataset

We utilized three public datasets to evaluate DCCF: *Gowalla, Amazon-book,* and *Tmall*.

Note that the validation set is only used for tuning hyperparameters, and for *Gowalla* / *Tmall*, the validation set is merged into the training set for training.

## Examples to run the codes

The command to train DCCF on the Gowalla / Amazon-book / Tmall dataset is as follows.

We train DCCF with a fixed number of epochs and save the parameters obtained after the final epoch for testing.

- Gowalla

```python DCCF_PyTorch.py --dataset gowalla --epoch 150```

- Amazon-book:

```python DCCF_PyTorch.py --dataset amazon --epoch 100```

- Tmall:

```python DCCF_PyTorch.py --dataset tmall --epoch 100```

**For advanced usage of arguments, run the code with --help argument.**

**Thanks for your interest in our work.**

## Citation
If you find this work is helpful to your research, please consider citing our paper:
```bibtex
@inproceedings{ren2023disentangled,
title={Disentangled contrastive collaborative filtering},
author={Ren, Xubin and Xia, Lianghao and Zhao, Jiashu and Yin, Dawei and Huang, Chao},
booktitle={Proceedings of the 46th International ACM SIGIR Conference on Research and Development in Information Retrieval},
pages={1137--1146},
year={2023}
}
```