This repository contains one shilling attack algorithm, AUSH, published in the following paper [ACM Library] [arXiv Preprint]:
Chen Lin, Si Chen, Hui Li, Yanghua Xiao, Lianyun Li, and Qian Yang. 2020. Attacking Recommender Systems with Augmented User Profiles. In CIKM. 855–864.
Please kindly cite our paper if you use it:
@inproceedings{Lin2020Attacking,
author = {Chen Lin and
Si Chen and
Hui Li and
Yanghua Xiao and
Lianyun Li and
Qian Yang},
title = {Attacking Recommender Systems with Augmented User Profiles},
booktitle = {{CIKM}},
pages = {855--864},
year = {2020}
}
Use test_main\data_preprocess.py
to transform amazon 5-cores ratings to tuples [userid, itemid, normalized float rating]
.
Update on Dec 9, 2021: We have released several recommendation datasets for testing shilling attacks including the three datasets used in our CIKM'20 paper. You can directly use files in the data folder for experiments. Please copy the data folder to the folder of AUSH before execution.
Use test_main\data_preprocess.py
- select attack target
- select attack number (default fix 50)
- select filler size
- selected items and target users
- settings for bandwagon attack
- Train baseline attack models
python main_baseline_attack.py --dataset filmTrust --attack_methods average,segment,random,bandwagon --targets 601,623,619,64,558 --filler_num 36 --bandwagon_selected 103,98,115 --sample_filler 1
- Evaluate baseline attack models
python main_train_rec.py --dataset filmTrust --attack_method segment --model_name NMF_25 --target_ids 601,623,619,64,558 --filler_num 36
- RS performance before attack
python main_train_rec.py --dataset filmTrust --attack_method no --model_name NMF_25 --target_ids 601,623,619,64,558 --filler_num 36
- Train AUSH
python main_gan_attack.py --dataset filmTrust --target_ids 601,623,619,64,558 --filler_num 36
- Evaluate AUSH
python main_train_rec.py --dataset filmTrust --attack_method gan --model_name NMF_25 --target_ids 601,623,619,64,558 --filler_num 36
- Comparative Study
python main_eval_attack.py --dataset filmTrust --filler_num 36 --attack_methods gan,segment,average --rec_model_names NMF_25 --target_ids 601,623,619,64,558
python main_eval_similarity.py --dataset filmTrust --filler_num 36 --targets 601,623 --bandwagon_selected 103,98,115