Categorias
Ciência de Dados Machine Learning

Usando Ciência de Dados para detectar anomalias em logs de sistema

Com o aumento significativo de dispositivos computacionais nos últimos anos, a quantidade de dados transmitidos e armazenados cresceu de forma alarmante. Diante disso, os logs de sistema são um artefato essencial para a aplicação das técnicas de detecção de anomalias, pois eles registram os estados e eventos significativos do sistema, ajudando a depurar os comportamentos que não são esperados.

Na indústria é comum registrar informações detalhadas do tempo de execução do software em logs, permitindo que os desenvolvedores e engenheiros de suporte analisem o comportamento do sistema. As ricas informações registradas pelos logs permitem que os desenvolvedores conduzam uma variedade de tarefas de gerenciamento de sistema, como diagnóstico de erros e travamentos, garantia de segurança da aplicação e detecção de anomalias.

A detecção de anomalias desempenha um papel muito importante em várias comunidades, como a de Ciência de Dados, Aprendizado de Máquina, Visão Computacional e Estatística, e é provavelmente o campo mais comum para conduzir uma análise formal e confiável em logs de sistema. Isso, porque é possível detectar coisas que deram errado na execução do processo.

Esse campo, que busca comportamentos anormais do sistema observando os dados de log, permite que os desenvolvedores localizem e resolvam problemas em tempo hábil. 

 

Conceitos básicos 

Quando uma instância de dados apresenta um comportamento diferente do que é esperado pelo sistema, ela passa a ser denominada anomalia. O objetivo da detecção de anomalias é determinar todas essas instâncias orientando-se por dados. As anomalias também são chamadas de anormalidades, novidades, desvios ou discrepâncias na literatura de mineração de dados e estatística. 

Os desvios podem ser causados por erros nos dados, mas às vezes são indicativos de um novo processo subjacente, anteriormente desconhecido. Agora, vamos conhecer os três tipos de classificação nas quais as anomalias são divididas: anomalias pontuais, anomalias contextuais e anomalias coletivas. 

  • A maioria dos trabalhos na literatura concentra-se em anomalias pontuais, que geralmente representam uma irregularidade ou desvio aleatório que pode não ter uma interpretação particular.
  • Uma anomalia contextual, também conhecida como anomalia condicional, é uma instância de dados que pode ser considerada anômala em algum contexto específico, por exemplo, o timestamp, um padrão de gasto de dinheiro, a ocorrência de eventos em logs do sistema ou qualquer recurso usado para descrever o comportamento normal.
  • Anomalias coletivas são um tipo de anomalia que, individualmente, aparece como instâncias normais, e quando observada em grupo, exibe características incomuns. 

 

Aplicações: anomalias robustas

A detecção de anomalias pode ser aplicada em muitos contextos, inclusive para identificar discrepâncias robustas. Nesse caso, temos o LogRobust, uma abordagem de detecção de anomalias baseada em log. 

O LogRobust busca uma detecção precisa e robusta, considerando que os dados de log do mundo real estão em constante mudança. Devido à instabilidade dos dados de log, a eficácia das abordagens de detecção de anomalias existentes é significativamente afetada.

A arquitetura do LogRobust adota a rede neural baseada em atenção Bi-LSTM para lidar com as sequências de log instáveis. Já que os eventos de log diferentes têm impactos distintos no resultado da classificação, o mecanismo de atenção foi apresentado ao modelo Bi-LSTM para atribuir pesos diferentes aos eventos de log. Além disso, o impacto do ruído dos dados também pode ser reduzido, pois eventos com ruído tendem a ter menos importância e são mais propensos a receber pouca atenção. 

 

Aplicações: análise de sentimentos

A detecção de anomalias também pode ser utilizada no contexto de análise de sentimentos.

Em seu trabalho, Hudan Studiawan (2020) propõe uma nova técnica de análise de sentimentos baseada em aprendizado profundo para verificar se há atividades anômalas em logs de sistema operacional (SO). Esse problema é considerado análise de sentimento de duas classes: sentimentos positivos e negativos.

Studiawan usou uma técnica de Deep Learning que fornece alta precisão e flexibilidade em relação a dados não vistos anteriormente. Especificamente, é usado um modelo Gated Recurrent Unit para detectar o sentimento nas mensagens de log do sistema operacional.

Em logs do sistema operacional da vida real, o número de mensagens negativas é muito menor do que as positivas, gerando o desbalanceamento de classe. E para alcançar um equilíbrio entre as duas classes de sentimento é usado o método de Tomek link. O equilíbrio produzirá um modelo de aprendizado profundo melhor; portanto, capaz de detectar com mais precisão atividades anômalas.

Para concluir

Por fim, os métodos não-supervisionados são amplamente utilizados quando não se tem dados rotulados. Vários frameworks de Deep Learning que abordam desafios na detecção de anomalias não-supervisionadas são propostos e mostrados para produzir um desempenho de estado da arte.

Kengo Tajiri (2020) propõe um método de monitoramento de sistemas TIC (Tecnologia da Informação e Comunicação) para detecção contínua de anomalias, considerando que as dimensões dos vetores mudam frequentemente. Os métodos de detecção de anomalias baseados em Autoencoders, que treinam um modelo para descrever a “normalidade”, são promissores para monitorar o estado dos sistemas.

Há uma grande necessidade de desenvolver técnicas de detecção de anomalias de uso geral e personalizadas para problemas. Essas metodologias devem ser adaptadas para acompanhar as últimas mudanças na tecnologia que podem resultar em novas vulnerabilidades em vários sistemas. As técnicas de detecção de anomalias precisam ser eficientes o suficiente para capturar a pequena quantidade de outliers em grandes fluxos de dados e também inteligentes o suficiente para detectar anomalias em períodos de tempo curtos ou longos.

Se você quiser continuar aprendendo sobre o tema, confira aqui embaixo as indicações bibliográficas que selecionamos.

Até o próximo tema!

 

 

Referências Bibliográficas

  • AGGARWAL, Charu C. Neural networks and deep learning. Springer, v. 10, p. 978-3, 2018.
  • CHALAPATHY, Raghavendra; CHAWLA, Sanjay. Deep learning for anomaly detection: A survey. arXiv preprint arXiv:1901.03407, 2019.
  • CHANDOLA, Varun; BANERJEE, Arindam; KUMAR, Vipin. Anomaly detection: A survey. ACM computing surveys (CSUR), v. 41, n. 3, p. 1-58, 2009.
  • MA, Rongjun. Anomaly detection for Linux system log. 2020. Dissertação de Mestrado. University of Twente.
  • PANG, Guansong. Deep Learning for Anomaly Detection: A Review. ACM Computing Surveys (CSUR), v. 54, n. 2, p. 1-38, 2021.
  • SONG, Xiuyao. Conditional anomaly detection. IEEE Transactions on knowledge and Data Engineering, v. 19, n. 5, p. 631-645, 2007.
  • STUDIAWAN, Hudan; SOHEL, Ferdous; PAYNE, Christian. Anomaly detection in operating system logs with deep Learning-based sentiment analysis. IEEE Transactions on Dependable and Secure Computing, 2020.
  • TAJIRI, Kengo et al. Dividing Deep Learning Model for Continuous Anomaly Detection of Inconsistent ICT Systems. In: NOMS 2020-2020 IEEE/IFIP Network Operations and Management Symposium. IEEE, 2020. p. 1-5.
  • ZHANG, Xu et al. Robust log-based anomaly detection on unstable log data. In: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 2019. p. 807-817.
  • ZHU, Jieming et al. Tools and benchmarks for automated log parsing. In: 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP). IEEE, 2019. p. 121-130.

 

 

Categorias
Big Data Dados Mineração de Processos

O Papel da Mineração de Processos na Ciência de Dados

O interesse pela ciência de dados está crescendo rapidamente. Muitos a consideram como a profissão do futuro. O hype relacionado à Big Data e à análise preditiva ilustra isso. (“Big” e “Small”) Data são essenciais para pessoas e organizações, aumentando sua importância. No entanto, não é suficiente se concentrar no armazenamento e análise de dados. Um cientista de dados também precisa relacionar dados a processos operacionais e ser capaz de fazer as perguntas certas. 

A relevância da Mineração de Processos

Na última década, Process Mining (Mineração de Processos) surgiu como um novo campo de pesquisa que se concentra na análise de processos usando dados de eventos. As técnicas clássicas de mineração de dados, como classificação, clustering, regressão, aprendizado de regras de associação, não se concentram nos modelos de processos de negócios e geralmente são usadas apenas para analisar uma etapa específica do processo geral. 

Mineração de Processos se concentra nos processos fim-a-fim e isso é possível devido à crescente disponibilidade de dados de eventos e novas técnicas de descoberta de processos e verificação de conformidade. A relevância prática da mineração de processos e os interessantes desafios científicos tornaram essa nova área um dos hot topics da ciência de dados. 

O que é a mineração de processos? 

Primeiro precisamos definir formalmente o que essa nova área aborda. O ponto de partida para a mineração de processos é um log de eventos. Cada evento nesse log refere-se a uma atividade (isto é, uma etapa bem definida em algum processo) e está relacionado a um caso específico (isto é, uma instância do processo). 

Os eventos pertencentes a um caso são ordenados e podem ser vistos como uma “execução” do processo. Os logs de eventos podem armazenar informações adicionais sobre eventos. De fato, sempre que possível, as técnicas de mineração de processo usam informações extras, como o recurso (ou seja, pessoa ou dispositivo) que executa ou inicia a atividade, o registro de data e hora do evento ou elementos de dados registrados com o evento (por exemplo, o tamanho de um pedido). 

Assim, a mineração de processos visa descobrir, monitorar e melhorar processos reais extraindo conhecimento dos logs de eventos disponíveis nos sistemas de informações atuais. Ao usar process mining é possível descobrir processos reais, checar sua conformidade, quantificar os desvios, descobrir o que causa a variação dos processos, encontrar gargalos, predizer saídas dos processos, entre outros benefícios. O objetivo dessa área é transformar dados de eventos em insights e ações. Process mining é parte integrante da ciência de dados, estimulada pela disponibilidade de dados e pelo desejo de melhorar os processos. 

As três classificações de Mineração de Processos

A descoberta de processos constrói um modelo a partir de um log de eventos, sem nenhuma informação a priori. Um exemplo disso é o algoritmo alpha

Já as técnicas de conformidade visam analisar a compatibilidade de um log de eventos a um modelo de processo já existente. A verificação de conformidade pode ser usada para verificar se a realidade do modelo condiz com o que foi registrado no log e vice-versa.

Por fim, o aprimoramento melhora automaticamente um modelo de processo de acordo com um log de eventos. Enquanto a conformidade mede o alinhamento entre o modelo e a realidade, esse terceiro tipo de mineração de processo visa alterar ou estender o modelo a priori. 

Em que contexto é aplicado? 

Uma aplicação para mineração de processos é a pesquisa de serviços de saúde. Esse é um campo científico que analisa os workflows e os processos de monitoramento à saúde no que diz respeito à eficiência e eficácia. Um dos seus principais objetivos é o desenvolvimento e implementação de conceitos de assistência médica baseada em evidências. Portanto, esse área busca melhorar a qualidade de atendimentos médicos, considerando que os recursos disponíveis são escassos. Um objetivo importante é a validação de ensaios clínicos na literatura.

No contexto educacional, foi criada uma nova vertente, chamada EPM – Educational Process Mining (Mineração de processos educacionais), que tem como objetivo construir modelos de processos educacionais completos e compactos que sejam capazes de reproduzir todo o comportamento observado. Os resultados da EPM podem ser usados para obter uma melhor compreensão dos processos educacionais subjacentes, gerar recomendações e conselhos para os alunos, fornecer feedback aos alunos, professores e pesquisadores, para detectar precocemente dificuldades de aprendizado. 

Já no contexto de Engenharia de Software, foi definida uma subárea chamada Software Process Mining (Mineração de Processos de Software). Nesta área, as pessoas se concentram na análise de rastreamentos de tempo de execução para melhorar a arquitetura e o desempenho dos sistemas de software, e na análise do comportamento do usuário para melhorar o design e a usabilidade dos sistemas de software. 

Por fim

Em resumo, as técnicas de mineração de processos podem ser aplicadas em qualquer contexto, desde que seja possível transformar os dados de entrada em logs de eventos. Ela se tornou uma ferramenta vital para as organizações modernas que precisam gerenciar seus processos operacionais complexos, e por conta disso, ela se tornou um dos principais pilares da ciência de dados.

 

Referências Bibliográficas 

BOGARÍN, Alejandro et al. Clustering for improving educational process mining. In: Proceedings of the fourth international conference on learning analytics and knowledge. 2014. p. 11-15. 

RUBIN, Vladimir; LOMAZOVA, Irina; AALST, Wil MP van der. Agile development with software process mining. In: Proceedings of the 2014 international conference on software and system process. 2014. p. 70-74. 

VAN DER AALST, Wil. Data science in action. In: Process mining. Springer, Berlin, Heidelberg, 2016. p. 3-23. 

VAN DER AALST, Wil. Process mining: Overview and opportunities. ACM Transactions on Management Information Systems (TMIS), v. 3, n. 2, p. 1-17, 2012. 

VOGELGESANG, Thomas; APPELRATH, H.-Jürgen. Multidimensional process mining: a flexible analysis approach for health services research. In: Proceedings of the Joint EDBT/ICDT 2013 Workshops. 2013. p. 17-22. 

Sair da versão mobile