পাঠ ২৬ · ৩৩-এর মধ্যে · মডিউল ৪
Home / AI Courses / MLOps / Concept drift

Concept drift

Concept drift — when relationships change
৬ মিনিট পড়া উচ্চ · Advanced Concept

এই পাঠে যা শিখবেন

  • Concept drift vs covariate drift
  • ৪ types — sudden, gradual, recurring, incremental
  • Detection algorithms — DDM, EDDM, ADWIN
  • Adversarial drift — fraud detection context

১ · Concept drift কী

Same input, different correct answer.

  • Spam: "free money" 2010 = spam; "free shipping" 2025 = legitimate offer।
  • Fraud: ATM withdrawal pattern that was fraud 2020 — now common COVID-pattern।
  • Recommendation: "Bangla movie" 2018 vs 2025 — taste evolution।

Difference from covariate drift:

  • Covariate: $P(X)$ changes; output stays correct mostly।
  • Concept: $P(y|X)$ changes; same X → different y over time।

২ · ৪ Types

Concept drift types

Sudden: COVID lockdown — abrupt regime change।
Gradual: taste slowly shifts; old + new concept coexist।
Recurring: Eid sale every year — pattern returns।
Incremental: small continuous shift; like compound interest।

৩ · Detection algorithms

  • DDM (Drift Detection Method): error rate increase tracker। 2 thresholds: warning, drift। Simple।
  • EDDM (Early DDM): distance between consecutive errors। Detect gradual better।
  • ADWIN (Adaptive Windowing): sliding window; auto-adjusts size। Statistical guarantee।
  • Page-Hinkley: CUSUM-based change point detection।

৪ · DDM Python sketch

Python · Simple DDM
import numpy as np

class DDM:
    """Drift Detection Method (Gama et al. 2004)."""
    def __init__(self, warning_thr=2.0, drift_thr=3.0):
        self.warning_thr = warning_thr
        self.drift_thr = drift_thr
        self.reset()

    def reset(self):
        self.n = 0
        self.p_min = float("inf")
        self.s_min = float("inf")
        self.p = 0.0  # error rate
        self.s = 0.0  # std

    def update(self, error: int):
        """error: 0 or 1 — was prediction wrong?"""
        self.n += 1
        self.p = self.p + (error - self.p) / self.n
        self.s = np.sqrt(self.p * (1 - self.p) / self.n)

        if self.p + self.s < self.p_min + self.s_min:
            self.p_min = self.p
            self.s_min = self.s

        if self.p + self.s > self.p_min + self.drift_thr * self.s_min:
            return "drift"
        elif self.p + self.s > self.p_min + self.warning_thr * self.s_min:
            return "warning"
        return "stable"


# Usage — stream of (label, prediction)
ddm = DDM()
for label, pred in stream:
    error = int(label != pred)
    state = ddm.update(error)
    if state == "drift":
        print(f"⚠️ Drift detected at sample {ddm.n}")
        # trigger retrain workflow
        ddm.reset()

    
DDM tracks error rate; statistical thresholds-এ "warning" বা "drift" raise। Production-এ river library ready DDM/EDDM/ADWIN provide।

৫ · River library

Online ML library Python-এ — concept drift detector built-in।

Python · River drift detector
from river import drift
import random

adwin = drift.ADWIN()

# Simulate stream
for i in range(2000):
    if i < 1000:
        x = random.gauss(0, 1)
    else:
        x = random.gauss(2, 1)  # concept change!
    in_drift, _ = adwin.update(x)
    if in_drift:
        print(f"⚠️ ADWIN detected drift at {i}")

    
pip install river। Multiple detector available: ADWIN, DDM, EDDM, KSWIN, Page-Hinkley।

৬ · Response strategies

  • Retrain on recent data: simple, common।
  • Online learning: incremental update — River's models।
  • Ensemble: "champion-challenger" pool, swap on drift।
  • Periodic retrain: ignore detection, scheduled retraining handle drift।

৭ · Adversarial drift

Fraudster, attacker — concept drift fastest। They observe model, evolve।

  • Fraud pattern: model catches → fraudster shifts → model lags।
  • Recommendation gaming: SEO spam evolves।
  • Phishing: language adaptation।

Strategies:

  • Frequent retraining (weekly, daily)।
  • Diverse signal (single feature gameable; multi-signal harder)।
  • Anomaly detection layer atop classification।
  • Human-in-loop labeling for rapid feedback।

৮ · COVID drift case study

২০২০-এর COVID — many ML model worldwide broke।

  • E-commerce — sudden shift to online; recommendation training pre-COVID irrelevant।
  • Fraud detection — work-from-home pattern; legitimate looked fraud-like।
  • Demand forecasting — broken; historical pattern useless।

Lesson: scheduled retraining alone insufficient। Drift detection + emergency retrain capability essential।

Concept drift — 4 types Sudden COVID, regime change Gradual taste evolution Recurring seasonal, Eid Incremental slow continuous shift
Concept drift-এর ৪ pattern — different detection strategies + response।
Bangladesh fraud teams concept drift fastest experience। Adversarial → daily retrain + anomaly layer + human review combo standard।

ভাবনার প্রশ্ন

প্র ০১"Drift vs noise — distinguish কীভাবে?"

Random fluctuation drift নয়; persistent pattern drift।

Statistical tests:

  • Window comparison statistical significance।
  • Multiple consecutive windows confirm।
  • Magnitude vs noise floor।

Time-based confirmation:

  • Day-1 alert → wait day-2। Both drift = real।
  • Single day alert + day-2 stable = noise।

Cross-validation:

  • Multiple metrics agree (accuracy + drift + business KPI)।
  • Single metric drift suspicious।

BD context:

  • Friday spike not drift if recurring।
  • Sudden Friday change after years stability — drift।

মূল উপলব্ধি: Drift = pattern; noise = random। Persistence + significance + multi-signal corroboration → confidence।

প্র ০২"Retraining cadence — drift-triggered vs scheduled?"

দু'টি approach trade-off।

Scheduled (e.g., weekly):

  • Pros: predictable, planning easy।
  • Cons: drift between cycles unaddressed।

Drift-triggered:

  • Pros: responsive, just-in-time।
  • Cons: unpredictable load, complexity।

Hybrid (most common):

  • Weekly base retraining।
  • Drift detect → emergency retrain trigger।
  • Best of both।

Champion-challenger:

  • Continuous training, periodically promote if better।
  • Drift = challenger wins more often।

Cost considerations:

  • Training cost — frequent → expensive।
  • Spot instance + checkpoint — cheap retraining।

BD context — fraud:

  • Daily retraining standard for serious fraud system।
  • Adversarial pace dictate।

মূল উপলব্ধি: Hybrid practical. Scheduled foundation + drift trigger emergency। Pure scheduled = stale; pure drift-triggered = chaotic।

প্র ০৩"Champion-challenger setup কীভাবে practical?"

Champion-challenger = continuously train new model, periodically compare।

Setup:

  • Champion = current production model।
  • Challenger = new model trained recent data।
  • Both score same data; performance compare।
  • Challenger wins → promote।

Benefits:

  • Always model in pipeline ready।
  • Drift = challenger naturally outperforms।
  • Smooth transition no sudden retraining।

Implementation:

  • Daily training pipeline (challenger)।
  • Shadow deployment (challenger receive request copies)।
  • Weekly comparison report।
  • Challenger wins by margin → A/B → promote।

Cost:

  • 2× training compute (champion + challenger)।
  • 2× shadow inference।
  • Justified for critical models।

BD context — bKash:

  • Fraud champion-challenger common pattern।
  • Daily challenger trained latest week's data।
  • Gradual promote — trust earned through data।

মূল উপলব্ধি: Champion-challenger = drift-resilient framework। Costs more but stability dramatic। Critical model justify।

প্র ০৪"COVID-era ML failures — কী শিখলাম?"

2020 — global ML failure event।

What broke:

  • Demand forecasting — supply chain models gave nonsense।
  • Fraud detection — false positive spike (work-from-home)।
  • Recommendation — taste shift। sudden।
  • Credit scoring — unemployment shift, "good signal" change।
  • Pricing models — price-elasticity broke।

Lessons:

(১) Scheduled retraining insufficient:

  • Weekly retrain — ৪ সপ্তাহ data outdated already।
  • Need: drift-triggered + manual override।

(২) Multiple model layers:

  • Single ML model — single point of failure।
  • Ensemble + rule-based fallback resilient।

(৩) Human-in-loop:

  • "Trust the model" without check broke।
  • Anomaly review queue critical।

(৪) Domain-specific concept anchors:

  • "What can never change" identify।
  • Constraints baked into model।

(৫) Backtest with hypothetical shocks:

  • "What if user behavior shifts X%" simulation।
  • Robustness measure।

BD-specific:

  • 2020 lockdown e-commerce surge — recommendation models retrained twice in month।
  • Fintech credit scoring — temporary rule overrides।

মূল উপলব্ধি: COVID exposed ML system fragility। Routine practice insufficient — emergency capability mandatory। Hybrid (rule + ML), human review, multi-source data — resilience।

অনুশীলন

  1. Implement DDM: Stream of (label, prediction) generate; DDM apply।

    উপরের code use। Inject concept drift midway, observe alert।

  2. River: ADWIN ব্যবহার করুন; sudden vs gradual data-এ behavior compare।

    Sudden faster detection; gradual slower lag.

  3. চিন্তা: bKash adversarial fraud — concept drift response system design।
    • Daily retraining pipeline।
    • Champion-challenger A/B।
    • Anomaly detection layer (autoencoder)।
    • Manual review queue for borderline।
    • Alert: drift > threshold → fraud team notified।
    • Rapid feedback (1-week chargeback signal)।

আরও পড়ুন

পূর্ববর্তী পাঠ
পাঠ ২৫ · Data drift