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á?!
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:
Explorar a base de dados, isto é, entender quais informações ela contém e como elas funcionam;
Criar um cluster, ou seja, diversos agrupamentos que relacionem as músicas a outras características, além do gênero;
Usar o cluster para criar o recomendador e gerar uma playlist nova para o nosso site.
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.
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:
- Acousticness/Acústica: Variável numérica, medida de confiança de 0,0 a 1,0 se a faixa é acústica. 1.0 representa alta confiança de que a faixa é acústica.
- Danceability/Dançabilidade: Variável numérica, a dançabilidade descreve o quão adequada uma faixa é para dançar com base em uma combinação de elementos musicais, incluindo tempo, estabilidade do ritmo, força da batida e regularidade geral. Um valor de 0,0 é o menos dançável e 1,0 é o mais dançável.
- Duration_ms:Variável numérica, a duração da trilha em milissegundos.
- Duration_min: Variável numérica, a duração da faixa em minutos.
- Energy/Energia: Variável numérica, Energia é uma medida de 0,0 a 1,0 e representa uma medida perceptiva de intensidade e atividade. Normalmente, as faixas energéticas parecem rápidas, altas e barulhentas. Por exemplo, o death metal tem alta energia, enquanto um prelúdio de Bach tem uma pontuação baixa na escala. As características perceptivas que contribuem para este atributo incluem faixa dinâmica, intensidade percebida, timbre, taxa de início e entropia geral.
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.
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.