Machine Learning: Data Bias (데이터 편향)
머신 러닝을 위한 데이터는 매우 중요합니다. Andrew Ng 교수님은 MLOps: From Model-centric to Data-centric AI 영상에서 파레토 법칙을 말하며 인공 지능 모델 성능의 80%는 데이터가 영향을 줄 수 있다고 말씀하셨습니다. 기계 학습 모델을 만들어야 한다면 먼저 모델에 사용되는 데이터를 이해할 필요가 있습니다. 이러한 데이터를 분석, 이해하는 과정을 통계학에서는, Exploratory Data Analysis (EDA)라고 합니다. 여기서는 데이터 bias(편향)에 대해서 알아보려고 합니다.
Data Bias란
데이터 bias는 데이터가 전체를 표현하지 못하고 일부만을 표현하는 데서 비롯될 수 있습니다. 이미지에 있는 고양이를 인식하는 모델을 생각해 봅시다. 우리는 학습 데이터로 사용할 이미지를 수집해야합니다. 그리고 고양이가 있는 이미지와 고양이가 없는 이미지로 labeling을 할 것입니다. 수집된 데이터에는 어떻게 수집했느냐에 따라서 크든, 적든 bias가 존재하게 됩니다. 우리는 과연 bias 없이 이미지를 수집할 수 있을까요? 어떨 때는 그냥 우리가 다루는 모든 데이터는 bias가 있다고 생각해도 큰 무리가 없을 수 있을 것 같습니다. 우리가 학습하는 대부분의 인공지능 모델은 매우 적더라도 bias가 있는 데이터로 생성되고 따라서, bias가 있는 모델입니다. 우리는 데이터에 bias가 존재할 수 있다는 것을 이해하고 (적어도 결과의 80%는 데이터가 영향을 준다고 생각하신다면,) 영향을 최소화 할 수 있는 모델을 만드려고 고민해야합니다.
Data Bias의 종류
Data bias의 종류는 다양합니다. Understanding Data Bias [1]에서 소개된 5가지의 흔한 bias는 다음과 같습니다.
- Response or Activity Bias: 사람의 반응, 혹은 활동에 의해 수집된 데이터 셋에 있는 bias입니다. 예를 들어 상품의 리뷰 데이터등은 리뷰를 쓴 사용자들의 데이터로 전체 사용자의 데이터와는 차이가 있을 수 있습니다. 특히, 리뷰를 남기는 사용자는 전체의 매우 작은 부분이라고 가정하면 bias는 생각보다 클 수 있습니다.
- Selection bias due to feedback loops: 추천 시스템 등에서 발생하는 bias입니다. 사용자의 클릭 로그같은 행동 데이터를 사용해서 만들어진 추천 시스템은 추천의 결과로 사용자에게 보여준 아이템에 대한 로그만 수집할 수 있습니다. 그 외, 사용자에게 추천되지 못한 대부분의 아이템에 대한 로그는 수집되지 않아 데이터로 사용할 수 없습니다. 이렇게 사용자에게 보여진 아이템에 대한 로그로만 다시 시스템은 학습을 하게 됩니다.
- Bias due to system drift: 데이터를 생성하는 시스템이 점점 변화하면서 발생하는 bias입니다. 시스템에 사용되는 알고리즘, 혹은 UI 업데이트 등 시스템은 시간이 지남에 따라 변화하게 됩니다. 이러한 시스템을 통해서 생성되는 데이터는 변화에 따라 bias도 변화하게 됩니다.
- Omitted variable bias: 넓게 보면 bias의 종류 중 하나로 볼 수 있습니다. 모델을 학습을 위한 데이터에 정보가 충분하지 않는 경우입니다. 보통 사람이 만들어낸 데이터에 존재합니다.
- Societal bias: 역시 사람에 의해 생성된 bias입니다. 특정 집단의 사람이 데이터를 수집하거나 labeling 하게 되면 발생할 수 있습니다. 즉, 특정 집단이 전체를 대표하지 못하는 경우 입니다.
이 외에도 여러 종류의 bias가 있습니다. 데이터를 수집할 때나, 혹은 검증을 위해 트레이닝 데이터와 테스트 데이터를 나눌때에도 어떠한 bias가 있을 수 있는지 고민해야 합니다.
참조
[1] Understanding Data Bias, https://towardsdatascience.com/survey-d4f168791e57