Skip to content

Faisalse/IntentAwareRS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intent Aware Recommender Systems

Introduction

This reproducibility package was prepared for the paper titled "A Worrying Reproducibility Study of Intent-Aware Recommendation Models" and accepted in the ACM SIGIR 2025. The results reported in this paper were achieved with the help of the codes, which were shared by the original authors of the selected articles. For the implementation of baseline models, we utilized the RecSys2019_DeepLearning_Evaluation framework. The framework includes the state-of-the-art baseline models for top-n recommender systems. More information about the RecSys2019_DeepLearning_Evaluation framework can be found by following the provided link. For the uploaded picture, the credit goes to ChatGPT.

Reproduced articles
  • Disentangled Graph Collaborative Filtering (SIGIR 2020)
  • Learning Intents behind Interactions with Knowledge Graph for Recommendation (WWW 2021)
  • Intent Disentanglement and Feature Self-Supervision for Novel Recommendation (Journal: IEEE Transactions on Knowledge and Data Engineering 2022 - IF: 8.9)
  • Disentangled Contrastive Collaborative Filtering (SIGIR 2023)
  • Exploring the Individuality and Collectivity of Intents behind Interactions for Graph Collaborative Filtering (SIGIR 2024)
Required libraries to run the framework
  • Anaconda 4.X (Python 3.8 or higher)
  • numpy
  • pandas
  • torch
  • torchvision
  • torch_geometric
  • pyg_lib
  • torch-scatter
  • torch-sparse
  • torch-cluster
  • torch-spline-conv
  • prettytable
  • python-dateutil
  • nltk
  • scipy
  • pytz
  • certifi
  • pyyaml
  • scikit-learn
  • six
  • psutil
  • pympler
  • Scikit-optimize
  • tables
  • scikit-optimize
  • tqdm
  • dill
  • numba

Installation guide

This is how the framework can be downloaded and configured to run the experiments

Using Docker
  • Download and install Docker from https://www.docker.com/
  • Run the following command to "pull Docker Image" from Docker Hub: docker pull shefai/intent_aware_recomm_systems
  • Clone the GitHub repository by using the link: https://github.com/RecSysEvaluation/IntentAwareRS.git
  • Move into the IntentAwareRS directory
  • Run the command to mount the current directory IntentAwareRS to the docker container named as IntentAwareRS_container: docker run --name IntentAwareRS_container -it -v "$(pwd):/IntentAwareRS" -it shefai/IntentAwareRS. If you have the support of CUDA-capable GPUs then run the following command to attach GPUs with the container: docker run --name IntentAwareRS_container -it --gpus all -v "$(pwd):/IntentAwareRS" -it shefai/IntentAwareRS
  • If you are already inside the runing container, run the command to navigate to the mounted directory IntentAwareRS: cd /IntentAwareRS otherwise starts the "IntentAwareRS_container"
Using Anaconda
  • Download Anaconda from https://www.anaconda.com/ and install it
  • Clone the GitHub repository by using this link: https://github.com/RecSysEvaluation/IntentAwareRS.git
  • Open the Anaconda command prompt
  • Move into the IntentAwareRS directory
  • Run this command to create virtual environment: conda create --name IntentAwareRS_env python=3.8
  • Run this command to activate the virtual environment: conda activate IntentAwareRS_env
  • Run this command to install the required libraries: pip install -r requirements_gpu.txt

Instructions to Run Experiments for Intent Aware and Non-intent Aware Recommender Systems

Learning Intents behind Interactions with Knowledge Graph for Recommendation (KIGN)
  • Run this command to reproduce the experiments for the KGIN and baseline models on the alibabaFashion dataset: python run_experiments_for_KGIN_original_baselines.py --dataset alibabaFashion
  • Run this command to reproduce the experiments for the KGIN and baseline models on the amazonBook dataset: python run_experiments_for_KGIN_original_baselines.py --dataset amazonBook
  • Run this command to reproduce the experiments for the KGIN and baseline models on the lastFm dataset: python run_experiments_for_KGIN_original_baselines.py --dataset lastFm
  • Run this command to reproduce the experiments for the KGIN and baseline models on the lastFm dataset (without data leakage issue): python run_experiments_for_KGIN_original_baselines.py --dataset lastFm --resolveDataLeakage yes
Intent Disentanglement and Feature Self-supervision for Novel Recommendation (IDS4NR)
  • Run this command to reproduce the experiments for the IDS4NR_NCF and baseline models on the MovieLens dataset: python run_experiments_IDS4NR_original_baselines.py --dataset MovieLens --model NCF
  • Run this command to reproduce the experiments for the IDS4NR_NCF and baseline models on the Beauty dataset: python run_experiments_IDS4NR_original_baselines.py --dataset Beauty --model NCF
  • Run this command to reproduce the experiments for the IDS4NR_NCF and baseline models on the Music dataset: python run_experiments_IDS4NR_original_baselines.py --dataset Music --model NCF
  • Run this command to reproduce the experiments for the IDS4NR_LFM and baseline models on the MovieLens dataset: python run_experiments_IDS4NR_original_baselines.py --dataset MovieLens --model LFM
  • Run this command to reproduce the experiments for the IDS4NR_LFM and baseline models on the Beauty dataset: python run_experiments_IDS4NR_original_baselines.py --dataset Beauty --model LFM
  • Run this command to reproduce the experiments for the IDS4NR_LFM and baseline models on the Music dataset: python run_experiments_IDS4NR_original_baselines.py --dataset Music --model LFM
Disentangled Contrastive Collaborative Filtering (DCCF)
  • Run this command to reproduce the experiments for the DCCF and baseline models on the AmazonBook dataset: python run_experiments_for_DCCF_original_baselines.py --dataset amazonBook
  • Run this command to reproduce the experiments for the DCCF and baseline models on the Gowalla dataset: python run_experiments_for_DCCF_original_baselines.py --dataset gowalla
  • Run this command to reproduce the experiments for the DCCF and baseline models on the Tmall dataset: python run_experiments_for_DCCF_original_baselines.py --dataset tmall
Bilateral Intent-guided Graph Collaborative Filtering (BIGCF)
  • Run this command to reproduce the experiments for the BIGCF model on the AmazonBook dataset: python run_experiments_for_BIGCF_original.py --dataset amazonBook
  • Run this command to reproduce the experiments for the BIGCF model on the Gowalla dataset: python run_experiments_for_BIGCF_original.py --dataset gowalla
  • Run this command to reproduce the experiments for the BIGCF model on the Tmall dataset: python run_experiments_for_BIGCF_original.py --dataset tmall
  • Note: The BIGCF model used the same train-test splits for all datasets shared by the DCCF model. Therefore, we do not need to rerun the experiments for the baseline models
Disentangled Graph Collaborative Filtering (DGCF)
  • Run this command to reproduce the experiments for the DGCF on the Yelp 2018 dataset: python run_experiments_for_DGCF_original.py --dataset yelp2018
  • Run this command to reproduce the experiments for the baseline models on the Yelp 2018 dataset: python run_experiments_DGCF_baselines.py --dataset yelp2018
  • Run this command to reproduce the experiments for the DGCF on the Gowalla dataset: python run_experiments_for_DGCF_original.py --dataset gowalla --batch_size 2000 --n_layers 1 --n_iterations 2 --corDecay 0.01 --n_factors 4 --show_step 3 --lr 0.001
  • Run this command to reproduce the experiments for the baseline models on the Gowalla dataset: python run_experiments_DGCF_baselines.py --dataset gowalla
  • Run this command to reproduce the experiments for the DGCF on the Amazon-book dataset: python run_experiments_for_DGCF_original.py --dataset amazonbook
  • Run this command to reproduce the experiments for the baseline models on the Amazon-book dataset: python python run_experiments_DGCF_baselines.py --dataset amazonbook
  • Note: The DGCF was implemented using TensorFlow 1.14, which does not support current versions of Python. Therefore, we provide a separate installation guide to run the experiments for DGCF model
    Using Anaconda
    • Download Anaconda from https://www.anaconda.com/ and install it
    • Clone the GitHub repository by using this link: https://github.com/RecSysEvaluation/IntentAwareRS.git
    • Open the Anaconda command prompt
    • Move into the IntentAwareRS directory
    • Run this command to create virtual environment: conda create --name DGCF_env python=3.6
    • Run this command to activate the virtual environment: conda activate DGCF_env
    • Run this command to install the required libraries for CPU: pip install -r requirements_IntentAwareRS_DGCF.txt