A Ciência por Trás das Recomendações Personalizadas

Desvendando Três Tipos Básicos de Sistemas de Recomendação

Daniel Soares
5 min readNov 7, 2023

Sistemas de recomendação, como o próprio nome sugere, são mecanismos que fornecem recomendações personalizadas a usuários. É provável que você mesmo tenha contato com tais sistemas no dia a dia. O Instagram os utiliza para recomendar novos perfis, a Netflix para recomendar filmes, o YouTube para vídeos e o Spotify para músicas.

Melhorar a experiência do usuário, aumentar as vendas, fidelizar clientes e economizar tempo e recursos são apenas alguns exemplos dos benefícios que o uso de tais sistemas pode trazer.

Existem diferentes tipos de Sistemas de Recomendação, e cada um funcionará melhor em determinado cenário. Hoje, veremos três deles: baseado em conhecimento, filtragem colaborativa e baseado em conteúdo.

Baseado em conhecimento

Esse é um estilo de recomendação que envolve filtros, é o usuário que decide que tipo de recomendação ele quer. Imagine uma que você está tentando adquirir uma mochila azul em uma loja online. Ao abrir a sessão de mochilas, irão aparecer produtos de diversas cores, então você seleciona um filtro para mostrar apenas mochilas da cor azul.

Fonte: Sistemas Colaborativos

Ok, temos as mochilas azuis, mas como é feita a ordenação dos itens? Essa é uma pergunta que não tem uma resposta única, pois irá depender da estratégia que você adotar. Posso mostrar os itens populares primeiro? Sim. Posso mostrar os itens mais bem avaliados primeiro? Sim. São várias possibilidades.

Filtragem colaborativa

Esse é um método que gera recomendações baseadas na interação entre itens e usuários. Ele usa a similaridade entre usuários para buscar referências sobre o que recomendar.

Existem dois tipos de Filtragem Colaborativa: baseada em vizinhança e baseada em modelo.

A baseada em vizinhança usa como base para suas recomendações o gosto de usuários semelhantes.

Imagine dois usuários de uma plataforma de streaming de vídeo. O primeiro usuário assistiu a três filmes e deu nota máxima para todos. Um segundo usuário assistiu a dois desses filmes e também deu nota máxima. Como ambos os usuários deram notas semelhantes a dois filmes, o terceiro, visto apenas pelo primeiro usuário, seria recomendado para o segundo, pois como aparentam possuir gostos semelhantes, supõe-se que o segundo usuário também irá gostar do terceiro filme.

Fonte: Autor

Para saber o quão semelhante dois usuários são, podemos usar métodos como a correlação de Pearson, correlação de Spearman e o tau de Kendall, onde quanto mais próximo a 1, mais semelhante dois usuários são, e, portanto, podemos considerá-los vizinhos. Uma forma alternativa de calcular essa similaridade é usar técnicas baseadas em distância, como a distância Euclidiana e a distância Manhattan, onde quanto mais próximo de zero, mais similar dois usuários são.

Já o estilo de Filtragem Colaborativa baseada em modelo, como o nome sugere, é quando usamos um modelo de Machine Learning para realizar as recomendações. Esse é um trabalho que normalmente envolve decomposição de matrizes usando algoritmos como o TruncatedSVD para encontrar usuários semelhantes.

Baseado em conteúdo

Como você deve ter percebido no tópico passado, a filtragem colaborativa só é possível se já tivermos uma base de usuários relativamente grande, pois assim conseguimos identificar usuários semelhantes e realizar as recomendações. Entretanto, esse cenário nem sempre é o que temos. Os primeiros clientes de um novo e-commerce, por exemplo, não teriam compras o suficiente para que fosse identificado o nível de similaridade entre eles.

Uma opção para lidar com recomendações quando não se conhece muito sobre o usuário é fazer recomendações baseadas em conteúdo. Esse estilo é baseado na recomendação de itens semelhantes ou complementares ao item que o usuário interagiu. Ele comprou um computador? Vamos recomendar um teclado. Ele assistiu um filme de terror? Vamos recomendar outro desse mesmo gênero.

Fonte: Data Science Dojo

Fazendo um mix de tudo

A abordagem mista permite que você crie sistemas mais robustos, capaz de gerar recomendações tanto para pessoas do qual você possui dados quanto para pessoas que você não possui nenhum tipo de dado. A engine de um e-commerce, por exemplo, se beneficiaria desse estilo de sistema. Nele, você poderia usar filtros colaborativos para fazer recomendações para usuários mais antigos que compram com certa frequência. Para novos usuários, você poderia usar um sistema baseado em conteúdo, já que você não teria muitos dados sobre os mesmos. Essa estratégia englobaria todos os clientes, tanto os novos quanto os mais antigos.

Como avaliar os resultados?

A avaliação de um Sistema de Recomendação irá variar conforme o tipo de sistema você construiu. Ela pode ser feita por meio de um teste de hipótese, comparando métricas de negócio (e.g receita, engajamento ou downloads) antes e após implementar a engine. Em alguns casos, como no uso de decomposições com SVD, a validação pode ser feita através do erro quadrático médio (mse) ou a raiz quadrada do erro-médio (rmse).

No caso de dados históricos, outra maneira de avaliar, semelhante a métodos mais costumeiros para Cientistas de Dados, seria dividindo os dados em treino e teste, construindo o sistema de recomendação com os dados de treino, sendo este os dados mais antigos, e verificando se ele é capaz de recomendar os itens que estão no conjunto de testes para seus respectivos usuários. Com isso, teríamos uma noção de como o nosso sistema está se saindo.

Fonte: Autor

Conclusão

Sistemas de recomendação são mecanismos poderosos que podem trazer muitos ganhos para quem os usa. Hoje, vimos três dentre várias maneiras de construir tais sistemas, que embora pareçam simples, possuem um alto grau de complexidade para desenvolvimento e validação.

Para mais conteúdos como esse, me siga aqui ou se conecte comigo através do LinkedIn.

--

--