조사하지 않은 건들이 전부 정상이라는 가정, 정말 맞는가
FDS 모델을 운영하다 보면 불편한 질문과 마주한다.
"모델이 의심했지만 리소스 부족으로 조사하지 못한 건들, 이것들은 정상인가?"
현재 대부분의 FDS 파이프라인에서 이 질문의 답은 암묵적으로 "그렇다"다.
조사받지 않은 건은 자동으로 음성(정상) 레이블을 달게 된다.
하지만 이 가정이 틀렸다면, 우리가 지금까지 열심히 최적화한 F1과 AUROC는 오염된 레이블 위에서 측정된 수치다.
이 글은 그 문제를 다루는 프레임워크인 PU Learning을 소개하고, FDS 환경에서 어떻게 설계하고 적용할 수 있는지를 정리한다.
'이상 거래 확정' 레이블은 자연적으로 주어지는 것이 아니다. 다음 과정을 통해 만들어진다.
전체 거래 건수 (N)
│
▼
모델 의심 판정
│
▼
조사 대상 선정 ← Capacity 제한 (상위 k건만)
│
▼
실사 수행
│
┌────┴────┐
▼ ▼
이상 거래 확정 정상 확인
(Positive) (Negative)
조사받지 못한 나머지 (N - k)건
→ 자동으로 Negative 처리 ← 문제 지점
이 구조에서 두 가지 이유로 음성 레이블이 오염된다.
첫째, Capacity 제한. 모델이 의심했음에도 처리량 한계로 조사하지 못한 건들이 음성으로 처리된다. 이 건들이 실제 사기를 포함하고 있을 가능성은 모델 스코어가 높을수록 커진다.
둘째, 모델의 맹점. 기존 모델이 발견하지 못하는 새로운 유형의 사기는 처음부터 조사 대상에 포함되지 않는다. 이 건들 역시 음성 레이블을 달게 된다.
음성 레이블이 오염된 상태에서 Recall을 계산하면 어떻게 될까?
실제로 사기인데 미조사로 음성 레이블이 붙은 건을 라 하자.
우리가 측정하는 Recall과 실제 Recall의 관계는 다음과 같다.
즉, 측정된 Recall은 실제보다 낙관적으로 계산된다.
모델이 미조사 사기 건을 양성으로 예측해도, 해당 건이 음성 레이블을 달고 있으니 FP로 집계되어 Precision을 깎는다. 결과적으로 Precision은 과소평가, Recall은 과대평가되는 방향으로 왜곡이 발생한다.
PU Learning은 데이터를 다음과 같이 재정의한다.
| 집합 | 의미 | FDS에서 대응 |
|---|---|---|
| P (Positive) | 레이블이 확정된 양성 샘플 | 조사 완료 후 이상 거래 확정 건 |
| U (Unlabeled) | 양성인지 음성인지 모르는 샘플 | 미조사 건 + 조사 후 정상 확인 건 |
핵심은 U를 "음성"이라 부르지 않는다는 것이다. "모른다"고 표현한다.
을 실제 레이블, 을 관측 레이블이라 하자.
전통적인 지도학습에서는 를 가정한다.
PU Learning에서는 다음과 같이 분리한다.
PU Learning의 기본 가정은 SCAR(Selected Completely At Random)이다.
확정된 양성 샘플은 전체 양성 모집단에서 무작위로 선택되었다.
수식으로는 다음과 같다.
는 전체 양성 중 실제로 레이블이 붙은 비율이다. 이 가정 하에 다음이 성립한다.
즉, 기존 분류기의 출력을 로 나누면 보정된 실제 양성 확률을 얻을 수 있다.
FDS에서는 SCAR 가정이 약하게 성립한다. 조사 대상이 완전 무작위가 아니라 모델 스코어 기반으로 선택되기 때문이다.
이는 고스코어 양성은 레이블이 잘 붙고, 저스코어 양성은 레이블이 잘 안 붙는 구조를 만든다. 이것이 FDS에 PU Learning을 적용할 때 반드시 인지해야 하는 구조적 제약이다.
Step 1: U 집합에서 신뢰도 높은 음성(Reliable Negative, RN)을 추출한다.
대표적인 방법은 다음과 같다.
Step 2: P와 RN만으로 이진 분류기를 학습한다.
직관적이지만 RN 선택 품질에 결과가 크게 의존하는 단점이 있다.
전통적인 이진 분류 손실은 다음과 같다.
PU 설정에서는 분포를 직접 관측할 수 없다.
와 의 관계를 이용하면 다음과 같이 변환할 수 있다.
이를 대입하면 uPU(unbiased PU) 손실이 된다.
통계적으로 불편(unbiased) 추정량이지만, 우변의 마지막 항이 크면 전체 손실이 음수가 될 수 있어 학습이 불안정해진다.
uPU의 불안정성을 해결하기 위해 음수가 되는 항을 0으로 클리핑한다.
실무에서는 uPU보다 nnPU가 더 안정적으로 수렴한다.
| 방법 | 통계적 성질 | 학습 안정성 | 추천 상황 |
|---|---|---|---|
| uPU | 불편 추정량 | 낮음 (손실 음수 가능) | 이론 검증 목적 |
| nnPU | 약간의 편향 | 높음 | 실무 적용 |
기존 모델을 교체하지 않고도 PU 보정 효과를 얻는 가장 실용적인 방법이다.
원리: 기존 분류기(P vs U, U를 음성으로 처리)가 출력한 확률 를 로 나누어 실제 양성 확률 를 추정한다.
추정:
P 집합(확정 양성)에 대한 분류기 출력 평균이 의 추정값이 된다.
정답 레이블()을 모르는 상황에서 PU 보정의 효과를 간접적으로 검증하는 방법이다.
1. 특정 기간(T)의 데이터를 선택
2. 해당 기간에서 s=1인 건들을 의도적으로 U로 강등 (숨김)
3. PU 보정 모델이 이 건들을 고스코어로 재발굴하는지 확인
4. 재발굴률(Recall@K)을 기존 모델과 비교
→ PU 보정 후 재발굴률이 높을수록 c 추정이 정확하고 보정 효과가 있다는 근거
PU Learning은 모든 상황에 필요하지 않다. 다음 조건을 먼저 확인해야 한다.
| 확인 항목 | 판단 기준 |
|---|---|
| 레이블 생성이 전수 조사 기반인가? | 선별 조사라면 PU 고려 필요 |
| 미조사 건의 양성률이 0에 가깝다고 확신할 수 있는가? | 사후 추적 데이터로 확인 가능하다면 검증 |
| 모델 상위 스코어에 미조사 건이 다수 포함되는가? | 조사 대상 선정 로그로 확인 |
| F1과 운영 직관 사이에 지속적인 괴리가 있는가? | "이 정도면 더 잡혔어야 하는데"라는 직관 |
| SCAR 가정 위반 수준이 어느 정도인가? | 스코어 기반 조사라면 고스코어 편향 존재 |
SCAR 가정이 심하게 위반되면 단순 추정보다 스코어 분위별 가중 보정이나 Propensity Score 기반 보정을 추가로 고려해야 한다.
PU Learning은 모델의 예측 능력을 높이는 기법이 아니다.
지금 사용하는 평가 지표가 현실을 얼마나 정확하게 반영하는지 의심하고 보정하는 프레임워크다.
FDS에서 가장 위험한 착각은 "레이블된 데이터가 전부"라는 가정이다.
우리가 측정하는 성능은, 우리가 만든 레이블만큼만 정확하다.
"모른다는 것을 인정하는 것이 더 정직한 모델링의 시작이다."