Concept drift 설명

2021. 9. 28. 23:28관심있는 주제/뉴럴넷 질문

728x90

목차

    Concept drift can appear in different ways

     

    Sudden drift 

    새로운 개념이 단기간에 발생합니다

    (예: 2020년 3월 COVID-19 시작, 주가 급변).

    전자 상거래, 의료, 금융, 보험 등과 같은 여러 부문에 영향을 미친 COVID-19 전염병과 같은 예기치 않은 상황으로 인해 개념 드리프트가 갑자기 발생하는 경우. 이러한 급격한 변화는 짧게는 몇 주 안에 일어날 수 있습니다. 이러한 종류의 드리프트는 일반적으로 외부 이벤트에 의해 발생합니다. 데이터의 드리프트를 감지하는 활성 모니터링 시스템이 없는 경우 주요 이벤트 후에 개념 드리프트의 존재에 대한 빠른 평가를 수행하는 것이 당연합니다.

    Gradual drift

    새로운 개념이 오랜 기간에 걸쳐 점진적으로 기존 개념을 대체합니다

    (예: 더 적은 수의 새로운 석유 회사와 더 많은 새로운 기술 회사를 목격함).

    이러한 종류의 드리프트는 발생하는 데 오랜 시간이 걸리며 많은 사용 사례에서 발생하는 것이 매우 자연스럽습니다. 

    예를 들어 인플레이션은 상당한 영향을 미치는 데 오랜 시간이 걸릴 수 있는 가격 책정 모델에 영향을 미칠 수 있습니다. 점진적 또는 때때로 증분적 변화라고 하는 것은 일반적으로 계절성의 변화를 포착하여 시계열 모델에서 해결됩니다. 해결되지 않으면 이는 우려 사항이며 해결해야 합니다.

    Incremental drift

    오래된 개념이 일정 기간 동안 새로운 개념으로 점진적으로 변경됨

    (예: 주가가 점진적으로 지속적으로 상승함)

    Recurring concepts

    일정 시간이 지나면 오래된 개념이 다시 나타날 수 있습니다(예: 주말과 주중의 음식 배달량 변경).

    이러한 종류의 드리프트는 주기적으로, 아마도 일년 중 특정 시간에 발생합니다. 예를 들어 블랙 프라이데이, 할로윈 등의 이벤트 기간에는 사용자의 쇼핑 패턴이 연중 다른 시기와 다릅니다. 따라서 블랙 프라이데이 데이터에 대해 특별히 훈련된 다른 모델이 해당 이벤트 기간 동안 사용됩니다. 패턴의 주기도 동적일 수 있으므로 반복 패턴을 모니터링하기 어렵습니다.


    참고: Gradual drift에서는 새로운 개념이 마침내 안정화될 때까지 두 개념이 앞뒤로 이동합니다. incremental drift 개념은 점차 새로운 것으로 변경됩니다.

    Two types of concept drift

    concept drift의 효과를 더 잘 이해하려면 두 가지 유형의 concept drift를 구별해야 합니다.

     

    Virtual drift

    p(X)는 변경되지만 p(Y|X)는 변경되지 않습니다.

    특징의 기본 분포가 변경되었지만, 모델의 성능은 변경되지 않았음을 의미합니다.

     

    Real drift 

    모델의 성능이 변경되었음을 의미하는 p(Y|X)에 변화가 있었습니다.

    Concept drift in real life

    concept drift가 실생활에서 어떻게 나타나는지 이해하려면 평가 지표를 살펴봐야 합니다.

    concept drift를 검색할 때 데이터를 스트림으로 보고 시간이 지남에 따라 평가 메트릭이 어떻게 변동하는지 조사합니다.

    모델이 프로덕션 환경에 있으면, 데이터 스트림에서 성능을 확인하여 성능을 모니터링하고 concept drift를 감시할 수 있습니다.

    데이터 스트림을 시간 프레임(예: 시, 일, 주)으로 나누어 데이터의 변경 사항을 확인할 수 있습니다.

    입력 분포(즉, p(X))는 변경되지만 실제 레이블 p(Y|X)는 변경되지 않는 경우, virtual drifit로 분류할 수 있으며, 성능에 영향을 미칠수 없지만, 입력 데이터에 변경 사항이 있다고 결론을 내릴 수 있습니다.

    아직 성능에 영향을 미쳤습니다. 레이블에 실제 변경 사항이 있는 경우, 즉 p(Y|X)가 변경된 경우 이는 해당 기간 동안 실제 드리프트가 발생했으며 그 영향을 감지하고 있음을 의미합니다.

    레이블에 실제 변경 사항이 있는 경우, 즉 p(Y|X)가 변경된 경우 이는 해당 기간 동안 real drift가 발생했으며 그 영향을 감지하고 있음을 의미합니다.

     

    Model Decay(예: model drfit, staleness)는 시간이 지남에 따라 모델의 성능이 저하되는 경우이며 사용 사례마다 다릅니다. 일부 모델은 몇 년 동안 잘 작동할 수 있지만 다른 모델의 저장 수명은 하루 미만입니다.

     

    위의 그림처럼 심각한 저하가 발생하기 전에 모델을 정기적으로 재교육하면, 문제를 어느 정도 완화하는 데 도움이 되지만 많은 경우에 충분하지 않고 다른 경우에는 문제를 더 악화시킬 수 있습니다.

     

    • 때로는 모델의 심각한 저하의 지점을 식별하기 어렵습니다.
    • 재학습이 필요한 시점을 항상 알 수는 없습니다. 일주일은 너무 늦을 수 있지만 시간당 유지 관리 비용이 너무 많이 들 수 있습니다.
    • 많은 경우 재학습을 위한 시간 window는 유동적이므로 이 매개변수 자체를 모니터링하고 최적화해야 합니다.
    • 많은 경우 재학습만으로는 충분하지 않습니다. concept이 크게 변경되면 완전히 새로운 유형의 모델이 필요할 수 있습니다.
    • 어떤 경우에는 스키마 변경, 삭제된 필드, 애플리케이션 버그 등과 같은 파이프라인의 다른 부분에 있는 결함에서 변경이 시작됩니다. 이러한 경우 결함이 있는 데이터가 있는 모델을 재학습해도 효과가 없거나 문제가 악화될 수 있습니다.

    모델을 망치는 개념 드리프트를 피하는 가장 좋은 방법은 모니터링 도구를 사용하여 모델을 파악하는 것입니다.

     

    How to prevent concept drift

    이제 가장 큰 문제는 이 문제를 피할 수 있는지, 그리고 이를 방지할 수 있는 방법은 무엇인가요?

     

    이상적인 개념 드리프트 처리 시스템은 다음을 수행할 수 있어야 한다고 합니다.

    • concept drift에 빠르게 적응하고,
    • 노이즈에 강하고 개념 드리프트와 구별됩니다.
    • 모델 성능의 상당한 드리프트를 인식하고 처리합니다.

    높은 수준에서 개념 드리프트를 해결하는 방법에는 5가지가 있습니다.

     

    • Online learning 
      • 모델이 한 번에 하나의 샘플을 처리할 때 학습자가 즉석에서 업데이트됩니다. 실제로 실제 응용 프로그램의 대부분은 스트리밍 데이터에서 실행되며 온라인 학습은 concept drift를 방지하는 가장 중요한 방법입니다.
    • Periodically re-train 
      • 모델 성능이 지정된 임계값 아래로 저하되거나 2개의 데이터 사이의 평균 신뢰 점수가 major drift를 관찰하면 다른 인스턴스에서 트리거될 수 있는 모델입니다.
    • Periodically re-train on a representative subsample. 
      • concept drift의 존재가 감지되면 표본이 모집단을 대표하는 인스턴스 선택과 같은 방법을 사용하여 모집단의 하위 표본을 선택하고 원래 데이터 분포와 동일한 확률 분포를 따릅니다. 그런 다음 전문가의 도움을 받아 해당 데이터 포인트에 명시적으로 레이블을 다시 지정하고 선별된 데이터 세트에서 모델을 교육합니다.
    • Ensemble learning with model weighting 
      • 여러 모델이 앙상블되고 출력은 일반적으로 개별 모델 출력에 대한 가중 평균입니다.
    • Feature dropping 
      • concept drift를 처리하는 또 다른 방법입니다. 한 번에 하나의 feature을 사용하여 여러 모델을 구축하고 AUC-ROC 응답이 표시에 미치지 못하는 feature을 삭제합니다.

     

    https://neptune.ai/blog/concept-drift-best-practices

     

    Best Practices for Dealing with Concept Drift - neptune.ai

    You trained a machine learning model, validated its performance across several metrics which are looking good, you put it in production, and then something unforeseen happened (a pandemic like COVID-19 arrived) and the model predictions have gone crazy. Wo

    neptune.ai

     

    728x90