| Saiba mais  Patrocinado por

Desafios, Mitos e Verdades sobre Machine Learning

Com a tecnologia cada vez mais famosa, é hora de conhecer 10 desafios, mitos e verdades sobre aprendizado de máquina

07 de Novembro de 2017 - 13h20

Machine Learning é um termo antigo e está cada vez mais famoso. Antigo porque não existe nada de muito novo nos algoritmos e sim avanços devido a tecnologia computacional. Com a evolução dos computadores (hadoop, computação distribuída, execução em memória, conceito de cloud, entre outros), as técnicas de predição estão cada vez mais acuradas e precisas.

Tudo que se torna famoso ganha destaque, consequentemente, faz com que muitos ‘especialistas’ apareçam. Mas é preciso tomar cuidado com a qualidade e a forma como a análise de dados vem sendo realizada. Conheça abaixo alguns desafios, mitos e verdades sobre o processo.

1.Machine Learning não é mágica

Tem sido cada mais comum ver anúncios de divulgação de Machine Learning que nos fazem entender que essa tecnologia (além de Deep Learning, Inteligência Artificial, entre outros) é a mágica do mundo atual. A realidade não é bem essa. A máquina só é capaz de fazer algo que o humano faz e, somente, se isso for passado para ela. Nos dias de hoje isso ainda gera muito trabalho e deve ser feito com extrema atenção. Não existe mágica nisso e sim muita dedicação em cima de dados. Basta perguntar para qualquer cientista de dados competente quanto trabalho ele tem para fazer um computador prever algo.

2.Qualidade de dados

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 muito que uma das grandes revoluções do Big Data é a capacidade de leitura de dados não estruturados. Isto realmente é uma verdade, porém, o que o dado não estruturado quer dizer é que agora somos capazes de armazenar e processar dados como imagens, textos, voz e vídeos.

Há uma dificuldade de acesso aos dados – sejam eles estruturados ou não – pois estão armazenados em diversos locais. A organização destes dados leva tempo; muito mais do que podemos imaginar. E é exatamente nesse ponto que muitos projetos de Machine Learning já nascem mortos, pois a estrutura de dados da companhia é muito burocrática ou ainda não sabe lidar com a demanda de Machine Learning.

Não adianta ter uma infinidade de dados armazenados, sem organização ou sem padrão e, para isso, existem várias ferramentas capazes de auxiliar. É importante que os dados não tenham um dono (famoso CDO) que segure a informação enquanto não finaliza o trabalho de arrumá-los. Dados geram conteúdos e estratégias, sendo assim, devem ser para todos!

3. Dados não direcionados ao negócio

Outro grande desafio é a falta de identificação do negócio no conjunto de dados utilizados para Machine Learning. Assim como o tema em discussão não é mágica, dados brutos e transacionais não são entrada para algoritmos de ML (Machine Learning). Cada algoritmo necessita de um tipo de entrada de dados, onde o mais comum é a estrutura de linhas e colunas.

Colunas que não refletem o evento de estudo, não contribuem para uma boa predição. Inserir a informação que não ajude o negócio, não vai adiantar. Imagine que somos donos 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 determinado produto.

Se, por ventura, meu banco de dados contém uma informação que diz sua preferência sobre sobremesas, você acha que esta informação será relevante para prever se você irá ou não comprar um produto no meu e-commerce (que vende produtos para pets)? Muitas vezes as variáveis brutas de um banco de dados podem não conter tudo que é necessário para prever um evento e é nesse momento que o data scientist precisa entender muito de negócio e, principalmente, ser criativo.

Cada objetivo tem uma história por trás dos dados, cada aplicação difere pela essência do negócio e tudo isso deve ser levado em consideração na hora de se trabalhar as informações. É normal que a partir de um dado bruto armazenado em um data base, possamos criar várias outras variáveis que podem contribuir na previsão de eventos. Isso vem da criatividade do cientista que está trabalhando.

E 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 de comprar para poder observar os motivos que me levaram a comprar?

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 nesta decisão? Quanto mais conhecimento de negócio melhor suas variáveis serão e, consequentemente, melhor seu algoritmo de ML.

4. Generalização

Como tudo que ganha fama e promete retorno financeiro, o ML vem sendo estudado por vários profissionais e pessoas interessadas em ingressar no meio da previsão. Isso é muito bom para a divulgação do tema, mas gera riscos. Todo mundo tem interesse em criar algoritmos complexos, com acurácia incrível, mas será que isso se aplica no dia a dia?

A primeira questão que deve ser respondida para que este tema faça sentido é ‘para qual finalidade você quer criar um algoritmo de ML?’. Se sua resposta for algo como prever um comportamento futuro, você deve buscar a generalização e não a personalização. Isso significa que, a não ser 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 e ter um acerto em 99% dos casos.

A realidade ainda diz que nenhuma empresa possui todas as informações do mundo para fazer previsões tão acuradas. Se não tenho todos os dados, o que 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) com os dados e na hora do vamos ver, se frustra pelos resultados ruins. Algoritmos devem ser generalizáveis para que tenham resultados na aplicação futura.

5. Planejamento de aplicação de Machine Learning

Muitas empresas estão se mobilizando para fazer acontecer algo que desconhecem e, como não conseguem fazer funcionar frustram-se. Fica fácil fazer uma analogia para isso: “como vou construir uma casa para deficientes físicos sem saber as necessidades deles?”; “como vou abrir uma escola sem professores?”; “Como criar um questionário sem saber que resposta se está buscando?”; “Como vou 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 isso tem se tornado muito comum e o projeto, quando não bem estruturado, já pode estar fadado ao fim.

6. Interpretação dos algoritmos

Machine Learning é um termo utilizado de uma forma um tanto quanto genérica. Por definição ele se remete a um conjunto de técnicas que utilizam dados para reconhecer padrões. Partindo desta definição básica, pode-se dizer que várias técnicas de estatística também se definem dessa maneira.

Mas o que diferencia ML de estatística?

Algoritmos de ML utilizam, em sua maioria, fundamentos estatísticos para abusar do computador em 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 os motivos pelos quais. Já algoritmos providos da inferência estatística tem o propósito de explicar os motivos pelos quais, 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 interpretação dos parâmetros, como podemos trabalhar com eles? Isso vai depender muito do motivo e utilização deste 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 o ‘Surrogate Models’ (modelo substituto). 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.

7. Rejeição ao novo (não tão novo assim)

Como já descrito anteriormente, o mau uso do ML faz com que muitas pessoas criem imagens erradas dessa potência. A tecnologia é um mundo muito útil, que pode auxiliar negócios – desde que seja bem feito, 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 no mundo dos 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.

O 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 a tantos anos.

8. Aplicação

Como comentado, o ML pode não oferecer 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 neste caso. 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).

9. Definição de prioridade

Criar uma algoritmo de ML não é algo que sai do dia para a noite. Todos os motivos listados nesse artigo mostram que o processo exige muito trabalho, atenção, conhecimento de negócio e busca por algoritmos que performem. Para um algoritmo ser construído, superando todos os pontos listados, pode-se 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. Agora 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 orientada a aplicações orientada a dados, além de 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.

10. Busca por profissionais

Claro, como em todas as áreas, profissionais realmente bons são raros e difíceis de serem encontrados. Mas sempre existe gente capaz de aprender e se destacar. A busca não necessariamente precisa ser de um super 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 sim com um time multidisciplinar. É importante haver 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, entre outros.

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. Quer saber mais sobre Machine Learning? Leia o white paper “A Evolução da Inteligência Analítica: Oportunidades e desafios para machine learning nos negócios“

*Por Adriana Silva – Head de Analytics do SAS