Entender o problema

Para entender o problema, execute as seguintes tarefas:

  • Informe a meta do produto que você está desenvolvendo ou refatorando.
  • Determinar se a meta é melhor resolvida usando ML preditivo, IA generativa ou uma solução que não seja ML.
  • Se você estiver usando uma abordagem de ML preditiva, verifique se tem os dados necessários para treinar um modelo.

Indicar a meta

Comece declarando sua meta em termos não relacionados a ML. A meta é a resposta à pergunta: “O que estou tentando realizar?”

A tabela a seguir indica claramente as metas para apps hipotéticos:

Aplicativo Meta
App Weather Calcule a precipitação em incrementos de seis horas em uma região geográfica.
App de moda Gerar uma variedade de designs de camisa.
App de vídeo Recomende vídeos úteis.
App Mail Detectar spam.
App financeiro Resumir informações financeiras de várias fontes de notícias.
App Mapa Calcule o tempo de viagem.
App de bancos Identifique transações fraudulentas.
App de jantar Identificar a culinária pelo cardápio de um restaurante.
Aplicativo de e-commerce Responda às avaliações com respostas úteis.

Caso de uso claro para ML

Alguns veem o ML como uma ferramenta universal que pode ser aplicada a todos os problemas. Na verdade, o ML é uma ferramenta especializada adequada apenas para problemas específicos. Não convém implementar uma solução complexa de ML quando uma solução mais simples que não seja ML funcionar.

Os sistemas de ML podem ser divididos em duas categorias amplas: ML preditivo e IA generativa. A tabela a seguir lista as características definidoras:

Entrada Saída Técnica de treinamento
ML preditivo Texto
Imagem
Áudio
Vídeo
Numérico
Faz uma previsão, por exemplo, classificando um e-mail como spam ou não spam, adivinhando a chuva de amanhã ou prevendo o preço de uma ação. Normalmente, a saída pode ser verificada em relação à realidade. Normalmente, usa muitos dados para treinar um modelo de aprendizado supervisionado, não supervisionado ou de reforço para executar uma tarefa específica.
IA generativa Texto
Imagem
Áudio
Vídeo
Numérico
Gera saída com base na intenção do usuário, por exemplo, resumir um artigo ou produzir um clipe de áudio ou um vídeo curto. Normalmente, usa muitos dados não rotulados para treinar um modelo de linguagem grande ou um gerador de imagens para preencher os dados ausentes. O modelo pode ser usado para tarefas que podem ser enquadradas como tarefas de preenchimento total ou pode ser ajustado treinando-o em dados rotulados para alguma tarefa específica, como classificação.

Para confirmar se o ML é a abordagem certa, primeiro verifique se sua solução não ML atual está otimizada. Se você não tiver uma solução que não seja de ML implementada, tente resolver o problema manualmente usando uma heurística.

A solução que não é de ML é o comparativo de mercado que você usará para determinar se o ML é um bom caso de uso para seu problema. Ao comparar uma abordagem que não é de ML com uma de ML, considere as seguintes questões:

  • Qualidade: Na sua opinião, quão melhor seria uma solução de ML? Se você acha que uma solução de ML representa apenas uma pequena melhoria, isso pode indicar que a solução atual é a melhor.

  • Custo e manutenção. Qual é o custo da solução de ML a curto e longo prazo? Em alguns casos, o custo é significativamente mais alto em termos de recursos de computação e tempo para implementar o ML. Pense nas seguintes observações:

    • A solução de ML pode justificar o aumento no custo? Pequenas melhorias em grandes sistemas podem justificar facilmente o custo e a manutenção da implementação de uma solução de ML.
    • Quanta manutenção a solução vai exigir? Em muitos casos, as implementações de ML precisam de manutenção dedicada de longo prazo.
    • Seu produto tem os recursos para apoiar o treinamento ou a contratação de pessoas com experiência em ML?

Teste seu conhecimento

Por que é importante ter uma solução ou uma heurística que não seja de ML antes de analisar uma solução de ML?
Uma solução que não é de ML é o comparativo de mercado para medir uma solução de ML.
As soluções que não são de ML ajudam a determinar o custo de uma solução de ML.

ML e dados preditivos

Os dados são a força motriz do ML preditivo. Para fazer boas previsões, você precisa de dados que tenham recursos com poder preditivo. Os dados precisam ter as seguintes características:

  • Abundante. Quanto mais exemplos relevantes e úteis no seu conjunto de dados, melhor será o modelo.

  • consistentes e confiáveis. Ter dados coletados de maneira consistente e confiável produzirá um modelo melhor. Por exemplo, um modelo meteorológico baseado em ML se beneficia dos dados coletados ao longo de muitos anos dos mesmos instrumentos confiáveis.

  • Confiável. Entenda de onde virão seus dados. Os dados serão de fontes confiáveis que você controla, como registros do seu produto, ou de fontes que você não tem muito insights, como a saída de outro sistema de ML?

  • Disponível. Verifique se todas as entradas estão disponíveis no momento da previsão no formato correto. Se for difícil conseguir determinados valores de atributos no momento da previsão, omita esses atributos dos seus conjuntos de dados.

  • Correto. Em grandes conjuntos de dados, é inevitável que alguns rótulos tenham valores incorretos. No entanto, se mais de uma pequena porcentagem de rótulos estiver incorreta, o modelo produzirá previsões ruins.

  • Representativo. Os conjuntos de dados devem ser os mais representativos do mundo real. Em outras palavras, os conjuntos de dados precisam refletir com precisão os eventos, comportamentos dos usuários e/ou fenômenos do mundo real que está sendo modelado. O treinamento em conjuntos de dados não representativos pode causar baixo desempenho quando é solicitado que o modelo faça previsões reais.

Se você não conseguir os dados necessários no formato exigido, seu modelo fará previsões ruins.

Poder preditivo

Para que um modelo faça boas previsões, os atributos no seu conjunto de dados precisam ter poder preditivo. Quanto mais correlacionado um atributo for com um rótulo, maior será a probabilidade de previsibilidade.

Alguns recursos têm mais capacidade de previsão que outros. Por exemplo, em um conjunto de dados meteorológicos, atributos como cloud_coverage, temperature e dew_point seriam melhores preditores de chuva do que moon_phase ou day_of_week. No exemplo do app de vídeo, é possível supor que recursos como video_description, length e views podem ser bons indicadores de quais vídeos um usuário gostaria de assistir.

A capacidade de previsão de um recurso pode mudar porque o contexto ou o domínio muda. Por exemplo, no app de vídeo, um recurso como upload_date pode, em geral, ser levemente correlacionado ao rótulo. No entanto, no subdomínio de vídeos de jogos, upload_date pode estar fortemente correlacionado com o rótulo.

Determinar quais recursos têm poder preditivo pode ser um processo demorado. É possível explorar manualmente o poder preditivo de um atributo removendo e adicionando-o durante o treinamento de um modelo. É possível automatizar a localização do poder preditivo de um recurso usando algoritmos como correlação Pearson, Informações mútuas ajustadas (AMI, na sigla em inglês) e Valor de Shapley, que fornecem uma avaliação numérica para analisar o poder preditivo de um recurso.

Teste seu conhecimento

Ao analisar seus conjuntos de dados, quais são os três atributos principais que você precisa procurar?
Representação do mundo real.
Contém os valores corretos.
Os recursos têm poder preditivo para o identificador.
Pequeno o suficiente para carregar em uma máquina local.
Reunidos de várias fontes imprevisíveis.

Para mais orientações sobre como analisar e preparar os conjuntos de dados, consulte Preparação de dados e engenharia de atributos para machine learning.

Previsões x ações

Não há valor em prever algo se você não pode transformar a previsão em uma ação que ajude os usuários. Ou seja, seu produto precisa agir a partir da saída do modelo.

Por exemplo, um modelo que prevê se um usuário encontrará um vídeo útil precisa alimentar um app que recomenda vídeos úteis. Um modelo que prevê se vai chover alimentar um app meteorológico.

Teste seu conhecimento

Com base no cenário a seguir, determine se o uso de ML é a melhor abordagem para o problema.

Uma equipe de engenharia em uma grande organização é responsável por gerenciar as chamadas telefônicas recebidas.

A meta: informar aos autores das chamadas quanto tempo eles vão aguardar na espera de acordo com o volume de chamadas atual.

Ela não tem nenhuma solução, mas pensa que uma heurística seria dividir o número atual de clientes em espera pelo número de funcionários que atendem às chamadas e depois multiplicar por 10 minutos. No entanto, a agência sabe que alguns clientes resolvem os problemas em dois minutos, enquanto outros podem levar até 45 minutos ou mais.

A heurística deles provavelmente não vai chegar a um número preciso o suficiente. Eles podem criar um conjunto de dados com as seguintes colunas: number_of_callcenter_phones, user_issue, time_to_resolve, call_time, time_on_hold.

Use ML. A equipe de engenharia tem uma meta claramente definida. A heurística delas não será boa o suficiente para esse caso de uso. O conjunto de dados parece ter recursos preditivos para o rótulo, time_on_hold.
Não use ML. Eles têm um objetivo claramente definido, mas precisam implementar e otimizar uma solução que não seja de ML primeiro. Além disso, o conjunto de dados não parece conter atributos suficientes com poder preditivo.