Source codes for EACL 2021 paper "Diverse Adversaries for Mitigating Bias in Training"
Xudong Han, Timothy Baldwin and Trevor Cohn (to appear) Diverse Adversaries for Mitigating Bias in Training, In Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics (EACL 2021), virtual.
python 3.7
torch
numpy
scipy
scikit-learn
tqdm
jupyter notebook
To get the dataset, please follow the instruction from https://github.com/shauli-ravfogel/nullspace_projection
- Download deepmoji data
See download_data.sh for more details.
mkdir -p data/deepmoji wget https://storage.googleapis.com/ai2i/nullspace/deepmoji/pos_pos.npy -P data/deepmoji wget https://storage.googleapis.com/ai2i/nullspace/deepmoji/pos_neg.npy -P data/deepmoji wget https://storage.googleapis.com/ai2i/nullspace/deepmoji/neg_pos.npy -P data/deepmoji wget https://storage.googleapis.com/ai2i/nullspace/deepmoji/neg_neg.npy -P data/deepmoji
- Get train, dev, and test splits.
$INPUT_DIR
is where the downloaded files are saved.Find thepython deepmoji_split.py \ --input_dir $INPUT_DIR \ --output_dir $OUTPUT_DIR
deepmoji_split.py
file from the INLP repo.
- Standard Model:
nb_deepmoji.ipynb
- INLP Debiasing:
nb_INLP.ipynb
- Adversarial Debiasing:
nb_adv.ipynb
- Adversarial Ensemble:
nb_adv_ensemble.ipynb
- Adversarial Diverse:
nb_differentiated_adv.ipynb
Notice that in our paper, Table 1
results are averaged over 10 runs. Above notebooks are just one run rather than averaged scores.
$data_path
the the folder of splits.
- Standard model
python script_deepmoji.py \
--data_path $data_path
- Adv model
python script_deepmoji.py \
--data_path $data_path \
--adv \
--LAMBDA 0.8 \
--n_discriminator 1
- Ensemble model with $N sub-models
python script_deepmoji.py \
--data_path $data_path \
--adv \
--LAMBDA 0.8 \
--n_discriminator $N
- Separation model
python script_deepmoji.py \
--data_path $data_path \
--adv \
--LAMBDA 0.8 \
--n_discriminator $N \
--DL \
--diff_LAMBDA 10000