Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Databricks: criando um sistema de recomendação

Databricks: criando um sistema de recomendação

Importando os dados - Apresentação

Olá, eu sou Igor do Nascimento Alves e vou te acompanhar no curso de Databricks: Introdução e práticas na Biblioteca MLlib do Spark Core.

Acessibilidade: Sou um homem branco, de cabelos pretos. Uso óculos de grau e estou utilizando fones de ouvido sem fio. Visto uma camiseta azul estampada e estou sentado no meu quarto. No canto direito, há um armário que comporta um objeto decorativo com o símbolo da escola de dados e uma TV desligada. No canto esquerdo, há um teclado (instrumento musical). As paredes do quarto são brancas e estão iluminadas por uma luz verde, que é a cor da escola de dados.

Neste curso, trabalharemos juntos no desenvolvimento de um projeto cujo objetivo é:

Criar um recomendador de músicas com um dataset de informações sobre músicas do Spotify.

A ideia é criar esse recomendador e explorar os dados na ferramenta Databricks.

Databricks

A ferramenta Databricks é muito importante e desconhecida. Ela nos permite realizar operações com grandes volumes de dados (Big Data) e faz isso preparando ambientes já pré-configurados.

Então vamos conseguir trabalhar com o Spark já preparado, utilizando e aproveitando melhor seus recursos. Por exemplo, conseguiremos utilizar o processamento paralelo para trabalhar com vários volumes de dados.

Ou seja, o Spark consegue distribuir grandes volumes de dados, tornando seu processamento possível e eficiente. No Pandas, por exemplo, a depender do conjunto de dados, não conseguimos realizar o processamento.

Mas, o Pandas é muito útil, ele oferece diversos recursos importantes que facilitam a manipulação dos dados. Para isso, no nosso projeto, utilizaremos o Spark e também a Pandas API, que era conhecida como Koalas.

A Pandas API nos permite acessar a maioria dos recursos do Pandas, sem perder essa característica importante do Spark, que é o paralelismo.

Durante o projeto, vamos aprender a criar o recomendador, usar o MLlib do Spark no ambiente do Databricks. Nosso foco não será tanto em um primeiro contato com o Spark, com o Databricks ou em aprender profundamente algoritmos de recomendação.

No projeto do curso, construiremos a seguinte função:

visualize_songs(name,url)

Nela, passaremos o nome de uma música e ela vai gerar uma recomendação. Isto é, uma playlist com músicas recomendadas. Por exemplo, uma música da Taylor Swift.

recomendador('Taylor Swift - Blank Space')

Sobre a playlist, podemos destacar algo curioso: três das músicas recomendadas são a própria música "Blank Space" da Taylor Swift. Por quê? Isso é uma característica importante que aprenderemos durante o projeto. Entenderemos porque essa recomendação está acontecendo e o funcionamento desse mecanismo de recomendação internamente.

Para aproveitar melhor o curso, é importante que você já tenha tido contato com o Databricks, com o Spark e com ferramentas de clustering, pois usaremos os algoritmos de clusters para criar o nosso recomendador.

Se você já fez o curso de Spark: sistema de recomendação, você já trabalhou nesse projeto, criou um recomendador de músicas utilizando a ferramenta do Spark e deve estar pensando se vale a pena continuar neste curso de Databricks?

A minha resposta é sim, faz sentido! Você vai conseguir aplicar o projeto que já conhece ao ambiente Databricks. Isso é muito importante para quem deseja se tornar uma pessoa cientista de dados, aplicar um antigo conhecimento a um ambiente novo.

E para quem não fez aquele curso, conto com sua companhia para desenvolver esse projeto do zero. Vamos lá!!

Importando os dados - Conhecendo as features

Neste curso, vamos desenvolver um recomendador de músicas.

Como criar um recomendador de músicas?

Existem duas formas principais. A primeira é baseada na análise do gosto da pessoa usuária. Utilizando uma plataforma como o Spotify, é possível marcar as músicas que gostamos e gerar uma playlist.

Abordagem 1: Avaliações e gostos dos usuários

Com acesso ao gosto de vários usuários, é possível agrupá-los e compreendê-los. Por exemplo, o usuário A gosta de músicas de rock, por exemplo. Outro usuário também gostou de músicas parecidas. Quais músicas o usuário A ouviu e o usuário B não ouviu, que podemos recomendar para o B? Essa é uma das mecânicas possíveis.

Abordagem 2: Semelhanças entre as músicas

Uma segunda mecânica possível é analisar as características das músicas. Por exemplo, se determinada música tem sons mais altos, é mais barulhenta ou é mais calma. Ou se uma música usa mais instrumentos ou é mais vocal?

Músicas têm diversas características e nós podemos agrupá-las por características semelhantes, como duração parecida, dançabilidade parecida. Então, agrupamos essas músicas que são muito semelhantes e se um usuário falou que gosta de uma música que está nesse grupo de semelhantes, podemos recomendar outras que também estão.

São duas técnicas possíveis para criar um recomendador de música e nós escolheremos a segunda, já que a nossa base de dados contém esse tipo de dado. Ela é composta por diversas músicas fornecidas pelo Spotify, e nós podemos colher as características dessas músicas.

Consultando a documentação do Spotify é possível acessar um pouco das características que o Spotify colheu das músicas.

Então, temos o Acousticness (acusticidade), Danceability (dançabilidade), e mais. O conteúdo está todo em inglês, por isso, preparamos uma tradução livre dessas características que será disponibilizada para que você possa explorá-las em português.

Há, por exemplo, a característica acústica da música. É uma variável numérica com medida de confiança de 0 a 1, com 1 para alta confiança de faixa acústica. O Spotify realiza um estudo automatizado das músicas e calcula a probabilidade de que elas sejam acústicas.

Outra característica é a dançabilidade, que descreve quão adequada uma faixa é para dançar com base na combinação de elementos musicais, incluindo tempo, estabilidade do ritmo, força da batida e regularidade geral.

Também existe a energia, instrumentabilidade, que serve para prever se ela não tem vocal. Em músicas clássicas, por exemplo, só ouvimos instrumentos. Se o conteúdo foi gravado ao vivo, já que muitas pessoas gostam de músicas gravadas em shows, então, nós temos essa característica.

Existe ainda a popularidade, a fala, por exemplo, um rap, que é quando temos menos instrumentos. Também há o tempo da música, pois algumas pessoas preferem músicas mais rápidas, e outras, mais curtas.

O ano da música é um fator muito importante. Vamos estudá-lo bem a fundo para entender o impacto que a época em que a música foi lançada tem. Existem pessoas que preferem músicas de determinada época, então podemos agrupar as músicas conforme a época em que foram lançadas.

Vamos trabalhar com esses dados, por isso, escolhemos a abordagem do recomendador de música relacionando as características musicais.

Essas características musicais estão disponíveis em uma base de dados no Kaggle. Um link será disponibilizado para download com a base de dados, mas, a ideia é explorarmos juntos a plataforma.

Vamos fazer o download dos arquivos e carregá-los no DataBricks, ambiente que utilizaremos para construir o projeto. Esse é o nosso próximo passo!

Importando os dados - Baixando os dados e importando

Para explorar melhor nosso conjunto de dados, vamos fazer o download e trazê-los para o Databricks. Para isso, vamos acessar a plataforma do Kaggle, onde a base de dados foi disponibilizada.

O nome da base de dados é Spotify Dataset. Essa ferramenta do Kaggle, nos permite criar notebooks. Para quem não tem familiaridade com ela, se trata de um ambiente onde cientistas de dados podem explorar notebooks e também disponibilizar bases de dados. Por exemplo, a do Spotify Dataset.

Navegando na página do Spotify dataset, encontraremos cinco arquivos: data.csv; data_by_artist.csv; data_by_genres.csv; data_by_year e data_w_genres.

Para conhecer essa base, não precisamos fazer o download direto. A própria ferramenta do Kaggle apresenta algumas informações sobre as músicas. Basta abrir os arquivos para saber como estão distribuídos os valores de cada coluna e conhecê-los.

Por exemplo, acessando a base data.csv, por exemplo, econtramos uma coluna de "Artists" ou "artistas", que mostra esses artistas de maneira interessante. Alguns tem apenas um nome, outros têm diversos nomes. São características interessantes e será legal explorá-las no Databricks.

Baixando os dados do Kaggle

Disponibilizamos uma atividade bastante simples para que você consiga fazer o download da base. Mesmo assim, vamos acompanhar rapidamente como o processo de download pelo Kaggle é interessante.

Poderíamos fazer o download de cada um dos arquivos, apertando o botão de "download". Na parte superior da tela, existe outro botão maior de "download" que informa 17 MB, e serve para baixar um zip compactado desses 5 arquivos.

Quando apertamos este botão, somos redirecionados para outra tela, onde aparece um pedido de registro na plataforma Kaggle, caso você queira conhecer melhor a plataforma. Se não quiser se registrar, pode ficar tranquilo! Temos uma atividade onde será possível fazer o download direto dos arquivos.

Após efetuar o cadastro no Kaggle, basta apertar o botão "download". Na outra tela, indicaremos o lugar em que o arquivo deve ser salvo. Eu vou salvar na minha pasta do curso. O nome do arquivo compactado é archive.zip.

Feito o download, podemos descompactar o arquivo na nossa máquina para, então, subi-lo no Kaggle. No nosso navegador, vamos acessar "Downloads" e apertar "Mostrar na pasta", assim o arquivo será descompactado. Já na pasta, vamos extrair o arquivo arquive.zip. Agora temos uma nova pasta com os 5 arquivos que desejamos carregar no Databricks.

Agora, vamos retornar à página do Databricks. Espero que você já conheça e tenha explorado essa plataforma. Teremos uma atividade reforçando como fazer o cadastro e usar a versão community, a que será utilizada nesse curso. Os recursos são limitados nessa versão, mas eles servirão para conhecermos como aplicar o MLlib do Spark no Databricks.

Os arquivos serão salvos no DBFS. Na página inicial do Databricks, lado esquerdo, acessaremos "Data" no menu lateral. Em "Data", deveria apacerer o botão informando o DBFS, que é onde queremos salvar esses arquivos, mas ele não está disponível.

Para ativar o DBFS, ainda no menu lateral esquerdo, vamos selecionar "settings > Admin Console". Com isso, abriremos uma nova página com três abas. A terceira aba é "workspace settings", vamos selecioná-la e procurar pelo DBFS.

Nas opções avançadas, ao final da página, há a opção "DBFS File Browser", que está desativada (Disabled). Vamos ativá-la. Agora, ela está habilitada. Será necessário atualizar a página para aplicar as mudanças, então, vamos dar um refresh na página.

Acessando "Data" novamente (menu lateral esquerdo), agora encontraremos a opção "DBFS" disponível. É nela que faremos o upload dos nossos arquivos. Então, apertaremos o botão "Upload" que está no canto direito. Aparecerá uma janela perguntando se queremos criar um caminho. Vou criar e chamá-lo de "/dados", ou seja, "FileStore/dados".

Mais abaixo, na janela, há um campo de "Files" com a indicação "Drop files to upload, or click to browse" onde podemos carregar os arquivos. Eles estão na área de trabalho, pasta "curso > archive > data". Na pasta "data", temos os cinco arquivos descompactamos. Podemos selecionar todos eles, apertar "abrir" e efetuar o upload de cada um deles.

Esse processo demorará um tempo, dependendo da velocidade da sua rede. Assim que o upload terminar, podemos apertar "Done". Agora, os nossos cinco arquivos estão na pasta "FileStore", subpasta "Dados". Nos acessaremos esses arquivos pelo notebook.

O próximo passo será ler esses arquivos através de um notebook. Teremos uma atividade para relembrar como criar um computing, onde nosso notebook será processado. Criado o cluster, partiremos para a leitura dos arquivos.

Sobre o curso Databricks: criando um sistema de recomendação

O curso Databricks: criando um sistema de recomendação possui 175 minutos de vídeos, em um total de 55 atividades. Gostou? Conheça nossos outros cursos de Machine Learning 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 Machine Learning acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas