Home

Awesome

FairEdit

In this work we introduce FairEdit, the unexplored method of edge addition, accompanied by deletion, to promote fairness. FairEdit performs efficient edge editing by leveraging gradient information of a fairness loss to find edges that improve fairness. We find that FairEdit outperforms standard training for many data sets and GNN methods, while performing comparably to many state-of-the-art methods, demonstrating FairEdit's ability to improve fairness across many domains and models.

Relevent Publication

@misc{loveland2022fairedit,
      title={FairEdit: Preserving Fairness in Graph Neural Networks through Greedy Graph Editing}, 
      author={Donald Loveland and Jiayi Pan and Aaresh Farrokh Bhathena and Yiyang Lu},
      year={2022},
      eprint={2201.03681},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

FairEdit: Preserving Fairness in Graph Neural Networks through Greedy Graph Editing

Reproduce the Results

Requirements

Use environment.yml to build the environment

FairEdit & BruteFoce

Run adjusted_training.py with specified arguments to do traning with various setups. Model weights are saved to weights folder and evaluation metricss are saved to results.

Arguments:

Sample code:

python adjusted_training.py --dropout 0.5 --hidden 16 --lr 1e-3 --epochs 1000 --model gcn --training_method fairedit --dataset german --seed 1

Standard Training & Nifty

The same adjusted_traning.py can also be used to run standard training and NIFTY

FairWalk

Code to run FairWalk can be found in models_to_compare_against/FairWalk