Arquitetura real · Júnior
Spotify Discover Weekly / personalização
Arquitetura real em produção. Pontos centrais: MF implícita, CNN de áudio para cold start e lote semanal.
Resposta curta
Arquitetura real em produção. Pontos centrais: MF implícita, CNN de áudio para cold start e lote semanal. Discover Weekly é uma playlist personalizada com trinta músicas que a pessoa ainda não ouviu. Segundo o artigo-fonte, numa segunda-feira mais de cem milhões de usuários encontraram a playlist nova, e isso se repete toda segunda.
01 · CONTEXTO
Uma playlist nova toda segunda-feira
Discover Weekly é uma playlist personalizada com trinta músicas que a pessoa ainda não ouviu. Segundo o artigo-fonte, numa segunda-feira mais de cem milhões de usuários encontraram a playlist nova, e isso se repete toda segunda. O artigo investiga a recomendação por machine learning por trás dela: como o Spotify escolhe essas trinta músicas para cada pessoa a cada semana.
A fonte é um artigo de terceiros: a autora o escreveu depois de pesquisar e de conversar com um engenheiro de dados do Spotify, e ela mesma procura contato com quem trabalha lá. Por isso o caso descreve a arquitetura em alto nível, como o artigo a relata, e não como um relato oficial da empresa.
02 · ANTECEDENTES
Curadoria manual, etiquetas e a mistura de três modelos
Antes do Spotify, os serviços tentaram caminhos diferentes. O Songza fazia curadoria manual de playlists; a Pandora etiquetava atributos das músicas à mão; a The Echo Nest usava algoritmos sobre o áudio e o texto da música; a Last.fm usa filtragem colaborativa.
O Spotify não adotou uma técnica única: misturou estratégias de outros serviços. Comprou a The Echo Nest para ter acesso aos dados e algoritmos de análise de áudio e texto, e usa algoritmos de filtragem colaborativa parecidos com os da Last.fm. O resultado são três tipos de modelo, que o artigo apresenta em seguida.
| Modelo | O que analisa | Faixa nova, sem histórico |
|---|---|---|
| Filtragem colaborativa | Reproduções e outros sinais de uso | Poucos ouvintes para comparar |
| Linguagem natural | Texto sobre música na internet | Não capta o que ainda não foi mencionado |
| Áudio | Representações do próprio áudio | Não distingue faixa nova de popular |
03 · FILTRAGEM COLABORATIVA
Gosto sem estrelas: feedback implícito e vetores
Diferente da Netflix, o Spotify não tem estrelas com que o usuário avalie a música. O dado é feedback implícito, como a contagem de reproduções, somada a sinais como salvar a faixa numa playlist ou visitar a página do artista depois de ouvir.
Para calcular isso em grande escala, o artigo descreve uma matriz em que cada linha é um usuário e cada coluna é uma música do catálogo. Cada cruzamento marca se a pessoa ouviu ou não a faixa, e a matriz é esparsa. Uma fatoração dessa matriz gera um vetor por usuário e um vetor por música.
Os sinais de escuta, como reproduções, faixas salvas e visitas à página do artista, formam um feedback implícito sobre o gosto de cada pessoa.
Esses registros alimentam uma matriz de usuários por músicas, em que cada cruzamento marca se a pessoa ouviu ou não a faixa, e a matriz é esparsa.
A fatoração produz um vetor que representa o gosto de cada usuário e um vetor que representa o perfil de cada música.
Os vetores não significam nada sozinhos, mas servem para comparar: o de um usuário com os dos outros, o de uma música com os das demais.
04 · TEXTO E ÁUDIO
Faixas novas: o que se diz e o que se ouve
O segundo tipo de modelo parte de palavras: metadados de faixas, notícias, blogs e outros textos da internet. O Spotify rastreia a web em busca do que se diz de artistas e músicas, e os termos mais usados formam o que o artigo chama de vetores culturais, ou termos de topo. Cada termo tem um peso que indica a importância da descrição, e o modelo usa termos e pesos para criar uma representação da música que permite compará-la a outra.
O terceiro tipo analisa o áudio. Há uma razão adicional: uma faixa nova, com poucos ouvintes, tem pouco com que a filtragem colaborativa possa compará-la e, se ainda não foi mencionada na internet, o modelo de texto também não a capta. Os modelos de áudio não distinguem faixas novas de populares, e o artigo diz que incluí-los melhora a precisão do serviço.
A técnica é uma rede neural convolucional, a mesma tecnologia por trás do reconhecimento facial, adaptada de pixels para áudio. A entrada são representações tempo-frequência de quadros de áudio, concatenadas num espectrograma. Uma camada de agrupamento temporal global calcula estatísticas das características aprendidas ao longo da música, e a saída prevê características como andamento, se a faixa é acústica e dançabilidade.
O modelo de texto rastreia a web atrás de textos sobre música e do que se diz de artistas e músicas.
Os termos mais usados ganham pesos e viram uma representação da faixa, comparável à de outra.
A rede convolucional recebe representações tempo-frequência de quadros do áudio; segundo o artigo, esse modelo não distingue faixa nova de faixa popular.
A saída prevê características da faixa, como andamento, se é acústica e dançabilidade.
05 · JUNTANDO AS PEÇAS
Do dado bruto à playlist
O artigo resume o conjunto assim: os três tipos de modelo alimentam o pipeline de recomendações, que por fim gera a playlist Discover Weekly. Esses modelos se conectam a um ecossistema muito maior, com grandes quantidades de armazenamento de dados e clusters Hadoop para escalar as recomendações sobre matrizes gigantes, textos da internet e arquivos de áudio.
Armazenamento de dados e clusters Hadoop fazem parte do ecossistema maior ao qual os modelos se conectam.
Os modelos colaborativo, de texto e de áudio, os três tipos do artigo, se conectam a esse ecossistema.
As saídas dos três tipos de modelo alimentam o pipeline de recomendações.
O pipeline, por fim, alimenta a playlist Discover Weekly.
A pessoa recebe a playlist de trinta músicas renovada, como acontece toda segunda-feira.
Perguntas frequentes
O que é Spotify Discover Weekly / personalização?
Arquitetura real em produção. Pontos centrais: MF implícita, CNN de áudio para cold start e lote semanal.
O que o design de Spotify Discover Weekly / personalização cobre?
Ele está organizado nestas seções: Uma playlist nova toda segunda-feira, Curadoria manual, etiquetas e a mistura de três modelos, Gosto sem estrelas: feedback implícito e vetores, Faixas novas: o que se diz e o que se ouve e Do dado bruto à playlist.
Quanto tempo leva Spotify Discover Weekly / personalização e qual é o nível?
Leva cerca de 12 minutos para ler e tem nível Júnior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.