04. 모델은 현실을 설명하는가
문제 제기: 그래프는 상승했지만, 사람은 왜 떠났을까
대시보드의 선이 매끄럽게 올라간다. 새 추천 모델을 적용한 뒤 클릭률은 12퍼센트 증가했고, 예측 정확도도 기존 시스템보다 높다. 회의실에는 안도의 기색이 번진다. 모델이 사용자의 취향을 더 잘 이해하게 되었다는 결론이 자연스럽게 따라온다.
몇 주 뒤 고객센터에는 다른 종류의 문장이 쌓인다. “보고 싶은 것만 계속 나옵니다.” “왜 이 영상이 추천됐는지 모르겠습니다.” “처음에는 편했는데 이제는 지칩니다.” 숫자는 좋아졌는데 사용자는 떠난다. 그래프는 거짓말을 한 것일까. 아니면 우리가 그래프를 현실의 축소판이라고 너무 빨리 믿은 것일까?
공학에서 모델은 강력한 도구다. 복잡한 현상을 변수와 관계로 줄이고, 계산 가능한 형식으로 바꾸며, 미래의 선택을 돕는다. 그러나 줄인다는 것은 동시에 버린다는 뜻이다. 모델이 보여주는 것은 현실 그 자체가 아니라, 특정 목적과 데이터와 측정 방식에 의해 구성된 현실의 한 단면이다.
철학적 논점: 설명과 예측은 같은가
모델이 잘 예측한다고 해서 현실을 잘 설명한다고 말할 수는 없다. 내일의 교통량을 정확하게 예측하는 모델이 교통 체증의 원인을 이해하고 있다는 뜻은 아니다. 상관관계를 풍부하게 포착한 모델이 인과관계를 알고 있다는 뜻도 아니다. 어떤 변수들이 함께 움직인다는 사실과, 한 변수를 바꾸면 다른 결과가 발생한다는 주장은 서로 다른 종류의 지식이다.
흄 이후의 인과 논의가 반복해서 보여주듯, 사건이 함께 일어났다는 기록만으로 원인을 확정할 수는 없다. 오늘날의 머신러닝 시스템은 여기에 새로운 규모의 문제를 더한다. 수많은 특징과 가중치가 결합해 높은 성능을 만들지만, 그 복잡성이 곧 이해를 보장하지는 않는다. 설명 가능성 역시 ‘모델 내부의 진실’을 그대로 꺼내는 마법이 아니다. 어떤 설명을 누구에게 어떤 목적으로 제공할 것인지 정하는 또 하나의 설계다.
모델은 현실을 복사하지 않는다. 현실을 질문의 형태로 잘라낸다. “누가 이탈할 가능성이 높은가?”라는 모델과 “누가 이탈할 위험을 떠안고 있는가?”라는 모델은 같은 데이터에서 출발해도 전혀 다른 시스템을 만든다. 전자는 사용자를 붙잡기 위한 캠페인을 설계할 수 있고, 후자는 가격 정책, 접근성, 서비스 품질 같은 구조적 원인을 살피게 할 수 있다. 모델의 수식보다 먼저 검토할 것은 모델이 어떤 문장을 현실에 던지고 있는가이다.
공학 사례: 예측 점수 하나가 사람의 경로를 바꿀 때
대출 심사 시스템이 신청자의 상환 가능성을 점수로 산출한다고 하자. 모델은 과거의 상환 기록, 소득, 거래 패턴, 주소지와 같은 변수에서 규칙을 배운다. 높은 정확도는 금융기관에 매력적이다. 그러나 한 신청자가 낮은 점수를 받았을 때, 그 점수가 의미하는 바는 무엇인가. 정말 상환 능력이 낮다는 뜻인가, 아니면 과거에 비슷한 조건의 사람들이 충분한 대출 기회를 얻지 못했다는 뜻인가.
모델은 과거의 결정을 학습하면서 과거의 불균형까지 함께 배울 수 있다. 특정 지역에 금융 서비스가 적었다면 거래 데이터가 빈약해지고, 그 빈약함이 다시 낮은 신뢰도로 번역될 수 있다. 여기서 데이터의 부재는 중립적인 공백이 아니다. 누군가가 시스템에 기록되지 않았던 역사다. 모델이 그 공백을 ‘위험’으로 읽는 순간, 과거의 배제가 미래의 근거가 된다.
추천 시스템에서도 비슷한 일이 벌어진다. 사용자가 어떤 콘텐츠를 클릭했다는 사실은 그것을 좋아했다는 뜻일 수도 있지만, 제목이 자극적이었거나 다른 선택지가 눈에 띄지 않았기 때문일 수도 있다. 클릭은 관심의 증거이면서 인터페이스가 유도한 행동의 흔적이기도 하다. 클릭률만 최적화하면 시스템은 사용자의 만족보다 즉각적인 반응을 키울 수 있다. 측정하기 쉬운 행동이 측정하기 어려운 경험을 밀어내는 것이다.
그래서 모델을 만드는 일에는 여러 겹의 검증이 필요하다. 성능 지표뿐 아니라 데이터가 어떤 과정을 거쳐 만들어졌는지, 예측이 실제 의사결정에서 어떻게 사용되는지, 틀렸을 때 누가 손실을 부담하는지 확인해야 한다. 모델 카드나 평가 보고서는 장식용 문서가 아니라 모델의 적용 범위를 제한하는 장치가 될 수 있다. 불확실성을 표시하고, 사람이 이의를 제기할 수 있게 하며, 자동 결정과 보조 판단을 구분하는 설계도 성능의 일부다.
반론과 긴장: 그래도 모델 없이 결정할 수 있는가
모델에 대한 비판은 쉽게 반대편 극단으로 흘러간다. 인간의 직관이 더 공정하고 따뜻하다는 믿음이다. 그러나 사람 역시 기억이 불완전하고, 집단의 편견을 반복하며, 자신이 왜 그런 판단을 했는지 제대로 설명하지 못할 때가 많다. 모델을 사용하지 않는다고 해서 자동으로 더 나은 현실 인식이 생기는 것은 아니다. 오히려 명시적으로 검토할 수 없는 인간의 판단이 조용히 작동할 수도 있다.
따라서 쟁점은 모델을 쓸 것인가 말 것인가가 아니다. 모델의 판단을 어떤 권한으로 배치할 것인가, 그 판단을 수정하고 거부할 절차가 있는가, 데이터와 목표가 바뀌었을 때 모델을 다시 의심할 수 있는가에 있다. 숫자는 인간의 판단을 제거하지 않는다. 인간의 판단을 다른 장소로 옮긴다. 목표 함수를 정할 때, 라벨을 만들 때, 임계값을 선택할 때, 예외를 승인할 때 인간은 계속 결정한다.
특히 생성형 AI에서는 그럴듯함이 설명처럼 보이는 위험이 크다. 모델은 매끄러운 문장으로 이유를 말할 수 있지만, 말이 유창하다는 사실이 근거의 존재를 보장하지 않는다. 시스템이 인용을 요구받았을 때 실제 출처를 확인하는 절차, 모르는 것을 모른다고 말하게 하는 제한, 중요한 결과에 대한 인간 검토가 필요하다. 설명은 말투가 아니라 추적 가능성에 가까워야 한다.
마무리 질문
당신이 만든 모델은 현실의 무엇을 잘 보여주고, 무엇을 보이지 않게 만드는가. 정확도라는 숫자가 높아질수록 함께 커지는 맹점은 없는가. 모델을 믿을 이유를 늘리는 것만큼, 언제 믿지 말아야 하는지를 알려주는 구조를 만드는 일도 공학의 몫이 아닐까.