Machine Learning: Mitos, Verdades e Desafios
Com a tecnologia cada vez mais inserida no dia-a-dia, pontuamos dez questões relevantes sobre aprendizado de máquina
Adriana Silva, Head de Analytics do SAS Brasil
Machine learning é um termo antigo que está cada vez mais famoso.
Antigo, porque não existe nada de muito novo nos algoritmos além de avanços devidos à tecnologia computacional: com a evolução dos computadores – hadoop, computação distribuída, execução em memória, conceito de cloud etc –, as técnicas de predição estão cada vez mais acuradas e precisas. E tudo o que se torna famoso ganha destaque, o que, consequentemente, faz com que muitos "especialistas" apareçam da noite para o dia.
Mas é preciso tomar cuidado com a qualidade e as maneiras como as análises de dados têm sido realizadas. Conheça, a seguir, 10 desafios, mitos e verdades sobre o processo de machine learning:
Machine learning não é mágica
É comum ver anúncios sobre machine learning que tentam nos fazer acreditar que essa tecnologia (além de Deep Learning e Inteligência Artificial) é a grande fonte de mágica do mundo atual. Essa não é bem a realidade. Uma máquina só é capaz de fazer algo que o ser humano faz, e apenas se a tarefa for passada à ela. Hoje, isso ainda gera muito trabalho e deve ser feito com extrema atenção. Não existe mágica aí, mas muita dedicação em cima de dados. Basta perguntar para qualquer cientista de dados competente o trabalho que dá fazer um computador prever algo.
Os dados precisam ter qualidade
Os dados são os insumos para que o machine learning aconteça. E isso ainda é um desafio imenso nas corporações. Dificilmente encontraremos uma empresa que possua uma base de dados perfeita para o cientista usar e abusar.
É comum falarmos que uma das grandes revoluções do big data é a capacidade de leitura de dados não-estruturados. Isso é verdade, porém o que os dados não-estruturados querem nos dizer, na verdade, é que agora somos capazes de armazenar e processar objetos diversos como imagens, textos, voz e vídeos.
Há uma dificuldade de acesso aos dados – sejam eles estruturados ou não –, pois eles são armazenados em diversos locais. Organizá-los leva tempo, muito mais do que podemos imaginar. E é exatamente nesse ponto que muitos projetos de machine learning já nascem mortos, uma vez que a estrutura de dados da empresa é muito burocrática ou quando a organização ainda não sabe lidar com a demanda necessária.
Não adianta ter uma infinidade de dados armazenados sem que haja organização ou padrão e, para isso, existem várias ferramentas capazes de nos auxiliar. Também é importante que os dados não tenham um dono – o famoso CDO –, que segure a informação enquanto não finalizamos o trabalho de arrumá-los. Dados geram conteúdos e estratégias e, assim, devem ser acessados por todos!
Dados não direcionados ao negócio não contribuem em nada
Outro grande desafio é a falta de identificação no conjunto de dados utilizados para machine learning. Dados brutos e transacionais não são entrada para algoritmos de ML, porque cada algoritmo necessita de um tipo de entrada de dados, sendo a mais comum a estrutura tradicional de linhas e colunas.
Colunas que não refletem o evento de estudo também não contribuem para uma boa predição. Inserir informações que não ajudem o negócio não vai adiantar.
Imagine que sou dona de um e-commerce que vende produtos para pets e nosso objetivo seja criar um algoritmo de ML capaz de dizer se você irá comprar (ou não) uma determinada marca de ração. Se, por ventura, meu banco de dados conter uma informação que diz sua preferência sobre sobremesas, você acha que essa informação será relevante para prever se você irá comprar a dita ração? Muitas vezes, as variáveis brutas de um banco de dados podem não conter o que é necessário para prever um evento. É nesse momento que o cientista de dados precisa entender do negócio e, principalmente, ser criativo.
Cada objetivo tem uma história por trás dos dados e cada aplicação difere pela essência da empresa. Tudo isso deve ser levado em consideração na hora de trabalhar as informações. É normal que, a partir de um dado bruto armazenado em um database, possamos criar várias outras variáveis que contribuiem na previsão de eventos. Isso faz com que o modelo se torne mais acurado. Se estou querendo prever a compra de determinada coisa, por que não vivo a experiência para poder observar os motivos que me levaram à compra? Se quero prever quem irá ganhar ou não um processo jurídico, por que não assisto à uma audiência para ver os argumentos e atributos que podem influenciar na decisão? Quanto mais conhecimento do negócio o cientista tiver, melhor serão suas variáveis e, consequentemente, melhor será seu algoritmo de ML.
Por que se fala tanto em Machine Learning?
Existe muito buzz girando em torno do aprendizado de máquina e da inteligência artificial, mas os robôs não irão tirar seu emprego ainda. No entanto, isso não significa que machine learning é algo que devemos deixar de nos concentrar.
Generalização
Algoritmos devem ser generalizáveis para que tenham resultados em suas aplicações futuras.
Como tudo que ganha fama e promete retorno financeiro, o aprendizado de máquina vem sendo estudado por vários profissionais e demais interessados em ingressar no meio. Isso é muito bom para divulgar o tema, mas também gera riscos. Todo mundo que lida com previsões tem interesse em criar algoritmos complexos, com acurácia incrível, mas será mesmo que a coisa funciona assim?
A primeira pergunta que você precisa responder é: qual a finalidade do seu algoritmo de ML? Se sua resposta for algo como prever um comportamento futuro, você deve buscar pela generalização – e não a personalização. Quero dizer, a menos que você possua todas as informações que levem um evento a acontecer, ninguém é capaz de fazer isso com uma precisão tão incrível a ponto de acertar em 99,9% dos casos.
A realidade é que nenhuma empresa possui todas as informações necessárias para fazer previsões tão acuradas. Logo, se não tenho todos os dados, é preciso que meu algoritmo de ML seja capaz de generalizar a predição de interesse. É comum ver erros onde o desenvolvedor causa um overfiting (modelo muito específico que só prevê bem na base de dados em que foi criado), e, na hora do vamos ver, se frustra pelos resultados ruins.
Projetos sem planejamento nascem mortos
Muitas empresas estão se mobilizando para realizar algo que desconhecem e, como não conseguem atingir o sucesso, frustram-se.
Fica fácil fazer algumas analogias para isso:
- Como construir uma casa para deficientes físicos sem saber as necessidades deles?
- Como abrir uma escola sem professores?
- Como criar um questionário sem saber qual resposta estou buscando?
- Como escrever um artigo sem ter domínio do assunto?
Como já diria Lewis Carroll, "para quem não sabe onde vai, qualquer caminho serve". Não é possível planejar e estruturar uma área de geração de insights e modelos de ML sem ter um especialista. Mas esse erro tem se tornado muito comum e o projeto, quando não bem estruturado, já pode estar fadado ao fim.
Interpretação x acurácia
Machine learning é um termo utilizado de modo um tanto quanto genérico. Por definição, ele remete a um conjunto de técnicas que se utilizam de dados para reconhecer padrões. A partir dessa definição básica, podemos lembrar que várias técnicas de estatística também se definem assim.
Mas o que diferencia ML da estatística?
Algoritmos de ML utilizam, em sua maioria, fundamentos estatísticos para abusar do computador na busca da tão sonhada acurácia. A maioria dos algoritmos não nos oferece interpretação dos parâmetros, ou seja, não somos capazes de explicar seus motivos. Já os algoritmos providos da inferência estatística nos dão essa informação, mas perdem na acurácia quando comparados com algoritmos mais complexos.
Uma vez que algoritmos complexos podem me prover acurácia, mas não me permitem interpretar os parâmetros, como podemos trabalhar com eles? Depende muito do motivo e da utilização desse algoritmo. Se a explicação não é necessária, eles vão te prover um índice de qualidade de ajuste provavelmente melhor que modelos estatísticos.
Mas e quando a interpretação, além da acurácia, também é necessária? Nesse momento entra a criatividade!
Existem alternativas, como os surrogate models (modelos substitutos). Que tal criarmos um algoritmo complexo, com boa acurácia, e utilizarmos a predição deste modelo como variável dependente (target) para outro modelo mais simples, que permita interpretação? Este é um caminho adotado para explicar modelos de parâmetros interpretáveis. Ou que tal analisar os percentuais (ou como se aplicar melhor ao seu negócio) da estimativa gerada pelo algoritmo complexo contra o comportamento geral da base, por variável? Quanto mais criativo, melhor serão seus resultados e entendimento do modelo trabalhado.
Descubra oportunidades e desafios para Machine Learning nos negócios
Avanços recentes têm aumentado o interesse em adotar a tecnologia como parte de uma estratégia analítica maior. Mas incorporar as modernas técnicas de machine learning em infraestrutura de dados de produção não é fácil.
Rejeição ao novo (não tão novo assim)
A tecnologia é um mundo muito útil, que pode auxiliar negócios – desde que seja bem feita, com pessoas capazes de traduzir o negócio em base de dados.
Muitos algoritmos de ML são criados para causar overfit, porém não é o que se busca nos negócios. Dessa forma, é melhor trabalhar com bases de teste que sejam criadas fora do seu tempo de análise, ou seja, que representem um momento mais atual.
Estou falando do famoso teste "out of time". Com ele, é possível encontrar falhas na manipulação de dados, variáveis vazadas (que foram criadas depois que a reposta aconteceu), além de verificar a estatística de ajuste do modelo.
Trabalhando da forma correta, o ML se torna mais uma possibilidade de predição, assim como todas as outras que já são trabalhadas há tantos anos.
Aplicação
Como comentado, o ML pode não oferecer a interpretação dos parâmetros e isso faz com que muitas pessoas optem por não utilizá-lo. Vamos tentar abrir um pouco nossa mente aqui. A tecnologia vem ganhando espaço porque foi desenvolvida para execução de forma rápida (em ambientes distribuídos e em memória).
Algumas técnicas não oferecem seleção de variáveis, porém outras podem ser muito acuradas e ainda selecionar variáveis, como é o caso do Gradient Boosting Machine.
Definição de prioridade
Criar uma algoritmo de ML não é algo que acontece do dia para a noite. Todos os motivos listados neste artigo mostram que o processo exige muito trabalho, atenção, conhecimento do negócio, além da busca por algoritmos que performem bem para seu objetivo. Para um algoritmo ser construído, superando todos os pontos listados, pode levar mais de oito meses.
A parte dos dados é a maior responsável por isso, pois consome muito tempo e, normalmente, envolve muitos profissionais e de diversas áreas de uma companhia. Uma vez que o acesso à informação é liberado, é possível criar um algoritmo em menos de um mês.
Sobre a implementação do mesmo, vai depender muito da empresa e de sua agilidade. A grande pergunta: ele está rentabilizando o quanto eu calculei? Não. Por quê? Porque fazer o processo virar algo automático é realmente muito complexo e, para isso, é necessário que a mentalidade das pessoas seja direcionada para aplicações orientada a dados, além de ser produtiva no sentido de ter ferramentas necessárias para colocar modelos em produção com agilidade. Não adianta criar um modelo que não traz o que efetivamente se busca com ele.
Soluções completas podem ser um suporte para essa agilidade necessária. Algoritmos de ML sofrem mutações e a demora na implementação pode fazer com que o modelo já não seja mais tão acurado como quando foi desenvolvido. Por isso, é muito importante que prioridades sejam listadas e tarefas sejam realizadas até o fim. Vale lembrar que um algoritmo nunca tem um fim propriamente dito. Todo algoritmo deve ser monitorado durante sua vida útil e existem ferramentas que podem auxiliar nisso. Mas a grande dica é acompanhar e monitorar, pois nenhuma máquina é capaz de viver por si só por muito tempo.
Busca por profissionais
Como em todas as áreas, profissionais realmente bons são raros e difíceis de ser encontrados. Mas sempre existe gente capaz de aprender e se destacar. A busca não precisa ser por um especialista no tema, mas é preciso ter em mente que onde tentamos dar nossas capacidades humanas ao computador, precisamos agir como agimos no nosso dia a dia.
Nós não aprendemos tudo o que sabemos com uma pessoa, mas com um time multidisciplinar. É importante existir um profissional que entenda de computador, outro que saiba bem os conceitos de estatística, outro que saiba programar, que conheça do negócio etc.
Pessoas interessadas e esforçadas, que buscam a resolução do problema mantendo a base bem feita são muito mais proveitosas do que gênios que não se comunicam e não conseguem transferir a mensagem contida nos números. Contrate um contador de histórias que saiba contá-las a partir de um conjunto de dados.
Sobre a Autora
Adriana Silva é graduada em Estatística pela UNESP e Mestra em Ciências: Estatística e Experimentação Agronômica pela Universidade de São Paulo (ESALQ/USP). Trabalhou em empresas como Oracle e Editora Abril, onde foi gerente analítica. Atualmente está no SAS, como head de Analytics. Sempre atuou em análise de dados utilizando a estatística para as soluções de problemas. É professora nas turmas de pós-graduação dos cursos “Análise de Dados e Data Mining” e “Análise de Big Data”, na FIA, nas disciplinas de Regressão Linear, Logística e Árvore de Decisão, Social Network Analysis, além de aulas aplicadas em R, SPSS e SAS.