Estratégias de Aprendizagem Reforçada aplicadas à Recomendação Personalizada de Música

O número de músicas disponíveis em formato digital na internet cresce a cada dia, e atinge um volume excessivo. No momento em que decide ouvir música, um usuário tem a sua disposição uma quantidade tão grande de opções que sente a necessidade de uma ferramenta para auxiliá-lo na sua tomada de decisão. Do contrário é plausível acreditar que a uma grande parte desse volume ele nunca teria acesso. Plataformas online oferecem a esses usuários serviços de recomendação automática que analisam o seu histórico de escuta, e que mantém disponível para ele uma sequência de músicas que condizem com seu gosto pessoal.

Sistemas de Recomendação aparecem como uma área independente de pesquisa no início da década de 90, dentro do contexto de serviços on-line, quando pesquisadores começam a concentrar esforços em problemas diretamente relacionados com a previsão do comportamento de usuários ao avaliar itens os quais não tivessem ainda sido apresentados a eles. Na sua primeira formulação portanto o problema de recomendação automática se resumia a prever tais avaliações e sugerir ao usuário o item com maior valor previsto. O problema porém começa a se expandir e se diversificar em função das diversas aplicações possíveis, e também impulsionado especificamente por um prêmio oferecido pela empresa norte americana especializada em recomendar filmes Netflix, que oferecia um milhão de dólares a quem melhorasse em 1% a precisão do seu algoritmo de recomendação.

Fazer boas recomendações porém não se trata de simplesmente analisar dados históricos de escuta do usuário e sugerir músicas as quais ele tenha reagido de forma positiva, é preciso provê-lo com novidades, ou músicas que ele ainda não tenha escutado e que ele tenha grande probabilidade de gostar. É preciso também, além disso, saber fazer recomendações para um usuário recém inserido na plataforma, quando o sistema não possui qualquer informação sobre ele e deve ser capaz de fazer proposições pertinentes. Por último o sistema deve ser capaz de contabilizar cada reação por parte do usuário no seu tempo de execução e incorporá-la nas execuções seguintes afim de tornar esse processo dinâmico.