UltraGCN: An Ultra Simplification of Graph Convolutional Networks for Recommendation

Overview

UltraGCN

This is our Pytorch implementation for our CIKM 2021 paper:

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

Introduction

In this work, we propose an ultra-simplified formulation of GCN, dubbed UltraGCN. UltraGCN skips explicit message passing and directly approximate the limit of infinite message passing layers.

Environment Requirement

The required packages are as follows:

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

Code

  • main.py: All python code to reproduce UltraGCN
  • dataset_name_config.ini: The configuration file which includes parameter settings for reproduction on the specific dataset.
python main.py --config_file dataset_config.ini

Reproduction

See benchmarks folder to reproduce the results. For example, we show the detailed reproduce steps for the results of UltraGCN on the AmazoonBooks dataset in UltraGCN_amazonbooks_x0.md file.

Results

Model AmazonBooks AmazonBooks Yelp2018 Yelp2018 Gowalla Gowalla
Recall@20 nDCG@20 Recall@20 nDCG@20 Recall@20 nDCG@20
NGCF 0.0344 0.0263 0.0579 0.0477 0.1570 0.1327
LightGCN 0.0411 0.0315 0.0649 0.0530 0.1830 0.1554
UltraGCN 0.0681 0.0556 0.0683 0.0561 0.1862 0.1580
Comments
  • Hyper-parameter lambda/gamma   w1,...,w4

    Hyper-parameter lambda/gamma w1,...,w4

    Hi, thanks for sharing the source code for reproducing your results. However, I am confused with mapping the hyper-parameters between your code and paper:

    1. lambda is placed on L_C for constraint loss in paper (Eq. 12, 18) for U-I relationships. But, in code, lambda is used for L_2 loss?

    lambda's setting is within [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4] in paper, but in code we have gamma=1e-4?

    1. gamma for I-I relationships in paper (Eq. 18) and is inline with the code. And its setting [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3,3.5] in paper. However, in code, we observe gamma with 5e-4 or 1e-3 (ML-1M). Should we follow the paper for its settings?

    2. w1, ..., w4 are used for generating omega coefficient, but you have mentioned they are related with lambda in previous issue 12?

    opened by enoche 5
  • Could you tell me How did you test the previous models?

    Could you tell me How did you test the previous models?

    thank you for your paper I read LR-GCCF, NGCF papers before and the LR-GCCF result was better than NGCF how did you test these 2 models? and how did you find the best hyperparamters of two models? could you tell me? I want to test models by myself.

    opened by Lim-Sung-Jun 5
  • About MovieLens-1M Dataset

    About MovieLens-1M Dataset

    Thanks for your interesting work! I found the ml-1m dataset provided in this repo may be inconsistent with that reported in the original paper, see the data statistic table in 4.1. Only 895699 interactions in your dataset but 995154 are reported. Could you please update the dataset or explain it? I also wonder how you process the dataset (e.g., filter users or items, split train/validation/test datasets)? Looking forward to reply!

    opened by jerry-zx 2
  • Deriving convergence state

    Deriving convergence state

    Hi! Thanks for the great work. There are two convergence states in eq.9 and eq.16 in your paper, may I ask the process of deriving \beta_{u,i} and \omega_{i,j}?

    opened by cieske 2
  • Normalized or NOT?

    Normalized or NOT?

    Hi, Recently I came across your paper ( a nice work), your paper explained eq. 10 with "We normalized the embeddings to unit vectors and then maximized the dot product of the both terms". However, I can not find "normalization" operation in your codes. May I ask you about this part? Thanks a lot

    opened by junkangwu 1
  • 您好,请教一下时间复杂度的计算

    您好,请教一下时间复杂度的计算

    作者您好,感谢您的工作! 想请教一下在原文的3.3节中对时间复杂度的推导里得到的结果 O((K+R+1)|A+|(d^2+1))的具体推导过程?主要的问题是在d^2上,这里我预先自己推的结果是(d+1)(没有平方),粗浅的理解是算损失只需要计算d维度的乘法,同时针对每个交互样本计算一次对应系数。 能否请教一下具体的过程呢?

    opened by ithok 1
  • settings of hyper-parameters w1,...,w4

    settings of hyper-parameters w1,...,w4

    Hi! What is the relationship between the hyper-parameter lambda described in your paper and the variables w1, w2, w3, w4 in the code? The paper reported that "We tune lambda in [0.2, 0.4, ..., 1.2, 1.4], ...". However, in many dataset_name_config.ini files, some w1,...,w4 are set to 1e-8 or 1e-7. For example, in amazon_config.ini: #L = -(w1 + w2*\beta)) * log(sigmoid(e_u e_i)) - \sum_{N-} (w3 + w4*\beta) * log(sigmoid(-e_u e_i')) w1=1e-8 w2=1 w3=1 w4=1e-8

    Thank you!

    opened by xiransong 1
  • Dataset issues

    Dataset issues

    Hi authors, I noted that you tested your UltraGCN model on another three datasets: MovieLens-1M, Amazon-CDs, Amazon-Electronics. Could you please provide those datasets so that we can better follow your work? Much appreciated.

    opened by GabyUSTC 1
  • Have you tried the effect of adding a constraint loss L_U on the user-user graph?

    Have you tried the effect of adding a constraint loss L_U on the user-user graph?

    In your paper, we see that L_I is beneficial. Because L_I put constraint on the item-item graph. Similar to L_I, the constraint loss L_U on the user-user graph should also be important. Have you tried the effect of L_U?

    opened by xxaxtt 0
  • Efficiency optimization

    Efficiency optimization

    Compute weight in real time, without storing constraint_mat.

    Only tested on ml-1m dataset, single epoch time improved from 20 seconds to 13 seconds on my own device.

    No significant change in the evaluation metrics.

    opened by Joinn99 0
Owner
XUEPAI
XUEPAI
Differentiable rasterization applied to 3D model simplification tasks

nvdiffmodeling Differentiable rasterization applied to 3D model simplification tasks, as described in the paper: Appearance-Driven Automatic 3D Model

NVIDIA Research Projects 336 Dec 30, 2022
Code and models used in "MUSS Multilingual Unsupervised Sentence Simplification by Mining Paraphrases".

Multilingual Unsupervised Sentence Simplification Code and pretrained models to reproduce experiments in "MUSS: Multilingual Unsupervised Sentence Sim

Facebook Research 81 Dec 29, 2022
The repository forked from NVlabs uses our data. (Differentiable rasterization applied to 3D model simplification tasks)

nvdiffmodeling [origin_code] Differentiable rasterization applied to 3D model simplification tasks, as described in the paper: Appearance-Driven Autom

Qiujie (Jay) Dong 2 Oct 31, 2022
This is the repository for the AAAI 21 paper [Contrastive and Generative Graph Convolutional Networks for Graph-based Semi-Supervised Learning].

CG3 This is the repository for the AAAI 21 paper [Contrastive and Generative Graph Convolutional Networks for Graph-based Semi-Supervised Learning]. R

null 12 Oct 28, 2022
Recommendationsystem - Movie-recommendation - matrixfactorization colloborative filtering recommendation system user

recommendationsystem matrixfactorization colloborative filtering recommendation

kunal jagdish madavi 1 Jan 1, 2022
Python Implementation of algorithms in Graph Mining, e.g., Recommendation, Collaborative Filtering, Community Detection, Spectral Clustering, Modularity Maximization, co-authorship networks.

Graph Mining Author: Jiayi Chen Time: April 2021 Implemented Algorithms: Network: Scrabing Data, Network Construbtion and Network Measurement (e.g., P

Jiayi Chen 3 Mar 3, 2022
BitPack is a practical tool to efficiently save ultra-low precision/mixed-precision quantized models.

BitPack is a practical tool that can efficiently save quantized neural network models with mixed bitwidth.

Zhen Dong 36 Dec 2, 2022
Ultra-Data-Efficient GAN Training: Drawing A Lottery Ticket First, Then Training It Toughly

Ultra-Data-Efficient GAN Training: Drawing A Lottery Ticket First, Then Training It Toughly Code for this paper Ultra-Data-Efficient GAN Tra

VITA 77 Oct 5, 2022
Towards Ultra-Resolution Neural Style Transfer via Thumbnail Instance Normalization

Towards Ultra-Resolution Neural Style Transfer via Thumbnail Instance Normalization Official PyTorch implementation for our URST (Ultra-Resolution Sty

czczup 148 Dec 27, 2022
Based on Yolo's low-power, ultra-lightweight universal target detection algorithm, the parameter is only 250k, and the speed of the smart phone mobile terminal can reach ~300fps+

Based on Yolo's low-power, ultra-lightweight universal target detection algorithm, the parameter is only 250k, and the speed of the smart phone mobile terminal can reach ~300fps+

null 567 Dec 26, 2022
Example scripts for the detection of lanes using the ultra fast lane detection model in ONNX.

Example scripts for the detection of lanes using the ultra fast lane detection model in ONNX.

Ibai Gorordo 35 Sep 7, 2022
Example scripts for the detection of lanes using the ultra fast lane detection model in Tensorflow Lite.

TFlite Ultra Fast Lane Detection Inference Example scripts for the detection of lanes using the ultra fast lane detection model in Tensorflow Lite. So

Ibai Gorordo 12 Aug 27, 2022
Ultra-lightweight human body posture key point CNN model. ModelSize:2.3MB HUAWEI P40 NCNN benchmark: 6ms/img,

Ultralight-SimplePose Support NCNN mobile terminal deployment Based on MXNET(>=1.5.1) GLUON(>=0.7.0) framework Top-down strategy: The input image is t

null 223 Dec 27, 2022
Lane assist for ETS2, built with the ultra-fast-lane-detection model.

Euro-Truck-Simulator-2-Lane-Assist Lane assist for ETS2, built with the ultra-fast-lane-detection model. This project was made possible by the amazing

null 36 Jan 5, 2023
Unofficial TensorFlow implementation of Protein Interface Prediction using Graph Convolutional Networks.

[TensorFlow] Protein Interface Prediction using Graph Convolutional Networks Unofficial TensorFlow implementation of Protein Interface Prediction usin

YeongHyeon Park 9 Oct 25, 2022
PyTorch implementation of Graph Convolutional Networks in Feature Space for Image Deblurring and Super-resolution, IJCNN 2021.

GCResNet PyTorch implementation of Graph Convolutional Networks in Feature Space for Image Deblurring and Super-resolution, IJCNN 2021. The code will

null 11 May 19, 2022
A PyTorch implementation of "Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks" (KDD 2019).

ClusterGCN ⠀⠀ A PyTorch implementation of "Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks" (KDD 2019). A

Benedek Rozemberczki 697 Dec 27, 2022
Danfeng Hong, Lianru Gao, Jing Yao, Bing Zhang, Antonio Plaza, Jocelyn Chanussot. Graph Convolutional Networks for Hyperspectral Image Classification, IEEE TGRS, 2021.

Graph Convolutional Networks for Hyperspectral Image Classification Danfeng Hong, Lianru Gao, Jing Yao, Bing Zhang, Antonio Plaza, Jocelyn Chanussot T

Danfeng Hong 154 Dec 13, 2022