GithubHelp home page GithubHelp logo

doublejone831 / cagcn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yuwvandy/cagcn

0.0 0.0 0.0 235.91 MB

This repository includes the implementation of CAGCN and the experiments on link prediction/node classification

License: MIT License

Shell 6.65% Python 80.93% Jupyter Notebook 12.42%

cagcn's Introduction

CAGCN

This repository is an official PyTorch(Geometric) implementation of CAGCN (also includes the baseline implementation of MF/NGCF/LightGCN) in "Collaboration-Aware Graph Convolutional Networks for Recommendation Systems".

We have two experimental settings based on how we split the data:

  • Paper setting: this setting is used in most previous literature (LightGCN, NGCF....), which is also used in our CAGCN paper. Note here the training/testing edges are randomly split and hence not following the time information. We may end up with using future edges to predict history edges. See [Paper_setting] for more details.

  • Realistic setting: after notice the above issue, we recollect the three datasets gowalla/yelp/amazon and split them strictly according to time. We also provide the code for preprocessing the datasets and the readers can modify it based on your own needs. See [Realistic_setting] for more details.

  • Node Classification: based on the reviewers' suggestion, we further incorporate our Collaboration-aware Graph Convolution into node classification. Since our paper is mainly focused on recommendation, we only experiment this naive model on Cora/Citeseer and also achieves performance gain. See [node classification] for more details.

If you use this code, please consider citing:

@inproceedings{10.1145/3543507.3583229,
author = {Wang, Yu and Zhao, Yuying and Zhang, Yi and Derr, Tyler},
title = {Collaboration-Aware Graph Convolutional Network for Recommender Systems},
year = {2023},
isbn = {9781450394161},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3543507.3583229},
doi = {10.1145/3543507.3583229},
location = {Austin, TX, USA},
series = {WWW '23}
}

Motivation

Most GNN-based recommendation systems perform message-passing by directly applying traditional GNN-convolutions. How does the message-passing captures collaborative effect? Are the message-passing by traditional GNN-convolutions really the optimal one to users' ranking? How does 1-WL test find application in link prediction/recommendation? This paper will take you to demystify the collaborations captured by traditional GNN-convolutions.

Specifically, we demystify the collaborations captured by LightGCN by answering the following two questions:

  • How does the message-passing captures collaborative effect? We find that the L-layer LightGCN-based message-passing captures and leverages collaborations between nodes within L-hops neighborhoods of the center user and item. We also theoretically derive the strength of the captured collaborations.

  • Does the captured collaboration really help the prediction of users' ranking? We propose a new recommendation-tailored topological metric, Common Interacted Ratio (CIR), and empirically find that higher CIR leads to more benefits to users' ranking.

Framework

Based on our theoretical and empirical analysis, we incorporate CIR into the message-passing and ultimately propose a novel class of Collaboration-Aware Graph Convolutional Networks, namely Collaboration-Aware Graph Convolutional Network (CAGCN) and its augmented version (CAGCN*), both of which are able to selectively pass information of neighbors based on their CIR via the designed Collaboration-Aware Graph Convolution. We also propose a brandly new type of graph isomorphism for bipartite graphs and theoretically prove that the designed CAGCN* can go beyond 1-WL test in distinguishing subtree-isomorphic(subgraph-isomorphic) graphs yet not bipartite-subgraph-isomorphic graphs. The whole framework and the superiority of CAGCN* over 1-WL are as follows:

Acknowledgement: The code is developed based on part of the code in the following papers:

[1] Xiangnan He, Kuan Deng, Xiang Wang, Yan Li, Yongdong Zhang, Meng Wang. LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. SIGIR 2020.
[2] Xiang Wang, Xiangnan He, Meng Wang, Fuli Feng, Tat-Seng Chua. Neural graph collaborative filtering. SIGIR 2019.
[3] Tinglin Huang, Yuxiao Dong, Ming Ding, Zhen Yang, Wenzheng Feng, Xinyu Wang, Jie Tang. MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems. KDD 2021.

cagcn's People

Contributors

yuwvandy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.