GitHunt
OG

ogencoglu/Gender_Bias_FinBERT

A super-quick demo to start discussions on bias in Finnish BERT language model

.. raw:: html

<img src="https://github.com/ogencoglu/Gender_Bias_FinBERT/blob/main/media/media.png" height="400px">

“Pekka”s are 260 times more likely to be an engineer than “Emilia”s! And “Tiia”s are 410 times more likely to love shopping than “Matti”s!

Possible Gender Bias in Finnish BERT?

The purpose of this mini-experiment is to:

  • quickly showcase how easy it is nowadays to load a pretrained language model and start using it for various tasks such as feature extraction, question answering, mask filling etc. in just a couple of lines
  • thank all the researchers and practitioners that made the abovementioned point possible
  • raise awareness to possible gender bias / stereotypical bias and other types of biases in these models
  • open up a constructive discussion around this topic and consequently learn from each other as a community
  • (hopefully) help the pursuit of inventing more equitable models without compromising accuracy

and is not to:

  • blame or accuse
  • play the victim (I honestly don't know how is this even possible but somehow got accused already in the first 24 hours ¯\(ツ)/¯)
  • drop the science hat and get political
  • get stuck in discussing specific examples or edge cases and lose the focus of the big picture

Note: this is just a quick & dirty demo to spark up some discussion. There are several studies for quantifying bias in contextual language models diligently, for example <https://arxiv.org/abs/1906.07337>_.

Google Colab Online Demo

Open in Colab <https://colab.research.google.com/drive/1sN0BWRQJEyALTHWInRCFvW354PQlEaW1?usp=sharing>_

Locally

Run <Gender_Bias_FinBERT_showcase.ipynb>_

Remarks

1 - As expected from the training data, the model is obsessed with Finnish politicians:

.. code-block:: python

sentence = f"{pipe.tokenizer.mask_token} sanoi."
pipe(sentence, top_k=10)

[{'score': 0.05185465142130852,
  'sequence': '[CLS] Tuomioja sanoi. [SEP]',
  'token': 15697,
  'token_str': 'Tuomioja'},
 {'score': 0.04348713159561157,
  'sequence': '[CLS] Soini sanoi. [SEP]',
  'token': 8574,
  'token_str': 'Soini'},
 {'score': 0.04261799901723862,
  'sequence': '[CLS] hän sanoi. [SEP]',
  'token': 361,
  'token_str': 'hän'},
 {'score': 0.04241926968097687,
  'sequence': '[CLS] Niinistö sanoi. [SEP]',
  'token': 5975,
  'token_str': 'Niinistö'},
 {'score': 0.042333755642175674,
  'sequence': '[CLS] Hän sanoi. [SEP]',
  'token': 737,
  'token_str': 'Hän'},
 {'score': 0.038560837507247925,
  'sequence': '[CLS] Vanhanen sanoi. [SEP]',
  'token': 9499,
  'token_str': 'Vanhanen'},
 {'score': 0.03149525821208954,
  'sequence': '[CLS] Stubb sanoi. [SEP]',
  'token': 12173,
  'token_str': 'Stubb'},
 {'score': 0.03149261325597763,
  'sequence': '[CLS] Lipponen sanoi. [SEP]',
  'token': 10367,
  'token_str': 'Lipponen'},
 {'score': 0.025139369070529938,
  'sequence': '[CLS] Sipilä sanoi. [SEP]',
  'token': 9517,
  'token_str': 'Sipilä'},
 {'score': 0.01755082793533802,
  'sequence': '[CLS] Katainen sanoi. [SEP]',
  'token': 11015,
  'token_str': 'Katainen'}]

2 - Multilingual BERT shows less inbalance in several examples but its Finnish token vocabulary is limited

Finnish BERT model - FinBERT v1

HuggingFace Transformers <https://huggingface.co/transformers/>_ model card: TurkuNLP/bert-base-finnish-cased-v1

Publication <https://arxiv.org/abs/1912.07076>_

TurkuNLP FinBERT page <http://turkunlp.org/FinBERT/>_

MIT License
Created November 16, 2020
Updated November 19, 2020