Coder Social home page Coder Social logo

m1234543 / arlib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from coderwzw/arlib

0.0 0.0 0.0 9.9 MB

An open-source framework for conducting data poisoning attacks on recommendation systems, designed to assist researchers and practitioners.

Python 100.00%

arlib's Introduction

ARLib (Pytorch)

Alt text

An open-source framework for conducting data poisoning attacks on recommendation systems, designed to assist researchers and practitioners.

Members:
Zongwei Wang, Chongqing University, China, [email protected]
Hao Ma, Chongqing University, China, [email protected]

Supported by:
Prof. Min Gao, Chongqing University, China, [email protected]

Framework

Alt text

Usage

  1. Two configure files attack_parser.py and recommend_parser are in the directory named conf, and you can select and configure the recommendation model and attack model by modifying the configuration files.
  2. Run main.py.

Implemented Models

Recommend Model Paper Type
GMF Yehuda et al. Matrix Factorization Techniques for Recommender Systems, IEEE Computer'09. MF
WRMF Hu et al.Collaborative Filtering for Implicit Feedback Datasets, KDD'09. MF
NCF He et al. Neural Collaborative Filtering, WWW'17. Deep Learning
NGCF Wang et al. Neural Graph Collaborative Filtering, SIGIR'19. Graph
SGL Wu et al. Self-supervised Graph Learning for Recommendation, SIGIR'21. Graph + CL
SimGCL Yu et al. Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation, SIGIR'22. Graph + CL
  • CL is short for contrastive learning (including data augmentation); DA is short for data augmentation only
Attack Model Paper Form Method
RandomAttack Lam et al. Shilling Recommender Systems for Fun and Profit. WWW'2004 dataAttack Heuristic
BandwagonAttack Gunes et al. Shilling Attacks against Recommender Systems: A Comprehensive Survey. Artif.Intell.Rev.'2014 dataAttack Heuristic
PGA Li et al. Data poisoning attacks on factorization-based collaborative filtering. NIPS'2016. dataAttack Direct Gradient Optimization
AUSH Lin C et al. Attacking recommender systems with augmented user profiles. CIKM'2020. dataAttack GAN
GOAT Wu et al. Ready for emerging threats to recommender systems? A graph convolution-based generative shilling attack. Information Sciences'2021. dataAttack GAN
FedRecAttack Rong et al. Fedrecattack: Model poisoning attack to federated recommendation. ICDE'2022. gradientAttack Direct Gradient Optimization
RAPU_G Zhang et al. Data Poisoning Attack against Recommender System Using Incomplete and Perturbed Data. KDD'2021). dataAttack optimization
A_ra Rong et al. Poisoning Deep Learning Based Recommender Model in Federated Learning Scenarios. IJCAI'2022. gradientAttack Direct Gradient Optimization

Implement Your Model

Determine whether you want to implement the attack model or the recommendation model, and then add the file under the corresponding directory.

If you are an attack method, make sure:

  1. Whether you need information of the recommender model, and then set self.recommenderGradientRequired.
  2. Whether you need gradient information of training recommender model, and then set self.recommenderModelRequired.
  3. Make sure your attack type (gradientAttack/dataAttack).
  • If gradientAttack: Reimplement function gradientattack()
  • If dataAttack: Reimplement function gradientattack()

If you are an attack method, reimplement the following functions:

  • init()
  • train()
  • save()
  • predict()
  • evaluate()
  • test()

Requirements

base==1.0.4
numba==0.53.1
numpy==1.18.0
scipy==1.4.1
torch==1.7.1

arlib's People

Contributors

coderwzw avatar m1234543 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.