#개념

데이터 드리프트(Data Drift)는 머신러닝(Machine Learning) 모델이 배포된 후 실제 서비스에 유입되는 데이터의 통계적 성질이 학습 데이터와 달라지는 현상이다. 모델은 학습 데이터와 운영 데이터가 같은 분포에서 나온다는 가정 위에서 만들어지므로, 이 가정이 깨지면 코드나 모델 파일을 한 줄도 바꾸지 않았는데도 성능이 조용히 저하된다.
드리프트는 발생 위치에 따라 몇 가지 유형으로 나뉜다. 입력 $X$와 정답 $Y$의 결합 분포를 $P(X, Y) = P(Y|X)P(X)$로 분해할 때, 각 유형은 다음과 같다.
발생 위치에 따른 드리프트 유형
  • 공변량 이동(Covariate Shift): 입력 분포 $P(X)$만 바뀌고 조건부 관계 $P(Y|X)$는 유지되는 경우로, 신규 사용자 유입으로 연령대 분포가 달라지거나 센서 교체로 측정값의 범위가 바뀌는 상황이 해당한다.
  • 사전 확률 이동(Prior Probability Shift): 레이블 이동(label shift)이라고도 하며, $P(Y)$가 바뀌고 $P(X|Y)$는 유지되는 경우로, 계절에 따라 사기 거래의 비율이 달라지는 상황이 그 예다.
  • 개념 드리프트(Concept Drift): 입력과 정답 사이의 관계 $P(Y|X)$ 자체가 변하는 경우로, 같은 입력에 대해 정답이 달라지므로 가장 위험하며 입력 분포만 보아서는 탐지할 수 없다.
좁은 의미의 데이터 드리프트는 공변량 이동을 가리키지만, 실무에서는 이 세 유형을 통칭하여 데이터 드리프트 또는 분포 변화(distribution shift)라고 부른다. 개념 드리프트는 시간에 따른 양상으로 다시 구분되며, 유형에 따라 탐지 창의 크기와 대응 전략이 달라진다.
시간 양상에 따른 개념 드리프트
  • 급진적(sudden) 드리프트: 새 규제 시행처럼 관계가 한순간에 바뀐다.
  • 점진적(gradual/incremental) 드리프트: 소비자 취향 변화처럼 서서히 이동한다.
  • 주기적(recurring) 드리프트: 계절성이나 요일 효과처럼 이전 개념이 반복해서 돌아온다.
드리프트와 구분해야 할 개념으로 학습-서빙 편차(Training-Serving Skew)가 있다. 이는 시간이 흐르면서 세상이 변한 것이 아니라, 학습 파이프라인과 서빙 파이프라인의 특징 계산 로직이나 전처리가 처음부터 달랐던 구현상의 불일치로, 배포 직후부터 성능이 낮다는 점에서 드리프트와 다르며 피처 스토어(Feature Store)로 특징 정의를 공유하거나 학습·서빙 특징 값을 직접 비교하여 해결한다. 또한 특정 열이 갑자기 결측되거나 단위가 바뀌는 데이터 품질 문제도 통계적으로는 드리프트처럼 보이지만 원인과 대응이 다르므로 스키마 검증으로 먼저 걸러내야 한다.
드리프트 탐지의 기본은 기준 데이터(학습 데이터나 배포 직후 안정기)와 현재 윈도의 데이터를 특징별로 비교하는 것이다. PSI(Population Stability Index)는 신용 평가 분야에서 오래 사용된 지표로, 변수를 구간(bin)으로 나누고 기준과 현재의 구간별 비율 $p_i$, $q_i$에 대해 $\text{PSI} = \sum_i (q_i - p_i)\ln\frac{q_i}{p_i}$로 계산하며, 관례적으로 0.1 미만은 안정, 0.1~0.25는 주의, 0.25 이상은 유의미한 변화로 해석한다.
콜모고로프-스미르노프 검정(Kolmogorov-Smirnov Test)은 두 수치형 표본의 누적 분포 함수 간 최대 차이를 통계량으로 하는 비모수 검정이고, 범주형 변수에는 카이제곱 검정이 쓰인다. 다만 가설 검정은 표본이 수백만 건이 되면 실무적으로 무의미한 미세 차이도 통계적으로 유의하게 나오므로 p-value 대신 효과 크기나 거리 지표를 보는 것이 권장된다.
분포 간 거리로는 비대칭이며 지지 집합이 다르면 무한대가 되는 KL 발산(Kullback-Leibler Divergence)보다, 이를 대칭화하고 0과 1(또는 $\ln 2$) 사이로 유계인 젠슨-섀넌 발산(Jensen-Shannon Divergence)이 선호되며, 분포가 "얼마나 멀리" 이동했는지를 값의 척도 단위로 보여 주는 바서슈타인 거리(Wasserstein Distance)는 구간 분할 없이 수치형 변수에 적용할 수 있어 널리 쓰인다.
특징을 하나씩 보는 단변량 검정은 개별 분포는 그대로인데 상관 구조만 바뀐 다변량 드리프트를 놓칠 수 있다. 이를 잡기 위한 분류기 기반 2표본 검정(Classifier Two-Sample Test)은 기준 데이터에 0, 현재 데이터에 1이라는 레이블을 붙여 둘을 구분하는 분류기를 학습시키고, 그 AUC가 0.5를 뚜렷이 넘으면 두 분포가 다르다고 판정하는 방법으로, 특징 중요도를 통해 어떤 변수가 드리프트에 기여했는지도 알려 준다.
이 밖에 주성분 분석(Principal Component Analysis)이나 오토인코더(Autoencoder)로 기준 데이터를 압축했다가 복원할 때의 재구성 오차 증가를 다변량 드리프트 신호로 쓰기도 한다. Rabanser 등(2019)은 다양한 탐지 방법을 비교하여, 고차원 입력은 분류기의 소프트맥스 출력이나 저차원 표현으로 축소한 뒤 2표본 검정을 적용하는 것이 효과적임을 보였다.
텍스트와 이미지처럼 비정형 입력은 원시 데이터 대신 임베딩(Embedding) 벡터의 분포를 비교하는 임베딩 드리프트(Embedding Drift) 탐지가 쓰이며, 기준·현재 임베딩 간 평균 벡터의 코사인 거리나 유클리드 거리, 최대 평균 불일치(Maximum Mean Discrepancy, MMD), 임베딩 위에서의 분류기 2표본 검정 등이 활용된다.
궁극적으로 중요한 것은 정확도나 AUC 같은 모델 평가 지표(Model Evaluation Metrics)의 변화이지만, 많은 서비스에서는 정답 레이블 지연(Label Delay)이 발생한다. 대출 부도는 수개월 뒤에야 확정되고 구매 전환은 며칠 뒤에 집계되므로, 그 사이에는 입력 드리프트와 예측 분포의 변화(prediction drift)를 선행 지표로 감시하고, NannyML의 CBPE(Confidence-Based Performance Estimation)처럼 모델이 출력한 확신도 분포로부터 성능을 추정하는 방법을 병행한다.
드리프트가 탐지되면 원인 분석이 우선이다. 특정 세그먼트나 특징에서만 발생했는지, 데이터 파이프라인 장애가 아닌지, 비즈니스 환경의 실제 변화인지를 구분한 뒤 대응을 결정한다. 가장 일반적인 대응은 재학습(Retraining)이며, 재학습 주기를 정하는 방식은 크게 두 가지다. 매일·매주처럼 고정된 주기로 재학습하는 주기 기반(schedule-based) 방식은 단순하고 예측 가능하지만 불필요한 재학습이나 뒤늦은 대응이 생길 수 있고, 드리프트 지표나 성능 지표가 임계치를 넘을 때만 재학습 파이프라인을 실행하는 트리거 기반(trigger-based) 방식은 효율적이지만 임계치 설정과 오경보 관리가 필요하다.
재학습 시 어떤 데이터를 쓸지도 중요한데, 급진적 드리프트라면 변화 이후 데이터만 사용하는 슬라이딩 윈도가, 점진적 드리프트라면 최근 데이터에 더 큰 가중치를 두는 방식이, 주기적 드리프트라면 과거 동일 국면의 모델을 보관했다가 재사용하는 앙상블이 적합하다.
온라인 학습(Online Learning)은 데이터가 도착할 때마다 모델을 점진적으로 갱신하여 드리프트에 즉시 적응하는 접근으로, 스트리밍 환경에서는 ADWIN(Adaptive Windowing)이나 DDM(Drift Detection Method)처럼 오류율의 변화를 감시하여 윈도 크기를 자동으로 조절하는 탐지기가 함께 사용된다. 다만 온라인 학습은 잘못된 데이터에 즉각 오염될 수 있고 재현성이 떨어지므로 안전장치가 필요하다.
레이블을 새로 확보하기 어려울 때는 도메인 적응(Domain Adaptation)을 적용할 수 있다. 공변량 이동에서는 기준 분포 대비 현재 분포의 밀도비 $w(x) = \frac{p_{\text{now}}(x)}{p_{\text{train}}(x)}$로 학습 샘플에 중요도 가중치(Importance Weighting)를 부여하여 모델을 재추정하고, 레이블 이동에서는 혼동 행렬을 이용해 클래스 사전 확률을 재추정하여 예측 확률을 보정하며, 딥러닝에서는 두 도메인의 표현이 구분되지 않도록 적대적으로 학습하는 방법도 쓰인다. 모델 수정 외에 결정 임계값을 조정하거나 영향받은 세그먼트를 사람의 검토로 넘기는 운영상의 대응도 가능하다.
이러한 탐지와 대응의 자동화는 MLOps의 모니터링과 지속적 학습(CT) 단계에 해당하며, 다음과 같은 도구가 이를 지원한다.
드리프트 모니터링 도구
  • Evidently: 드리프트 리포트·테스트 스위트와 모니터링 대시보드를 제공한다.
  • NannyML: 레이블 없이 성능을 추정하고 드리프트를 성능 영향과 연결한다.
  • whylogs: 데이터 프로파일을 로깅하고 비교한다.
  • Alibi Detect: MMD·분류기 기반 등 오프라인·온라인 드리프트 탐지기를 제공한다.
  • 관리형 서비스: Amazon SageMaker Model Monitor나 Vertex AI Model Monitoring 같은 관리형 서비스도 같은 기능을 제공한다.
추천 시스템(Recommender System)과 검색 서비스는 드리프트가 특히 빈번하고 빠르게 일어나는 영역이다. 패션 전자상거래에서는 계절이 바뀌면 사용자가 찾는 상품 카테고리가 통째로 이동하고(주기적 드리프트), 세일 기간이나 특정 상품의 입소문으로 클릭 분포가 며칠 만에 급변하며(급진적 드리프트), 신규 상품과 신규 사용자가 끊임없이 유입되어 학습 시점의 ID 사전에 없던 항목이 등장하는 콜드 스타트 문제가 상시적으로 발생한다.
또한 추천 모델의 출력이 노출을 결정하고 노출이 다시 클릭 로그가 되어 다음 학습 데이터가 되는 피드백 루프(Feedback Loop) 때문에 데이터 분포는 모델 자신에 의해 왜곡되며, 인기 상품 편향이 시간이 갈수록 강화되는 형태의 드리프트가 나타난다. 이에 대응하여 추천·검색 서비스는 대개 일 단위 이상의 짧은 주기로 재학습하고, 사용자·상품 임베딩의 드리프트와 클릭률·전환율 같은 온라인 지표를 A/B 테스트(AB Testing)와 함께 모니터링하며, 세션 내 실시간 행동을 반영하는 모델이나 온라인 학습으로 급변하는 관심사를 따라간다.
결론적으로 데이터 드리프트는 "모델이 틀렸는가"가 아니라 "세상이 바뀌었는가"를 묻는 문제이며, 배포 이후에도 모델이 가치를 유지하려면 어떤 유형의 드리프트가 어떤 속도로 발생하는지를 전제로 탐지 지표, 재학습 전략, 대응 절차를 서비스 설계 단계에서부터 함께 준비해야 한다.

#관련 용어

개념 드리프트
입력과 정답 사이의 관계 자체가 시간에 따라 변하여 같은 입력에 대한 올바른 예측이 달라지는 현상
공변량 이동
입력 특징의 분포만 변하고 입력에 대한 정답의 조건부 분포는 유지되는 드리프트 유형
학습-서빙 편차
학습 파이프라인과 서빙 파이프라인의 특징 계산이나 전처리가 달라 발생하는 구현상의 불일치
MLOps
모델의 배포·모니터링·재학습을 자동화하여 프로덕션에서 지속적으로 운영하는 실천 체계
피처 스토어
학습과 서빙이 동일한 특징 정의를 공유하도록 특징 값을 중앙에서 저장·제공하는 저장소
모델 평가 지표
정확도, AUC 등 모델의 예측 성능을 정량화하는 측정값으로, 드리프트의 최종적인 영향을 확인하는 기준

#직무 연관도

DA
Data Analyst
보통
주요 지표와 세그먼트의 분포 변화를 해석하고 비즈니스 환경 변화와 데이터 품질 문제를 구분하는 데 활용된다
DS
Data Scientist
밀접
배포된 모델의 성능 저하 원인을 진단하고 드리프트 유형에 맞는 재학습·적응 전략을 설계하는 핵심 개념
DE
Data Engineer
밀접
드리프트 탐지 지표의 계산과 모니터링 파이프라인, 경보 및 재학습 트리거 자동화를 구축·운영하는 데 직접 필요하다

#사용 사례

전자상거래금융인터넷 서비스제조통신의료
개요
데이터 드리프트 모니터링은 추천·검색 랭킹, 사기 거래 탐지, 신용 평가, 수요 예측, 설비 이상 탐지, 의료 영상 진단처럼 환경이 변하는 상황에서 모델을 장기간 운영해야 하는 모든 머신러닝 서비스에 적용되며, MLOps의 모니터링과 자동 재학습 체계의 핵심 요소로 활용된다.
사례
패션 전자상거래의 상품 추천 모델에서 환절기에 접어들자 사용자 클릭이 반팔에서 니트·아우터로 급격히 이동하여 주요 특징과 상품 임베딩의 PSI가 경보 임계치를 넘었다. 모니터링 파이프라인은 자동으로 최근 2주 로그만으로 재학습을 트리거하고, 새 모델을 카나리 배포하여 클릭률이 회복되는지 A/B 테스트로 확인한 뒤 전체 트래픽에 반영한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.