• Stars
    star
    151
  • Rank 238,847 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated model zoo for recommendation tasks

UltraGCN

UltraGCN is an ultra-simplified formulation of graph convolutional networks for collaborative filtering. This repo provides the official open-source implementation of our paper:

Kelong Mao, Jieming Zhu, Xi Xiao, Biao Lu, Zhaowei Wang, Xiuqiang He. UltraGCN: Ultra Simplification of Graph Convolutional Networks for Recommendation, in CIKM 2021.

Model Overview

Graph Convolutional Networks (GCN) have been widely used for collaborative filtering. GCN models allow to capture higher-order connections between users and items through its recursive message passing mechanism to aggregate neighborhood information. However, this message passing mechanism largely slows down the convergence of GCNs, especially when mini-batch sub-graph sampling is applied on large graphs. LightGCN reduces GCN models by removing feature transformations and nonlinear activations. In our work, UltraGCN was developed as an ultra-simplified formulation of GCNs, which skips explicit message passing and instead approximates infinite-layer graph convolutions using a constraint loss.

SimpleX model

Environments

To reproduce our experimental results, we strongly suggest to use the following package settings.

  • python 3.7.9
  • pytorch 1.4.0
  • numpy 1.19.2
  • scipy 1.1.0
  • tensorboard 2.4.0

Code Structure

  • main.py: We organize all the code in a single file to make it easy to run UltraGCN.
  • config/ultragcn_xxx.ini: Each configuration file specifies parameter settings for a target dataset.

Results

Results on Yelp18

Model Recall@20 NDCG@20
NGCF [SIGIR'19] 0.0579 0.0477
LightGCN [SIGIR'20] 0.0649 0.0530
SGL-ED [SIGIR'21] 0.0675 0.0555
UltraGCN [CIKM'21] 0.0683 0.0561
  • Follow the script below to reproduce the results

    python main.py --config_file ./config/ultragcn_yelp18_m1.ini
  • See the running log: results/ultragcn_yelp18_m1.log

Results on Gowalla

Model Recall@20 NDCG@20
NGCF [SIGIR'19] 0.1570 0.1327
LightGCN [SIGIR'20] 0.1830 0.1554
UltraGCN [CIKM'21] 0.1862 0.1580
  • Follow the script below to reproduce the results

    python main.py --config_file ./config/ultragcn_gowalla_m1.ini
  • See the running log: results/ultragcn_gowalla_m1.log

Results on Amazon-Books

Model Recall@20 NDCG@20
NGCF [SIGIR'19] 0.0344 0.0263
LightGCN [SIGIR'20] 0.0411 0.0315
SGL-ED [SIGIR'21] 0.0478 0.0379
UltraGCN [CIKM'21] 0.0681 0.0556

Results on Movielens-1M

Model F1@20 NDCG@20 Recall@20
NGCF [SIGIR'19] 0.1582 0.2511 0.2513
LCFN [ICML'20] 0.1625 0.2603
LightGCN [SIGIR'20] 0.2427 0.2576
UltraGCN [CIKM'21] 0.2004 0.2642 0.2787

Results on Amazon-Electronics

Model F1@20 NDCG@20
ENMF [TOIS'20] 0.0314 0.0823
NBPO [SIGIR'20] 0.0313 0.0810
UltraGCN [CIKM'21] 0.0330 0.0829

Results on Amazon-CDs

Model Recall@20 NDCG@20
NGCF [SIGIR'19] 0.1258 0.0792
BGCF [KDD'20] 0.1506 0.0948
UltraGCN [CIKM'21] 0.1622 0.1043
  • Follow the script below to reproduce the results

    python main.py --config_file ./config/ultragcn_amazoncds_m1.ini
  • See the running log: results/ultragcn_amazoncds_m1.log