Adarsh Nanjaiya Latha

CODS-COMAD 2024 · Jodhpur, India · ACM

Collaborative Drift Compensation

Teaching federated models to notice when the world changes — and to adapt together, using nothing but their own weights.

Adarsh N L1,* Madapu Amarlingam2 Divyasheel Sharma2

1IIIT Sri City    2ABB Corporate Research Center, Bengaluru
*Work done during an internship at ABB Corporate Research.

01 · Motivation

Factories want shared models. They can't share data.

Process industries — mining, oil & gas, chemicals, manufacturing — run on machine-learning models for predictive maintenance and anomaly detection. But any single plant has too little data to train a good model, and its data is too sensitive (and too heavy) to ship elsewhere.

Federated learning (FL) squares that circle: every plant trains locally on its private data, and only the model weights travel. A central server averages them into one shared global model. Step through one round below.

One round of federated learning Press play, or step through the four phases.

This loop rests on a quiet assumption: that every client's data looks statistically the same, and stays the same. In an industrial plant, neither is true. Seasons change, valves wear out, sensors get recalibrated, operators relabel faults. The data drifts — and the shared model starts to rot.

02 · The problem

Drift: when the data moves under a frozen model

Drift comes in two flavours. Covariate drift changes the inputs, \(P(x)\) — the same faults, measured under new operating conditions. Concept drift changes the answer key, \(P(y\,|\,x)\) — the same measurements now mean something else. Try both on a live classifier trained on the original data:

Drift playground Two process variables from a two-phase flow separator; the frozen model's decision boundary is the dashed line.
Frozen model F1 1.00

The model is perfect on the data it was trained on.

Now the part that breaks existing methods: in a fleet of clients, drift is staggered in time and in space. Different plants drift at different rounds, in different directions. Press play to watch a fleet of ten clients live through ten training rounds:

Drift is staggered across time and space Rows are clients, columns are communication rounds. Hover any cell.

One global model cannot serve a fleet whose members are living in different worlds. But letting each drifted client fend for itself throws away the whole point of federation. The question the paper answers: who should collaborate with whom, and how do you find out without ever seeing the data?

03 · Prior work

Why existing approaches fall short

Each family of prior methods fixes part of the problem and trips over the rest. Click through them — each card is a working demonstration of the failure mode.

FedAvg — averaging poisons the healthy

Plain federated averaging folds every client's weights into the global model — including drifted ones. One bad apple shifts the average for everyone. Drag the drifted client's severity and watch the global model get dragged away from the healthy clients.

Healthy clients' F1: 0.95

04 · Our insight

The weights already know

A neural network's weight matrices are a function of the data they were trained on. When a client's data distribution shifts, the shift leaves a fingerprint in its weights. And federated learning hands us a free gift: every client starts each round from the same global model — a perfect common reference. Whatever differs between a client's weights and that reference was caused by that client's data.

Weights are a fingerprint of the data Shift a client's data and watch its trained weights drift away from the shared reference — in a direction that mirrors the data shift.
KS statistic vs. reference: 0.00

The whole method in one sentence: compare each client's weights against the shared global model with a statistical test — no data, no labels, no extra uploads — and clients whose weights moved the same way are experiencing the same drift, so let them adapt together.

Remember the two FedDrift clients with identical losses? Their weight fingerprints point in opposite directions. The scalar collapses the information; the weights preserve it.

05 · The algorithm

CLMA, step by step

CLMA (Collaborative Model Adaptation) runs as a thin layer on top of federated learning. Each round: clients train and self-check for drift with a loss test; drifted clients are quarantined out of their cohort; the server splits them by the direction of their weight shift (KS test), compresses their flattened weights (eigen-projection), clusters them (k-means), and spins up each cluster as a new cohort that continues federated learning among its own kind.

The simulator below runs the full pipeline on 10 clients × 10 rounds, with drifts injected exactly as in the paper's experiments. The pseudocode on the right is the paper's; the executing line lights up.

Round 1 / 10
for c ← 1 to C do
  if c = 1: init cohorts H, quarantine W̅, model W
  (Wₙ, F) ← ClientLocalTraining(W, n, c)  ∀n
  W ← Aggregate({Wₙ});  Hₖ ← first cohort
  for each cohort Hₖ, each n ∈ Hₖ:
    (Wₖₙ, F) ← ClientLocalTraining(Wₖ, n, c)
    if F: W̅ ← W̅ ∪ Wₖₙ;  Hₖ ← Hₖ − {n}
  Wₖ ← Aggregate(Mₖ); send Wₖ to cohort Hₖ
  if W̅ ≠ ∅: H′ ← DriftCompensateCohorting(W̅, Wₖ)
  H ← H ∪ H′
end
Waiting to start…

Three properties are worth pausing on. Privacy-free detection: the server only ever sees weights and a boolean flag — exactly what vanilla FL already sends. Drift-agnostic: nothing in the pipeline asks what kind of drift happened, only which clients' weights moved together. Two deployment modes: the same loss test runs during training (Algorithm 2) and after deployment on live inference data (Algorithm 4), so a fielded model can call itself back for adaptation.

06 · The math, animated

Three small ideas doing the heavy lifting

6.1  Drift detection: a loss tripwire

A client flags drift when its fresh-data loss jumps by more than a threshold: \(L_c > L_{c-1} + \gamma\). The threshold trades sensitivity against false alarms — feel the trade-off yourself:

6.2  Direction of drift: the KS test on weights

The Kolmogorov–Smirnov statistic is the biggest vertical gap between two cumulative distributions. Applied to weight values — client vs. global reference — its signed statistic tells us which way the client's weights shifted. Positive shifts go to \(S^{+}\), negative to \(S^{-}\):

D = 0.00S⁺

6.3  Grouping: eigen-projection, then k-means

A flattened weight vector has thousands of dimensions; comparing clients there is noisy and slow. CLMA keeps only the eigenvectors explaining 95% of the variance — the directions along which clients actually differ — then runs k-means in that small space. Step through the pipeline:

07 · Experiments & results

Does it work? Ten clients, real industrial data

Experiments use PRONTO, an industrial benchmark from a multiphase-flow facility: 17 process variables, five classes (Normal + four faults), split across 10 clients. Drifts are injected at rounds 3, 5, 7 and 9 on 8 of the 10 clients — covariate drift by shifting feature statistics, concept drift by moving the labelling boundary. A 1D-CNN classifies faults; the metric is F1.

7.1  Who gets grouped with whom

The heatmap shows each client's cohort at every round. CLMA resolves distinct cohorts per drift direction per round; FedDrift only ever separates "drifted" from "not drifted".

7.2  Client-level performance

F1 over communication rounds. Dashed vertical lines mark drift injections. Toggle methods in the legend; hover for exact values; switch views to see the three stories the paper tells.

Charts are interactive reconstructions of the paper's figures; values are illustrative of the reported trends — see the paper for the measured curves.

08 · Takeaways

What this changes

Drift handling without data sharing

Detection, diagnosis and adaptation all run on model parameters the server already receives. Nothing new leaves the plant — privacy and bandwidth constraints stay intact.

Direction, not just degree

By testing weights instead of watching a scalar loss, CLMA distinguishes which drift a client is experiencing — the failure that limited loss-based clustering in FedDrift.

Collaboration survives drift

Drifted clients aren't abandoned to solo fine-tuning; they are re-federated with peers drifting the same way, keeping the data-efficiency benefits of FL during adaptation.

Works in the field

The same tripwire runs after deployment (Algorithm 4): a fielded model that starts degrading calls the server and triggers re-adaptation — no human in the loop.

Where this matters: fleets of similar assets under different conditions — compressor stations across climates, production lines across factories, turbines across wind farms. Anywhere "one global model" meets "many local realities".

Open directions from the paper: adaptive (rather than fixed) thresholds \(\gamma\), richer statistical tests, stronger clustering methods, and validation on messier real-world asset data.

09 · Resources

Paper & citation

@inproceedings{latha2024drift,
  author    = {Nanjaiya Latha, Adarsh and Amarlingam, Madapu and Sharma, Divyasheel},
  title     = {Collaborative Drift Compensation},
  booktitle = {Proc. 6th Joint International Conference on Data Science and Management of Data (CODS-COMAD)},
  year      = {2024},
  doi       = {10.1145/3703323.3703341}
}