(8강) Reducing Training Bias
ODQA 할 떄 발생할 수 있는 bias에 대해 배워본다.
어떤 상황에서 발생하는지와 해결하기 위한 노력들에 대해서
[Reference & Further Reading]
1. Definition of Bias
1.1. Bias의 종류
Bias in learning
inductive bias: 학습할 때 과적합을 막거나 사전 지식을 주입하기 위해 특정 형태의 함수를 선호하는 것
예를 들어 요약 대회에서 육하원칙으로 만들어진다고 생각하고 우리가 전처리하는 것
A Biased World
historical bias: 현실 세계가 편향되어 있기 때문에 모델에 원치 않는 속성이 학습되는 것
co-occurrence bias: 성별과 직업 간 관계 등 표면적인 상관관계 때문에 원치 않는 속성이 학습되는 것
Bias in Data Generation
specification bias: 입력과 출력을 정의한 방식 때문에 생기는 편향
sampling bias: 데이터를 샘플링한 방식 때문에 생기는 편향
annotator bias: 어노테이터의 특성 때문에 생기는 편향
Gender Bias
성별에 따라서 Bias가 생기는 것을 확인할 수 있다. 예를 들어 cooking 같은 경우 여성과 연관시켜서 오류가 발생하게 된다. 또 다른 예로는 "저 사람은 의사다." 라는 문장이 he is doctor 로 의사는 남자로 많이 학습되어 남자라고 가정하게 되는 bias가 있다.
Sampling Bias
설문 대상 설정으로 생긴 Bias로 인한 오류.
Bias 가 있는 것이 나쁘다라기 보다 객관화를 하기에 문제가 있을 수 있다. 라고 생각하고 그를 해결하고자 고민할 것.
2. Bias in ODQA
2.1. Training bias in reader model
만약 reader 모델이 한정된 데이터셋에서만 학습하게 된다면 정답이 문서 내에 포함된 데이터 쌍만을 보게 되고, 이는 새로운 문서가 주어졌을 때 정답을 찾기 어려울 것이다.
예를 들어 소설, 수필, 비문학 등을 학습시킨 모델에 의학, 공학, 자연과학을 추론하게 한다면 당연히 정답을 맞출 수 없는 것과 같다.
2.2. How to mitigate Bias
Train negative examples
훈련할 때도 잘못된 예시를 보여줘서 retriever이 negative한 내용들은 먼 곳에 배치할 수 있음.
=> Negative sample도 완전히 다른 negative와 비슷한 negative에 대한 차이 고려 필요함.
🤷♂️ 대회를 하면서 항상 의구심이 들었던 부분인데 전처리를 통해 잘못 생성된 데이터를 제거하는 것이 과연 옳은 일인가 하는 고민이 든다... 이 내용을 보면 일부러 negative 데이터를 삽입하는 걸 볼 수 있다보니, 잘못된 데이터를 그냥 두는 것이 어찌보면 bias문제를 완화하는 조치가 되지 않을까?
좋은 negative sample을 뽑기 위한 방법
Corpus내에서 랜덤하게 뽑기
좀 더 헷갈리는 negative 샘플들 뽑기
=> 높은 BM25 / TF-IDF 매칭 스코어를 가지지만, 답은 포함하지 않는 샘플
=> 같은 문서에서 나온 다른 Passage / Question 선택하기
Add no answer bias
입력 시퀸스의 길이가 N일때, 시퀸스의 길이 외 1개의 토큰이 더 있다고 생각하기
=> Training Model의 마지막 레이어 weight에 훈련가능한 bias를 하나 더 추가
=> Softmax로 answer prediction 을 최종적으로 수행할 때, start end 확률이 해당 bias 위치에 있는 경우가 가장 확률이 높으면 이는 "대답 할 수 없다" 라고 취급
3. Annotation Bias from Datasets
3.1. Annotation Bias란?
ODQA 학습 시 기존의 MRC데이터 셋을 활용 => ODQA 세팅에는 적합하지 않은 bias가 데이터 제작(annotation) 단계에서 발생할 수 있음.
질문을 하는 사람이 답으르 알고 있는 상태로 질문하는 경우가 발생한다.
SQuAD: Only 500 + wiki article => 학습 데이터의 분포자체가 이미 bias 되어있음
질문을 하는 사람이 passage를 보면서 문제를 내기 때문에 질문과 passage에 공통된 단어가 많아지게 된다.
3.2. Effect of annotation Bias
데이터 제작 단계에서 생긴 Bias로 인해 데이터 셋 별로 모델의 성능이 다르게 나오는 현상을 볼 수 있다.
합치면 올라가는 경우도 있으니 참고하자.
3.3. Dealing with annotation bias
데이터 셋 구성을 할 때, 실제로 생기는 것을 고려하여 데이터를 수집하는 것이 중요하다.
실습코드 Link
Last updated