Data streams são dados que são gerados de forma contínua e muitas vezes ininterrupta, cujo valor prático é geralmente de curta duração, sendo usados para tomada de decisão imediata. Ilustrativamente, todo processo de controle automatizado faz uso de data streams, representados por uma ou mais medidas que são monitoradas e cujos valores orientam intervenções no sentido de manter o sistema estável. Um exemplo é a geladeira, que tem um sensor térmico que recebe continuamente a informação de sua temperatura interna (o dado neste caso), e se este valor passar de um ponto crítico, aciona ou desliga o motor responsável por resfriar o ar interno.
Hoje em dia, uma imensidão de dados são gerados no formato de data streams. O barateamento de diversos tipos de sensores permitiu um alto grau de automação nas indústrias, por exemplo, onde toda a linha de produção é monitorada e ajustada em nível fino. Estações meteorológicas recebem medidas instantâneas de diversas variáveis ambientais que são usadas para fazer previsões de curto, médio e longo prazo, que por sua vez podem ter impacto em decisões de interesse público. E na era das mídias sociais, empresas podem monitorar o sentimento que suas marcas geram no público de forma instantânea, adequando seus posicionamentos e campanhas de forma a atender as necessidades que elas reconhecem.
Características de data streams
A natureza contínua e volátil dos data streams confere a estes dados algumas características peculiares, que impactam a forma com que devem ser tratados. Como são gerados continuamente, o banco de dados a que um analista tem acesso nunca é considerado completo, representando sempre, na melhor das condições, os dados conhecidos até aquele momento. Esta geração infinita também faz com que estes dados geralmente não sejam armazenados, sendo processados e/ou sumarizados e logo depois descartados; e o processamento deve ser rápido o suficiente para não gerar um gargalo que atrase as decisões que dependem deles. Os dados podem ainda mudar de natureza ao longo do tempo, como um equipamento que se torna desgastado pelo uso e começa a produzir dados diferentes daqueles no início de sua vida útil. Esta característica é responsável por três fenômenos associados aos data streams: mudança de conceito, quando as propriedades estatísticas dos dados que representam um fenômeno mudam; evolução de conceito, quando os mesmos dados começam a indicar outro fenômeno; e evolução de variáveis, quando as variáveis necessárias para descrever o mesmo fenômeno mudam.
Mineração de data streams
Assim como qualquer outro processo de mineração de dados, minerar data streams tem por objetivo extrair deles informações úteis a um processo de decisão, mas suas características únicas exige algumas técnicas específicas tanto relacionadas ao processamento dos dados que chegam quanto à geração de insights a partir deles. A seguir apresento as principais técnicas com suas vantagens e desvantagens.
Técnicas baseadas em dados
São técnicas que primeiro sumarizam ou retiram amostras dos data streams para depois passá-los a um modelo de machine learning.
Amostragem
É o processo pelo qual instâncias são escolhidas para processamento em função de uma função probabilística. Certamente é uma das técnicas mais antigas para análise de dados parciais. Um de seus maiores problemas é que, como o tamanho do banco de dados é indefinido, não é possível estabelecer um número adequado de amostras de forma que as conclusões tenham significância estatística. Outro problema é que a técnica não considera que as taxas de geração de dados podem flutuar, o que pode atrasar o processamento de uma amostra que fique esperando o próximo dado disponível. Ainda assim, pela sua facilidade de implementação, é uma técnica com ampla aplicação.
Load shedding
A tradução do termo, derramamento de carga, dá uma ideia de seu funcionamento. Esta técnica faz com que o processamento ignore dados recebidos “em excesso”, ou seja, aqueles que ele não é capaz de processar em tempo hábil. Assim se resolve o problema de garantir que o processamento seja contínuo, mas a técnica também pode fazer com que o modelo não tenha acesso a dados importantes para entender o fenômeno que está sendo investigado.
Sketching
Sketch significa rascunho. Esta técnica busca reduzir a dimensionalidade dos dados, geralmente utilizando transformações lineares ou selecionando variáveis, que produzem um “resumo” do data stream. A principal desvantagem é que parte da acurácia do modelo é perdida com esta técnica, justamente por ela não usar todas as variáveis relevantes.
Estruturas de sinopse
Esta técnica se refere ao uso de métodos de sumarização de dados como histogramas, quantis e medidas de frequência. Como essas estruturas não representam todas as características dos dados originais, os resultados alcançados são aproximados.
Agregação
Agregação é o cálculo de medidas estatísticas como média e variância para sumarizar os dados. Seu ponto fraco é evidenciado nas situações em que as distribuições que regem os dados não são constantes, exigindo que os parâmetros dos cálculos aplicados sejam revistos conforme a necessidade.
Técnicas baseadas em tarefas
Estas são as técnicas que buscam criar novas metodologias ou modificar técnicas existentes para que sejam adequadas ao processamento de data streams.
Algoritmos de aproximação
Os algoritmos de aproximação são métodos computacionais tradicionalmente desenvolvidos para resolver problemas matemáticos complexos, entregando soluções aproximadas. Como o processamento de data streams configura um problema complexo, algoritmos de aproximação passaram a ser considerados em sua solução, revelando graus variados de sucesso. Entretanto, eles não podem ser usados diretamente, devendo ser aplicadas outras ferramentas para promover as adaptações necessárias para que os dados possam ser abordados por eles.
Janela deslizante
As janelas deslizantes são aplicadas quando o desenvolvedor está interessado em investigar apenas os eventos mais recentes nos data streams, portanto ele primeiro faz um recorte apenas dos dados recentes, sendo os mais antigos representados por versões sumarizadas ou simplesmente ignorados. Esta é uma forma de dar mais relevância ao comportamento atual representado pelos dados.
Granularidade de saída do algoritmo
A técnica AOG (algorithm output granularity) foi a primeira abordagem de análise de dados implementada que leva em consideração os recursos disponíveis, sendo portanto adequada para processar data streams. Ela funciona em três etapas. Nas duas primeiras, os dados são recuperados e adaptados em função de sua taxa de geração e dos recursos livres, e na terceira, as estruturas de conhecimento geradas são fundidas quando os recursos de memória se tornam escassos, permitindo a ingestão de novos dados.
Técnicas de mineração
Depois que a técnica de abordagem do problema foi definida dentre as opções descritas acima, o desenvolver deve decidir de que forma extrair as informações de interesse dos data streams. As quatro abordagem principais são descritas a seguir.
Classificação
Tarefas de classificação são uma das tarefas fundamentais tratadas por métodos de machine learning. A ideia básica é usar os valores das variáveis para determinar a qual categoria pré-determinada cada instância de dado pertence. No caso de data streams, as tarefas de classificação costumam ser complicadas devido à ocorrência de mudança de conceito. Algumas soluções propostas incluem o uso de ensembles, que são conjuntos de classificadores aos quais são aplicados pesos de relevância conforme o conceito do problema muda ao longo do tempo, sendo o resultado final determinado por uma métrica de agregação como a média ponderada. Outros algoritmos estão disponíveis apresentando soluções pontuais para problemas específicos.
Agrupamento
Outra das tarefas fundamentais de problemas de machine learning, o agrupamento envolve reconhecer as características que tornam instâncias similares e assim formar grupos úteis para a segmentação dos dados. Algoritmos clássicos como o KNN costumam ser aplicados, tanto em sua versão onde os centroides são construídos com o valor da média (k-means) quanto com o valor da mediana (k-median) dos pontos próximos, mas algoritmos específicos para o tratamento de data streams também foram desenvolvidos.
Contagem de frequência
Esta tarefa trata da contagem de grupos frequentes de itens em data streams. Um dos problemas é que o aspecto cumulativo desta tarefa pode levar a um acúmulo também de grupos com frequência baixa, que são pouco informativos e consomem recursos. Os algoritmos que realizam contagem de frequência podem resolver este problema contando apenas os grupos mais recentes, quando esta for a informação desejada, ou desprezando os grupos poucos frequentes quando necessário, dentre outras abordagens.
Análise de séries temporais
No caso de séries temporais, é preciso ter cuidados especiais no pré-tratamento dos dados, já que a própria característica temporal dos data streams é um elemento relevante na modelagem do fenômeno. Vários algoritmos foram propostos no sentido de determinar tendências, calcular medidas estatísticas e possibilitar o agrupamento de séries temporais obtidas via data streams.
Este artigo apresentou o conceito de mineração de data streams, descrevendo as características deste tipo de dado, as abordagens para seu tratamento matemático e as técnicas para extrair informações deles. Conforme a distância entre a obtenção de dados e sua análise for se tornando cada vez menor, estas técnicas vão ser cada vez mais relevantes, possibilitando a descrição de um panorama instantâneo dos fenômenos em questão e orientando decisões em tempo real.