Home

Awesome

MCCF

Source code for AAAI2020 paper "Multi-Component Graph Convolutional Collaborative Filtering"

Environment Settings

Parameter Settings

Files in the folder

MCCF/
├── run.py: training the model
├── utils/
│   ├── aggregator.py: aggregating the feature of neighbors
│   ├── l0dense.py: implementation of L0 regularization for a fully connected layer
│   ├── attention.py: implementation of the node-level attention
│   ├── encoder.py: together with aggregator to form the decomposer
│   └── combiner.py: implementation of the combiner
├── datasets/
│   ├── yelp/
│   │	├── business_user.txt
│   │   ├── preprocess.py: data preprocessing example
│   │   └── _allData.p
│   ├── amazon/ 
│   │   ├── user_item.dat
│   │   └── _allData.p
│   └── movielens/
│   	├── ub.base
│       ├── ub.test
│   	├── ua.base
│       ├── ua.test
│   	├── u5.base
│       ├── u5.test
│   	├── u4.base
│       ├── u4.test
│   	├── u3.base
│       ├── u3.test
│   	├── u2.base
│       ├── u2.test
│   	├── u1.base
│       ├── u1.test
│   	├── u.data
│       ├── u.user
│       ├── u.item
│       └── _allData.p
└── README.md

Data

Input training data

Input pre-trained data

Basic Usage

python run.py 

Hyper-parameters Tuning

There are three key hyper-parameters: number of components, lr and embed_dim.

HINT: N and the sampling threshold in aggregator.py are calculated based on the dataset. Additionally, the number of epochs needs to be large enough to ensure that the model converges. According to our empirical results, generally 60+ is required, and the larger the dataset, the larger the number of epochs.

For the hyper-parameter settings of three benchmark datasets used in this paper, please refer to Section 4.4.

Reference

@inproceedings{wang2020multi,
  title={Multi-component graph convolutional collaborative filtering},
  author={Wang, Xiao and Wang, Ruijia and Shi, Chuan and Song, Guojie and Li, Qingyong},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={34},
  number={04},
  pages={6267--6274},
  year={2020}
}