Neste artigo, exploramos a produtização de sistemas de recomendação baseados em filtro colaborativo, abordando aspectos como persistência da matriz de similaridade, engenharia de software, arquitetura, monitoramento do sistema e mais.

Persistência da Matriz de Similaridade

A estratégia de persistência da matriz de similaridade é relativamente simples. Como vimos, a matriz esparsa tem eficiência de memória, mas poderíamos usar também a matriz densa, fazendo um trade-off entre memória e tempo. A matriz esparsa é similar a um dataframe Pandas, podendo ser facilmente salva em CSV ou outros formatos. Já a matriz densa, por ser maior, pode exigir outros formatos como Parquet para melhorar a consistência e distribuição dos dados. Como a matriz representa o conhecimento do sistema, é um arquivo muito importante. Podemos usar sistemas cloud robustos para melhorar sua distribuição e garantir consistência.

  • A matriz de similaridade pode ser persistida de forma eficiente usando matriz esparsa ou densa, dependendo do trade-off entre memória e tempo.
  • A matriz esparsa pode ser facilmente salva em formatos como CSV, enquanto a matriz densa pode exigir formatos como Parquet para melhorar a consistência e distribuição dos dados.
  • A matriz de similaridade representa o conhecimento do sistema e, portanto, é um arquivo crucial que pode ser aprimorado com o uso de sistemas cloud robustos para garantir sua distribuição e consistência.

Armazenamento de Dados

A matriz de dados precisa estar facilmente acessível para os servidores que deixarão os dados disponíveis para consulta ou aplicarão processamento computacional. Em empresas multinacionais, temos servidores em diferentes localizações, próximos dos clientes.

  • Armazenamento de dados em buckets S3 ou HDFS para facilitar o acesso e processamento
  • Localização estratégica dos servidores em empresas multinacionais para atender às necessidades dos clientes em diferentes regiões

Engenharia de Software e Arquitetura

A engenharia de software depende do uso do sistema de recomendação, com foco em dois tipos principais: Batch e Online. Também é possível ter um sistema híbrido, mesclando batch e online, e é importante que os algoritmos sejam deployados como plugins.

  • Uso do sistema de recomendação na engenharia de software
  • Sistemas de recomendação em dois tipos principais: Batch e Online, podendo ser híbrido
  • Deploy dos algoritmos como plugins para facilitar a implementação e manutenção

Monitoramento do Sistema

Para monitorar a infraestrutura e serviços, precisamos de confiança e visibilidade sobre problemas. Uma combinação comum é Prometheus + Grafana. Além de métricas padrão como tempo de resposta, precisamos métricas específicas para o sistema, que o cientista de dados deve definir.

  • Prometheus + Grafana são uma combinação comum para monitorar a infraestrutura e serviços.
  • Além das métricas padrão, métricas específicas para o sistema, como percentual de retorno de IDs não encontrados, click-through rate e taxa de abertura de e-mails, são essenciais e devem ser definidas pelo cientista de dados.

Taxa de Atualização da Matriz de Recomendação

Essas métricas também ajudam a definir a taxa de atualização da matriz de recomendação. Em sites de moda, por exemplo, a atualização pode ser semanal ou quinzenal.

  • As métricas específicas para o sistema auxiliam na definição da taxa de atualização da matriz de recomendação.
  • Em sites de moda, a frequência de atualização da matriz de recomendação pode variar, sendo semanal ou quinzenal.

Considerações Finais

Fazer o deployment de um sistema de recomendação não deve ser feito sozinho. Há muitas dimensões onde profissionais como SREs, desenvolvedores e arquitetos são necessários. Porém, o cientista de dados precisa interagir com essas equipes e se fazer entender sobre quais requisitos são importantes para garantir a funcionalidade e monitoramento do sistema.

  • O deployment de um sistema de recomendação requer a colaboração de diversos profissionais, incluindo SREs, desenvolvedores e arquitetos.
  • O cientista de dados deve interagir com essas equipes para garantir a funcionalidade e monitoramento adequado do sistema.

Conclusão

Ao produtizar um sistema de recomendação, a colaboração entre cientistas de dados, desenvolvedores e arquitetos é essencial. É fundamental garantir a funcionalidade e o monitoramento do sistema, além de considerar a infraestrutura e as métricas específicas para o sucesso do projeto.