IGTI Blog
Sistemas de Recomendação

Os Sistemas de Recomendação e Big Data

Primeiramente, precisamos fazer a seguinte pergunta: o que são os Sistemas de Recomendação? Como eles podem influenciar nossa vida, e qual a relação entre eles e Big Data no contexto atual?

Os sistemas de recomendação já fazem parte da vida de praticamente todas as pessoas que utilizam redes sociais e smartphones. Diversos aplicativos e sistemas utilizam nossos dados para melhorar esse tipo de sistema. Muitos usuários fazem uso deles, sem nem mesmo saber o que são.

Os sistemas de recomendação fazem parte da área de estudo “aprendizado de máquina”, normalmente referenciada pelo seu nome em inglês: Machine Learning. Eles correspondem a uma das vertentes existentes nessa área, e que tiveram um elevado crescimento nos últimos anos. Esse tipo de sistema busca utilizar os dados de transações dos usuários, ou de suas preferências, para determinar algum item que possa ser relevante para este usuário. Alguns exemplos de dados que podem ser utilizados são: histórico de filmes assistidos, histórico de compras, histórico de vídeos vistos por streaming, artigos lidos, textos lidos, e outros.

Um exemplo muito comum, inserido em nosso cotidiano, é a avaliação de itens ou produtos com valores de 1 a 5 estrelas, normalmente utilizado por lojas online. Esses dados podem ser utilizados para inferir produtos interessantes para os usuários e assim recomendar algo relevante. Outro exemplo são os cliques que fazemos diariamente em páginas diversas ao navegarmos pela internet. Você já imaginou que tudo isso poderia estar associado com esse tipo de sistema?

Nos diversos livros e artigos sobre sistemas de recomendação, as pessoas que interagem com o sistema são denominadas usuários, e, os produtos, filmes e artigos, que podem ser recomendados, e estão cadastrados nos sistemas, são chamados de itens. Com esses nomes definidos, o assunto fica mais didático, pois é comum os sistemas de recomendação trabalharem com características similares entre os itens. Isso acontece para gerar a recomendação baseada em itens com semelhanças entre outros itens que já tiveram alguma interação com o usuário que entrou na página de uma loja, por exemplo.

Resumindo, são sistemas que buscam determinar itens relevantes para os diversos usuários, detectando padrões e interesses baseados em dados históricos e dos conteúdos dos itens com os quais os usuários interagiram.

Atualmente ocorreu um grande aumento da quantidade de transações efetuadas utilizando a Web, aumentando sua importância de forma significativa. Além disso, fenômenos como a internet das coisas (IoT), permitiram uma maior utilização de sistemas online e de compras com o apoio de smartphones. Com a enorme quantidade de dispositivos e facilidade de acesso à internet, a coleta de feedback dos usuários se tornou uma tarefa fácil, pois existem interações de diversas formas, com diversas páginas diferentes e com diversos produtos diferentes, algo proporcionado por esse grande aumento da utilização da Web.

Todos esses usuários interagindo com os sistemas de recomendação geram uma grande quantidade de dados, devido às inúmeras formas de avaliação ou feedback, retornadas por eles. Podemos ver casos onde são utilizados feedbacks com estrelas, com a opção de like, e de dislike, com barras para seleção de escala do quanto que o usuário gostou de um item e várias outras. O simples acesso a uma página, ou a compra de um produto podem ser dados utilizados para os modelos nos Sistemas de Recomendação.

Para ter uma ideia da quantidade de dados que são gerados diariamente e utilizados nesse tipo de sistema, pense nas atividades diárias de uma pessoa comum. Ao longo do dia essa pessoa irá escutar uma música no Spotify, ver alguns vídeos no YouTube, pesquisar por algum produto na loja online da Amazon, verificar os posts do Facebook, assistir a um filme ou seriado no Netflix. Essas atividades são muito comuns para diversas pessoas. Possivelmente você fez pelo menos duas delas hoje.

Agora vamos pensar não em apenas uma única pessoa, mas em todas que fazem isso diariamente. Fica difícil até pensar na quantidade de dados gerada. Só para ter uma noção, verifiquei no exato momento da escrita deste artigo a página Internet Live Stats. Nela estava a informação de que aproximadamente 3,5 bilhões de vídeos foram vistos no dia em que esse artigo foi escrito. Isso leva à necessidade da utilização de arquiteturas de Big Data, para tratar todos esses dados e gerar informações úteis, que podem ser aplicadas para treinar os modelos dos Sistemas de Recomendação.

Big Data é outra área de estudo em elevado crescimento atualmente, e está totalmente ligada aos Sistemas de Recomendação, principalmente esses que são utilizados em larga escala. Devido a isso, diversas empresas utilizam as plataformas de nuvem como: Google Cloud, Amazon AWS, Microsoft Azure, IBM Bluemix e outras. Nesses ambientes é possível alocar de forma rápida e razoavelmente fácil, clusters com elevado poder de processamento, para ajustar os modelos de Aprendizado de Máquina em geral, inclusive os de Sistemas de Recomendações. Diversas nuvens já possuem ferramentas e frameworks que geram sistemas de recomendação, não sendo necessária nem mesmo a implementação de um deles, basta apenas utilizar algum serviço fornecido pela nuvem.

Mas tendo tudo isso em vista, vem a grande pergunta:

            Por que implementar e utilizar Sistemas de Recomendação?

A resposta é bem simples. Imagine o número de vezes que você viu um produto em uma loja online que foi sugerido, e você comprou. Quando esses sistemas acertam nas sugestões, eles geram lucro. Quanto maior sua capacidade de acerto, maior será o seu lucro na loja online.

Outra situação comum é manter o usuário pagando por algum serviço. A Netflix é um ótimo caso disso. Muitas vezes acessamos sua aplicação de streaming e não sabemos o que queremos assistir. Rapidamente encontramos algo, baseado nas recomendações que ela fornece. O mesmo ocorre com o Spotify, quando não sabemos alguma música nova para escutar, ele possui diversas recomendações com base no que escutamos previamente, e podemos encontrar algo interessante nessas recomendações. Isso também ocorre com o YouTube e diversas outras páginas.

Assim, podemos ver a importância dos Sistemas de Recomendação, como eles estão associados com a nossa vida e nossas atividades diárias, e também a necessidade da utilização de plataformas de Big Data, pois muitos dados são gerados, principalmente para as aplicações de empresas grandes, como Google e outras, tornando necessário também um elevado poder de processamento.

Esse tipo de sistema é uma tendência e está em forte crescimento. Após ler esse artigo, tente observar em suas atividades, onde você utilizou Sistemas de Recomendação. Tenho certeza que você irá se surpreender com a quantidade de vezes que utilizou e não fazia ideia.

Professor autor: Pedro Kássio R. M. Loureiro de Carvalho