Skip to content

SoumyaBarikeri/RedditBias

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RedditBias

Data Preparation

The data preparation code is included in the directory - DataPreparation

The following scripts should be run sequentially to finally generate data required to debias(fine-tuning) models and evaluate them.

  • DataPreparation/reddit_data.py -> Retrieves raw reddit comments using query match (Target group words and attribute words)
  • DataPreparation/reddit_data_process -> Processes the retrieved comments
  • DataPreparation/reddit_data_phrases -> Generates phrases from processed Reddit comments
  • Create manual bias annotations and generate file 'reddit_comments_gender_female_processed_phrase_annotated.csv'
  • DataPreparation/reddit_data_phrases_replace_target.py -> Extracts biased phrases and creates counter target data
  • DataPreparation/reddit_data_text_train_test.py -> Creates train test split of biased phrases
  • evaluation/measure_bias.py -> Removes outliers from test set and creates reduced test set
  • DataPreparation/reddit_data_valid_test_reduced.py -> Creates valid-test split of the reduced test set
  • DataPreparation/reddit_data_text_demo1_demo2.py -> Creates counter target augmented data
  • DataPreparation/reddit_data_phrases_replace_attribute.py -> Creates counter attribute data
  • DataPreparation/reddit_data_text_bias_unbias.py -> Creates test files of counter attribute augmented data

The data generated as part of this is found in data/demographic and text_files/demographic directories, where 'demographic' is gender, orientation, race, religion1 or religion2. The txt files in folder text_files/ are used for train, validation and evaluation during fine-tuning the DialoGPT model using Debiasing methods.

A brief description of files in data/religion1 is:

  • religion2_muslims.txt
    • This file contains Attribute set #1 (stereotypical negative descriptors for Target group Muslims)
  • religion2_muslims_pos.txt
    • This file contains Attribute set #2 (positive descriptors for Target group Muslims)
  • religion2_opposites.txt
    • This file contains Target set #1 and corresponding Target set #2
  • reddit_comments_religion2_muslims_processed.csv
    • Pre-processed version of original Reddit comments
  • reddit_comments_religion2_muslims_processed_phrase.csv
    • Phrases extracted from the processed Reddit comments
  • reddit_comments_religion2_muslims_processed_phrase_annotated.csv
    • Manual bias annotations for Reddit comments and phrases
  • reddit_comments_religion2_christians_biased_test_reduced.csv and reddit_comments_religion2_muslims_biased_test_reduced.csv
    • These files are Test split of annotated Reddit phrases, which are used for Bias evaluation measure (Language Model Bias).
  • reddit_comments_religion2_christians_biased_valid_reduced.csv and reddit_comments_religion2_muslims_biased_valid_reduced.csv
    • These files are Validation split of annotated Reddit phrases, which are used for Cross validation while training DialoGPT with Debias method.
  • reddit_comments_religion2_muslims_processed_phrase_biased_testset_neg_attr_reduced.csv and reddit_comments_religion2_muslims_processed_phrase_biased_testset_pos_attr_reduced.csv
    • These files are test split of Reddit phrases used for Bias evaluation over contrasting Attributes for marginalised demographic.

Note: The unprocessed reddit comment files could not be uploaded to GitHub due to size constraints. Find it on https://drive.google.com/drive/folders/1FC79WZyuVJRGXf4OzGoX4z84wvwhBxgh?usp=sharing

Language Model Bias (Significance test Bias evaluation)

  • Evaluation/measure_bias.py

    • This script performs Student t-test on the perplexity distribution of two sentences groups with contrasting targets. For example works on files: reddit_comments_religion2_christians_biased_test_reduced.csv and reddit_comments_religion2_muslims_biased_test_reduced.csv. Set variable 'REDUCE_SET' to remove outliers from target set. Unset variable ''REDUCE_SET' if you are already using reduced test set for input
  • Evaluation/measure_bias_attribute_swap.py

    • This script performs Student t-test on the perplexity distribution of two sentences groups with contrasting attributes. For example works on files: reddit_comments_religion2_muslims_processed_phrase_unbiased_testset_pos_attr_reduced.csv and reddit_comments_religion2_muslims_processed_phrase_biased_testset_neg_attr_reduced.csv. Set variable 'REDUCE_SET' to remove outliers from target set. Unset variable ''REDUCE_SET' if you are already using reduced test set for input

Generate response from models

  • Decoding/generate.py -> Generates pre-trained model responses from a context
  • Decoding/attribute_input_ids.py -> Creates token ids of attribute words
  • Decoding/target_input_ids.py -> Creates token ids of target words

Debiasing code and Performance in Conversational tasks

Find the code for Algorithm level and Data level debiasing and evaluation (Dialog State Tracking & Response Generation) of debiased model in forked repo: https://github.com/SoumyaBarikeri/debias_transformers

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors