Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mshadloo/A-LLMRec

Repository files navigation

A-LLMRec : Large Language Models meet Collaborative Filtering: An Efficient All-round LLM-based Recommender System

The source code for A-LLMRec : Large Language Models meet Collaborative Filtering: An Efficient All-round LLM-based Recommender System paper, accepted at KDD 2024.

Overview

In this paper, we propose an efficient all-round LLM-based recommender system, called A-LLMRec (All-round LLM-based Recommender system). The main idea is to enable an LLM to directly leverage the collaborative knowledge contained in a pre-trained collaborative filtering recommender system (CF-RecSys) so that the emergent ability of the LLM can be jointly exploited. By doing so, A-LLMRec can outperform under the various scenarios including warm/cold, few-shot, cold user, and cross-domain scenarios.

Env Setting

conda create -n [env name] pip
conda activate [env name]
pip install -r requirements.txt

Dataset

Download dataset of 2018 Amazon Review dataset for the experiment. Should download metadata and reviews files and place them into data/amazon direcotory.

cd data/amazon
wget https://datarepo.eng.ucsd.edu/mcauley_group/data/amazon_v2/categoryFiles/Movies_and_TV.json.gz # download review dataset
wget https://datarepo.eng.ucsd.edu/mcauley_group/data/amazon_v2/metaFiles2/meta_Movies_and_TV.json.gz # download metadata
gzip -d meta_Movies_and_TV.json.gz

Pre-train CF-RecSys (SASRec)

cd pre_train/sasrec
python main.py --device=cuda --dataset Movies_and_TV

A-LLMRec Train

  • train stage1
cd ../../
python main.py --pretrain_stage1 --rec_pre_trained_data Movies_and_TV
  • train stage2
python main.py --pretrain_stage2 --rec_pre_trained_data Movies_and_TV

To run with multi-gpu setting, assign devices with CUDA_VISIBLE_DEVICES command and add '--multi_gpu' argument.

  • ex) CUDA_VISIBLE_DEVICES = 0,1 python main.py ... --multi_gpu

Evaluation

Inference stage generates "recommendation_output.txt" file and write the recommendation result generated from the LLMs into the file. To evaluate the result, run the eval.py file.

python main.py --inference --rec_pre_trained_data Movies_and_TV
python eval.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /