Sua empresa não precisa de um Data Lake para iniciar um projeto de Machine Learning

TL; DR:

  • Você não precisa de um Data Lake para iniciar projetos de Aprendizado de Máquina
  • Dados estruturados e confiáveis normalmente são o suficiente
  • É mais importante começar a construir um modelo simples com os dados disponíveis do que começar com um sistema complexo de coleta de dados

Este texto foi elaborado e escrito por um grupo de profissionais que atuam na área de Aprendizado de Máquina com experiência em diversos clientes. Estes, por sua vez, possuíam diferentes níveis de maturidade no quesito de estruturas de dados e informações da organização.

Não é novidade que o volume de dados gerados por minuto hoje em dia é imenso. Com a maioria dos sistemas informatizados nas empresas, toda iteração é armazenada de alguma forma, seja ela entre o cliente e a empresa, entre os colaboradores ou com fornecedores. Nas gigantes de tecnologia, os números são assustadores. Em agosto de 2019, segundo a Forbes [5], a cada minuto:

  • 694.444 horas de vídeo são assistidas no Netflix
  • 1.389 reservas são feitas no Airbnb
  • 4.500.000 vídeos são assistidos no YouTube
  • 512.200 tweets são enviados no Twitter
  • 277.777 stories são postadas no Instagram
  • 9.772 corridas de Uber são solicitadas

Claro, nem todas as empresas possuem tantos usuários ou tráfego como as citadas acima, mas isso não quer dizer que elas não sofram com grandes volumes de dados sendo criados e processados a cada instante. Segundo a The Economist [6], dados são hoje os recursos mais valiosos do mundo, superando até mesmo o petróleo. Isto se deve aos avanços nos campos de Aprendizado de Máquina e Ciência de Dados, que nos deram técnicas que permitem tirar insights valiosos destes dados. Então, como lidar com tantos bytes, de forma a não deixar nada vazar?

Primeiramente, armazenamento se torna um pesadelo. No Twitter, por exemplo, 8 terabytes são armazenados por dia [2]. Um computador pessoal convencional tem em média 1 terabyte de armazenamento, ou seja, seriam necessários 8 computadores por dia para armazenar o fluxo de tweets. As empresas têm que estar preparadas para armazenar os seus próprios dados.

Em segundo lugar é preciso prestar atenção ao histórico. Raramente modelos de aprendizado de máquina são úteis sem um histórico longo o suficiente que possa ser analisado. Empresas que operam no mercado já há algum tempo e foram sábias o suficiente para armazenar seus dados certamente já tem material suficiente para iniciar um projeto de aprendizado de máquina, mas onde se encontram estes dados? Na maior parte das vezes, em planilhas de Excel (ou arquivos .csv), em algum servidor da empresa ou no computador de algum analista. Nas outras vezes, estes dados estão em bancos de dados de aplicações transacionais, apenas esperando alguma query feita para gerar um relatório mensal.

Em empresas que possuem mais maturidade quanto ao armazenamento e processamento de dados, é comum encontrar-se Data Warehouses. Estes geralmente se dão por um conjunto de processos de consolidação de informações selecionadas por especialistas e analistas de negócios, que irão por sua vez alimentar painéis e sistemas de Business Intelligence. Tais empresas já estão ciente do valor da informação que produzem e conseguem obter insights para apoiar decisões baseadas nos dados, mesmo que ainda não possuem aplicações que usem aprendizado de máquina.

É com este cenário que surge a ideia de Data Lakeum lugar onde todos os dados são armazenados, de forma que ao se iniciar um outro projeto de aprendizado de máquina, toda a informação necessária já estará disponível. Mas seria o Data Lake realmente um pré-requisito para projetos de aprendizado de máquina?

Data Lake x Data Warehouse

Algumas empresas já possuem Data Warehouses instaurados, o que na prática, é muito diferente de um Data Lake. Primeiro, vamos entender o que é cada um.

Data Warehouse

Em português, “Armazém de Dados”, é normalmente um banco de dados estruturado por assunto [4] (por exemplo, faturas dos clientes) que padroniza os dados dos vários sistemas da empresa, sendo atualizado periodicamente (por exemplo, uma vez por dia) por meio de processos de ETL (Extract, Transform and Load, ou seja, extrair os dados dos bancos, aplicar as transformações necessárias e carregá-los no Data Warehouse). Este banco visa dar suporte para análises empresariais sem comprometer a eficiência dos bancos transacionais.

Exemplo de modelo de dados de um Data Warehouse [7]

Data Lake

Já o Data Lake (“Lago de Dados” em português) é um repositório centralizado para armazenar dados estruturados (tais como informações das tabelas dos bancos de dados) e não-estruturados (como documentos e imagens), sem realizar pré-processamento e com metadados que permitem navegar pela informação futuramente.

Exemplo de estrutura de um Data Lake

Quais as principais diferenças?

Apesar de ambos terem sido criados para permitir analisar informações sem impactar os processos vigentes da empresa, existem diferenças cruciais entre um Data Lake e um Data Warehouse, como mostrado na tabela abaixo [1] [8]:

Mas afinal, o Data Lake é um pré-requisito para Aprendizado de Máquina?

Construir um Data Lake não é uma tarefa simples. É necessário o conhecimento de todos os processos dos quais se deseja capturar os dados, quais tipos de bancos de dados são aplicados, quais ferramentas são capazes de monitorar a evolução destes bancos de dados e para onde enviar os dados coletados. Além disso, é necessário especificar quais dados serão coletados pois um grande volume de dados pode requerer melhorias na infra-estrutura, como comprar mais discos, aumentar a largura de banda da rede, adicionar redundâncias, etc.

Normalmente, quando desejamos aplicar técnicas de aprendizado de máquina para melhorar algum processo, já conhecemos dados relevantes e sabemos como eles estão mapeados. Estes dados podem servir para a construção de um modelo inicial que, mesmo sem usar todas as informações, seja preditivo em algum nível útil.

É uma prática comum no aprendizado de máquina construir inicialmente um modelo simples, com apenas algumas das informações disponíveis, e então iterar sobre o processo para melhorar sua capacidade de predição. A construção de um Data Lake pode levar mais tempo do que o desenvolvimento de um modelo preditivo.

Para exemplificar, vamos supor que a empresa deseja prever sua demanda nos próximos meses. Uma profissional é contratada para desenvolver o modelo de aprendizado de máquina que fará a predição. Esta profissional pode ter duas escolhas:

  1. Construir um Data Lake para captar todos os dados relacionados a venda
  2. Acessar os bancos de dados de vendas e trabalhar com as informações já disponíveis

Na primeira opção a profissional terá mais informações disponíveis para construir seu modelo, mas levará boa parte do projeto coletando estas informações e esperando formar um histórico significativo, para só então poder começar a desenvolver seu modelo.

Já na segunda opção, a profissional terá apenas a visão dos analistas sobre os dados e precisará ter o cuidado de não impactar os bancos transacionais… mas poderá iniciar o desenvolvimento do modelo preditivo imediatamente. Isso significa que a profissional terá mais domínio sobre o problema depois de um curto tempo, o que fará com que ela entenda quais fatores são mais relevantes e preditivos. Além disso, é possível que apenas as informações utilizadas na primeira tentativa já sejam o suficiente para se construir um bom modelo preditivo!

Após o desenvolvimento e implantação do modelo preditivo, a profissional pode então querer desenvolver o Data Lake para alimentá-lo e melhorá-lo futuramente. Ela agora tem conhecimento suficiente do processo e de suas variáveis para saber quais dados deve capturar e armazenar!

Para iniciar um projeto de aprendizado de máquina uma empresa necessita de:

  • Um histórico relevante de dados sobre o processo. O tamanho do histórico em si varia de acordo com o objetivo do projeto.
  • As informações devem estar mapeadas, ou seja, deve-se conhecer em quais bancos de dados são armazenadas e sob quais condições são geradas.
  • Os profissionais da área precisam ter acesso a essas informações. Em empresas grandes, é muito comum o cenário onde apenas os administradores da área conheçam e possuam acesso aos bancos de dados.
  • As informações precisam ser consistentes. Nada adianta se um sistema usa o CPF do cliente como identificador e outro usa o RG, pois dificilmente será possível identificar os dados do mesmo cliente em ambos os sistemas. Quando fazemos engenharia de dados, constantemente nós cruzamos informações de duas ou mais fontes.
  • Os dados devem ter qualidade e devem ser confiáveis. Se os sistemas permitem que erros sejam gravados, torna-se difícil distinguir uma informação real de uma informação corrompida.
  • Data Lake e Data Warehouse são aceleradores do processo e ajudam a desenvolver modelos de melhor qualidade.

Afinal, o Data Lake é um pré-requisito para aprendizado de máquina? Não. É perfeitamente possível iniciar a construção de um modelo preditivo sem ter um Data Lake pronto e funcionando, mas a existência do mesmo certamente ajuda e acelera o desenvolvimento. Entretanto, em termos de prioridade, é mais interessante ter modelos preditivos implantados do que um Data Lake.

Agradecimentos ao time Kunumi responsável pela elaboração deste artigo (em ordem alfabética):

Alex Barros, Eduardo Nigri, Guilherme Andrade, Lucas Miranda, Lucas Parreiras, Luis Sepulvene, Thays Silva, Tiago Alves

Sobre a Kunumi:

Fundada em 2016, a Kunumi é a empresa mais jovem de um grupo de sucesso que acumula mais de 20 anos desenvolvendo machine learning. Executa projetos multidisciplinares e pesquisas nos setores de saúde, arte, educação, indústria química, varejo e financeiro, dentre outros. Aplica a metodologia proprietária Evolvi em empresas parceiras para maximizar a geração de valor e mitigar os riscos inerentes à implantação de projetos de inteligência artificial.

Referências:

  1. https://aws.amazon.com/big-data/datalakes-and-analytics/what-is-a-data-lake/
  2. https://www.slideshare.net/raffikrikorian/twitter-by-the-numbers/13-Where_do_they_go_Followed
  3. https://www.deeplearning.ai/machine-learning-yearning/
  4. https://www.devmedia.com.br/data-warehouse/12609
  5. https://www.forbes.com/sites/nicolemartin1/2019/08/07/how-much-data-is-collected-every-minute-of-the-day/#16ff3e883d66
  6. https://www.economist.com/leaders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but-data
  7. https://databricks.com/glossary/data-warehouse
  8. https://www.talend.com/resources/data-lake-vs-data-warehouse/

Outros artigos: