Entender o problema

Para entender o problema, realize as seguintes tarefas:

  • Estabeleça o objetivo do produto que você está desenvolvendo ou refatorando.
  • Determine se o objetivo é melhor resolvido usando ML preditivo, IA generativa ou uma solução que não seja de ML.
  • Verifique se você tem os dados necessários para treinar um modelo se estiver usando uma abordagem de ML preditivo.

Estabeleça o objetivo

Comece definindo sua meta em termos que não sejam de ML. A meta é a resposta à pergunta "O que estou tentando alcançar?"

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

Aplicativo Meta
App Weather Calcular a precipitação em incrementos de seis horas para uma região geográfica.
App de moda Gerar vários designs de camisas.
App de vídeo Recomendar vídeos úteis.
App Mail Detectar spam.
App financeiro Resuma informações financeiras de várias fontes de notícias.
App Mapa Calcular o tempo de viagem.
App bancário Identifique transações fraudulentas.
App de restaurantes 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

Algumas pessoas consideram o aprendizado de máquina como uma ferramenta universal que pode ser aplicada a todos os problemas. Na realidade, o ML é uma ferramenta especializada adequada apenas para problemas específicos. Não é recomendável implementar uma solução de ML complexa quando uma solução mais simples funciona.

Os sistemas de ML podem ser divididos em duas categorias amplas: ML preditiva e IA generativa. A tabela a seguir lista as características que definem os tipos:

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

Para confirmar se a abordagem de ML é a certa, primeiro verifique se a solução atual que não usa ML 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 usa ML é o parâmetro que você vai usar para determinar se o ML é um bom caso de uso para o problema. Considere as seguintes perguntas ao comparar uma abordagem sem ML com uma de ML:

  • Qualidade. Você acha que uma solução de ML pode ser muito melhor? Se você acha que uma solução de ML pode ser 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 no curto e no longo prazo? Em alguns casos, o custo é muito maior em termos de recursos de computação e tempo para implementar o aprendizado de máquina. Pense nas seguintes observações:

    • A solução de ML justifica o aumento de custo? Pequenas melhorias em sistemas grandes 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 necessários 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 não relacionada a ML ou uma heurística em vigor antes de analisar 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.
Uma solução não relacionada ao ML é o comparativo para medir uma solução de ML.

ML preditivo e dados

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

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

  • Consistente e confiável. Ter dados coletados de forma consistente e confiável vai produzir um modelo melhor. Por exemplo, um modelo meteorológico baseado em ML vai se beneficiar dos dados coletados ao longo de muitos anos com os mesmos instrumentos confiáveis.

  • Confiável. Entenda de onde vêm 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 conhece muito bem, 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, mas, se mais de uma pequena porcentagem de rótulos estiver incorreta, o modelo vai produzir previsões ruins.

  • Representante. Os conjuntos de dados precisam ser o mais representativos possível do mundo real. Em outras palavras, os conjuntos de dados precisam refletir com precisão os eventos, os comportamentos do usuário e/ou os fenômenos do mundo real que estão sendo modelados. O treinamento em conjuntos de dados não representativos pode causar um desempenho ruim quando o modelo é solicitado a fazer previsões reais.

Se você não conseguir os dados necessários no formato necessário, o modelo vai fazer previsões ruins.

Poder preditivo

Para que um modelo faça boas previsões, os recursos no conjunto de dados precisam ter poder de previsão. Quanto mais correlacionada uma característica estiver com um rótulo, maior será a probabilidade de ele ser previsto.

Alguns recursos têm mais poder de previsão do que outros. Por exemplo, em um conjunto de dados de clima, recursos 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, você pode supor que recursos como video_description, length e views podem ser bons preditores de quais vídeos um usuário gostaria de assistir.

Determinar quais recursos têm poder preditivo pode ser um processo demorado. É possível explorar manualmente o poder preditivo de um recurso removendo e adicionando-o durante o treinamento de um modelo. É possível automatizar a descoberta do poder preditivo de um recurso usando algoritmos como a correlação de Pearson, a informação mútua ajustada (AMI, na sigla em inglês) e o 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 principais atributos que você precisa procurar?
Representar o mundo real.
Pequeno o suficiente para carregar em uma máquina local.
Contém valores corretos.
Os recursos têm poder preditivo para o rótulo.
Coletado de várias fontes imprevisíveis.

Para mais orientações sobre como analisar e preparar seus 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 puder transformar a previsão em uma ação que ajude os usuários. Ou seja, seu produto precisa realizar uma ação com base na saída do modelo.

Por exemplo, um modelo que prevê se um usuário vai achar um vídeo útil precisa ser alimentado em um app que recomenda vídeos úteis. Um modelo que prevê se vai chover precisa ser alimentado em um app de clima.

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 de uma grande organização é responsável por gerenciar ligações telefônicas recebidas.

O objetivo: informar aos autores da chamada quanto tempo eles vão esperar em espera, considerando o volume atual de chamadas.

Eles não têm uma solução, mas acham que uma heurística seria dividir o número atual de clientes em espera pelo número de funcionários que atendem ligações e depois multiplicar por 10 minutos. No entanto, ele sabe que alguns clientes têm os problemas resolvidos em dois minutos, enquanto outros podem levar até 45 minutos ou mais.

A heurística provavelmente não vai fornecer 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 e time_on_hold.

Não use ML. Embora tenham uma meta claramente definida, eles precisam implementar e otimizar primeiro uma solução que não seja de ML. Além disso, o conjunto de dados não parece ter recursos suficientes com poder preditivo.
Usar o aprendizado de máquina. A equipe de engenharia tem uma meta claramente definida. A heurística não será boa o suficiente para o caso de uso. O conjunto de dados parece ter recursos preditivos para o rótulo, time_on_hold.