Bundle Graph Convolutional Network

Overview

Bundle Graph Convolutional Network

This is our Pytorch implementation for the paper:

Jianxin Chang, Chen Gao, Xiangnan He, Depeng Jin and Yong Li. Bundle Graph Convolutional Network, Paper in ACM DL or Paper in arXiv. In SIGIR'20, Xi'an, China, July 25-30, 2020.

Author: Jianxin Chang ([email protected])

Introduction

Bundle Graph Convolutional Network (BGCN) is a bundle recommendation solution based on graph neural network, explicitly re-constructing the two kinds of interaction and an affiliation into the graph. With item nodes as the bridge, graph convolutional propagation between user and bundle nodes makes the learned representations capture the item level semantics.

Citation

If you want to use our codes and datasets in your research, please cite:

@inproceedings{BGCN20,
  author    = {Jianxin Chang and 
               Chen Gao and 
               Xiangnan He and 
               Depeng Jin and 
               Yong Li},
  title     = {Bundle Recommendation with Graph Convolutional Networks},
  booktitle = {Proceedings of the 43nd International {ACM} {SIGIR} Conference on
               Research and Development in Information Retrieval, {SIGIR} 2020, Xi'an,
               China, July 25-30, 2020.},
  year      = {2020},
}

Requirement

The code has been tested running under Python 3.7.0. The required packages are as follows:

  • torch == 1.2.0
  • numpy == 1.17.4
  • scipy == 1.4.1
  • temsorboardX == 2.0

Usage

The hyperparameter search range and optimal settings have been clearly stated in the codes (see the 'CONFIG' dict in config.py).

  • Train
python main.py 
  • Futher Train

Replace 'sample' from 'simple' to 'hard' in CONFIG and add model file path obtained by Train to 'conti_train', then run

python main.py 
  • Test

Add model path obtained by Futher Train to 'test' in CONFIG, then run

python eval_main.py 

Some important hyperparameters:

  • lrs

    • It indicates the learning rates.
    • The learning rate is searched in {1e-5, 3e-5, 1e-4, 3e-4, 1e-3, 3e-3}.
  • mess_dropouts

    • It indicates the message dropout ratio, which randomly drops out the outgoing messages.
    • We search the message dropout within {0, 0.1, 0.3, 0.5}.
  • node_dropouts

    • It indicates the node dropout ratio, which randomly blocks a particular node and discard all its outgoing messages.
    • We search the node dropout within {0, 0.1, 0.3, 0.5}.
  • decays

    • we adopt L2 regularization and use the decays to control the penalty strength.
    • L2 regularization term is tuned in {1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2}.
  • hard_window

    • It indicates the difficulty of sampling in the hard-negative sampler.
    • We set it to the top thirty percent.
  • hard_prob

    • It indicates the probability of using hard-negative samples in the further training stage.
    • We set it to 0.8 (0.4 in the item level and 0.4 in the bundle level), so the probability of simple samples is 0.2.

Dataset

We provide one processed dataset: Netease.

  • user_bundle_train.txt

    • Train file.
    • Each line is 'userID\t bundleID\n'.
    • Every observed interaction means user u once interacted bundle b.
  • user_item.txt

    • Train file.
    • Each line is 'userID\t itemID\n'.
    • Every observed interaction means user u once interacted item i.
  • bundle_item.txt

    • Train file.
    • Each line is 'bundleID\t itemID\n'.
    • Every entry means bundle b contains item i.
  • Netease_data_size.txt

    • Assist file.
    • The only line is 'userNum\t bundleNum\t itemNum\n'.
    • The triplet denotes the number of users, bundles and items, respectively.
  • user_bundle_tune.txt

    • Tune file.
    • Each line is 'userID\t bundleID\n'.
    • Every observed interaction means user u once interacted bundle b.
  • user_bundle_test.txt

    • Test file.
    • Each line is 'userID\t bundleID\n'.
    • Every observed interaction means user u once interacted bundle b.
Owner
M.S. student from E.E., Tsinghua University.
A library of Recommender Systems

A library of Recommender Systems This repository provides a summary of our research on Recommender Systems. It includes our code base on different rec

MilaGraph 980 Jan 05, 2023
Spotify API Recommnder System

This project will access your last listened songs on Spotify using its API, then it will request the user to select 5 favorite songs in that list, on which the API will proceed to make 50 recommendat

Kevin Luke 1 Dec 14, 2021
Jointly Learning Explainable Rules for Recommendation with Knowledge Graph

Jointly Learning Explainable Rules for Recommendation with Knowledge Graph

57 Nov 03, 2022
Books Recommendation With Python

Books-Recommendation Business Problem During the last few decades, with the rise

Çağrı Karadeniz 7 Mar 12, 2022
Bundle Graph Convolutional Network

Bundle Graph Convolutional Network This is our Pytorch implementation for the paper: Jianxin Chang, Chen Gao, Xiangnan He, Depeng Jin and Yong Li. Bun

55 Dec 25, 2022
Cross-Domain Recommendation via Preference Propagation GraphNet.

PPGN Codes for CIKM 2019 paper Cross-Domain Recommendation via Preference Propagation GraphNet. Citation Please cite our paper if you find this code u

Information Retrieval Group, Wuhan University, China 20 Dec 15, 2022
Movie Recommender System

Movie-Recommender-System Movie-Recommender-System is a web application using which a user can select his/her watched movie from list and system will r

1 Jul 14, 2022
Hierarchical Fashion Graph Network for Personalized Outfit Recommendation, SIGIR 2020

hierarchical_fashion_graph_network This is our Tensorflow implementation for the paper: Xingchen Li, Xiang Wang, Xiangnan He, Long Chen, Jun Xiao, and

LI Xingchen 70 Dec 05, 2022
A Python implementation of LightFM, a hybrid recommendation algorithm.

LightFM Build status Linux OSX (OpenMP disabled) Windows (OpenMP disabled) LightFM is a Python implementation of a number of popular recommendation al

Lyst 4.2k Jan 02, 2023
RecSim NG: Toward Principled Uncertainty Modeling for Recommender Ecosystems

RecSim NG, a probabilistic platform for multi-agent recommender systems simulation. RecSimNG is a scalable, modular, differentiable simulator implemented in Edward2 and TensorFlow. It offers: a power

Google Research 110 Dec 16, 2022
Graph Neural Networks for Recommender Systems

This repository contains code to train and test GNN models for recommendation, mainly using the Deep Graph Library (DGL).

217 Jan 04, 2023
Persine is an automated tool to study and reverse-engineer algorithmic recommendation systems.

Persine, the Persona Engine Persine is an automated tool to study and reverse-engineer algorithmic recommendation systems. It has a simple interface a

Jonathan Soma 87 Nov 29, 2022
Code for KHGT model, AAAI2021

KHGT Code for KHGT accepted by AAAI2021 Please unzip the data files in Datasets/ first. To run KHGT on Yelp data, use python labcode_yelp.py For Movi

32 Nov 29, 2022
A movie recommender which recommends the movies belonging to the genre that user has liked the most.

Content-Based-Movie-Recommender-System This model relies on the similarity of the items being recommended. (I have used Pandas and Numpy. However othe

Srinivasan K 0 Mar 31, 2022
The source code for "Global Context Enhanced Graph Neural Network for Session-based Recommendation".

GCE-GNN Code This is the source code for SIGIR 2020 Paper: Global Context Enhanced Graph Neural Networks for Session-based Recommendation. Requirement

98 Dec 28, 2022
A framework for large scale recommendation algorithms.

A framework for large scale recommendation algorithms.

Alibaba Group - PAI 880 Jan 03, 2023
reXmeX is recommender system evaluation metric library.

A general purpose recommender metrics library for fair evaluation.

AstraZeneca 258 Dec 22, 2022
Pytorch domain library for recommendation systems

TorchRec (Experimental Release) TorchRec is a PyTorch domain library built to provide common sparsity & parallelism primitives needed for large-scale

Meta Research 1.3k Jan 05, 2023
NVIDIA Merlin is an open source library designed to accelerate recommender systems on NVIDIA’s GPUs.

NVIDIA Merlin is an open source library providing end-to-end GPU-accelerated recommender systems, from feature engineering and preprocessing to training deep learning models and running inference in

420 Jan 04, 2023
Handling Information Loss of Graph Neural Networks for Session-based Recommendation

LESSR A PyTorch implementation of LESSR (Lossless Edge-order preserving aggregation and Shortcut graph attention for Session-based Recommendation) fro

Tianwen CHEN 62 Dec 03, 2022