요약
- 반사실(counterfactual)은 "사실과 반대로 가정한 가상 상황". 어떤 요인의 진짜 효과를 알려면 "그 요인이 없었을 때"와 비교해야 한다.
- 동일 대상에서 동시에 "있을 때"와 "없을 때"를 관측할 수 없으므로, 시스템 모델을 학습해 그 모델 안에서 요소를 제거하고 결과를 예측한다.
- 정확도는 학습 모델의 정확도에 묶여 있다. 가장 정확한 검증은 실제 A/B 테스트지만, 비용과 부작용 때문에 보통 모델 시뮬레이션으로 근사한다.
본문
반사실이 필요한 이유: 인과 검증의 출발점
상관과 인과를 구분하려면 비교 대상이 필요하다. "약 먹은 사람이 나았다"는 사실 하나로는 약의 효과를 모른다. 같은 사람이 같은 시점에 약을 안 먹었을 때를 봐야 진짜 효과가 나온다. 이 가상의 관찰값이 반사실(counterfactual)이다.
실제로 같은 시점의 두 상태를 동시에 관측할 수는 없다. 그래서 인과 추론은 어떻게든 이 반사실을 추정해야 한다. 두 갈래가 있다.
- 무작위 통제 실험(A/B 테스트): 무작위로 두 그룹을 나눠 한쪽만 처치. 그룹 평균 차이가 인과 효과.
- 반사실 시뮬레이션: 시스템 동작을 모델로 학습해두고, 모델 안에서 요인을 제거한 상태를 돌려본다.
A/B 테스트가 정답에 가깝지만 비싸거나 부작용이 크다(예: 유저 경험을 의도적으로 망가뜨려야 함). 그래서 모델 기반 시뮬레이션이 실무 디폴트다.
일반 절차
1. 시스템 동작 모델 학습
"입력(상태) → 출력(결과)" 관계를 데이터로 학습
2. 반사실 시나리오 정의
"X가 없을 때 입력이 어떻게 바뀌는가" 명시
3. 모델로 반사실 결과 예측
바뀐 입력을 모델에 넣어 가상의 출력 산출
4. 실제 출력과 차이 비교
차이 = X의 인과 기여도 추정치
핵심은 (2) 시나리오 정의가 도메인에 따라 다르다는 것이다. 무엇을 "제거"하고, 그 자리에 무엇이 들어오는지를 도메인 지식으로 채워야 한다.
적용 사례: 매칭 시장에서 비결제 유저의 매출 기여도
매칭 시스템은 보통 "유저 신청 → 대기 풀에서 후보 점수 계산 → 1순위 선택"으로 동작하며, 모든 신청·풀·선택 기록이 로그에 남는다.
비결제 유저 A의 매출 기여도를 추정하려면:
실제 로그 (오후 3시):
헤비유저1 신청, 풀: [A(90), C(75), E(60), ...] → A 선택
A 제거 시뮬레이션:
같은 시점·같은 풀에서 A만 지움
풀: [C(75), E(60), ...] → C 선택 (원래 차선이던 후보)
새 매칭 결과는 학습된 "매칭→결제" 모델(또는 매칭→만족도→결제 2단계 모델)에 넣어 가상 매출을 뽑는다. 원래 매출 - 가상 매출 = A의 매출 기여도.
여기서 A 자리에 새 유저가 등장하는 게 아니라, 그 시점 대기 풀에 있었지만 A에 밀린 차선책 유저가 들어온다는 점이 중요하다. 시뮬레이션은 새 알고리즘을 돌리는 게 아니라 과거를 다른 분기로 재생하는 것이다.
이 추정치는 Personalized PageRank로 뽑은 점수의 검증 앵커로 쓰인다.
정확도 등급
| 방식 | 정확도 | 비용 | 비고 |
|---|---|---|---|
| 회귀 근사 (있을 때 평균 vs 없을 때 평균) | 낮음 | 매우 낮음 | 인과 검증 안 됨. 단순 상관 |
| 모델 기반 시뮬레이션 (leave-one-out) | 중간 | 중간 | 위 절차. 모델 정확도에 묶임 |
| A/B 테스트 (실제로 요소를 빼본다) | 높음 | 매우 높음 | 진짜 인과. 부작용 위험 |
본질적 한계
- 모델 정확도가 상한: 시스템 모델이 부정확하면 시뮬레이션 결과도 그만큼 부정확하다. "맞는 모델인지"는 시뮬레이션 자체로는 검증 불가.
- 연쇄 효과 누락: X를 빼면 Y의 상태도 바뀌고, 그게 Z에 영향을 주는 2차 효과까지 잡으려면 시스템 전체를 재시뮬레이션해야 한다. 보통은 1차 효과만 본다.
- 반사실 시나리오의 자의성: "X가 없으면 그 자리에 누가/무엇이 들어오는가"는 가정이다. 매칭 시장에서는 차선책 유저로 가정하지만, 다른 도메인은 다른 가정이 필요하다.
이런 한계 때문에 반사실 시뮬레이션 결과는 최종 의사결정의 근거가 아니라, 더 빠른 지표(점수·랭킹)가 얼추 맞는지 검증하는 앵커로 쓰는 게 일반적이다.