전통적으로 디지털 제품의 사기 방지는 엄격한 규칙 기반(rule-based) 규칙이나 수동 검열에 기반하여 운영되며, 이는 높은 운영 부담과 시스템의 정적성을 초래했습니다. 머신 러닝의 발전과 함께 기업들은 각 거래의 사기 확률을 평가하는 Real-Time Fraud Detection SDK를 도입하기 시작했습니다. 핵심적인 어려움은 어떤 분류기도 두 가지 유형의 오류를 범한다는 것입니다: False Positive (정당한 사용자 차단)는 직접적으로 수익을 감소시키고, False Negative (사기 누락)은 chargeback을 증가시킵니다. 비즈니스는 이러한 오류 간의 trade-off를 측정하여 스코어링 임계값을 최적화하는 것이 매우 중요합니다.
표준 A/B 테스트는 불가능합니다. 왜냐하면 대조군에서 사기 거래를 의도적으로 누락하는 것은 명성 및 FinCEN/PCI-DSS 요구사항 측면에서 용납할 수 없기 때문입니다. 도입 전후의 메트릭을 단순 비교하는 것은 사기 공격의 계절성과 사용자의 자기 선택(더 충성스러운 사용자가 어플리케이션을 업데이트하는 경향)을 왜곡시킵니다. 높은 사기 위험을 가진 사용자는 본래 전환율이 낮고, 낮은 위험의 사용자보다 다르기 때문에, 승인된 것과 거부된 것 사이의 단순 비교는 confounding by indication으로 인해 편향된 평가를 제공합니다.
최적의 방법은 사기 점수(fraud score)의 임계값(예: 0.7)을 기준으로 한 **Sharp Regression Discontinuity Design (RDD)**입니다. 여기서 거래 승인의 확률이 1에서 0으로 급격히 변화합니다. 우리는 0.69의 점수를 가진 거래(처리군, 승인됨)와 0.71의 점수를 가진 거래(대조군, 거부됨)를 비교하며, bandwidth의 창((±0.05) 내에서 로컬 무작위성을 가정합니다. 우리는 Local Linear Regression을 사용해 **LATE (Local Average Treatment Effect)**를 평가합니다. 정확도를 높이기 위해 Covariate-Adjusted RDD를 사용하여 예측 변수(디바이스 이력, 지리 등)를 통제 변수로 추가합니다. 순수 수익을 평가하기 위해 Incremental Revenue를 계산합니다: 예상되는 chargeback과 RDD를 통해 식별된 false positives에서 손실된 수익의 차이입니다.
외부 공급자의 Fraud Detection SDK를 통합한 마켓플레이스의 모바일 애플리케이션에서 구매 전환율이 4.2%에서 3.5%로 감소했으며, 사기 비율은 2.8%에서 0.4%로 떨어졌습니다. 제품 팀은 시스템이 지나치게 공격적이며 정당한 결제를 차단하고 있다고 의심했지만, 대조군이 없어서 문제의 규모를 정량적으로 평가할 수 없었습니다.
옵션 A: 도입 전후의 전환율을 단순 비교(pre-post analysis)합니다. 장점: 최소한의 작업 비용, 특별한 인프라 필요 없음. 단점: 계절 변동성을 완전히 무시합니다(도입 후 기간이 비수기 시작과 일치함), 어플리케이션 업데이트 시의 자기 선택 및 마케팅 믹스 변화(저전환율 신채널이 시작됨)를 간과합니다.
옵션 B: 지리적 분할(시내 Group A 시스템 포함, Group B 시스템 미포함). 장점: 깨끗한 대조군을 생성합니다. 단점: 단일 코드베이스와 CDN 캐싱으로 인해 기술적으로 불가능; 사용자들이 도시 간에 이주; 사기 프로필이 지역별로 상당히 다름(수평적 불균형).
옵션 C: 0.65의 컷오프 임계값 주위에서의 Regression Discontinuity Design입니다. 장점: 자연 실험을 활용하여 로컬 난수를 보장하며 "경계" 거래에 대한 인과 관계를 고립할 수 있습니다. 단점: 임계값 창에서 많은 데이터가 필요합니다; LATE를 평가하는데, 이는 전체 모집단에 대한 ATE와 다를 수 있습니다; 스코어 조작에 민감합니다(사기꾼들이 임계값을 우회하는 방법을 익힐 수 있음).
옵션 D: Synthetic Control Method, 대조군을 모사하기 위한 역사적 코호트의 가중 조합을 생성합니다. 장점: 물리적 대조군 없이 작동하며, 시간적 경향을 고려합니다. 단점: 영향을 미치는 요소가 시간이 지남에 따라 안정적이라고 가정합니다; 전처리의 이상치에 민감합니다; 플라세보 테스트 외에는 검증하기 어려움.
선택된 옵션: 옵션 C (RDD), bandwidth 0.08 및 1차 다항식. 분석 결과 15,000 ₽ 이상의 거래에 대해 false positive 비율이 소액 구매에 비해 두 배 높음을 보여주었습니다. 이를 바탕으로 상품 카테고리별로 동적 임계값이 조정되었습니다.
결과: 0.7의 전환 손실 중 0.6%포인트가 false positives에 귀속된다는 것을 정량적으로 평가하는 데 성공했습니다. 임계값을 보정한 후 손실된 수익의 45%를 복구(약 1,800만 ₽/월)하며, 사기에 대한 90%의 효율성을 유지했습니다.
높은 사기 점수를 가진 사용자가 사기 시스템이 존재하지 않았다면 본래 구매에 대한 경향이 더 낮은 선택 편향(causal effect와 selection bias의 구별)은 어떻게 가능할까요?
답변: 이것은 confounding by indication의 고전적 문제입니다. 치료에 대한 인디케이션(높은 위험)은 결과와 상관관계가 있습니다. RDD에서는 Bandwidth의 창에서 covariate의 균형을 확인하는 것이 중요합니다: 임계값보다 약간 낮은 그룹과 약간 높은 그룹 간에 device age, 구매 이력, 지리적 분포를 비교합니다. 불균형이 관찰되면, bias-corrected RDD를 적용하거나 회귀에 covariates를 포함하거나 Local Randomization 접근법을 사용하여 분포의 무작위성에 대한 가설을 공식적으로 테스트해야 합니다. 이 검증 없이 효과 평가가 높은 위험과 낮은 위험 사용자 간의 기존 차이에 혼합될 것입니다.
다른 버전의 모델(v1 및 v2)을 통과한 사용자 간의 approve rate를 단순 비교하는 것이 알고리즘 개선의 효과를 올바르게 평가하는 데 어떤 도움이 되지 않나요?
답변: 이 비교는 unobservables의 selection bias와 compositional drift로 인해 영향을 받습니다. 새로운 모델 v2는 선택적으로 적용될 수 있습니다(예: 단지 신규 사용자나 파일럿 지역에서만 수행할 수 있음), 이는 비교 불가능한 그룹을 만듭니다. 뿐만 아니라, 스코어링 품질이 개선되면 승인된 사용자의 구성(composition)이 변합니다: v2는 v1이 거부했던 "회색 지대"를 승인할 수 있지만, 이 사용자는 다른 전환율을 가집니다. 올바른 평가를 위해서는 Offline Policy Evaluation을 사용하여 Inverse Propensity Weighting (IPW) 또는 Doubly Robust Estimation을 역사적 로그에 적용하고, v2와 동일한 거래에서 v1이 가져왔을 수익을 평가해야 합니다.
사기가 30일 후에 확인되는 지연 피드백 문제(delayed feedback problem)를 어떻게 고려하나요? (chargeback) 분석가들은 7일 내에 효과 평가가 필요합니다.
답변: 이는 검열된 데이터(censored data)와 평가의 비대칭성을 초래합니다. 최근 30일의 거래에 대해서 우리는 실제 레이블(사기/비사기)을 알지 못합니다. 해결책은 Survival Analysis(Cox 비례 위험 모델)를 사용하여 사기 발생까지의 시간을 평가함으로써 불완전한 데이터로 작업할 수 있게 합니다. 대안으로, 미래 사기와 상관관계가 있는 Surrogate Metrics(예: 세션 동안의 장치 지문 변경)를 사용할 수 있습니다. 중요한 것은 false positives는 즉시 가시화되지만(즉각적인 거부), false negatives는 지연되어 짧은 시간 범위에서 정확도를 과대 평가하게 된다는 것입니다. RDD에서는 정확한 인과 추론을 위해 30일 이상의 lag를 가진 "동결된" 데이터를 사용하는 것이 권장됩니다.