음성 레이블을 믿을 수 없을 때: PU Learning

Logos·2026년 2월 17일

조사하지 않은 건들이 전부 정상이라는 가정, 정말 맞는가


들어가며

FDS 모델을 운영하다 보면 불편한 질문과 마주한다.

"모델이 의심했지만 리소스 부족으로 조사하지 못한 건들, 이것들은 정상인가?"

현재 대부분의 FDS 파이프라인에서 이 질문의 답은 암묵적으로 "그렇다"다.
조사받지 않은 건은 자동으로 음성(정상) 레이블을 달게 된다.

하지만 이 가정이 틀렸다면, 우리가 지금까지 열심히 최적화한 F1과 AUROC는 오염된 레이블 위에서 측정된 수치다.

이 글은 그 문제를 다루는 프레임워크인 PU Learning을 소개하고, FDS 환경에서 어떻게 설계하고 적용할 수 있는지를 정리한다.


1. 문제의 구조: 왜 음성 레이블이 오염되는가

FDS 레이블 생성 파이프라인

'이상 거래 확정' 레이블은 자연적으로 주어지는 것이 아니다. 다음 과정을 통해 만들어진다.

전체 거래 건수 (N)
        │
        ▼
   모델 의심 판정
        │
        ▼
  조사 대상 선정  ← Capacity 제한 (상위 k건만)
        │
        ▼
     실사 수행
        │
   ┌────┴────┐
   ▼         ▼
이상 거래 확정  정상 확인
(Positive)  (Negative)

조사받지 못한 나머지 (N - k)건
→ 자동으로 Negative 처리  ← 문제 지점

이 구조에서 두 가지 이유로 음성 레이블이 오염된다.

첫째, Capacity 제한. 모델이 의심했음에도 처리량 한계로 조사하지 못한 건들이 음성으로 처리된다. 이 건들이 실제 사기를 포함하고 있을 가능성은 모델 스코어가 높을수록 커진다.

둘째, 모델의 맹점. 기존 모델이 발견하지 못하는 새로운 유형의 사기는 처음부터 조사 대상에 포함되지 않는다. 이 건들 역시 음성 레이블을 달게 된다.

평가 지표에 미치는 영향

음성 레이블이 오염된 상태에서 Recall을 계산하면 어떻게 될까?

실제로 사기인데 미조사로 음성 레이블이 붙은 건을 FN미조사FN_{\text{미조사}}라 하자.
우리가 측정하는 Recall과 실제 Recall의 관계는 다음과 같다.

측정된 Recall=TPTP+FN관측    실제 Recall=TPTP+FN관측+FN미조사\text{측정된 Recall} = \frac{TP}{TP + FN_{\text{관측}}} \;\geq\; \text{실제 Recall} = \frac{TP}{TP + FN_{\text{관측}} + FN_{\text{미조사}}}

즉, 측정된 Recall은 실제보다 낙관적으로 계산된다.
모델이 미조사 사기 건을 양성으로 예측해도, 해당 건이 음성 레이블을 달고 있으니 FP로 집계되어 Precision을 깎는다. 결과적으로 Precision은 과소평가, Recall은 과대평가되는 방향으로 왜곡이 발생한다.


2. PU Learning이란 무엇인가

데이터 구조의 재정의

PU Learning은 데이터를 다음과 같이 재정의한다.

집합의미FDS에서 대응
P (Positive)레이블이 확정된 양성 샘플조사 완료 후 이상 거래 확정 건
U (Unlabeled)양성인지 음성인지 모르는 샘플미조사 건 + 조사 후 정상 확인 건

핵심은 U를 "음성"이라 부르지 않는다는 것이다. "모른다"고 표현한다.

관측 레이블과 실제 레이블의 분리

y{0,1}y \in \{0, 1\}을 실제 레이블, s{0,1}s \in \{0, 1\}을 관측 레이블이라 하자.

전통적인 지도학습에서는 s=ys = y를 가정한다.
PU Learning에서는 다음과 같이 분리한다.

s=1y=1(확정 양성은 진짜 양성)s = 1 \Rightarrow y = 1 \quad \text{(확정 양성은 진짜 양성)}
s=0y{0,1}(관측 음성은 진짜 음성일 수도, 양성일 수도)s = 0 \Rightarrow y \in \{0, 1\} \quad \text{(관측 음성은 진짜 음성일 수도, 양성일 수도)}

SCAR 가정

PU Learning의 기본 가정은 SCAR(Selected Completely At Random)이다.

확정된 양성 샘플은 전체 양성 모집단에서 무작위로 선택되었다.

수식으로는 다음과 같다.

P(s=1x,y=1)=c(상수, label frequency)P(s=1 \mid x, y=1) = c \quad \text{(상수, label frequency)}

cc는 전체 양성 중 실제로 레이블이 붙은 비율이다. 이 가정 하에 다음이 성립한다.

P(y=1x)=P(s=1x)cP(y=1 \mid x) = \frac{P(s=1 \mid x)}{c}

즉, 기존 분류기의 출력을 cc로 나누면 보정된 실제 양성 확률을 얻을 수 있다.

FDS에서 SCAR 가정의 한계

FDS에서는 SCAR 가정이 약하게 성립한다. 조사 대상이 완전 무작위가 아니라 모델 스코어 기반으로 선택되기 때문이다.

P(s=1x,y=1)const스코어 높을수록 조사 확률 높음P(s=1 \mid x, y=1) \neq \text{const} \quad \leftarrow \text{스코어 높을수록 조사 확률 높음}

이는 고스코어 양성은 레이블이 잘 붙고, 저스코어 양성은 레이블이 잘 안 붙는 구조를 만든다. 이것이 FDS에 PU Learning을 적용할 때 반드시 인지해야 하는 구조적 제약이다.


3. 주요 방법론

3.1 Two-Step 방법 (고전적 접근)

Step 1: U 집합에서 신뢰도 높은 음성(Reliable Negative, RN)을 추출한다.

대표적인 방법은 다음과 같다.

  • Spy 기법: P에서 일부를 U에 섞은 뒤 분류기를 학습, 분류기가 낮은 점수를 준 U 샘플을 RN으로 선택
  • Cosine 유사도 기반: P의 중심(centroid)과 거리가 먼 U 샘플을 RN으로 선택

Step 2: P와 RN만으로 이진 분류기를 학습한다.

직관적이지만 RN 선택 품질에 결과가 크게 의존하는 단점이 있다.


3.2 uPU: 불편 손실 함수

전통적인 이진 분류 손실은 다음과 같다.

R(f)=πPExP[(f(x),+1)]+πNExN[(f(x),1)]R(f) = \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), +1)] + \pi_N \cdot \mathbb{E}_{x \sim N}[\ell(f(x), -1)]

PU 설정에서는 NN 분포를 직접 관측할 수 없다.
UUPP의 관계를 이용하면 다음과 같이 변환할 수 있다.

ExN[(f(x),1)]=11πP(ExU[(f(x),1)]πPExP[(f(x),1)])\mathbb{E}_{x \sim N}[\ell(f(x), -1)] = \frac{1}{1-\pi_P}\left(\mathbb{E}_{x \sim U}[\ell(f(x), -1)] - \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), -1)]\right)

이를 대입하면 uPU(unbiased PU) 손실이 된다.

RuPU(f)=πPExP[(f(x),+1)]+ExU[(f(x),1)]πPExP[(f(x),1)]R^{uPU}(f) = \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), +1)] + \mathbb{E}_{x \sim U}[\ell(f(x), -1)] - \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), -1)]

통계적으로 불편(unbiased) 추정량이지만, 우변의 마지막 항이 크면 전체 손실이 음수가 될 수 있어 학습이 불안정해진다.


3.3 nnPU: 비음수 보정

uPU의 불안정성을 해결하기 위해 음수가 되는 항을 0으로 클리핑한다.

RnnPU(f)=πPExP[(f(x),+1)]+max(0,  ExU[(f(x),1)]πPExP[(f(x),1)])R^{nnPU}(f) = \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), +1)] + \max\left(0,\; \mathbb{E}_{x \sim U}[\ell(f(x), -1)] - \pi_P \cdot \mathbb{E}_{x \sim P}[\ell(f(x), -1)]\right)

실무에서는 uPU보다 nnPU가 더 안정적으로 수렴한다.

방법통계적 성질학습 안정성추천 상황
uPU불편 추정량낮음 (손실 음수 가능)이론 검증 목적
nnPU약간의 편향높음실무 적용

3.4 사후 보정 (Post-hoc Calibration)

기존 모델을 교체하지 않고도 PU 보정 효과를 얻는 가장 실용적인 방법이다.

원리: 기존 분류기(P vs U, U를 음성으로 처리)가 출력한 확률 p^(s=1x)\hat{p}(s=1 \mid x)cc로 나누어 실제 양성 확률 p^(y=1x)\hat{p}(y=1 \mid x)를 추정한다.

p^(y=1x)=p^(s=1x)c^\hat{p}(y=1 \mid x) = \frac{\hat{p}(s=1 \mid x)}{\hat{c}}

c^\hat{c} 추정:

c^=1PxPp^(s=1x)\hat{c} = \frac{1}{|P|} \sum_{x \in P} \hat{p}(s=1 \mid x)

P 집합(확정 양성)에 대한 분류기 출력 평균이 cc의 추정값이 된다.


4. FDS 적용 시나리오

시뮬레이션 기반 검증 (Hold-out 방식)

정답 레이블(yy)을 모르는 상황에서 PU 보정의 효과를 간접적으로 검증하는 방법이다.

1. 특정 기간(T)의 데이터를 선택
2. 해당 기간에서 s=1인 건들을 의도적으로 U로 강등 (숨김)
3. PU 보정 모델이 이 건들을 고스코어로 재발굴하는지 확인
4. 재발굴률(Recall@K)을 기존 모델과 비교

→ PU 보정 후 재발굴률이 높을수록 c 추정이 정확하고 보정 효과가 있다는 근거

5. 적용 전 체크리스트

PU Learning은 모든 상황에 필요하지 않다. 다음 조건을 먼저 확인해야 한다.

확인 항목판단 기준
레이블 생성이 전수 조사 기반인가?선별 조사라면 PU 고려 필요
미조사 건의 양성률이 0에 가깝다고 확신할 수 있는가?사후 추적 데이터로 확인 가능하다면 검증
모델 상위 스코어에 미조사 건이 다수 포함되는가?조사 대상 선정 로그로 확인
F1과 운영 직관 사이에 지속적인 괴리가 있는가?"이 정도면 더 잡혔어야 하는데"라는 직관
SCAR 가정 위반 수준이 어느 정도인가?스코어 기반 조사라면 고스코어 편향 존재

SCAR 가정이 심하게 위반되면 단순 cc 추정보다 스코어 분위별 가중 보정이나 Propensity Score 기반 보정을 추가로 고려해야 한다.


마치며

PU Learning은 모델의 예측 능력을 높이는 기법이 아니다.
지금 사용하는 평가 지표가 현실을 얼마나 정확하게 반영하는지 의심하고 보정하는 프레임워크다.

FDS에서 가장 위험한 착각은 "레이블된 데이터가 전부"라는 가정이다.
우리가 측정하는 성능은, 우리가 만든 레이블만큼만 정확하다.

"모른다는 것을 인정하는 것이 더 정직한 모델링의 시작이다."


profile
Frontier ML practitioner in financial services — from model development to business strategy.

0개의 댓글