O que é concept drift em Machine Learning

Entenda como os dados mudam com o tempo e como podemos lidar com isso.

Erica Bertan
Sep 4, 2019 · 3 min read

Sabemos que para desenvolver um modelo de predição usando Machine Learning, temos que ter uma base de dados para treinar o algoritmo. Modelos treinados de tal maneira preveem a saída de dados nunca vistos. Todavia, pode ser que ao longo do tempo fatores externos sejam impressos nos dados e as predições do modelo se tornem inacuradas.

Vamos pensar no cenário econômico de um país. Queremos prever quais usuários comprarão nas plataformas eletrônicas no próximo mês. Entretanto, na maior parte das vezes o modelo não identifica corretamente os usuários que comprariam no mês seguinte. O que pode ter causado esse erro?

Concept Drift

Uma vez que a causa começou a ser investigada, descobriu-se que por motivos inflacionários, ou de aumento de custo de vida, nossos usuários têm comprado menos nas plataformas eletrônicas e priorizado itens de primeira necessidade.

Isto é o que chamamos de concept drift, ou deriva de conceito, em Machine Learning.

In the real world concepts are often not stable but change with time. Alexey Tsymbal, The problem of concept drift: definitions and related work. Trinity College Dublin, Ireland — 2004.

O concept drift é uma mudança implícita nos dados e leva os modelos a ficarem defasados. Cabe a quem desenvolveu a solução tentar interpretar o que aconteceu. Neste momento, existem dois desafios.

1. Detectar

O primeiro desafio é tentar detectar quando houve um desvio de conceito. Nem sempre isto é uma tarefa fácil, pois a mudança nos dados tem várias facetas.

  • Mudança gradual. Este tipo de mudança no dado é o mais comum. Ela pode levar meses ou anos para acontecer e normalmente é influenciada por uma série de variáveis. Um exemplo disso é um modelo de detecção de faces. Neste caso, o modelo de detecção deve ser treinado de tempos em tempos, pois as características do rosto do usuário mudam conforme o tempo passa.
  • Mudança cíclica. A mudança cíclica acontece quando os dados desviam em certos períodos de tempo. É o que acontece no período de Black Friday. Nesta época do ano, naturalmente existe um volume de compras maior do que nas outras épocas do ano.
  • Mudança súbita ou abrupta. Este tipo de mudança é caracterizado por uma ruptura brusca no padrão do dado. Um exemplo deste tipo de mudança pode ser detecções de ataques em um sistema.

2. Ajustar o modelo

Dado que se identificou que houve uma mudança nos dados e que isso impactou o modelo, existe a necessidade de manter o modelo preciso. Para isso, existem várias abordagens hoje na literatura, e citarei algumas.

  • Fazer nada. Apesar de estranho, sim. Existem cenários em que o modelo não necessita de modificações, que é o caso de modelos estáticos. Um exemplo disso é o modelo de diagnóstico de tuberculose. Por mais que mudanças ocorram no corpo do paciente, dificilmente isso impactará o padrão de detecção da tuberculose.
  • Retreinar o modelo periodicamente. Uma abordagem simples para lidar com a mudança do dado é retreinar o modelo em períodos de tempo, que podem variar conforme o contexto do problema.
  • Usar pesos. Alguns algoritmos permitem que se ajuste a importância dos dados de entrada. Nesse caso, o desenvolvedor pode dar um peso maior para dados mais novos.
  • Escolher um modelo. Em alguns sistemas é possível detectar a mudança e selecionar o modelo apropriado para fazer predições adequadas para aquele tipo de dado.

Conclusão

O objetivo do texto é falar sobre o conceito de concept drift de maneira geral e relacioná-lo a alguns exemplos do mundo real. É bem comum que já tenhamos nos deparado com a deriva de conceito sem saber que existe uma área de pesquisa dedicada a ela :) Uma vez que os desenvolvedores do modelo sabem da existência de uma deriva e como lidar com ela, a qualidade do modelo se manterá alta, garantindo boas predições no seu projeto.

That’s all, folks! Qualquer coisa, seja para trocar uma ideia ou discutir sobre o tema, me manda uma mensagem no LinkedIn ou mesmo no meu perfil no Medium. Wubba lubba dub dub!

Erica Bertan

Written by

Love to learn. Computer Science at Instituto de Computação, UFAM. Software Engineer at Méliuz.

More From Medium

Also tagged Machine Learning Models

Also tagged Concept Drift

Related reads

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade