Com este livro prático os profissionais de IA e Machine Learning (ML) aprenderão como construir e implantar com sucesso, projetos de Ciência de Dados na Amazon Web Services (AWS). Os serviços Amazon AI e ML unificam Ciência de Dados, Engenharia de Dados e desenvolvimento de softwares para ajudar a aprimorar suas habilidades.
Este livro mostra como criar e executar pipelines na nuvem e, em seguida, integrar os resultados aos aplicativos em minutos, em vez de dias. Ao longo do livro, os autores Chris Fregly e Antje Barth demonstram como reduzir custos e melhorar o desempenho. Veja as possibilidades que esta leitura lhe trará:
Aplicação dos serviços Amazon AI e de ML a casos de uso do mundo real para Processamento de Linguagem Natural, visão computacional, detecção de fraude, dispositivos de conversação e muito mais;
Uso de ML automatizado (AutoML) para implementar um subconjunto específico de casos de uso com o Amazon SageMaker Autopilot;
Mergulhe profundamente no ciclo de vida de desenvolvimento de modelo completo para um caso de uso de processamento de Linguagem Natural (PLN) baseado em BERT, incluindo ingestão, análise de dados e muito mais;
Operações repetitivas de ML (MLOps) pipeline;
Explore ML em tempo real, detecção de anomalias e streaming, análises em fluxos de dados em tempo real com Amazon Kinesis e Amazon Managed Streaming para Apache Kafka (Amazon MSK);
Aprenda as melhores práticas de segurança para projetos e fluxos de trabalho de Ciência de Dados incluindo: AWS Identity and Access Management (IAM), autenticação, autorização, ingestão de dados e análise, treinamento de modelo e implantação.
Para quem é este livro
Este livro é para qualquer pessoa que utiliza dados para tomar decisões de negócios. A orientação aqui ajudará analistas de dados, cientistas de dados, engenheiros de dados, engenheiros de ML, cientistas de pesquisa, desenvolvedores de aplicativos e engenheiros de DevOps a ampliar sua compreensão sobre Ciência de Dados e o nível de suas habilidades na nuvem.Para obter o máximo deste livro, é sugerido que os leitores tenham o seguinte conhecimento:
Conhecimento básico de computação em nuvem;
Habilidades básicas de programação com Python, R, Java / Scala ou SQL;
Familiaridade básica com ferramentas de Ciência de Dados, como Jupyter Notebook, Pandas, NumPy ou Scikit-learn.
Conheça os autores
Chris Fregly é um desenvolvedor, defensor de IA e Machine Learning na AWS com sede em San Francisco, Califórnia. Ele também é o fundador da série Meetup Advanced Spark, TensorFlow e KubeFlow, com sede em San Francisco. Anteriormente, Chris foi fundador da PipelineAI, onde trabalhou com muitas empresas e startups de IA para implantar continuamente Pipelines de ML / AI usando Apache Spark ML, Kubernetes, TensorFlow, Kubeflow, Amazon EKS e Amazon SageMaker.
Antje Barth é uma desenvolvedora, defensora de IA e Machine Learning na AWS com sede em Düsseldorf, Alemanha. Ela também é co-fundadora do capítulo de Düsseldorf do Meetup Women in Big Data. Além de ML / AI, Antje é apaixonada por ajudar os desenvolvedores a aproveitar Big Data, contêineres e plataformas Kubernetes no contexto de IA e aprendizado de máquina. Antes de ingressar na AWS, Antje trabalhou na função de engenharia de soluções na MapR e Cisco
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.
Todo mundo está falando sobre aprendizado de máquina, de uma disciplina acadêmica, ele tornou-se uma das tecnologias mais interessantes em qualquer parte. Incluindo desde a compreensão dos feeds de vídeo em carros autônomos até a personalização de medicamentos, essa tecnologia está se tornando importante em todos os setores. Por isso, te convidamos a conhecer profundamente o livro “Building Machine Learning Pipelines: Automating Model Life Cycles with TensorFlow”.
Escrito pela dupla de autoresHannes Hapke e Catherine Nelson, esse livro busca mostrar como construir um sistema de machine learning padrão que é automatizado e resulta em modelos reproduzíveis.
O que são Machine Learning Pipelines?
Os pipelines de aprendizado de máquina implementam e formalizam processos para acelerar, reutilizar, gerenciar e implantar modelos de aprendizado de máquina. O objetivo deste livro é contribuir para a padronização de projetos de aprendizado de máquina, conduzindo os leitores por todo um pipeline de aprendizado de máquina, de ponta a ponta.
Um pipeline automatizado e reproduzível reduz o esforço necessário para implantar um modelo, assim, o pipeline deve incluir etapas que:
Criem versões de seus dados de maneira eficaz e dê início a uma nova execução de treinamento de modelo
Validem os dados recebidos e verifique a variação de dados
Pré-processem os dados de maneira eficiente para o treinamento e validação do seu modelo
Treinem seus modelos de aprendizado de máquina de maneira eficaz
Acompanhem o treinamento do seu modelo
Analisem e valide seus modelos treinados e ajustados
Implantem o modelo validado
Dimensionem o modelo implantado
Capturem novos dados de treinamento e modelem as métricas de desempenho com ciclos de feedback
O livro
Neste guia prático, Hannes Hapke e Catherine Nelson orientam você nas etapas de automação de um pipeline de aprendizado de máquina usando o ecossistema TensorFlow. Você aprenderá as técnicas e ferramentas que reduzirão o tempo de implantação, assim, você poderá se concentrar no desenvolvimento de novos modelos em vez de manter sistemas legados.
“Building Machine Learning Pipelines” é voltado para cientistas de dados e engenheiros de machine learning, mas também conversa com gerentes de projetos de data science e engenheiros DevOps. Para a leitura da obra, você deve estar confortável com os conceitos básicos de aprendizado de máquina e familiarizado com pelo menos uma estrutura de aprendizado de máquina (por exemplo, PyTorch, TensorFlow, Keras). Os exemplos de aprendizado de máquina neste livro são baseados no TensorFlow e Keras, mas os conceitos principais podem ser aplicados a qualquer estrutura.
Este livro te ajudará a:
Entender as etapas para criar um pipeline de aprendizado de máquina
Criar seu pipeline usando componentes do TensorFlow Extended
Orquestrar seu pipeline de aprendizado de máquina com Apache Beam, Apache Airflow e Kubeflow Pipelines
Trabalhar com dados usando o TensorFlow Data Validation e TensorFlow Transform
Analisar um modelo em detalhes usando o TensorFlow Model Analysis
Examinar a equidade e o viés no desempenho do seu modelo
Implantar modelos com TensorFlow Serving ou TensorFlow Lite para dispositivos móveis
Aprender técnicas de aprendizado de máquina que preservam a privacidade
Os autores
Hannes Hapke
Hannes Hapke é um cientista de dados sênior do Concur Labs no SAP Concur e mestre em Engenharia Elétrica pela Oregon State University. Antes de ingressar no SAP Concur, Hannes resolveu problemas de infraestrutura de aprendizado de máquina em vários setores, incluindo saúde, varejo, recrutamento e energias renováveis. Além disso, Hannes é co-autor de uma publicação sobre processamento de linguagem natural e aprendizado profundo e apresentou-se em várias conferências sobre aprendizado profundo e Python.
Catherine Nelson
Catherine Nelson também é cientista de dados sênior do Concur Labs no SAP Concur e tem PhD em geofísica pela Durham University e mestrado em Ciências da Terra pela Oxford University. Suas principais áreas de foco vão desde ML explainability e análise de modelos até o ML com preservação da privacidade. Enquanto trabalhou como geofísica, ela estudou vulcões antigos e explorou petróleo na Groenlândia.
Gostou da nossa dica? Então, agora é hora de alinhar o livro, sua vontade de aprender, seu tempo e praticar bastante para expandir suas habilidades em machine learning.
Quais são as joias do infinito da Ciência de Dados? As seis joias do universo Marvel Comics você já deve conhecer: Espaço, Mente, Alma, Realidade, Tempo e Poder. Quando usadas em conjunto, dão ao seu portador poderes que o torna capaz de controlar todo o universo!
Mas como seriam estes poderosos artefatos usados na Data Science (DS)? Você pode unir diversos poderes para dominar o universo dos dados e assim se tornar um super Cientista de Dados!
Quer saber quais são essas joias? Então vamos lá!
? Pedra da Realidade
A Pedra da Realidade concede ao usuário o poder de manipular a matéria.
Presumivelmente, para manipular a realidade, temos que entendê-la. Essa parece ser uma analogia boa (o suficiente) para a importância do conhecimento do domínio (uma vez que um bom cientista de dados não manipula a realidade, certo?).
Iniciar um projeto de DS sem uma compreensão do domínio do projeto não é apenas uma má ideia, como resultado final provavelmente não retratará a realidade. Assim como não permitimos que atletas competentes que nunca aprenderam as regras do beisebol joguem da mesma forma, não devemos esperar ser capazes de realizar Ciência de Dados de maneira competente em um domínio que não entendemos, independentemente de nossas habilidades estatísticas, analíticas, técnicas e relacionadas.
O que exatamente constitui conhecimento de domínio? É relativo. Você está fazendo uma análise descritiva superficial de algum aplicativo de namoro? Ou você está empreendendo algum projeto de análise preditiva aprofundado em finanças para uma organização que se especializou em alguma estratégia obscura de investimento em títulos? O conhecimento necessário do domínio de “namoro” para realizar o primeiro feito é provavelmente insignificante, mas quaisquer insights úteis sobre o segundo certamente exigirão um conhecimento financeiro sólido.
? Pedra do Espaço
A Pedra do Espaço dá ao usuário poder sobre o espaço.
Poder sobre o espaço, hein? Que tal poder sobre o espaço de dados? E como alguém obteria poder sobre seu espaço de dados? Conhecimento íntimo, por meio de análise exploratória de dados.
Mas quanta Análise de Dados e exatamente de que tipo de análise estamos falando? Isso vai te surpreender, mas … é relativo. Se estamos interessados em Análise Descritiva – isto é, nenhuma previsão, ao longo das linhas de uma análise de dados direta – quanto mais intimamente estivermos familiarizados com os dados, melhor. O fim é o meio neste caso, e portanto a qualidade de descrever, visualizar e compartilhar os dados, como um analista de dados, está altamente correlacionada com a intimidade da exploração.
Quando se trata de Análise Preditiva e empreendimentos de Machine Learning, existem opiniões divergentes sobre o quanto a análise exploratória de dados é útil. Existem também opiniões divergentes sobre o nível de análise exploratória de datasets que não estão sendo usados para treinamento (ou seja, conjuntos de validação e teste). Deixando isso de lado, para garantir que o poder máximo sobre seu espaço de dados seja alcançado, certifique-se de se proteger contra as armadilhas potenciais de análises de dados exploratórias deficientes ou visualizações de má qualidade, como a falácia da correlação, o paradoxo de Simpson e a falácia ecológica.
Quando realizada de maneira adequada, a análise exploratória de dados fornecerá uma compreensão de seus dados de uma forma que permita o acompanhamento de uma Ciência de Dados bem-sucedida.
? Pedra do Tempo
A Pedra do Tempo concede ao seu proprietário o poder de rebobinar ou avançar o tempo.
Se você estudou a complexidade do algoritmo, sabe que a escolha do algoritmo pode impactar severamente o tempo que leva para completar uma determinada tarefa de computação, mesmo com os mesmos dados, e é por esta razão que a seleção do algoritmo e do método é o nosso equivalente a ser capaz de manipular o tempo.
Isso se aplica tanto à seleção completa de algoritmos quanto à configuração de hiperparâmetros, que também têm impacto no tempo de execução. As arquiteturas de rede neural podem ser incrivelmente complexas, mas um par de redes neurais simples equivalentes pode ter tempos de convergência muito diferentes ao usar taxas de aprendizado muito desiguais.
Você sabe sobre a compensação de viés-variância, mas também há uma compensação de espaço-tempo, bem como uma compensação de complexidade-velocidade que pode ser feita. Um modelo de Regressão Logística pode não funcionar tão bem quanto um de Random Forest de milhares de árvores, mas esse impacto no desempenho pode valer a pena para você em troca de velocidade, para não falar do aumento na aplicabilidade que o modelo de Regressão Logística pode fornecer frente ao Random Forest (se essa for sua escolha).
Isso não quer dizer que você deva escolher um algoritmo mais rápido (ou menos complexo, ou menos intensivo em computação ou mais explicável), mas você precisa ter em mente que é uma das compensações que você está fazendo e uma das melhores maneiras que temos de controlar o fluxo do tempo.
? Pedra do Poder
A Pedra do Poder concede ao seu portador uma grande quantidade de energia – o tipo de energia que você poderia usar para destruir um planeta inteiro.
Isso soa como muita energia. Onde encontramos esse tipo de energia no mundo da Ciência de Dados? Poder computacional!
Poder computacional (ou “computação”) são os recursos computacionais coletivos que temos para lançar em um problema particular. A computação ilimitada já foi considerada a essência e o fim de tudo da computação, e por um bom motivo. Considere quão pouca computação havia uma, duas ou três décadas atrás, em comparação com hoje. Imagine cientistas pensando sobre problemas que poderiam resolver, se ao menos tivessem mais do que um punhado de MHz de computação à sua disposição. O céu seria o limite!
Claro, não foi exatamente assim que as coisas aconteceram. Temos muito mais computação à nossa disposição agora do que jamais tivemos no passado na forma de supercomputadores, a nuvem, APIs publicamente disponíveis apoiadas por grandes quantidades de computação e até mesmo nossos próprios notebooks e smartphones. Todos os tipos de problemas que nunca poderíamos imaginar que teriam computação suficiente para resolver agora são tratáveis, e isso é um grande desenvolvimento. Precisamos ter em mente, no entanto, que “inteligente” é um grande contrapeso para computar, e muitos avanços na Ciência de Dados e suas tecnologias de apoio foram possibilitados pelo cérebro em vez da força.
Idealmente, um equilíbrio perfeito de cérebro e força muscular poderia ser usado para atacar todos os problemas existentes, com o uso inteligente para configurar uma abordagem algorítmica perfeita e a computação necessária disponível para apoiá-la. Talvez esta seja uma área que a Ciência de Dados um dia venha a provar ser útil.
Até então, tenha certeza de que há computação disponível até mesmo para as abordagens menos que perfeitas para a solução de problemas.
? Pedra da alma
Não está claro quais são os poderes da Pedra da Alma no universo cinematográfico. Nos quadrinhos, a joia permite que o portador capture e controle as almas dos outros.
“Capture e controle as almas dos outros” soa ameaçador, e mais do que apenas um pouco tortuoso. Mas se dermos uma visão mais positiva do conceito de Pedra da Alma, poderíamos forçar uma equivalência entre ela e o poder de predição. Estamos treinando modelos para controlar a essência mais íntima dos dados não rotulados – sua alma – fazendo previsões informadas sobre o que realmente contém.
Isso não é um exagero. Certo!?
A Pedra da Alma, então, é análoga ao poder de predição, o que quer dizer que está no cerne absoluto da Data Science. O que os cientistas de dados estão tentando realizar? Eles estão tentando responder a perguntas interessantes com os dados disponíveis, a fim de fazer previsões que se alinham o mais próximo possível com a realidade. Essa parte da previsão parece bastante crucial.
E, por ser tão crucial, deve ficar evidente que os resultados devem ser tratados com o máximo cuidado. A alma do nosso trabalho é o valor que ele pode criar seja para negócios, instituições de caridade, governo ou sociedade em geral.
A Ciência de Dados é uma luta pela alma, juntamente com a próxima batalha pela mente.
? Pedra da Mente
A Pedra da Mente permite ao usuário controlar as mentes dos outros.
E no mundo do Data Science, nada melhor para ajudar a controlar as mentes dos outros do que uma apresentação de dados bem elaborada, incluindo uma história atraente e visualizações eficazes.
A modelagem está completa. As previsões foram feitas. Os insights são perspicazes. Agora é hora de informar as partes interessadas do projeto sobre os resultados. Mas os demais profissionais que trabalham em uma equipe, além dos cientistas de dados, não têm os mesmos entendimentos sobre os dados e seu processo, então precisamos ser claros ao apresentar nossas descobertas a eles de uma forma que entendam.
Lembre-se, se seus insights não estiverem claros, então seu trabalho não está completo. Cabe a você convencer os outros do valor do seu trabalho. Uma vez convencidos, eles podem agir e a mudança por meio da ação é a verdadeira recompensa de qualquer projeto de Ciência de Dados.
Sabe aqueles livros que você precisa ler antes de terminar a graduação? Então, para os estudantes de Estatística, um dos primeiros livros dessa lista é “Uma senhora toma chá – Como a Estatística revolucionou a ciência no século XX”, de David Salsburg.
E o título já traz história. Em uma tarde de verão em Cambridge, Inglaterra, um grupo de professores universitários e suas esposas tomavam o chá da tarde. Uma das mulheres presentes afirmava que a ordem na qual os ingredientes, leite e chá, eram colocados alterava o sabor do chá. E por isso, um dos homens presentes disse: “vamos testar a proposição”.
Esse homem era Ronald Aylmer Fisher, que, em 1935, publicou The Design of Experiments, no qual descreveu o experimento da senhora provando chá. Como resume Salsburg, “nesse livro, Fisher analisa a senhora e sua crença como um problema hipotético e considera os vários experimentos que podem ser planejados para determinar se era possível a ela notar a diferença”.
As vidas que revolucionaram a Estatística
E assim segue Salsburg nos contando a história da revolução estatística na ciência do século XX. Como afirma o autor, no final desse século, “quase toda a ciência tinha passado a usar modelos estatísticos”.
Em “Uma senhora toma chá”, David Salsburg nos convida a conhecer a história do desenvolvimento da Estatística mesclada às histórias de algumas das pessoas que protagonizaram essa ciência. Mas além da beleza da Estatística e genialidade desses estudiosos, o livro nos conta também sobre os conflitos entre esses pioneiros e sobre algumas de suas contradições.
E como escrito por Carlos Antonio Costa na revista Ciência Hoje, “os leitores que conhecem e trabalham com estatística vão adorar conhecer as histórias dos homens e mulheres que inventaram os métodos que usam em seu cotidiano de trabalho. Por exemplo, as de William Gosset (1876-1937), que inventou o teste t de Student enquanto trabalhava na cervejaria Guiness; Chester Bliss (1899-1979), inventor do modelo probit; de Jerzy Neyman (1894- 1981), que desenvolveu a matemática que explica os testes de hipótese; de W. Edwards Deming (1900-1993), que revolucionou a indústria japonesa; ou de Andrey Kolmogorov (1903-1987), o gênio matemático que desenvolveu a teoria da probabilidade”.
Sobre o autor
David Salsburg é PhD em Estatística Matemática e lecionou na University of Pennsylvania, Harvard School of Public Health, Yale University, Connecticut College e University of Connecticut. Mas antes de sua experiência docente, David trabalhou na Pfizer Central Research por 27 anos. E isso foi um marco, pois Salsburg foi o primeiro estatístico contratado pela Pfizer, assim como um dos primeiros a trabalhar para qualquer empresa farmacêutica.
Se você está sempre on-line nas redes sociais, em especial no Twitter, e não desperdiça a oportunidade de ter acesso a excelentes dicas e conteúdos, então você vai gostar do que preparamos aqui. Como você, diversos pesquisadores e cientistas também compartilham suas experiências na rede social do passarinho azul. São aprendizados, projetos, artigos e pesquisas compartilhados abertamente por cientistas de destaque no mundo e que vale a pena acompanhar o que eles têm a dizer. Confira esses perfis valiosos que selecionamos.
Professor de ciência da computação na Universidade de Oxford, Nando é especialista em Machine Learning (ML) com ênfase em redes neurais, otimização e inferência bayesiana e Deep Learning. Como cientista principal do Google DeepMind, ele ajuda a organização em sua missão de usar tecnologias para amplo benefício público e descobertas científicas, garantindo a segurança e a ética. Seu trabalho em ML lhe rendeu vários prêmios, incluindo prêmios de melhor artigo na Conferência Internacional sobre Aprendizado de Máquina e na Conferência Internacional sobre Representações de Aprendizagem, ambas em 2016.
Professora de Ciência da Computação em Stanford University e co-diretora do Human-Centered AI Institute de Stanford, Li é uma pioneira em IA, Machine Learning e neurociência cognitiva. Ela é uma escritora e pesquisadora produtiva, tendo publicado cerca de 180 artigos revisados por pares. Em 2007, como professora assistente na Universidade de Princeton, ela liderou uma equipe de pesquisadores para criar o projeto ImageNet, um enorme banco de dados visual para ser usado com um software que reconhece objetos visuais. Esse trabalho influenciou a revolução do “Deep Learning” na década seguinte. Enquanto atuava como diretora do Stanford Artificial Intelligence Lab (SAIL) de 2013 a 2018, Li cofundou a organização sem fins lucrativos AI4ALL, que se esforça para aumentar a diversidade e inclusão no campo da IA.
Bernard é autor, futurista, palestrante frequente e consultor estratégico em Percepções de Dados para empresas e governos. Ele aconselha e treina muitas das organizações mais conhecidas do mundo e foi eleito pelo LinkedIn como um dos cinco maiores influenciadores de negócios do mundo e o influenciador número 1 no Reino Unido. Ele contribui para o Fórum Econômico Mundial e é autor de muitos artigos e livros, incluindo Big Data: Using SMART Big Data, Analytics and Metrics to Make Better Decisions and Improve Performance.
Hilary fundou o Fast Forward Labs e atuou como cientista-chefe na Bitly por quatro anos. Atualmente no conselho do Instituto Anita Borg para Mulheres e Tecnologia, ela cofundou o HackNY e é membro do NYCResistor, um coletivo de hackers no Brooklyn.
Lillian é estrategista de dados, consultora e instrutora que trabalha com equipes executivas para oferecer supervisão e recomendações para operações de Engenharia e Ciência de Dados ideais. Ela se concentra na solução de problemas de negócios com várias tecnologias e métodos de dados que os empreendedores podem colocar em prática. Estrategista de dados na Data-Mania, fornece serviços de treinamento e consultoria de dados, desde 2012.
Também fundador dodeeplearning.ai, Andrew foi cientista-chefe da Baidu Research, é professor adjunto da Universidade de Stanford e fundador e presidente do conselho da Coursera, razão pela qual ele é considerado um pioneiro na educação online. Ele fundou o projeto Google Brain, que desenvolveu redes neurais artificiais em grande escala, incluindo uma que aprendeu a reconhecer gatos em vídeos. Ele é especialista em Deep Learning e publicou amplamente sobre Machine Learning e outros campos.
Kira iniciou o SalesPredict em 2012 para aconselhar os vendedores sobre como identificar e lidar com leads promissores. “Minha verdadeira paixão”, disse ela em um artigo da MIT Technology Review de 2013 , “é armar a humanidade com capacidades científicas para antecipar automaticamente e, em última instância, afetar os resultados futuros com base nas lições do passado”. Ela é considerada uma pioneira em análise preditiva, ganhou muitos prêmios e foi reconhecida em 2015 como uma estrela em ascensão da tecnologia empresarial na lista “Forbes 30 Under 30” .
Cientista-chefe de dados / CEO fundador – Sociaall Inc., Dez é um líder estratégico em negócios e transformação digital, com 25 anos de experiência nas indústrias de TI e telecomunicações, desenvolvendo estratégias e implementando iniciativas de negócios. Possui ampla experiência em tecnologias como Computação em Nuvem, Big Data e Analytics, Computação Cognitiva, Machine Learning e Internet das Coisas.
Mine é professora sênior de Estatística e Ciência de Dados na Escola de Matemática da Universidade de Edimburgo, professora associada no Departamento de Ciência estatística da Duke University e também educadora profissional e cientista de dados na RStudio. Ah, sim, e ela também é Fellow do OpenIntro.
Seu trabalho se concentra na inovação em pedagogia estatística, com ênfase na aprendizagem centrada no aluno, computação, pesquisa reprodutível e educação de código aberto. Ela também é muito ativa na educação de acesso aberto, tendo sido co-autora de três livros didáticos de estatística de código aberto como parte do projeto OpenIntro.
✔️ E essa foi mais uma seleção de primeira que o Insight fez para você seguir. Se quiser mais dicas sobre Ciência de Dados, nos acompanhe aqui e nas nossas redes sociais. Siga a ciência de dados com o Insight!
Muito se fala sobre a grande procura das empresas por cientistas de dados e os excelentes salários reservados a esses profissionais. Mas quem pode receber esse título, quais habilidades tornam os cientistas de dados tão requisitados e ainda raros no mercado de trabalho?
Para conhecer quais competências você deve desenvolver para se tornar um cientista de dados, e entender que este não é um processo de apenas 6 meses, trazemos aqui a lista produzida por Daniel D. Gutierrez sobre as 10 habilidades essenciais de ciência de dados em 2021.
Gutierrez é cientista de dados, autor de quatro livros de data science, jornalista de tecnologia e professor, tendo ministrado aulas de ciência de dados, aprendizado de máquina (machine learning) e R em nível universitário.
1. Experiência com GPUs
Agora é a hora de entender a grande popularidade das GPUs. A maneira mais fácil de começar a usar GPUs para aprendizado de máquina é começar com um serviço de GPU em nuvem. Aqui está uma pequena lista de opções que podem ser adequadas às suas necessidades:
Colab – Google Colaboratory, ou “Colab” para abreviar, é um produto do Google Research. O Colab permite que qualquer pessoa escreva e execute código Python arbitrário por meio do navegador, e é especialmente adequado para aprendizado de máquina. Especificamente, o Colab é um serviço de nuvem gratuito hospedado pelo Google que usa o Jupyter Notebook, ou seja, que não requer instalação para uso, ao mesmo tempo que fornece acesso a recursos de computação, incluindo GPUs.
Kaggle – Kaggle (propriedade do Google) fornece acesso gratuito às GPUs NVIDIA TESLA P100. Essas GPUs são úteis para treinar modelos de aprendizado profundo (deep learning), no entanto, não aceleram a maioria dos outros fluxos de trabalho, como bibliotecas Python, Pandas e Scikit-learn. Você pode usar um limite de cota por semana de GPU. A cota é restabelecida semanalmente e é de 30 horas ou às vezes mais, dependendo da demanda e dos recursos.
NVIDIA NGC – O catálogo NGC ™ é um hub para software otimizado por GPU para deep learning, machine learning e computação de alto desempenho que acelera a implantação para fluxos de trabalho de desenvolvimento para que cientistas, desenvolvedores e pesquisadores possam se concentrar na construção de soluções, coleta de insights e entrega de valor comercial.
Cloud GPUs no Google Cloud Platform – GPUs de alto desempenho no Google Cloud para aprendizado de máquina, computação científica e visualização 3D.
2. Visualização de dados criativa e storytelling de dados
A visualização de dados, juntamente com o storytelling de dados, continua sendo uma habilidade importante a ser cultivada por todos os cientistas de dados. Essa etapa integra o processo de ciência de dados e é uma habilidade que diferencia os cientistas de dados de seus colegas engenheiros de dados. Os cientistas de dados assumem a importante função de interagir com os responsáveis pelo projeto ao entregar os resultados de um trabalho de data science.
Além dos tradicionais relatórios e resultados numéricos, uma visualização de dados atraente e bem pensada é a melhor maneira de mostrar os resultados provenientes de um algoritmo de aprendizado de máquina. Além disso, é também um ingrediente básico do estágio final do storytelling de dados do projeto, onde o cientista de dados se esforça para chegar a uma descrição concisa e não técnica dos resultados, onde as principais descobertas são facilmente compreendidas.
Para quem sente dificuldade nesta parte, como no trabalho com elementos mais criativos e visuais, sempre procure por novas técnicas de visualização de dados usando pacotes R recém-descobertos e bibliotecas Python para tornar o resultado mais atraente.
3. Python
Para Gutierrez, é difícil ignorar o Python, pois a maioria dos bons artigos de blog e materiais de aprendizagem usam esta linguagem. Por exemplo, a maioria dos documentos de aprendizagem profunda que aparecem no arXiv referem-se a repositórios GitHub com código Python usando estruturas como Keras, TensorFlow e Pytorch, e quase tudo que acontece no Kaggle envolve Python.
Ainda de acordo com o autor, o R costumava ter a vantagem com os 16.891 pacotes disponíveis para complementar a linguagem base, mas o Python afirma ter uma ordem de magnitude maior do que essa. Um conhecimento robusto de Python é uma habilidade de ciência de dados importante para se aprender.
4. SQL
SQL é uma ótima linguagem de consulta de dados, mas não é uma linguagem de programação de propósito geral. É fundamental que todo cientista de dados seja proficiente em SQL. Muitas vezes, seus conjuntos de dados para um projeto de ciência de dados vêm diretamente de um banco de dados relacional corporativo. Portanto, o SQL é seu canal para adquirir dados. Além disso, você pode usar SQL diretamente em R e Python como uma ótima maneira de consultar dados em um quadro de dados.
5. GBM além de Deep Learning
A IA e o aprendizado profundo continuam no topo do “hype cycle” do setor, e certamente 2021 não será diferente. O aprendizado profundo é a ferramenta perfeita para muitos domínios de problemas, como classificação de imagens, veículos autônomos, PNL e muitos outros. Mas quando se trata de dados tabulares, ou seja, dados típicos de negócios, deep learning pode não ser a escolha ideal. Em vez disso, o GBM (Gradient Boosted Machines) é o algoritmo de aprendizado de máquina que geralmente atinge a melhor precisão em dados estruturados / tabulares, superando outros algoritmos, como as tão faladas redes neurais profundas (deep learning). Alguns dos principais GBMs incluem XGBoost, LightGBM, H2O e catboost.
6. Transformação de dados
Muitas vezes, é mencionado em voz baixa quando os cientistas de dados se encontram: o processo de data munging (também conhecido como data wrangling, transformação de dados) leva a maior parte do tempo e do orçamento de custos de um determinado projeto de ciência de dados.
Transformar dados não é o trabalho mais atraente, mas acertar pode significar sucesso ou fracasso com o aprendizado de máquina. Para uma tarefa tão importante, um cientista de dados deve certificar-se de agregar à sua caixa de ferramentas de ciência de dados código que atenda a muitas necessidades comuns. Se você usa R, isso significa usar dplyr e, se você usa Python, então Pandas é sua ferramenta de escolha.
7. Matemática e estatística
Manter um conhecimento sólido dos fundamentos dos algoritmos de aprendizado de máquina requer uma base em matemática e estatística. Essas áreas são normalmente deixadas por último no esforço de aprendizado de muitos cientistas de dados, isso porque matemática / estatística podem não estar em sua lista pessoal de atualização. Mas um entendimento elementar dos fundamentos matemáticos do aprendizado de máquina é imprescindível para evitar apenas adivinhar os valores dos hiperparâmetros ao ajustar algoritmos.
As seguintes áreas da matemática são importantes: cálculo diferencial, equações diferenciais parciais, cálculo integral (curvas AUC-ROC), álgebra linear, estatística e teoria da probabilidade. Todas essas áreas são importantes para entender como funcionam os algoritmos de aprendizado de máquina.
Um objetivo de todos os cientistas de dados é ser capaz de consumir “a bíblia do aprendizado de máquina”, “Elements of Statistical Learning”, de Hastie, Tibshirani e Friedman. Esse é um daqueles livros que você nunca termina de ler.
Para atualizar sua matemática, verifique o conteúdo do OpenCourseWare do professor Gilbert Strang do MIT.
8. Realização de experimentos com os dados
Busque novos conjuntos de dados e experimente, experimente e experimente! Os cientistas de dados nunca conseguem praticar o suficiente trabalhando com fontes de dados desconhecidas. Felizmente, o mundo está cheio de dados. É apenas uma questão de combinar suas paixões (ambientais, econômicas, esportivas, estatísticas de crime, o que for) com os dados disponíveis para que você possa realizar as etapas do “processo de ciência de dados” para aprimorar suas habilidades. A experiência que você ganha com seus próprios experimentos com dados o ajudará profissionalmente no futuro.
9. Conhecimento especializado
Um consultor independente de ciência de dados pode trabalhar em todos os tipos de projetos interessantes em um amplo espectro de domínios de problemas: manufatura, sem fins lucrativos, educação, esportes, moda, imóveis, para apenas mencionar alguns.
Então, quando se tem um novo cliente de um novo setor, é fundamental aumentar rapidamente seu conhecimento na área desde o início. Falar com pessoas da organização do cliente que são especialistas no assunto, analisar as fontes de dados disponíveis, ler tudo que possa encontrar sobre o assunto, incluindo white papers, postagens em blogs, periódicos, livros, artigos de pesquisa; tudo isso em uma tentativa de começar a todo vapor.
10. Aprendizado de máquina ético
O professor Gutierrez apresenta aos seus alunos uma lista de casos em que cientistas de dados foram solicitados a usar suas habilidades para fins nefastos.
“Falo a eles sobre os cientistas de dados que desenvolvem tecnologia para criar imagens e vídeos ‘deep fake’ indetectáveis. Conto a eles a vez em que testemunhei um gerente de ciência de dados de uma grande empresa pública de jogos que disse a uma multidão em um encontro que ele e sua equipe trabalharam com psicólogos para descobrir maneiras de viciar crianças em seus jogos. E eu falo sobre Rebekah Jones, a cientista de dados do estado da Flórida que se recusou a adulterar os dados do COVID-19 para fazer a situação da saúde pública do estado parecer melhor.”
Se você deseja se tornar um profissional de ciência de dados ético, pense no futuro. Saiba desde já que em sua carreira, provavelmente, surgirão situações nas quais você precisará se posicionar contra o uso de suas habilidades para prejudicar outras pessoas. Olhando para 2021, o clima político pode estar propício para tais dilemas.
A pandemia de Covid-19 exigiu dos governos medidas eficientes e aceleradas para o enfrentamento da doença. Nesse contexto, a Ciência de Dados trouxe contribuições fundamentais no entendimento do comportamento do vírus e nas tomadas de decisões de combate.
Uma das soluções desenvolvidas e disponibilizadas para a população no Estado do Ceará foi o Plantão Coronavírus, uma plataforma com mecanismos de triagem que, no primeiro momento, utiliza um chatbot para interagir com o paciente a fim de classificar seu estado de saúde em uma das três categorias: verde, amarelo e vermelho, sendo o nível de criticidade da saúde do paciente leve, moderada ou grave, respectivamente.
As interações entre os pacientes e os profissionais de saúde por meio do Plantão Coronavírus geraram muitos dados que precisavam ser minerados, analisados e transformados em informação de valor.
Com esse objetivo, pesquisadores do Insight Lab e do Laboratório Íris desenvolveram o Sintomatic, um modelo computacional criado para auxiliar a Secretaria da Saúde do Ceará no acompanhamento dos pacientes que buscavam algum tipo de serviço de saúde. Além disso, ele contribuiu na descoberta de novos sintomas presentes em vítimas do coronavírus, sejam estes mais frequentes ou raros, e na identificação de comportamentos psicológicos alterados, como ansiedade, angústia e tristeza em pacientes positivos ou não para COVID19.
Conheça neste artigo a metodologia usada pelos pesquisadores para desenvolver esse modelo computacional.
Sintomatic
No serviço de Tele Atendimento gratuito oferecido pelo Governo do Ceará, o paciente inicialmente trocava mensagens com um robô. A partir daí, era triado de acordo com seus sintomas e, posteriormente, encaminhado para uma consulta com um profissional de saúde.
Todo o ciclo de integração com o paciente registrado por meio de textos é passado ao modelo Sintomatic para que este possa detectar sintomas em todas as etapas do atendimento.
No projeto, foi mapeada a identificação de sintomas em texto como um problema de reconhecimento de entidade (em inglês, Named Entity Recognition – NER). NER corresponde à capacidade de identificar as entidades nomeadas nos documentos e rotulá-las em classes definidas de acordo com o tipo de entidade. De forma geral, o robô de captura de sintomas possui uma rede neural que é capaz de reconhecer entidades. Neste caso, uma entidade é um sintoma.
O Sintomatic é uma rede neural que processa textos em Linguagem Natural, capaz de identificar sintomas a partir de mensagens trocadas entre o chatbot e o paciente. Por meio desse processo, o modelo reconhece novos padrões da doença anteriormente inexistentes ou despercebidos, proporcionando grandes ganhos no entendimento da doença.
Aprendizado por transferência (Transfer Learning)
A detecção de sintomas no idioma português foi um desafio, pois, até o momento, não havia de forma pública nenhum modelo capaz de realizar essa tarefa, de acordo com o conhecimento dos cientistas envolvidos. O robô desenvolvido foi treinado através de um processo de aprendizado conhecido como Transfer Learning, ou em português, aprendizado por transferência.
A técnica de aprendizagem por transferência utiliza o conhecimento adquirido ao resolver um problema e aplicá-lo em outro problema diferente, porém relacionado, permitindo progresso rápido e desempenho aprimorado ao modelar a segunda tarefa. Em outras palavras, a transferência de aprendizado é a melhoria do aprendizado em uma nova tarefa através da transferência de conhecimento de uma tarefa relacionada que já foi aprendida.
A inovação tecnológica promovida pelo Sintomatic é um modelo neural pioneiro no reconhecimento de sintomas em português, principalmente porque a língua portuguesa carece de modelos NER.
Etapas de treinamento
Para treinar o Sintomatic foi utilizado o scispaCy, um pacote Python que contém modelos de spaCy para processar textos biomédicos, científicos ou clínicos.
Em particular, há um tokenizador personalizado que adiciona regras de tokenização baseando-se em regras do spaCy, um etiquetador POS e analisador sintático treinado em dados biomédicos e um modelo de detecção de extensão de entidade. Separadamente, também existem modelos NER para tarefas mais específicas.
Para este trabalho, o modelo utilizado foi o en ner bc5cdr md do SciSpacy, em um processo de transfer learning para treinar um novo modelo de reconhecimento e captura de sintomas em português.
A primeira etapa do processo de treino do rastreador foi traduzir os textos que inicialmente estavam em língua portuguesa para o idioma inglês. Em seguida, inserir como parâmetro de entrada cada texto (em inglês) ao modelo do scispacy, analisar o resultado gerado por este modelo e, logo após, traduzir os sintomas capturados pelo modelo do scispacy em inglês para português.
O conjunto de treinamento para o Sintomatic (novo modelo em português), é composto do texto original e os sintomas capturados pelo modelo do scispacy em português. Esse processo foi executado de forma contínua até que a função de erro da rede se estabilizasse.
Ao final, foi possível atingir para o Sintomatic, F1-score de 85.66, o que é competitivo se comparado ao modelo em inglês, que tem F1-score igual a 85.02.
Etapas do processo:
Nas etapas de translação dos textos foi utilizada a rede de tradução do Google. Atualmente, essas redes de tradução apresentam resultados muito fiéis ao esperado, tornando os ruídos insignificantes quando analisados no contexto deste trabalho.
Um diferencial do Sintomatic é a não necessidade de classificação manual realizada por um humano para reconhecimento de entidades. Em um cenário onde havia vasta quantidade de dados e pouco tempo para processar essas informações, o ganho com a otimização dessa etapa de treino foi crucial no apoio à tomada de decisão.
Boletim Digital
Para o acompanhamento dos dados capturados pelo robô Sintomatic e monitoramento das demais informações sobre a pandemia, foi desenvolvido o Boletim Digital COVID-19 do Ceará. Essa é uma solução tecnológica construída por cientistas de dados onde é feito todo o processo de mineração do dado bruto até sua exposição em painéis gráficos acompanhados de textos explicativos a respeito de cada uma das análises abaixo:
número de pacientes atendidos;
sintomas mais frequentes e raros;
evolução dos sintomas por semana epidemiológica;
sintomas ao longo do tempo.
Veja no vídeoabaixo uma demonstração do funcionamento do Sintomatic:
Atualmente, o Sintomatic é utilizado na plataforma de Tele Atendimento do Estado do Ceará, onde desempenha papel pioneiro na área da saúde.
Por tratar-se de uma nova ameaça, sabe-se muito pouco sobre o coronavírus (Sars-CoV-2). Esse fator dá grande abertura para disseminação de fake news (como ficou popularmente conhecido o compartilhamento de informações falsas), que podem ir desde supostos métodos de prevenção, tratamentos caseiros, cura do vírus e até mesmo tratamentos controversos recomendados por médicos, mesmo que não haja comprovação ou evidência científica para tais. Tudo isso pode dificultar o trabalho de órgãos de saúde, prejudicar a adoção de medidas de distanciamento social pela população e acarretar aumentos dos números de infectados e de morte pelo vírus.
Para diminuir os impactos dessa desinformação, diversos sites de checagem de fatos têm ferramentas que identificam e classificam (manualmente) tais notícias. Em geral, essas ferramentas poderiam fazer uso de algoritmos de aprendizagem de máquina para classificação de notícias. Diante dessa problemática, é evidente a necessidade de elaborar mecanismos e ferramentas que possam combater eficientemente o caos das fakes news.
Por isso, durante as disciplinas de Aprendizagem de Máquina e Mineração de Dados (Programa de Pós-graduação em Ciência da Computação da Universidade Federal do Ceará (MDCC-UFC)), nós(Andreza Fernandes, Felipe Marcel, Flávio Carneiro e Marianna Ferreira) propusemos um detector de fake news para analisar notícias sobre o COVID-19 divulgadas em redes sociais. Nosso objetivo é ajudar a população quanto ao esclarecimento da veracidade dessas informações.
Agora, detalharemos o processo de desenvolvimento desse detector de fake news.
Objetivos do projeto
Formar uma base dados de textos com notícias falsas e verdadeiras acerca do COVID-19;
Diminuir enviesamento das notícias;
Experimentar diferentes representações textuais;
Experimentar diferentes abordagens clássicas de aprendizagem de máquina e deep learning;
Construir um BOT no Telegram que ajude na detecção de notícias falsas relacionadas ao COVID-19.
Entendendo as terminologias usadas
Para o entendimento dos experimentos realizadas, vamos conceituar alguns pontos chaves e técnicas de Processamento de Linguagem Natural.
Tokenização: Esse processo transforma todas as palavras de um texto, dado como entrada, em elementos (conhecidos como tokens) de um vetor.
Remoção de Stopwords: Consiste na remoção de palavras de parada, como “a”, “de”, “o”, “da”, “que”, “e”, “do”, dentre outras, pois na maioria das vezes não são informações relevantes para a construção do modelo.
Bag of words: É uma representação simplificada e esparsa dos dados textuais. Consiste em gerar uma bolsa de palavras do vocabulário existente no dado, que constituirá as features do dataset. Para cada sentença é assinalado um “1” nas colunas que apresentam as palavras que ocorrem na sentença e “0” nas demais.
Term Frequency – Inverse Document Frequency (TF-IDF): Indica a importância de uma palavra em um documento. Enquanto TF está relacionada à frequência do termo, IDF busca balancear a frequência de termos mais comuns/frequentes que outros.
Word embeddings: É uma forma utilizada para representar textos, onde palavras que possuem o mesmo sentido têm uma representação muito parecida. Essa técnica aprende automaticamente, a partir de um corpus de dados, a correlação entre as palavras e o contexto, possibilitando que palavras que frequentemente ocorrem em contextos similares possuam uma representação vetorial próxima. Essa representação possui a vantagem de ter um grande poder de generalização e apresentar baixo custo computacional, uma vez que utiliza representações densas e com poucas dimensões, em oposição a técnicas esparsas, como Bag of Words. Para gerar o mapeamento entre dados textuais e os vetores densos mencionados, existem diversos algoritmos disponíveis, como Word2Vec e FastText, os quais são utilizados neste trabalho.
Out-of-vocabulary (OOV): Consiste nas palavras presentes no dataset que não estão presentes no vocabulário da word embedding, logo, elas não possuem representação vetorial.
Edit Distance: Métrica que quantifica a diferença entre duas palavras, contando o número mínimo de operações necessárias para transformar uma palavra na outra.
Metodologia
Agora iremos descrever os passos necessários para a obtenção dos resultados, geração dos modelos e escolha daquele com melhor performance para a efetivação do nosso objetivo.
Obtenção dos Dados
Os dados utilizados para a elaboração dos modelos foram adquiridos das notícias falsas brasileiras sobre o COVID-19, dispostos noChequeado, e de um web crawler dos links das notícias, utilizadas para comprovar que a notícia é falsa no Chequeado, para formar uma base de notícias verdadeiras. Além disso também foi realizado um web crawler para obtenção de notícias doFato Ou Fakedo G1.
Originalmente, os dados obtidos do Chequeado possuíam as classificações “Falso”, “Enganoso”, “Parcialmente falso”, “Dúbio”, “Distorcido”, “Exagerado” e “Verdadeiro mas”, que foram mapeadas todas para “Falso”. Com isso, transformamos nosso problema em classificação binária.
No final, obtivemos um dataset com 1.753 notícias, sendo 808 fakes, simbolizada como classe 0, e 945 verdadeiras, classe 1, com um vocabulário de tamanho 3.698. Com isso, dividimos o nosso dado em conjunto de treino e teste, com tamanhos de 80% e 20%, respectivamente.
Pré-processamento
Diminuição do viés. Ao trabalhar e visualizar os dados, notamos que algumas notícias verdadeiras vinham com palavras e sentenças que enviesavam e deixavam bastante claro para os algoritmos o que é fake e o que é verdadeiro, como: “É falso que”, “#Checamos”, “Verificamos que” e etc. Com isso, removemos essas sentenças e palavras, a fim de diminuir o enviesamento das notícias.
Limpeza textual. Após a etapa anterior, realizamos a limpeza do texto, consistindo em remoção de caracteres estranhos e sinais de pontuação e uso do texto em caixa baixa.
Tokenização. A partir do texto limpo, inicializamos o processo de tokenização das sentenças.
Remoção das Stopwords. A partir das sentenças tokenizadas, removemos as stopwords.
Representação textual
Análise exploratória
A partir do pré-processamento dos dados brutos, inicializamos o processo de análise exploratória dos dados. Verificamos o tamanho do vocabulário do nosso dataset, que totaliza 3.698 palavras.
Análise do Out-of-vocabulary. Com isso, verificamos o tamanho do nosso out-of-vocabulary em relação às word embeddings pré-treinadas utilizadas, totalizando 32 palavras. Um fato curioso é que palavras chaves do nosso contexto encontram-se no out-of-vocabulary e acabam sendo mapeadas para palavras que não tem muita conexão com o seu significado. Abaixo é possível ver algumas dessas palavras mais à esquerda, e a palavra a qual foram mapeadas mais à direita.
Análise da frequência das fake news por rede social. O dado bruto original advindo do Chequeado possui uma coluna que diz sobre a mídia social em que a fake news foi divulgada. Após uma análise visual superficial, apenas plotando a contagem dos valores dessa coluna (que acarreta até na repetição de redes sociais), notamos que os maiores veículos de propagação de fake news são o Facebook e Whatsapp.
Análise da quantidade de fake news ao longo dos meses. O dado bruto original advindo do Chequeado também possui uma coluna que informava a data de publicação da fake news. Após realizar uma análise visual da distribuição da quantidade de fake news ao longo dos meses, notamos que o maior número de fake news ocorreu em abril, mês em que a doença começou a se espalhar com maior velocidade no território brasileiro. De acordo com o G1, em 28 de abril, o Brasil possuía 73.235 casos do novo coronavírus (Sars-CoV-2), com 5.083 mortes. Além disso, foi nesse mês que começaram a surgir os boatos de combate do Coronavírus via Cloroquina, além de remédios caseiros.
Análise da Word Cloud. Com as sentenças tokenizadas, também realizamos uma visualização usando a técnica de Word Cloud, que apresenta as palavras do vocabulário em um tamanho proporcional ao seu número de ocorrência no todo. Com essa técnica, realizamos duas visualizações, uma para as notícias verdadeiras e outra para as fake news.
Divisão treino e teste
A divisão dos conjuntos de dados entre treino e teste foi feita com uma distribuição de 80% e 20% dos dados, respectivamente.Os dados de treino foram ainda divididos em um novo conjunto de treino e um de validação, com uma distribuição de 80% e 20% respectivamente.
Aplicação dos modelos
Para gerar os modelos, escolhemos algoritmos e técnicas clássicas de aprendizagem de máquina, tais como técnicas atuais e bastante utilizadas em competições, sendo eles:
Regressão Logística (*): exemplo de classificador linear;
K-NN (*): exemplo de modelo não-paramétrico;
Análise Discriminante Gaussiano (*): exemplo de modelo que não possui hiperparâmetros;
Árvore de Decisão: exemplo de modelo que utiliza abordagem da heurística gulosa;
Random Forest: exemplo de ensemble de bagging de Árvores de Decisão;
SVM: exemplo de modelo que encontra um ótimo global;
XGBoost: também um ensemble amplamente utilizado em competições do Kaggle;
LSTM-Dense: exemplo de arquitetura que utiliza deep learning.
Os algoritmos foram utilizados por meio de implementações próprias (aqueles demarcados com *) e uso da biblioteca scikit-learn e keras. Para todos os algoritmos, com exceção daqueles que não possuem hiperparâmetros e LSTM-Dense, realizamos Grid Search em busca dos melhores hiperparâmetros e realizamos técnicas de Cross Validation para aqueles utilizados por meio do Scikit-Learn, com k fold igual a 5.
Obtenção das métricas
As métricas utilizadas para medir a performance dos modelos foram acurácia, Precision, Recall, F1-score e ROC.
Tabela 1. Resultados das melhores representações por algoritmo
MODELOS
PRECISION
RECALL
F1-SCORE
ACCURACY
ROC
XGBoost BOW e TF-IDF*
1
1
1
1
1
SVM BOW E TF-IDF*
1
1
1
1
1
Regressão Logística BOW
0.7560
0.7549
0.7539
0.7549
0.7521
LSTM FASTTEXT
0.7496
0.7492
0.7493
0.7492
0.7492
Random Forest TF-IDF
0.7407
0.7407
0.7402
0.7407
0.7388
Árvore de Decisão TF-IDF
0.7120
0.7122
0.7121
0.7122
0.7111
Análise Discriminante Gaussiano Word2Vec
0.7132
0.7122
0.7106
0.7122
0.7089
k-NN FastText
0.6831
0.6809
0.6775
0.6638
0.6550
Tabela 2. Resultados das piores representações por algoritmo
MODELOS
PRECISION
RECALL
F1-SCORE
ACCURACY
ROC
XGBoost Word2Vec
0.7238
0.7236
0.7227
0.7236
0.7211
SVM Word2Vec
0.7211
0.7179
0.7151
0.7179
0.7135
Árvore de Decisão Word2Vec
0.6391
0.6353
0.6351
0.6353
0.6372
Random Forest Word2Vec
0.6231
0.6210
0.6212
0.6210
0.62198
Regressão Logística FastText
0.6158
0.5982
0.5688
0.59829
0.5858
Análise Discriminante Gaussiano TF-IDF
0.5802
0.5811
0.5801
0.5811
0.5786
k-NN BOW
0.5140
0.5099
0.5087
0.5042
0.5127
LSTM WORD2VEC (*)
0.4660
0.4615
0.4367
0.4615
0.4717
Resultados
Com os resultados apresentados percebemos que os modelos SVM e XGBoost com as representações TF-IDF e BOW atingiram as métricas igual a 100%. Isso pode ser um grande indicativo de sobreajuste do modelo aos dados. Abaixo podemos visualizar a matriz de confusão e a curva ROC dos mesmos.
Logo após vem a Regressão Logística com métricas em torno de ~75.49%! Abaixo podemos visualizar sua matriz de confusão e a curva ROC.
Exemplos de classificações da Regressão Logística
True Positive (corretamente classificada)
Texto que diz que vitamina C e limão combatem o coronavírus
True Negative (corretamente classificada)
Notícia divulgada em 2015 pela TV italiana RAI comprova que o novo coronavírus foi criado em laboratório pelo governo chinês.
False Positive (erroneamente classificada)
Vitamina C com zinco previne e trata a infecção por coronavírus
False Negative (erroneamente classificada)
Que neurocientista britânico publicou estudo mostrando que 80% da população é imune ao novo coronavírus
Intrigados com os resultados, resolvemos visualizar as diferentes representações de dados em 2 componentes principais (visto a alta dimensionalidade do dado, o que prejudica a análise do que está acontecendo de fato) por meio das técnicas de PCA e T-SNE, separando por cor de acordo com sua classificação.
É interessante notar que as representações de word embeddings utilizadas possui uma representação bastante confusa e misturada.Já as representações TF-IDF e Bag of Words são facilmente separáveis.
BOW T-SNE
Conclusão
A base de dados utilizada para obtenção dos modelos foi obtida por meio do site Chequeado, e, posteriormente, houve o enriquecimento dessa base por meio do web crawler, totalizando 1.383 registros, sendo 701 fake news e 682 notícias verdadeiras.
Para representação textual foram utilizadas as técnicas Bag of Words, TF-IDF e Word embeddings Word2Vec e FastText de 300 dimensões com pesos pré-treinados obtidas por meio da técnica CBOW com dimensões, disponibilizadas pelo Núcleo Interinstitucional de Linguística Computacional (NILC). Para gerar os modelos foram utilizados os algoritmos Regressão Logística, kNN, Análise Discriminante Gaussiano, Árvore de Decisão, Random Forest, Gradient Boosting, SVM e LSTM-Dense. Para avaliação dos modelos foi utilizado as métricas Acurácia, Precision, Recall, F1-score, AUC-ROC e matriz de confusão.
Considerando os experimentos e os resultados, conclui-se que o objetivo principal deste trabalho, gerar modelos capazes de classificar notícias extraídas de redes sociais relacionadas ao COVID-19 como falsas e verdadeiras, foi alcançado com êxito. Como resultados, vimos que os modelos SVM e XGBoost com TF-IDF e BOW atingiram 100% nas métricas, com grandes chances de terem se sobreajustado aos dados. Com isso, consideramos como melhor modelo a Regressão Logística com a representação BOW, atingindo as métricas com valores próximos a 75.49%.
O pior classificador foi o kNN com o BOW e LSTM-Dense com Word2Vec, porém é importante ressaltar que este último não contou com Grid Search e foi treinado com poucas épocas. No geral, as melhores representações foram a TF-IDF e BOW e a pior o Word2Vec.
Para este projeto houveram algumas dificuldades, sendo a principal delas a formação da base de dados, visto que o contexto pandêmico do COVID-19 é algo novo e devido à limitação da API do Twitter em relação ao tempo para extrair os tweets, que era originalmente a ideia da base de dados para esse projeto. Além disso, também houve a dificuldade de remoção do viés dos dados.
Como trabalhos futuros, visamos:
Ampliar a base de dados;
Investigar o que levou ao desempenho do SVM, XGBOOST com as representações TF-IDF e BOW.
Analisar performance dos modelos utilizando outras word embeddings pré-treinadas, como o BERT, Glove e Wang2vec.
Investigar o uso do modelo pré-treinado do BERT e com fine-tuned.
Aplicar PCA Probabilístico
Utilizar arquiteturas de deep learning mais difundidas na comunidade científica.
Nós usamos cookies para melhorar sua experiência de navegação. Ao navegar no site, você concorda com a política de monitoramento de cookies. Se você concorda, clique em OK. Para ter mais informações sobre como isso é feito, acesse nosso Aviso de Privacidade.OKAviso de Privacidade