06. 데이터는 진실을 말하는가
문제 제기: 숫자가 증언하는 방식
면접관이 노트북 화면을 돌려 보여 준다. “이 모델은 과거 채용 데이터를 학습했고, 예측 정확도는 92퍼센트입니다.” 회의실 안에서는 고개가 끄덕여진다. 데이터가 많고, 계산 과정이 자동화되어 있으며, 결과에는 소수점 둘째 자리까지 붙어 있다. 인간의 편견을 줄이기 위해 만든 시스템이라는 설명도 이어진다. 그런데 그 과거 데이터가 오랫동안 특정 학교 출신을 더 많이 뽑아 온 기록이라면 어떨까. 모델은 편견을 없애는 대신 편견이 남긴 흔적을 더 빠르고 일관되게 재생산할 것이다.
데이터는 자주 사실의 다른 이름처럼 사용된다. “데이터가 말해 준다”는 표현에는 데이터가 스스로 입을 열고, 인간은 그 말을 받아 적기만 한다는 이미지가 들어 있다. 하지만 데이터는 자연에서 저절로 솟아난 목소리가 아니다. 누군가 무엇을 기록했고, 무엇을 기록하지 않았으며, 어떤 분류와 라벨을 붙였고, 어떤 질문을 던졌는지의 결과다. 데이터는 진실을 전달할 수 있지만, 진실을 보증하지는 않는다.
철학적 논점: 기록된 사실과 세계의 사실
데이터에는 적어도 두 개의 층위가 있다. 하나는 사건이 일어났다는 의미의 사실이고, 다른 하나는 그 사건이 특정 시스템에 기록되었다는 사실이다. 병원 기록에 통증 점수가 3으로 남아 있다는 것은 환자의 통증이 객관적으로 3이었다는 뜻이 아니다. 환자가 그 질문을 이해했는지, 간호사가 바빴는지, 통증을 낮게 말하는 문화적 습관이 있었는지, 기록 양식이 어떤 답변만 허용했는지가 함께 작용한다.
따라서 데이터의 공백도 데이터다. 신고가 적은 지역이 안전한 지역인지, 신고할 기관을 믿지 못하는 지역인지 구분하려면 기록되지 않은 조건을 살펴야 한다. 로그인하지 않은 방문자의 행동이 분석에서 제외되었다면, 그 시스템은 로그인 사용자에 관한 진실만 말할 수 있다. 그런데 그 제한을 잊는 순간, 부분적인 표본이 전체 인간을 대표하는 것처럼 변한다.
여기에는 인식론의 문제가 있다. 우리는 무엇을 안다고 말할 수 있는가. 모델의 출력은 미래에 대한 판정이 아니라, 특정 데이터와 가정 아래에서 계산된 추정이다. 그 추정이 높은 정확도를 보였다는 사실도 중요하지만, 누구에게 틀리는지, 틀렸을 때 누가 비용을 부담하는지까지 알아야 한다. 평균 정확도는 책임의 분포를 숨길 수 있다.
공학 사례: 자동화된 위험 점수
한 금융 서비스가 대출 심사를 자동화한다고 하자. 모델은 연체 가능성을 예측하고, 위험 점수가 높으면 추가 서류를 요구한다. 개발자는 성별과 인종을 직접 입력값에서 제거했으니 공정하다고 생각할 수 있다. 그러나 우편번호, 거래 시간, 휴대전화 기종, 과거 이용한 지점 같은 변수들이 이미 사회적 조건을 대신 말하고 있다. 어떤 동네에 살았는지, 어떤 금융기관과 거래했는지가 개인의 상환 의지와 무관하게 불이익의 통로가 될 수 있다.
더 복잡한 문제는 과거의 결과가 원인처럼 사용된다는 점이다. 과거에 특정 집단이 대출을 덜 받았다면, 그것은 그 집단의 위험이 높았기 때문일 수도 있지만 은행이 애초에 대출을 덜 제공했기 때문일 수도 있다. 모델이 과거 승인 기록을 학습하면, 접근 기회의 부족이 신용의 부족으로 둔갑한다. 시스템은 “이 사람은 위험하다”고 말하는 것 같지만, 실제로는 “이 사람과 비슷한 사람에게 과거에 기회가 적었다”고 말하고 있을 뿐이다.
이런 상황에서 공학적 대응은 모델을 더 복잡하게 만드는 것이 아니다. 데이터가 생성된 경로를 추적하고, 라벨이 어떤 제도적 판단을 포함하는지 문서화하며, 집단별 오류율과 거부율을 확인해야 한다. 예측 결과를 최종 결정으로 고정하지 않고, 이의를 제기할 수 있는 통로와 사람의 재검토 절차를 설계해야 한다. 그리고 모델이 배치된 뒤 현실의 사람들이 어떻게 적응하는지도 관찰해야 한다. 대출을 거절당한 사람은 다음 신청에서 행동을 바꿀 것이고, 그 변화는 다시 새로운 데이터가 된다. 데이터는 세계를 반영할 뿐 아니라, 세계의 다음 장면을 만들기도 한다.
반론과 긴장: 인간보다 데이터가 낫지 않은가
“인간 심사관도 편견이 있는데, 적어도 데이터와 모델은 일관적이지 않은가?” 이 반론은 무시할 수 없다. 자동화는 피로와 기분에 따른 변덕을 줄이고, 같은 규칙을 많은 사람에게 적용할 수 있다. 잘 설계된 시스템은 실제로 인간의 판단보다 더 공정할 수도 있다.
그러나 일관성은 정의와 다르다. 잘못된 기준을 모든 사람에게 똑같이 적용하는 것은 공정한 일이 아니다. 또한 인간의 편견이 사라지는 대신 코드와 데이터 파이프라인 속으로 이동하면, 피해를 입은 사람은 그 편견의 주체를 찾기 어려워진다. “모델이 그렇게 판단했다”는 문장은 설명처럼 보이지만 책임을 지우는 말이 되기 쉽다.
그러므로 공학자는 데이터의 중립성을 주장하기보다 데이터의 조건을 공개해야 한다. 어떤 모집단에서 수집했는지, 어떤 누락과 측정 오류가 있는지, 어떤 상황에서는 사용하면 안 되는지 밝혀야 한다. 모델을 만드는 일은 정답 기계를 만드는 일이 아니라, 특정한 불확실성을 특정한 방식으로 관리하는 일이다.
마무리 질문
이 데이터는 누구의 경험을 기록하고, 누구의 경험을 침묵시키는가. 모델이 틀렸을 때 그 오류를 발견하고 항의할 사람은 누구이며, 시스템은 그 목소리를 다음 버전에 반영할 수 있는가. 우리가 “데이터가 말한다”고 표현할 때, 실제로는 어떤 인간의 선택과 제도를 대신 말하게 만들고 있는가?