일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- naver
- nlp
- pytorch
- 네이버 연구 인턴
- 연구
- 네이버 인턴
- Colab
- 연구인턴
- Fairness AI
- multi-GPU
- conda
- FairFil
- Torch
- 네이버
- 네이버 NLP 인턴
- FairFil: Contrastive Neural Debiasing Method for Pretrained Text Encoders
- error
- 인턴
- 네이버 검색팀
- ICLR
- PYTHON
- nn.DataParallel
- Today
- Total
N'log
FairFil: Contrastive Neural Debiasing Method for Pretrained Text Encoders (ICLR 2021) 본문
FairFil: Contrastive Neural Debiasing Method for Pretrained Text Encoders (ICLR 2021)
Juhyeon Nam 2021. 9. 17. 00:01첫 PR 게시글 논문은 FairFil!
요즘 Contrastive learning이 재미있어 보여서 언어 도메인에 적용할 수 있는 방법을 생각해보던 중, 문득 "문장 임베딩의 공정성 향상에 사용할 수 있지 않을까?"라는 생각이 들었다. "Contrastive", "Fairness", "Debiasing" 같은 키워드로 몇 번 검색해보니 이 논문이 나와서 반갑기도 했고 또 아쉽기도 했다... 여튼 올해 5월 ICLR에 발표된 논문이니 너무 늦은 건 아니라고 위로하며 한 번 논문을 읽어보자.
# TL;DR
- 문장 임베딩의 사회적 편향성을 뉴럴넷 기반으로 제거한 첫 논문
- Pretrained 인코더에서 나온 문장 임베딩의 편향을 개선하는 Fair Filter (FairFil) network를 제안
- FairFil은 Contrastive learning 프레임워크로 학습함
- 실제 데이터셋에서 downstream task들의 성능을 어느 정도 유지하면서 편향을 개선함
- 인코더를 다시 학습시킬 필요가 없는 사후검정(post hoc) 방법을 제안함
# Introduction
문제 제기: The Problem
- 기존 Pretrained 문장 인코더에서 나온 문장 임베딩에서의 사회적 편향이 지속적으로 관측됨
- 지금까지의 편향 완화 방법론들은 단어 단위(word-level)로만 연구되어왔음
- 단어 단위의 편향을 완화한다고 해서 문장의 사회적 편향이 완화되는 것을 보장할 수 없음
연구 의의: Contributions
- 사전학습된 인코더(pretrained encoder)에서 나온 문장 임베딩에 대한 첫 신경망(Neural net) 기반 편향성 제거 방법론 제시
- FairFil은 전체 사전학습된 인코더(pretrained encoder)를 다시 학습시킬 필요가 없는 사후 검정(post hoc) 방법
논문 개요: Outline
- 기존 학습 데이터에서, 그 의미는 동일하나 포함된 사회적 편향의 방향성이 달라지도록 데이터를 변형(data augmentation)
- 이 때 기존의 데이터는 positive sample, 변형된 데이터는 negative sample이라 칭함 - Positive sample과 Negative sample의 상호의존 정보(mutual information)가 극대화되도록 FairFil을 대조 학습(Contrastive learning)함.
- 편향 제거 정규화(Debiasing regularizer)를 이용하여 민감한 단어로부터 생긴 편향을 제거함
- FairFil은 임베딩의 공정성(fairness)과 표현성(representativeness)에 있어서 Sent-Debias보다 좋은 성능을 보임
# Preliminaries
이 단락에서는 논문에서 사용되는 주요한 개념들을 간단하게 설명하고자 한다.
Mutual Information(MI): 상호의존정보
두 변수 사이의 정보량을 의미한다. 하나의 무작위 변수를 통해 다른 하나의 무작위 변수에 대해 얻을 수 있는 정보량을 정량화한 것으로, 아래의 수식으로 표현된다.
상호의존 정보(이하 MI)는 정확한 값을 계산해내기가 어려운 것으로 잘 알려져 있다. 보통 우리는 주어진 변수 x와 y에 대한 정확한 결합 확률분포 \(p(x, y)\)를 알지 못하는 상황에서 \(p(x, y)\)의 일부 샘플값만을 갖고 있기 때문이다. 따라서 MI를 추정하는 방법들이 사용된다. 이 논문에서는 InfoNCE와 CLUB, 두 가지의 추정자를 사용한다.
InfoNCE estimator (Oord et al., 2018)
이 추정자는 MI를 최대화할 때 사용된다. 우리에게 한 배치(batch)의 샘플 쌍 \(\{(x_i, y_i)\}_{i=1}^N\) 주어졌을 때, InfoNCE 값은 아래의 수식과 같이 계산된다.
CLUB, Contrastive Log-ratio Upper Bound (Cheng et al., 2020)
이 추정자는 이름에서도 알 수 있듯이 MI의 상한값을 계산한다. 따라서 이 CLUB은 MI를 최소화하는 데 사용된다. MI의 상한값은 변수 \(y\)의 (x\)에 대한 조건부 확률을 이용하여 계산한다. 하지만 우리에게는 한 배치(batch)의 샘플 쌍 \(\{(x_i, y_i)\}_{i=1}^N\)만이 주어지기 때문에 정확한 조건부 확률을 구할 수 없다. 따라서 우리는 변분추론(Variational approximation) 값인 \(q_\theta(y|x)\)를 이용한다.
여기서 \(\theta\)는 모델의 파라미터를 의미하며, 따라서 \(q_\theta(y|x)\) 또한 모델을 통해 학습되는 함수다.
# Method
논문에서 제안한 방법론을 설명하기에 앞서 수식 표기법에 대해서 정리하고 넘어가자.
- \(E(\cdot)\): 사전 학습된 인코더(Pretrained encoder)
- \(z=E(x)\): 문장 \(x\)의 임베딩 \(z\)
- \(x=(w^1, w^2, ..., w^L)\): 문장 \(x\)는 단어들 \(w^1, w^2, ..., w^L\)의 배열
이 논문에서는 사전 학습된 인코더에서 나온 문장 임베딩 \(z\)의 편향을 제거하는 필터 \(f(\cdot)\)을 학습하고자 한다. 곧, 필터의 출력인 \(d=f(z)\)는 기존의 문장 임베딩 (\z\)의 의미는 그대로 갖고 있지만 편향이 제거된 문장 임베딩이다.
방법 개요: Method Overview
전체 방법을 Multi-view contrastive learning framework이라 부르며, 그 과정은 아래와 같다.
- 기존 문장 \(x\)의 의미는 보존하지만 다른 잠재적 편향 방향성을 갖는 새로운 문장 \(x'\)을 만든다.
- InfoNCE를 손실 함수로 사용하여 기존 문장 임베딩\(z=f(x)\)과 새로운 문장 임베딩\(z'=f(x')\) 간의 MI를 최대화한다.
- 편향 제거 정규화(Debiasing regularizer)를 이용하여 필터링된 임베딩 \(d\)와 문장\(x\) 안의 민감한 속성을 지닌 단어 간의 MI를 최소화한다.
1. Data Augmentations with Sensitive Attributes
우선 자주 사용되는 단어를 정리하자.
- 사회적으로 민감한 주제(Social sensitive topic)란 편향이 발생할 수 있는 주제를 의미하며, "성별", "인종", 혹은 "종교" 등을 의미한다.
- 사회적으로 민감한 주제에 대한 잠재적 편향 방향(Potential bias direction)이란 해당 주제에 대해 발생할 수 있는 편향의 방향성을 의미한다. 예를 들어 주제 "성별"에 대한 잠재적 편향 방향에는 "여성"과 "남성"이 포함될 수 있다.
논문에서는 사회적으로 민감한 주제를 "성별"로 정하고, 그에 대한 잠재적 편향 방향인 "여성"과 "남성"에 대해서 편향성을 없애는 실험을 진행했다. 하지만 이는 "성별"에 대한 데이터셋을 사용하였기 때문이고, 데이터셋만 있다면 다른 어떤 주제로도 이 방법을 적용할 수 있다.
데이터셋의 문장을 다른 잠재적 편향 방향을 가진 문장으로 바꾸는 Augmentation 과정은 아래와 같이 직관적이면서 간단하다. 문장에서 잠재적 편향을 포함하고 있는 단어(He, his)를 다른 잠재적 편향 방향의 대체 단어(She, her)로 변경한다.
이렇게 각자 잠재적 편향 방향이 상반되는 문장의 쌍\((x,x')\)이 만들어지면, 이 쌍을 이용하여 문장 임베딩의 해당 민감 주제 편향을 없애는 필터를 학습시킨다.
2. Contrastive Learning Framework
Contrastive Learning Framework는 아래 그림의 빨간 박스 부분을 의미한다.
한 배치(batch)의 샘플 \(\{(d_i, d_i')\}_{i=1}^N\)이 주어졌을 때, \(\mathcal{I}_{NCE}\) 값을 최대화하도록 \(f(\cdot)\)이 학습된다. 또한 그 과정에서 \(\mathcal{I}_{NCE}\)를 계산하는 과정에서 필요한 \(g(d, d')\) 함수 또한 학습된다.
여기서 Positive pair인 \(d_i, d_i'\)은 같은 문장 \(x_i\)로부터 나온 편향 제거 임베딩들의 쌍을 의미한다. Negative pair \((d_i, d_j')\)은 문장 \(x_i\)에 대한 편향 제거 임베딩 \(d_i\)와 배치 내 다른 문장 \(x_j\)에서 augmentation 된 문장 \(x_j'\)의 편향 제거 임베딩\(d_j'\)의 쌍을 의미한다. 따라서 \(\mathcal{I}_{NCE}\)를 최대화하기 위해서는, 문장 \(x_i\)의 편향 제거 임베딩 \(d_i\)를 기준으로 해당 문장에서 augmentation된 편향 제거 임베딩 \(d_i'\)은 최대한 비슷해지도록, 배치 내 다른 문장 \(x_j\)에서 aumentation된 편향 제거 임베딩 \(d_j'\)은 최대한 달라지도록 학습이 된다. 직관적으로 이해하자면, 다른 편향 방향을 갖고 있는 문장 \(x_i\)와 \(x_i'\)이 최대한 비슷한 임베딩이 되게 학습함으로써 임베딩 \(d_i\)와 \(d_i'\)이 편향 방향과 상관없는 문장의 의미만을 보존하도록 필터 \(f(\cdot)\)을 학습시킨다.
3. Debiasing Regularizer
\(\mathcal{I}_{NCE}\)를 최대화함으로써 문장 임베딩이 편향 방향에 상관 없는 의미만을 보존하도록 학습시켰다면, Debiasing regularizer는 문장과 문장 안의 편향을 내포하는 단어 간의 MI를 최소화하도록 필터 \(f(\cdot)\)을 학습시킨다. 아래 그림의 빨간 박스 안 도식이 해당 과정을 나타낸다.
문장 \(x\)의 단어들 충 \(p\) 번째 단어인 \(w^p\)가 편향을 내포하는 단어라고 할 때, \(w^p\)와 \(d\) 간의 MI의 상한값인 \(\mathcal{I}_{CLUB}\)를 최소화하는 정규화 방법이다. 이로써 \(w^p\)와 \(d\) 간의 MI를 최소화하는 효과를 얻을 수 있으며, 곧 필터링된 문장 임베딩 \(d\)가 편향을 내포한 단어의 정보를 최대한 포함하지 않도록 더욱 필터링을 강화하는 효과를 얻을 수 있다.
여기서 \(q_\theta\)는 조건부 확률의 변분근사이며, 변수인 \(\theta\)가 모델을 통해 학습된다.
# Experiments
모델을 통해 학습되는 변수들은 아래와 같이 정리할 수 있다.
실험에 사용한 데이터셋과 설정들은 아래와 같다.
- 사전 학습된 인코더: BERT
- 실험에 사용한 과제(Downstream tasks): SST-2, CoLA, QNLI
- FairFil 학습 데이터: WikiText-2, SST, Reddit, MELD, POM에서 가져온 183,060개의 문장을 "성별"에 대하여 미리 정의해둔 사회적으로 민감한 단어들을 기준으로 변형(Augmentation)
편향 측정 방법: Bias Evaluation Metric
기존의 단어 임베딩의 편향을 측정하는 방법인 WEAT(Word Embedding Association Test)를 확장한 SEAT(Sentence Encoder Association Test)를 사용했다. 이 측정 방법들에 대해서는 다른 포스트에서 좀 더 자세히 다루도록 하겠다.
실험 결과
실험 결과의 평가는 두 가지 수준에서 이루어졌다. 우선 필터링된 문장 임베딩에서도 기존 문장 임베딩의 정보를 모두 담고 있는지를 확인하기 위한 하위 과제(Downstream tasks)에서의 성능을 평가한다. 또 필터링된 문장 임베딩의 편향성이 얼마나 제거되었는지를 평가하기 위한 방법으로 SEAT를 사용한다.
Sent-D는 딥러닝을 사용하지 않고 문장 임베딩에서 편향을 제거하는 방법을 제안한 논문인 'Towards debiasing sentence representations, Liang et al. 2020'에서 나온 Sent-Debias를 의미한다. FairF-는 Debiasing regularizer를 사용하지 않은 모델을, FairF는 Debiasing regularizer까지 사용한 모델을 의미한다.
결과를 보면 FairFil은 문장 임베딩의 편향을 제거하는 기존 방법인 Sent-Debias와 대체적으로 유사한 성능을 유지하면서도, 편향성을 훨씬 제거한 것을 확인할 수 있다. 다만 Debiasing regularizer는 편향성을 더 제거하는 반면에 하위 과제의 성능을 떨어뜨리는 Tradeoff가 있음을 확인할 수 있다.
# Conclusion
- 대용량 텍스트 인코더에 대한 새로운 편향 제거 방법론을 제시
- Multi-view Contrastive learning framework를 고안
- Debiasing regularizer를 고안
- 편향을 효과적으로 제거하면서도 문장의 의미를 보존
- 이미 생성된 문장 임베딩을 필터링하는 방식의 사후 검정(post hoc) 방식으로,
인코더를 학습하는 데 사용했던 데이터셋이나 인코더를 다시 학습할 필요가 없음