Sistemas de Recomendação: o que são e como são usados
Você já percebeu que ao navegar por lojas online aparecem sugestões de produtos que parecem ler a sua mente?
Talvez você tenha comprado um livro sobre fotografia e logo depois surgiram recomendações de câmeras, lentes e até mesmo workshops de fotografia próximos à sua região.
O detalhe é que isso nem sequer se restringe a uma única rede social, você começa a ver esse tipo de anúncio por toda a internet. Coincidência? Provavelmente não.
Por trás dessa “bruxaria” está uma tecnologia que transforma nossas interações em experiências personalizadas. Quer saber como isso funciona?
Vem comigo e vamos explorar e descobrir todos os detalhes neste artigo.
O que são sistemas de recomendação?
A principal tecnologia relacionada a esse processo de surgirem recomendações de produtos, filmes, livro, entre outros, é a tecnologia dos sistemas de recomendação.
Sistemas de recomendação são ferramentas inteligentes projetadas para:
- Personalizar a experiência dos usuários;
- Sugerir itens, conteúdos ou serviços que atendam aos seus interesses ou necessidades.
Eles funcionam como guias digitais, analisando padrões de comportamento e preferências para prever o que pode ser mais relevante para cada pessoa.
Ao reunir e processar grandes volumes de dados, esses sistemas conseguem identificar tendências e fazer recomendações que tornam a interação com plataformas e serviços mais eficiente
Tipos de sistemas de recomendação
Se nós usamos dados para definir padrões de usuários, isso indica que grande parte desses sistemas são baseados em machine learning.
Normalmente, são construídos modelos capazes de generalizar um problema e conseguir gerar uma recomendação se baseando em algumas interações de um novo usuário em uma plataforma.
Porém, existem inúmeras opções de modelos de machine learning e até mesmo sistemas que não se baseiam em machine learning como, por exemplo, sistemas baseados em regras. Neste momento, vamos explorar alguns desses:
Filtragem colaborativa
Essa é uma técnica amplamente utilizada em sistemas de recomendação que se baseia na ideia de que pessoas com gostos ou comportamentos semelhantes no passado provavelmente terão preferências similares no futuro.
Nesse sentido, esse tipo de sistema não depende de informações sobre os itens em si (como descrições ou categorias), mas sim dos padrões de interação entre usuários e itens.
Por exemplo: que você está em uma plataforma de animes onde as pessoas avaliam os conteúdos, dando notas de 1 a 5.
Um sistema de recomendação colaborativa baseado em incorporações usa essas interações para sugerir novos animes que podem agradar a cada pessoa.
A filtragem colaborativa, como o próprio nome sugere, trabalha filtrando informações relevantes com base nos comportamentos e interações de um grupo de usuários.
No nosso exemplo, essa filtragem ocorre quando o sistema identifica padrões nas notas dadas pelos usuários e as utiliza para prever gostos futuros.
Por exemplo, quem dá uma nota boa para Pokémon talvez dê uma nota boa para Digimon, mas não tão boa para Frieren.
Noutras palavras, durante o treinamento o sistema aprende a criar representações matemáticas (embeddings) que encapsulam essas relações e similaridade.
É nessa etapa que a filtragem colaborativa atua: ela usa as interações para identificar as conexões mais relevantes entre usuários e itens, eliminando o que não contribui para a recomendação.
Depois que os embeddings são ajustados, a filtragem continua na fase de predição. O sistema “filtra” novamente os dados ao escolher apenas os animes mais próximos ao perfil do usuário no espaço vetorial.
Filtragem baseada em conteúdo
Essa abordagem utiliza as características dos itens para fazer sugestões personalizadas.
Ao invés de analisar as interações entre diferentes usuários, como na filtragem colaborativa, esse tipo de sistema foca exclusivamente nas preferências individuais e no conteúdo dos itens que a pessoa já demonstrou interesse.
O funcionamento começa com a análise dos atributos dos itens disponíveis.
No caso da plataforma de animes, esses atributos podem incluir gênero (ação, comédia, romance), número de episódios, data de lançamento, estúdio de produção, ou até coisas mais específicas, como presença de personagens com determinadas personalidades.
Cada anime é descrito por um conjunto dessas características, formando algo como uma “ficha técnica” detalhada.
Ao mesmo tempo, o sistema analisa o histórico de interações. Por exemplo, ele verifica quais animes o usuário assistiu, avaliou ou marcou como favoritos.
A partir dessas interações, o sistema constroi um perfil do usuário, que funciona como um resumo das características dos animes que ele prefere.
Se um usuário tende a assistir principalmente animes de ação com protagonistas fortes e enredos intensos, o perfil dele refletirá essas preferências.
Sistemas híbridos
Como você deve imaginar, um sistema híbrido é uma combinação de abordagens. Entretanto, essa combinação pode envolver múltiplas abordagens, indo além das que já foram citadas.
A ideia principal é aproveitar as forças de cada técnica enquanto minimiza suas limitações. De forma mais detalhada, a base de um sistema híbrido é integrar diferentes fontes de dados e algoritmos.
Por exemplo, a filtragem colaborativa é excelente para identificar padrões de comportamento entre usuários, mas sofre com o problema do “cold start”.
Ou seja, dificuldade em recomendar itens para novos usuários ou itens sem histórico de interação.
Por outro lado, a filtragem baseada em conteúdo funciona bem para novos usuários, mas pode limitar as sugestões a itens muito semelhantes ao que a pessoa já conhece.
Um sistema híbrido pode combinar essas duas abordagens para oferecer o melhor dos dois mundos.
Na prática, existem diferentes maneiras de construir sistemas híbridos. Uma abordagem comum é misturar os resultados de diferentes métodos, como calcular recomendações separadamente com filtragem colaborativa e baseada em conteúdo e depois combinar os dois rankings para oferecer as sugestões finais.
Outra técnica é encadear os métodos, onde as recomendações geradas por um sistema servem de entrada para outro.
Por exemplo, um sistema pode usar filtragem colaborativa para identificar um conjunto inicial de itens relevantes e depois aplicar filtragem baseada em conteúdo para refinar essas opções.
Algoritmos não personalizados
Para os casos onde as pessoas acabaram de entrar em uma plataforma também existe a possibilidade de usar algoritmos não personalizados, que oferecem sugestões sem considerar as preferências individuais dos usuários.
Em vez de focar nos gostos específicos de cada pessoa, eles utilizam informações gerais sobre os itens ou o comportamento global de todos os usuários na plataforma.
Alguns dos principais algoritmos não personalizados são a recomendação baseada em popularidade, a recomendação baseada em tendências, a rotação aleatória e as sugestões baseadas em categorias.
Como funciona um sistema de recomendação na prática
Para entender melhor os sistemas de recomendação vamos ver como seria a construção de um sistema de recomendação por filtragem colaborativa.
Imagine que nossa plataforma tem o registro dos animes que quatro usuários assistiram. Esses registros ficaram guardados em uma tabela onde cada linha representa um usuário e cada coluna representa um anime.
Nós adicionamos o valor 1 na tabela caso a pessoa tenha assistido o anime e o valor 0 caso a pessoa não tenha assistido.
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
user_anime_matrix = np.array([
[1, 0, 1, 0, 0], # Usuário 1
[0, 1, 1, 0, 0], # Usuário 2
[1, 0, 0, 1, 1], # Usuário 3
[0, 0, 1, 0, 1] # Usuário 4
])
Depois disso usamos a função cosine_similarity para calcular uma matriz de similaridade. Essa matriz mede o quão semelhantes são os animes entre si, com base nos padrões de interação dos usuários.
anime_similarity = cosine_similarity(user_anime_matrix.T)
# Exibindo a matriz de similaridade entre os animes
print("Matriz de Similaridade entre Animes:")
print(anime_similarity)
Saída:
Matriz de Similaridade entre Animes:
[[1. 0. 0.40824829 0.70710678 0.5 ]
[0. 1. 0.57735027 0. 0. ]
[0.40824829 0.57735027 1. 0. 0.40824829]
[0.70710678 0. 0. 1. 0.70710678]
[0.5 0. 0.40824829 0.70710678 1. ]]
Desse modo, quando tivermos um novo usuário que assistiu os animes do nosso portfólio teremos uma nova lista como essa:
user_interactions = np.array([1, 0, 0, 0, 1])
Assim, podemos calcular scores de recomendação fazendo a seguinte operação da matriz de de similaridade de animes com o array de interações do novo usuário:
anime_scores = user_interactions.dot(anime_similarity)
Se quisermos então recomendar dois novos animes podemos ordenar esse resultado, o anime_scores, e sugerir os dois primeiros na lista.
n = 2 # Número de recomendações
recommended_animes = np.argsort(anime_scores)[::-1][:n]
print("\nRecomendações para o usuário:")
for anime in recommended_animes:
print(f"Anime {anime + 1}") # +1 para ajustar o índice para 1-based (opcional)
Saída:
Recomendações para o usuário:
Anime 5
Anime 1
Exemplos de Sistemas de Recomendação de Sucesso
A grande questão é como isso é utilizado no mercado. Esse tipo de algoritmo tem cases muito famosos de aplicação. Vamos ver alguns:
Netflix
O caso da Netflix é muito semelhante ao da plataforma de animes que usamos como exemplo neste artigo.
O sistema de recomendação da Netflix é fundamental para personalizar a experiência dos usuários, sugerindo séries, filmes e jogos alinhados aos seus interesses.
Para isso, a plataforma utiliza uma combinação de técnicas avançadas de machine learning e análise de dados.
Ela coleta informações como o histórico de visualização, avaliações atribuídas a títulos, horários de acesso, dispositivos utilizados para assistir e preferências de idioma.
Assim, os algoritmos de recomendação consideram as semelhanças entre usuários com gostos parecidos, características dos títulos, como gênero, elenco e ano de lançamento e combina essas informações aos padrões de comportamento.
Amazon
Mas, e no caso de produtos em uma loja? O algoritmo de recomendação da Amazon é baseado na filtragem colaborativa item-a-item.
Essa abordagem analisa as interações dos usuários com os produtos, como o histórico de compras, itens visualizados e avaliações, para identificar padrões de comportamento.
Ao calcular a similaridade entre os produtos com base nessas interações, o sistema sugere itens que outros clientes com preferências semelhantes adquiriram ou visualizaram.
Por exemplo, se um usuário comprou um livro específico, o algoritmo recomenda outros livros que foram comprados por clientes que também adquiriram aquele título.
Picpay
Produtos financeiros também são produtos. O sistema do PicPay é baseado em sistemas híbridos.
Para personalizar as experiências de seus usuários eles combinam diferentes abordagens, como a filtragem colaborativa e a baseada em conteúdo.
Os resultados dos testes A/B em comparação com outras técnicas indicaram um aumento de até 3,2% na eficácia das recomendações.
Além disso, o PicPay tem investido em inteligência artificial generativa para aprimorar seu atendimento.
Desde março de 2024, todos os atendimentos automatizados passaram a utilizar essa tecnologia, resultando em um aumento na taxa de resolução de problemas de 20%.
Spotify
A música perfeita na playlist com uma música totalmente oposta ao seu gosto te oferecendo o plano pago talvez não seja coincidência.
O Spotify utiliza um sistema de recomendação sofisticado que combina diversas técnicas de aprendizado de máquina para personalizar a experiência musical de seus usuários.
Esse sistema analisa tanto o comportamento individual de cada usuário quanto às características das músicas para sugerir conteúdos alinhados aos seus gostos.
O Spotify analisa informações como as músicas ouvidas, artistas favoritos, tempo de reprodução de cada faixa e ações como curtir ou pular músicas.
Assim, a plataforma pode, também, aplicar uma combinação de algoritmos como a filtragem colaborativa, modelos baseados em conteúdo e modelos de deep learning na recomendação de conteúdo.
Como criar um sistema de recomendação eficaz
Para criar um sistema de recomendação eficaz, é fundamental começar entendendo profundamente o público-alvo e os dados disponíveis.
Primeiro, você deve definir claramente os objetivos do sistema: aumentar vendas, melhorar o engajamento ou personalizar a experiência do usuário.
Em seguida, deve coletar e preparar os dados necessários, assegurando que estejam limpos e relevantes.
Isso inclui informações sobre as interações dos usuários com os itens, características dos produtos e qualquer feedback disponível.
Você tem interesse em começar uma CARREIRA na área de DADOS, mas não sabe por onde começar?
Nesse vídeo, Guilherme Silveira e Paulo Vasconcellos compartilharam dicas essenciais para você dar os primeiros passos rumo a uma carreira de sucesso em Ciência de Dados, Análise de dados ou Engenharia de Dados:
Com os dados em mãos, escolha a abordagem de recomendação que melhor se adapta ao seu caso.
A filtragem colaborativa é ideal quando há um rico histórico de interações entre usuários e itens, enquanto a filtragem baseada em conteúdo funciona bem quando você possui detalhes sobre as características dos itens.
Considere também a possibilidade de utilizar sistemas híbridos para combinar os pontos fortes de diferentes métodos.
Desenvolva e teste os modelos escolhidos, avaliando seu desempenho com métricas apropriadas e ajustando conforme necessário.
Por fim, temos a etapa de implementação do sistema de recomendação de forma escalável e integrada à sua plataforma, sempre focando na experiência do usuário.
É importante monitorar continuamente o desempenho do sistema e se preparar para iterar e aprimorar os modelos com base no feedback e nas mudanças nos padrões de uso.
Lembre-se de que um sistema de recomendação eficaz não é estático, mas um componente dinâmico que evolui junto com os usuários e o mercado.
Entenda sobre o movimento de crescimento dessa área e as práticas e soluções aplicadas pelas empresas para organizar e padronizar operações com implantação de modelos de machine learning, incluindo sistemas de recomendação.
Tendências e futuro dos sistemas de recomendação
As tendências atuais nos sistemas de recomendação apontam para uma personalização cada vez mais profunda e contextualizada.
Com o avanço da inteligência artificial e do machine learning, os algoritmos estão se tornando mais sofisticados, capazes de interpretar não apenas o histórico de interações dos usuários, mas também seus comportamentos em tempo real, emoções e até mesmo intuições.
Isso permite que as recomendações sejam não apenas precisas, mas também oportunas, antecipando necessidades e desejos de forma quase preditiva.
Outra tendência significativa é a integração de sistemas de recomendação em múltiplas plataformas e dispositivos.
Com a Internet das Coisas (IoT) e a conectividade cada vez maior, os sistemas podem coletar e analisar dados de diversas fontes, como smartphones, smartwatches e assistentes virtuais.
Isso cria um ecossistema onde as recomendações são fornecidas de maneira fluida e contínua, acompanhando o usuário em diferentes contextos e situações do dia a dia.
Além disso, há um foco crescente na ética e na privacidade dos dados. Regulamentações como a LGPD no Brasil e o GDPR na Europa estão forçando as empresas a serem mais transparentes sobre como coletam e utilizam as informações dos usuários.
Isso está levando ao desenvolvimento de sistemas de recomendação que respeitam a privacidade, utilizando técnicas como aprendizado federado e anonimização de dados, sem comprometer a eficácia das recomendações.
O futuro dos sistemas de recomendação parece caminhar em direção à combinação de inteligência artificial generativa e interatividade.
Tecnologias como modelos de linguagem avançados podem permitir que as recomendações não sejam apenas selecionadas de um conjunto existente, mas criadas sob medida para o usuário.
Imagine, por exemplo, playlists de música geradas exclusivamente para um momento específico ou conteúdos personalizados em tempo real.
Conclusão
Diante de tudo isso, é preciso dizer que os sistemas de recomendação representam uma das aplicações mais fascinantes e impactantes da inteligência artificial no nosso cotidiano.
Então, se você curte o assunto e gostaria de ingressar nessa área ou aprimorar suas habilidades, o momento não poderia ser mais oportuno. Veja alguns dos cursos que já temos sobre esse assunto:
- Machine Learning: intro a sistemas de recomendação em Python - Aprenda os conceitos fundamentais e implemente seu próprio sistema de recomendação utilizando Python.
- Spark: Sistema de Recomendação - Descubra como utilizar o Apache Spark para desenvolver sistemas de recomendação eficientes e escaláveis.
- Databricks: Criando Sistema de Recomendação - Explore a criação de sistemas de recomendação na plataforma Databricks, integrando ferramentas de big data e machine learning.
Por fim, esses cursos oferecem uma excelente oportunidade para expandir seus conhecimentos e aplicar técnicas avançadas em projetos reais.
Mergulhe com a gente e transforme sua carreira nessa área cada vez mais impactante em nossas vidas.
Um abraço,
Créditos
- Conteúdo: Allan Segovia Spadini
- Produção técnica: Rodrigo Dias
- Produção didática: Cláudia Machado
- Produção didática: Tiago Trindade
- Designer gráfico: Alysson Manso
- Apoio: Rômulo Henrique