Alura > Cursos de Data Science > Cursos de Engenharia de Dados > Conteúdos de Engenharia de Dados > Primeiras aulas do curso Spark: sistema de recomendação

Spark: sistema de recomendação

Problema e ferramenta - Apresentação

Olá! Eu sou o Igor do Nascimento Alves, instrutor do curso de Sistemas de Recomendação com Pyspark da Alura.

Igor é um homem branco, jovem, de cabelos pretos e curtos e barba aparada. Veste um suéter azul marinho com capuz e está sentado em um ambiente de iluminação esverdeada. Ao fundo, visualizamos algumas estantes com livros e diversos objetos da cultura geek, muitos deles relacionados ao universo de Star Wars.

Para aproveitar melhor o conteúdo, é importante que você conheça um pouco das técnicas de clustering para manipulação de dados com Spark.

Nosso time recebeu uma demanda de melhoria do sistema de recomendação do nosso site, Amantes da música. Este site, tem um recomendador de músicas que utiliza apenas o gênero musical para fazer as recomendações, mas elas não estão agradando os visitantes.

Nosso desafio, portanto, é melhorar o sistema de recomendação, utilizando técnicas de clustering e redução de dimensionalidade. Para isso, usaremos alguns módulos do PySpark, como o de SQL, para manipularmos os dados, e o de Machine Learning, que permitirá o uso de diversas ferramentas voltadas para as soluções de clustering.

Como resultado do projeto do nosso curso será muito legal, nós criaremos uma função que, tendo uma música de referência, retornará uma playlist. Essa playlist será apresentada com capas dos álbuns e nomes das músicas.

Estou muito animado em construir esse projeto com você. Vamos lá?!

Problema e ferramenta - Entendendo o problema

Nós compomos a equipe de Ciência de Dados de uma empresa responsável pelo site "Amantes da música". Esse site conta com diversos artigos sobre curiosidades na música, notícias e com um recomendador de músicas, que é seu produto principal. Quando uma pessoa visita o site, ela pode tocar uma música que gosta e receberá, como retorno, uma playlist de músicas recomendadas.

Infelizmente, nosso recomendador não está fazendo tanto sucesso quanto gostaríamos. O motivo é que a estratégia de recomendação de músicas é muito simples. Apenas recomendamos músicas do mesmo gênero da que foi buscada/inserida. Tendo essa problemática, nosso time foi chamado para criar um recomendador melhor, que levasse em consideração mais características da música, para além do gênero.

Para resolvermos esse problema, recebemos o acesso de uma base de dados com diversas músicas e suas características. A partir dessa base de dados, construiremos nosso novo recomendador seguindo algumas etapas:

Pensando na performance, para não termos problemas quando trabalharmos com bases de dados grandes, utilizaremos o PySpark, ideal para esses casos.

Já sabemos qual questão precisamos resolver e também quais ferramentas usaremos e estamos prontos para darmos nossos primeiros passos.

Problema e ferramenta - Dicionário dos dados

O Colab é uma das ferramentas que utilizaremos no nosso projeto e nos permite trabalhar na linguagem Python com notebooks.

Preparei um notebook com a descrição e tradução livre de cada uma das características relacionadas às músicas que encontraremos na base de dados. Se você tiver interesse, pode buscar a documentação original, disponível neste link, que apresenta essas mesmas características, mas no idioma original, o inglês. A seguir, temos algumas delas traduzidas:

Essas descrições vêm da API do Spotify, ferramenta que utilizamos para gerar a base de dados. Portanto, essa é uma fonte segura que descreve as informações. Agora, vamos analisar uma a uma as características, assim conheceremos melhor a nossa base de dados e poderemos analisar o que faz sentido para a nossa proposta.

A primeira informação sobre as músicas é a Acústica, com valor de 0 a 1 e que representará se a música é acústica ou não. Em seguida, temos Dançabilidade, uma variável que indicará se a música foi pensada para dançar. Existem diversas características para determinar isso: tempo da música, estabilidade do ritmo, força da batida, dentre outros.

O próximo item é de duração da música, em minutos e em milissegundos. Aqui, podemos pensar se faz sentido manter as duas colunas, considerando que elas trazem basicamente a mesma informação. Depois, temos energia. Músicas energéticas, conforme a descrição, geralmente são altas, barulhentas, por exemplo, o death metal. O que gera essa informação é o timbre da música, a intensidade percebida e outros elementos.

Perceba que alguns desses elementos não estão inteiramente ligados ao gênero musical, mas compõe as demais características de uma música. O próximo item é se a música contém palavreado explícito na letra. O sim está definido com 1 e o não, com zero. É uma informação importante, pois algumas pessoas talvez prefiram que as músicas não tenham esse tipo de conteúdo.

O próximo é o Id da música. Essa informação tornará cada uma das músicas únicas em nosso registro. Além disso, o Id do Spotify pode ser utilizado na recuperação de outras informações da API do Spotify. Por exemplo, quando selecionarmos as músicas que queremos, ter o Id da música será algo relevante.

Em seguida, avaliamos se a música é instrumental, isto é, se a música tem vocais ou se ela é só instrumentais. Também temos a palavra-chave, um conceito mais musical, referente às notas musicais relacionadas com determinada música. Para compreendermos essa feature de fato, precisamos de uma pessoa especialista na área trabalhando na nossa empresa.

No próximo item, analisamos se a música é gravada ao vivo. Muitas pessoas gostam desse estilo de música, por exemplo, shows com plateia cantando. Essa feature descreverá, portanto, se a música que ouvimos foi gravada ao vivo. Também temos o volume de decibéis, isto é, a amplitude máxima que teremos na música e o modo, que fala sobre a escala da música.

O próximo item é bastante importante: a popularidade. Existe um algorítimo que determina se a música está popular ou não. Essa popularidade é medida numa escala que vai de 0 a 100, a partir da quantidade de plays que a música teve recentemente.

Depois, temos a feature de fala, que descreve se o produto é apenas falado, não necessariamente uma música, por exemplo, os podcasts. Neste item, vários intervalos são descritos, pois algumas músicas são praticamente só faladas, é o caso do rap. A faixa de valores descreverá o que é de fato uma música.

Outra informação é o tempo, que não diz respeito à duração da música, mas às batidas por minuto. Também temos a valência que avalia se a música é alegre, deprimida, eufórica, dentro outros. Por último, temos o ano de lançamento da música, que pode ser relevante para determinar qual a melhor música a ser recomendada para as pessoas.

Conhecemos um pouco a nossa base de dados e sempre podemos recorrer a esse dicionário quando tivermos dúvida sobre o que as features significam. É muito importante que você conheça sua base de dados antes de começar qualquer trabalho.

Sobre o curso Spark: sistema de recomendação

O curso Spark: sistema de recomendação possui 171 minutos de vídeos, em um total de 54 atividades. Gostou? Conheça nossos outros cursos de Engenharia de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Engenharia de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas