Concept drift is a phenomenon where the underlying distribution of data changes over time, making it challenging for machine learning models to maintain their accuracy. This can happen due to changes in user behavior, new events, or shifts in the environment.
The consequences of concept drift can be severe, as it can lead to decreased model performance, false positives, and false negatives. For instance, a model that was previously accurate in predicting customer churn may start to make incorrect predictions if customer behavior changes.
To grasp the concept of concept drift, it's essential to understand that it's a dynamic process. The underlying distribution of data is constantly evolving, making it crucial for machine learning models to adapt to these changes.
Explore further: Concept Drift vs Data Drift
What is Concept Drift
Concept drift arises when our interpretation of the data changes over time even while the data may not have. This can happen when our understanding of the properties of different classes changes since our last observation.
For example, a piece of text can be labelled as belonging to one class in 1960 but belonging to a different one in 2019. This means that the predictions from a model built in 1960 are going to be largely in error for the same data in 2019.
Concept drift is pure, meaning it's not caused by changes in the data itself, but rather by changes in our interpretation of the data. This can be an extreme problem when the rules of the game change.
Types of Concept Drift
Concept drift can be a sneaky thing, and it's essential to know what you're up against. Concept drift refers to a change in the relationship between the target variable and input features.
This type of drift can be particularly tricky because it's not just about the data changing, but about the underlying relationships between the data points. For example, if you're building a model to predict house prices, a change in concept drift might mean that the relationship between the number of bedrooms and the price of the house has changed.
If this caught your attention, see: Concept Redesigned Websites
There are several types of concept drift, and understanding them can help you tackle the problem. One type is covariate shift, which occurs when the distribution of input features changes. This can happen if you're collecting data from a new region or demographic.
Concept drift can also be caused by changes in the relationship between the target variable and input features, which is known as concept drift. This type of drift is particularly problematic because it can be difficult to detect and address.
Here are some key types of concept drift:
Model decay is another type of concept drift that's worth mentioning. It occurs when the model's performance drops due to drift, and it's a sign that the model needs to be retrained or updated.
Data drift, on the other hand, is a broader term that refers to any distributional change. This can include changes in the input features, target variable, or both.
It's essential to monitor your model's performance over time to detect concept drift and take corrective action. By understanding the different types of concept drift, you can develop strategies to address them and keep your model performing well.
Identifying Concept Drift
Identifying concept drift can be a challenging task, especially when dealing with large datasets. The standard approach to identifying drift is to measure model performance or examine differences in training and deployment distributions.
Model performance can be measured by examining predicted outputs, ground truth, individual input features, or joint input features. However, this approach has serious challenges, including the curse of dimensionality, which makes it difficult to tell apart samples drawn from two distributions.
The curse of dimensionality is a major issue when dealing with high-dimensional data, making it hard to measure drift between multiple features. This is especially true for multi-class predictions or models with multiple outputs.
Lack of ground truth is another challenge, as it may not be immediately available in deployment. For example, in credit decisioning, whether a loan leads to a default may not be available until the loan period has passed several months or years later.
Inconsequential drift is also a problem, as a large shift in a feature can be inconsequential because it doesn't affect model behavior. This makes it difficult to triage whether a drift issue is worth addressing.
Here are some common approaches to detecting concept drift:
- Paired learners: Find the time windows where model B outperforms model A. If model B outperforms model A, it might suggest that a concept drift has occurred.
- Contextual approaches: Assess the difference between the train set and the test set. When the difference is significant, it can indicate that there is a drift in the data.
- Decay detection: Label a sample of data points and compare them with predictions from the latest model. If the f1-score falls below a threshold, trigger a re-label/re-train task.
These approaches can help identify concept drift, but it's essential to be mindful of the costs and potential inaccuracies of these methods.
Mitigating Concept Drift
Concept drift is a natural occurrence in many machine learning models, but it doesn't have to be a death sentence for your predictions. To mitigate concept drift, you need to understand its consequences and root causes.
The consequences of concept drift can be damaging, and it's essential to determine if the degradation is significant enough to warrant action. If so, you need to identify the key factors driving the drift.
Techniques for measuring feature importance are invaluable in gauging root causes. However, standard feature importance metrics need to be adjusted for drifts and not just prediction importance. Features causing drift can be different from the most important model features.
Reactive solutions can be adopted to prevent deterioration in prediction accuracy due to concept drift. This involves retraining the model in reaction to a triggering mechanism, such as a change-detection test.
Tracking solutions can also be used to track changes in the concept by continually updating the model. Methods for achieving this include online machine learning and maintaining an ensemble of classifiers.
Contextual information can be used to better explain the causes of concept drift. For example, adding information about the season to the model can compensate for concept drift in a sales prediction application.
Concept drift cannot be avoided for complex phenomena that are not governed by fixed laws of nature. Therefore, periodic retraining, also known as refreshing, of any model is necessary.
To recover its predictive ability, the model needs to be re-trained using the updated labels.
If this caught your attention, see: Elements of Statistical Learning Solutions
Measuring Concept Drift
Measuring concept drift is crucial to ensure your models remain accurate and relevant in the real world. Monitoring for concept drift helps prevent models from degrading in production due to changing underlying relationships between inputs and outputs.
There are several areas of emphasis within concept drift, including gradual change over time, recurring or cyclical change, and sudden or abrupt change. These changes can be caused by a variety of factors, such as changes in customer preferences or seasonality.
Monitoring for concept drift involves understanding when to refit or update your model, weighting data appropriately, and preparing data to account for concept drift. This can be achieved by using frameworks and datasets for evaluating the performance of machine learning models to handle concept drift.
Data Drift, a type of concept drift, refers to a distribution change associated with the inputs of a model. This can be caused by changes in customer preferences, seasonality, the addition of new offerings, or other factors.
Here are some types of concept drift:
- Gradual change over time
- Recurring or cyclical change
- Sudden or abrupt change
Monitoring for concept drift is a key step in machine learning observability, allowing teams to diagnose production issues that cause a negative impact on their model's performance.
Statistical Methods for Concept Drift
Statistical Methods for Concept Drift are used to compare the difference between distributions, assessing the distribution between two datasets. They can be used to find differences between data from different timeframes and measure the differences in the behavior of the data as time goes on.
Statistical Process Control is a method to verify that a model's error is in control, sending an alert if the model passes a certain error rate. This is especially important when running in production as the performance changes over time.
Some statistical methods, like DDM (Drift Detection Method), model the error as a binomial variable, calculating the expected value of the errors. DDM shows good performance in detecting gradual and abrupt changes, but struggles with slowly gradual changes. Here's a comparison of DDM and EDDM:
CUSUM and Page-Hinckley (PH) are pioneer methods in change detection, providing a sequential analysis technique for monitoring changes in the average of a Gaussian signal. These algorithms are sensitive to parameter values, resulting in a tradeoff between false alarms and detecting true drifts.
When to Use Statistics
When to use statistical methods, it's essential to detect changes in data over time. Statistical Process Control is a method that verifies the model's error is in control, sending an alert if the model passes a certain error rate.
This is especially important when running in production, as performance changes over time. A "traffic light" system, where models have warning alerts, can be useful for monitoring performance.
Statistical methods can help identify differences between data from different timeframes, measuring changes in the behavior of the data as time goes on. No additional memory is required, making it a quick indicator for changes in input features or output to the model.
However, the lack of a label and disregarding memory of past events can result in false positives if not handled correctly. It's crucial to handle these methods with care to avoid false alarms.
Here are some scenarios where statistical methods can be particularly useful:
- Detecting gradual changes over time
- Identifying recurring or cyclical changes
- Monitoring for sudden or abrupt changes
These scenarios are all mentioned in the article as areas of emphasis within concept drift. By using statistical methods, you can get a quick indicator for changes in the input features or output to the model, helping you to investigate potential degradation in the model's performance metrics.
Statistical Methods
Statistical methods are used to compare the difference between distributions, and in some cases, a divergence is used, which is a type of distance metric between distributions.
A divergence, like the Kullback-Leibler divergence, tries to quantify how much one probability distribution differs from another. For example, the Kullback-Leibler divergence between two distributions Q and P is calculated as $KL(Q||P) = – displaystylesum_x{P(x)}*log(frac{Q(x)}{P(x)})$.
The idea in statistical methods is to assess the distribution between two datasets, which can be done using a test like the Kolmogorov-Smirnov Test. This test is useful for comparing two samples and is sensitive to differences in both location and shape of the empirical cumulative distribution functions of the two samples.
To calculate the Kolmogorov-Smirnov Test, we use the formula $D_{n,m}=sup_{x}|F_{1,n}(x) – F_{2,m}(x)|$, where $F_{1,n}(x)$ and $F_{2,m}(x)$ are the empirical distribution functions of the two samples.
Statistical methods like the Kullback-Leibler divergence and the Kolmogorov-Smirnov Test are essential tools for detecting concept drift, which can occur due to changes in customer preferences, seasonality, or other factors.
A unique perspective: Proximal Gradient Methods for Learning
Cumsum and PH
Cumsum and PH are two pioneer methods in the community for detecting concept drift in data streams. They provide a sequential analysis technique typically used for monitoring change detection in the average of a Gaussian signal.
These algorithms are sensitive to parameter values, resulting in a tradeoff between false alarms and detecting true drifts. This means that adjusting the parameters can significantly impact their performance.
CUMSUM calculates the difference of observed values from the mean and sets an alarm for a drift when this value is larger than a user-defined threshold. This value is calculated using the formula: ${large g}_{t}= max(0, {large g}_{t-1}+{large varepsilon}_{t}-{large v})$.
The CUMSUM algorithm is memoryless, one-sided, or asymmetrical, so it can only detect an increase in the value. This is a key limitation of the algorithm.
Here's a summary of the CUMSUM algorithm:
- ${large g}_{0}=0, {large g}_{t}= max(0, {large g}_{t-1}+{large varepsilon}_{t}-{large v})$
- When ${large g}_{t}>h$ an alarm is raised, and set ${large g}_{t}=0$
- $h,v$ are tunable parameters
The Page-Hinckley (PH) algorithm, on the other hand, uses the formula: ${large g}_{t}= {large g}_{t-1}+({large varepsilon}_{t}-v)$. It also keeps track of the minimum value of $g_t$ over time, which is represented by the variable $G_t$.
Here's a summary of the PH algorithm:
- ${large g}_{0}=0, {large g}_{t}= {large g}_{t-1}+({large varepsilon}_{t}-v)$
- $G_{t}=min({large g}_{t},G_{t-1})$
Both algorithms raise an alarm when the value of $g_t-G_t$ exceeds a user-defined threshold $h$.
Monitoring Important
Monitoring for concept drift is crucial to ensure models are accurate and relevant in the real world. It helps catch and resolve performance issues quickly, especially in hyper-growth businesses where data is constantly evolving.
Concept drift can be caused by changes in customer preferences, seasonality, or the addition of new offerings. It's a gradual change over time, a recurring or cyclical change, or a sudden or abrupt change.
Monitoring feature drift catches input problems that can negatively affect your model's overall performance. It's essential to account for model drift to ensure your models stay relevant.
You need to monitor data drift and use cases along with the tradeoffs between different prevailing statistical distance metrics across both structured and unstructured data.
Here are some types of drift:
- Data Drift (aka feature drift, covariate drift, and input drift)
- Covariate Shift
- Prior Probability Shift
- Concept Shift
- Upstream Drift (aka operational data drift)
Monitoring for concept drift helps you diagnose production issues that cause a negative impact on your model's performance. It's impossible to tell how an ML model will perform as it transitions from the research environment to the real world.
Concept Drift Detection Methods
Concept Drift Detection Methods can be a bit tricky, but let's break it down. The Drift Detection Method (DDM) models error as a binomial variable, which helps calculate the expected value of errors. This means we can use the binomial distribution to estimate the standard deviation.
One of the key features of DDM is its ability to detect gradual changes and abrupt changes in data. However, it can struggle with slowly gradual changes. This can lead to a buildup of samples over time, which can overflow the sample storage.
DDM triggers a warning when the probability of errors plus its standard deviation exceeds a certain threshold, and an alarm when it exceeds an even higher threshold. Specifically, this happens when pt + sigmat ≥ pmin + 2σmin and pt + sigmat ≥ pmin + 3σmin, respectively.
The Early Drift Detection Method (EDDM) is a modified version of DDM that focuses on identifying gradual drift. It uses a slightly different approach to detect drift, which can be more effective in certain situations.
For another approach, see: Learning with Errors
To give you a better idea of how these methods work, here's a comparison of their triggers:
Note that Large beta is usually set to 0.9.
Concept Drift in Practice
Concept drift in practice can be a real challenge, especially in applications like predicting weekly merchandise sales. This type of drift occurs when the model becomes less accurate over time.
One reason for this is seasonality, which means that shopping behavior changes seasonally. For example, there may be higher sales in the winter holiday season than during the summer.
To mitigate concept drift, it's essential to perform health checks as part of the post-production analysis. This helps identify signs of drift early on, allowing you to re-train the model with new assumptions.
Examples
Concept drift can occur in various scenarios, such as predicting weekly merchandise sales in an online shop. The model may use inputs like advertising spend, promotions, and other metrics that affect sales.
As time passes, the model's accuracy can decrease due to concept drift. One reason for this is seasonality, which changes shopping behavior depending on the time of year.
For instance, sales may be higher during the winter holiday season than during the summer. Seasonal changes can be a confounding variable that's difficult to account for.
In the merchandise sales application, the model's accuracy may decrease over time because the covariates no longer explain the variation in the target set as accurately. This can happen when new variables emerge that affect sales.
Projects
The INFER project, conducted from 2010 to 2014, aimed to create a computational intelligence platform for evolving and robust predictive systems. This project was a collaborative effort between Bournemouth University (UK), Evonik Industries (Germany), and the Research and Engineering Centre (Poland).
The HaCDAIS project, running from 2008 to 2012, focused on handling concept drift in adaptive information systems at Eindhoven University of Technology (the Netherlands).
Related reading: Learning Systems in Machine Learning
The KDUS project, involving INESC Porto and the Laboratory of Artificial Intelligence and Decision Support (Portugal), explored knowledge discovery from ubiquitous streams.
The ADEPT project, conducted by the University of Manchester (UK) and the University of Bristol (UK), worked on adaptive dynamic ensemble prediction techniques.
The ALADDIN project, completed from 2005 to 2010, concentrated on autonomous learning agents for decentralized data and information networks.
The GAENARI project, initiated in 2022, aimed to minimize concept drifting damage using a C++ incremental decision tree algorithm.
Here are some notable projects in the field of concept drift:
Implementations
Implementations of concept drift detectors can be found in various programming languages.
One popular Java implementation is MOA, which provides a robust framework for detecting concept drift.
Python users can leverage the scikit-multiflow library for implementing concept drift detectors.
These libraries offer pre-built detectors that can be easily integrated into existing projects.
Here are some specific implementations you can explore:
- MOA (Java): A widely-used framework for implementing concept drift detectors.
- scikit-multiflow (Python): A library that provides a range of detectors for concept drift.
Frequently Asked Questions
What is concept drift vs data drift?
Concept drift occurs due to external factors changing in the real world, while data drift is caused by internal factors like data collection and training processes. Understanding the difference is crucial for maintaining accurate machine learning models.
How to fix concept drift?
To fix concept drift, regularly update and retrain your model using new data, and consider creating new models to adapt to sudden or recurring changes. This involves maintaining a dynamic approach to machine learning, weighing new data importance, and comparing against a static baseline.
Sources
- https://towardsdatascience.com/drift-in-machine-learning-e49df46803a
- https://towardsdatascience.com/concept-drift-and-model-decay-in-machine-learning-a98a809ea8d4
- https://arize.com/model-drift/
- https://www.aporia.com/learn/data-drift/concept-drift-detection-methods/
- https://en.wikipedia.org/wiki/Concept_drift
Featured Images: pexels.com