- 21 de janeiro de 2020
- Blog
Como detectar anomalias utilizando Inteligência Artificial
Já recebeu uma ligação ou mensagem de seu banco perguntando se você realizou compras de produtos que você não está acostumado a comprar ou em estabelecimentos dos quais você nem sequer ouviu falar?
Tomara que você nunca tenha passado por essa situação. Mas, como o banco identificou que as transações realizadas são suspeitas e pode se tratar de uma possível fraude? Muitas vezes, bancos utilizam algoritmos que realizam análises das movimentações de clientes e classificam transações como normais ou potencialmente anômalas. Uma técnica para identificar esses comportamentos anormais chama-se detecção de anomalias.
Detecção de anomalias é o nome dado à tarefa de identificar ocorrências raras em um conjunto de dados. D. Hawkins [1] definiu uma anomalia da seguinte forma: “A anomalia é uma observação que difere tanto de outras observações que suscita suspeita que tenha sido criada por um mecanismo diferente das outras observações”.
Na literatura, o termo anomalia pode ser encontrado com diferentes nomes, por exemplo: outlier, surto, evento, alteração, fraude, observações discordantes, exceções, aberrações, surpresas, peculiaridades etc. Diversas áreas de pesquisa em computação se propõem a resolver problemas relacionados à detecção de anomalias, utilizando diferentes técnicas, como: mineração de dados (data mining), machine learning e inteligência artificial. Alguns trabalhos mais recentes também utilizam Deep learning (Deep Anomaly Detection DAD [3]) para a detecção de anomalias.
Todos os estudos nessas áreas são baseados na exploração dos dados e/ou treinamento de algoritmos, para que se possa distinguir dados normais de anomalias. A técnica utilizada depende não apenas do tipo de problema, mas também da natureza dos dados usados.
Além de apresentar inúmeros desafios à área da computação, a detecção de anomalias também pode ser aplicada na resolução de problemas em diversas áreas de negócio, como utilities, meios de pagamentos, saúde e indústria. Por isso, há grande interesse em desenvolver algoritmos capazes de realizar essa tarefa.
Tipos de detecção de anomalias
Para realizar a detecção de anomalias, é necessário que o sistema consiga distinguir dados normais de dados anormais.
Assim, como qualquer outro algoritmo que envolve mecanismos de aprendizado, podemos dividir as técnicas de detecção de anomalias em 3 tipos:
- Treinamento supervisionado: Nessa técnica, assumimos a disponibilidade de um conjunto de dados de treinamento classificados previamente como normais ou anomalias. Dessa forma, os resultados são mapeados e o algoritmo deve replicar a categorização dos dados entre anomalias e dados normais;
- Treinamento semi-supervisionado: Nessa técnica, temos um pequeno conjunto de dados classificados previamente como anomalias e dados normais e um conjunto maior de dados não classificados. A ideia principal é observar as similaridades entre os dados já classificados e não classificados e colocar os dados similares nos mesmos grupos.
- Treinamento não supervisionado: Essa técnica não requer dados classificados previamente para treinamento, são usadas caraterísticas intrínsecas dos dados para a identificação de dados normais e anomalias
Encontramos, na literatura, mais trabalhos usando técnicas não supervisionadas e semi-supervisionadas baseadas apenas em dados normais do que técnicas supervisionadas ou semi-supervisionadas utilizando apenas dados anômalos, justamente pela dificuldade de classificar os dados de treinamento e pelo fato de uma anomalia ser um evento raro.
Desafios
Quando o assunto é manipulação e análise de dados, sempre nos deparamos com as dificuldades de tratar os 3 Vs: Volume, Velocidade e Variedade (ou diversidade). Ou seja, o volume de informação é muito grande, a velocidade em que o dado precisa ser consumido muitas vezes precisa ser quase em tempo real e a grande variedade de formatos dos dados.
Como anomalias são raras, a quantidade de dados que refletem comportamentos normais, geralmente, é muito maior do que a dos dados com comportamentos anômalos. Esse desbalanceamento entre dados normais e anomalias pode prejudicar a qualidade do treinamento dos algoritmos de aprendizado de máquina.
Na grande maioria das vezes, o trabalho de classificação dos dados para treinamento é manual, ou seja, uma pessoa decide se um dado é uma anomalia ou um dado manual um a um. Dependendo do volume, isso se torna uma tarefa inviável. Para piorar, a qualidade da classificação depende da experiência e conhecimento da pessoa que está classificando aquele dado.
Daniel Kahneman, laureado com o Nobel, disse, “os humanos são incorrigivelmente inconsistentes em julgamentos sumários de informações complexas”. Surpreendentemente, as pessoas frequentemente fornecem respostas diferentes quando solicitadas a avaliar as mesmas informações duas vezes. Por exemplo, radiologistas experientes que avaliam as radiografias do tórax como normais e anormais se contradizem 20% das vezes quando veem a mesma imagem em ocasiões separadas [4].
Além disso, o comportamento anômalo é, frequentemente, dinâmico por natureza. Podem surgir novos tipos de anomalias, para as quais não há dados de treinamento, por exemplo. Quando a anomalia é um dado malicioso, um cyber attack (ataque cibernético), por exemplo, ela tenta se adaptar para parecer um dado normal.
Assim, definir uma fronteira entre o que é um dado normal e uma anomalia também não é uma tarefa simples. O dado anômalo pode ter características muito próximas ao dado considerado normal. Muitas vezes, o que é definido como anomalia hoje não necessariamente será no futuro, de forma que classificar anomalias é uma tarefa de redefinição constante.
Aplicações
Existe uma infinidade de outras aplicações e áreas nas quais as técnicas de detecção de anomalias podem ser utilizadas, como: detecção de fraudes em meios de pagamento (cartão de crédito) e em seguros automotivos; identificação de inconsistências financeiras em instituições como hospitais; e, até mesmo, na detecção de cyber attacks.
Detecção de invasões ou cyber attacks se refere à identificação de uma atividade maliciosa em um sistema computacional. Uma invasão é diferente de um comportamento normal de sistema, então, técnicas de detecção de anomalias são aplicáveis à resolução do problema. Nosso Head de Utilities, Frederico Gonçalves, abordou o tema de cyber attacks no setor elétrico em seu artigo recentemente.
Na área de saúde, a detecção de anomalias nos permite encontrar inconsistências financeiras em procedimentos médicos, pois temos um conjunto usual de materiais e valores para cada procedimento médico. Assim, se o mesmo procedimento tiver materiais e valores muito discrepantes, o sistema é capaz de identificar e analisar os valores e verificar se ocorreu algum erro. Na área da indústria, por outro lado, a detecção de anomalias pode ser utilizada na detecção de falhas no processo produtivo, auxiliando no processo e planejamento de manutenção das máquinas entre outros.
Conclusão
Como já foi dito anteriormente, os desafios para detectarmos anomalias nem sempre são simples. Grandes volumes de dados precisam ser verificados de forma rápida, com anomalias que não são sempre claras — uma tarefa impossível, se feita manualmente. Contudo, a detecção de anomalias não precisa ser feita inteiramente por algoritmos ou por pessoas, há diversas possibilidades que já vêm sendo exploradas na área.
Por exemplo, classificar corretamente um comportamento anômalo pode ser um processo de maior incerteza em determinados casos. Para contornar esse tipo de situação, podemos criar soluções interativas em que os dados com maior probabilidade de serem anomalias são colocados em evidência. Esses dados são, então, analisados por pessoas, que confirmam se eles são anomalias ou não. Dessa forma, colocamos em evidência os dados com maior chance de serem anomalias para facilitar a confirmação por um ser humano e alimentar o algoritmo, para que ele possa ser treinado de forma contínua.
Assim, quando os desafios da detecção de anomalias são somados ao grande leque de possibilidades (e necessidades) para a sua aplicação em diferentes segmentos, fica evidente a importância do desenvolvimento da área. Por isso, explorar as formas de treinamento de inteligência artificial para detecção de anomalias se torna mais crucial do que nunca.
[1] – D. Hawkins, 1980. Identification of Outliers. Chapman and Hall, London and New York.
[2] – H. Agharazi, R. M. Kolacinski, W. Theeranaew, K. A. Loparo, 2019. A swarm intelligence-based approach to anomaly detection of dynamic systems, Swarm and Evolutionary Computation.
[3] – R. Chalapathy, S. Chawla, 2019. Deep Learning for Anomaly Detection: A survey, https://arxiv.org/pdf/1901.03407.pdf
[4] – L. Akoglu, H. Tong, D. Koutra, 2015. Graph-based Anomaly Detection and Description: A Survey, Data Mining and Knowledge Discovery.