Fundamentos da Ciência de Dados para Product Managers
Chinmaya Behera, que trabalhou como Data Science Product Manager na Nakuri.com e RedBus falou sobre a relação entre as duas áreas
Por CohortPlus (publicado originalmente aqui, em inglês)
A Ciência de Dados vem se tornando uma ferramenta onipresente à medida que os inúmeros produtos tentam criar vantagens competitivas no mesmo ecossistema digital. Mesmo que o campo esteja em evolução, não é mais uma novidade e empresas tiveram muitos casos de sucesso usando alguma forma de ciência de dados em seus produtos.
Product Managers, dada a natureza da sua atuação, têm de estar na linha de frente na compreensão de novas tecnologias e como elas podem beneficiar o usuário final com os produtos que criam ou gerenciam.
Neste artigo, eu gostaria de compartilhar o que PMs podem fazer para entender e se atualizar no campo da Ciência de Dados — e alguns dos algoritmos chave de machine learning que formam a espinha dorsal dos melhores produtos atualmente.
Ciência de Dados — Uma Introdução
Colocando em palavras simples, a ciência de dados implica o uso de dados e tecnologia para tomar decisões melhores.
Product Managers deveriam olhar para a ciência de dados como uma abordagem que analisa uma vasta quantidade de dados, extrai padrões e insights desses dados e faz previsões para criar valor de negócio.
Um dos componentes principais da imagem acima seria o de que os ‘data products’ trabalham com enormes quantidades de dados brutos, aprendem/extraem padrões desses dados e entregam valor para usuários e usuárias, melhorando, portanto, as métricas do negócio.
Muitos algoritmos de inteligência artificial formam o cérebro por trás desses data products.
Algoritmos de machine learning podem simplesmente ser definidos como programas que aprendem com os dados sem serem explicitamente programados.
Uma forma de entender machine learning seria comparar o conceito à abordagem tradicional de programação.
- Em uma abordagem tradicional de programação, inicia-se com os dados como inputs e então um conjunto de regras/lógica é criado como parte do programa, pegando o resultado como output.
- A abordagem de machine learning pega os dados de histórico e os resultados como input e deduz a lógica ou os padrões entre dados e resultados. Assim, gera um programa que pode ser usado com qualquer dado futuro que venha a ser gerado para prever resultados.
Exemplos comuns de machine learning em uso:
- Mecanismo de Recomendação — São algoritmos que sugerem itens que talvez sejam de interesse das pessoas, sem que essas pessoas tenham procurado especificamente por isso. As sugestões podem ser na forma de produtos que um consumidor pode querer ou um filme que ela gostaria de assistir.
- Filtro de Spam (Ex:. Gmail) — Um algoritmo base que processa os e-mails que chegam e determinam se aquela mensagem é inconveniente ou não.
- Detecção de objetos (Ex:. carros autônomos) — O uso de algoritmos de machine learning para reconhecer semáforos, outros carros na rua, pedestres, etc.
A ascensão da Ciência de Dados
Alguns dos algoritmos populares de machine learning (mencionados na seleção acima) existem desde 1980[1], mas ganharam muita importância nos últimos anos. Vamos entender alguns dos fatores chave que levaram ao reaparecimento desses algoritmos:
Disponibilidade de Dados
Houve uma explosão na criação e nas fontes de dados. Hoje em dia, estão sendo coletados mais dados que nunca.
- Dados Web e de Navegação
- GPS / Dados de Localização
- Imagens e Vídeos
- User Generated Content (UGC)
- Dispositivos com sensores
- E-mails
- Transações Financeiras
Eficiência dos Algoritmos
- Os algoritmos existentes se tornaram mais eficazes com a enxurrada de dados
- Melhora significativa dos resultados com o aumento do treinamento de dados
- Agora também é possível transferir aprendizado[2] de uma aplicação a outra
Redução dos Custos de Infraestrutura
- Disponibilidade de serviços on demand baseados em nuvens (Ex:. Amazon Web Services, Google Cloud ou Azure) — a velocidade da infraestrutura, a disponibilidade e até a escala permitiram algoritmos mais audaciosos enfrentarem problemas mais ambiciosos[3].
- Além da disponibilidade de servidores escaláveis em nuvens, muitas configurações de dados agora são open source por Govts e companhias em todo o mundo, aprimorando a acessibilidade dos dados para alimentar os algoritmos.
- Muitos dos algoritmos mais populares de machine learning também foram disponibilizados para o público (bibliotecas open source/frameworks) levando a uma adoção mais abrangente pela comunidade de desenvolvedores.
Noções Básicas de Machine Learning para PMs
Agora que nós sabemos porque os algoritmos de machine learning ganharam destaque nos últimos anos, vamos mergulhar mais fundo em alguns tipos populares de algoritmos.
Apesar de ser um campo profundamente técnico, muitos dos fundamentos exigidos para agregar valor e causar impacto no mercado com produtos ou features pouco tem a ver com a complexidade dos algoritmos. Um PM deve:
- entender os dados coletados de vários pontos de contatos de consumidores, além das fontes dos dados
- desenvolver uma compreensão dos tipos de problemas mais comuns em machine learning — regressão e classificação
- aprender a conectar resultados de um algoritmo ou modelo de machine learning às métricas de negócios
- definir critérios de testes (ex:. A/B tests) para avaliar o grau de sucesso ou falha de um modelo
Tipos de Algoritmos de Machine Learning
Machine learning é uma forma simples de criar um programa que faz algo (por exemplo, prever um valor ou classificar um item em uma categoria) sem que o programa tenha que descobrir como ou por que fazer isso.
Normalmente, muitos dados de histórico são fornecidos a estes algoritmos como inputs e os algoritmos são robustos o suficiente para encontrar correlações complexas entre esses dados.
Há muitos tipos de algoritmos de machine learning, mas vou mencionar aqui apenas alguns dos mais comuns:
Aprendizado Supervisionado
A maioria de aplicações práticas de machine learning usa alguma forma de aprendizado supervisionado. Nesse tipo de aprendizado, os algoritmos aprendem a partir de algo chamado de conjunto de dados rotulados. Um conjunto de dados rotulados é uma coleção de dados/registros de histórico que é composta tanto de inputs como outputs correspondentes ou do valor fixado alcançado.
Como exemplo, considere o seguinte conjunto de dados[4] obtido de uma instituição bancária:
- Os conjuntos de dados geralmente são dispostos em tabelas com itens (como consumidores do banco, por exemplo) em linhas junto com variáveis (ex:. idade, profissão, formação, balanço financeiro) em colunas.
- Conjuntos de dados rotulados também tem variáveis de alvo (rótulos), os valores a serem previstos nos dados futuros.
- No conjunto de dados acima, a variável de alvo define se os consumidores aceitaram ou não fazer depósitos agendados após um contato.
Uma vez que o conjunto de dados é fornecido ao algoritmo, ele aprende a classificar o resultado das variáveis de input como sim ou não (se por acaso um cliente aceitou os depósitos). Agora esse aprendizado pode ser aplicado para qualquer novo dado relacionado a um novo cliente e prever o resultado (sim/não).
Dois problemas clássicos que estão sendo abordados com aprendizado supervisionado:
Regressão: Prever o valor numérico de alguma coisa é um problema de regressão. Exemplo: Prever quanto uma casa irá custar em uma determinada área (baseado em tendências históricas e outros fatores)
Classificação: Descobrir qual é o tipo de alguma coisa é um problema de classificação. A decisão do Gmail de classificar um e-mail como spam ou não, as fotos do Facebook (detecção facial) são exemplos desse tipo de problema. Classificação pode ser de duas classes ou binária (sim/não ou spam/não spam) ou uma classificação multiclasses.
Aprendizado Não Supervisionado
Ao contrário do aprendizado supervisionado, os conjuntos de dados para aprendizado não supervisionado não tem os valores-alvo e por isso o conjunto de dados é classificado como não rotulado. Nesse caso, o algoritmo tenta identificar padrões nos dados sem a necessidade de taguear o conjunto de dados com o resultado esperado.
Alguns dos problemas mais comuns sendo abordados por aprendizado não supervisionado:
Clustering: Agrupar itens baseado em características semelhantes é o resultado de clustering. Agrupar notícias similares ou clientes similares baseado no seu comportamento de compra podem ser exemplos práticos dessa abordagem.
Associação: Categorização de objetos em grupos baseados em alguma relação, para que a presença de um objeto em um grupo preveja a presença de outro objeto. Um exemplo muito comum seria o problema de recomendação “a pessoa que comprou XYZ também comprou ABC”.
Detecção de anomalia: Identificação de padrões inesperados nos dados que necessitam ser sinalizados e trabalhados caem nessa categoria de problema. Exemplos comuns são as detecções de fraudes e monitoramento de saúde para sistemas complexos (maquinário industrial ou infraestrutura de rede)
Trabalhando com Equipes de Ciência de Dados
A equipe de ciência de dados que lida com produtos baseados no desenvolvimento de machine learning vai descobrir e analisar dados, definir atributos para o problema (feature engineering), escolher e otimizar algoritmos e então colocar o machine learning em produção para futuros testes.
O PM deve ter uma boa compreensão do processo de desenvolvimento de modelos de machine learning. O link abaixo da imagem relaciona ótimos recursos para aprender os vários estágios:
Há muitas outras questões que precisam ser compreendidas ao lidar com produtos baseados em machine learning.
Fazer produtos com dados requer estratégia de dados
- A maioria dos algoritmos de machine learning se alimenta de muitos dados para treinar os modelos. PMs devem ter um entendimento profundo de todos os aspectos envolvidos na geração, coleta e consumo de dados em produtos internos.
- Outro aspecto a ser considerado é o uso de dados para aperfeiçoar o produto algoritmicamente ao longo do tempo.
Implementação de modelo de machine learning
- PMs devem trabalhar com a equipe de ciência de dados para definir os features ou inputs no modelo durante o estágio de construção e engenharia dentro do processo de desenvolvimento de um modelo de machine learning.
- PMs devem compreender como o modelo vai trabalhar com dados em tempo real. Deve-se levar em consideração qualquer novo API a ser desenvolvido na interface com o modelo de machine learning no ambiente de produção.
- Um aspecto crítico a ser considerado por PMs é a frequência com que o modelo deve ser retreinado — seja diariamente, semanalmente ou a cada X dias, precisa ser bem pensado.
- Ao mesmo tempo que um modelo de machine learning vai evoluir com os dados com os quais ele foi treinado, há umtrade-offentre os esforços e a infraestrutura requerida para treinar um modelo e sua performance baseada na quantidade de dados (e quão recente são esses dados) em que ele foi treinado.
- A velocidade com que o output do machine learning muda faz diferença, dependendo de como o usuário final interage com ele. Por exemplo, um algoritmo ML que leva dois segundos para gerar recomendações pode ser mais adequado que um algoritmo que leve vinte segundos para gerar recomendações em uma página descritiva de um produto num e-commerce.
Avaliando modelos de machine learning
- Um PM deve agir como tradutor dos especialistas quando se tratar de projetos de ciência de dados e como eles se encaixam nas necessidades dos negócios.
- PMs também devem desenvolver habilidades para interpretar métricas de machine learning (ex:. precisão, perda) para métricas de produtos e vice-versa
- A pesquisa com consumidores precisa ser feita para entender qual é a precisão aceitável assim como quais casos de falhas são esperados contra quais casos não serão tolerados.
Começando a Lidar com Machine Learning
Apesar de o campo de machine learning estar se desenvolvendo rapidamente com algoritmos mais novos e sendo entregues cada vez mais rápido, os fundamentos continuam os mesmos. Para uma aprendizagem de machine learning centrada em produto, eu recomendaria o seguinte:
- Introduction to Machine Learningde Andrew Ng é um curso online no Cursera e é de longe um dos melhores pontos de partida para desenvolver um entendimento profundo em machine learning. Apesar de ser altamente técnico, vai te ajudar muito para os próximos anos.
- Desenvolva uma boa compreensão dos modelos básicos de machine learning e seus outputs (métricas, curvas, distribuições). Mesmo que você talvez não precise aprender os meandros de como os algoritmos funcionam, você deve criar um senso de como as métricas de performance são medidas e avaliadas.
- Ganhe experiência com oKaggle Competitions: Kaggle é uma plataforma de competição de ciência de dados onde empresas sobem seus conjuntos de dados e os problemas que eles estão tentando resolver.
Participantes experimentam diferentes técnicas para produzir os melhores modelos. É possível explorar as competições no Kaggle para entender casos diferentes de uso de machine learning, tentar descobrir o tipo de problema de machine learning (regressão/classificação, etc.)
Faça o download dos conjuntos de dados do Kaggle e entenda os tipos de input features e target values.
Leitura Complementar
Criar produtos que utilizam machine learning é uma atividade cada vez mais multidisciplinar. Mesmo que este artigo seja um ponto de partida para você entrar no mundo do machine learning, aqui vão alguns recursos extra para leituras relacionadas:
- Kaggle Competitions
- Machine Learning: An In-Depth Non-Technical Guidepor Alex Castrounis
- Machine Learning is Fun!por Adam Geitgey
- The What, Why and How of Recommendation Systemspor Matias Longo
- Jason’s Machine Learning 101
[1] Aggarwal, Alok (2018, January 20). Genesis of AI: The First Hype Cycle. Retirado de https://scryanalytics.ai/genesis-of-ai-the-first-hype-cycle/
[2] Ruder, Sebastian (2017). Transfer Learning — Machine Learning’s Next Frontier. Retirado de http://ruder.io/transfer-learning/
[3] Hoojat, Babak (March, 2015). The AI Resurgence: Why Now?. Retirado de https://www.wired.com/insights/2015/03/ai-resurgence-now/
[4] UCI Machine Learning Repository. Retirado de http://archive.ics.uci.edu/ml/datasets/Bank+Marketing
[5] Conti, Christina (June, 2017). Is My Machine Learning or Am I? Retirado de https://blogs.sas.com/content/hiddeninsights/2017/06/14/is-my-machine-learning/