Filtragem colaborativa: baseada em usuários e itens
Similaridade entre usuários, similaridade entre itens, métodos de vizinhança e similaridade cosseno para avaliações.
Filtragem colaborativa: baseada em usuários e itens é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é filtragem colaborativa?
Filtragem colaborativa (CF) recomenda itens aprendendo com o comportamento de muitos usuários. A ideia central é: pessoas que concordaram no passado tendem a concordar no futuro. Ela não precisa de descrições dos itens, apenas do histórico de interações.
A matriz usuário-item
A CF começa com uma matriz usuário-item, na qual as linhas são usuários, as colunas são itens e cada célula contém uma avaliação (ou fica em branco se o item não tiver sido avaliado). Essa matriz geralmente é muito esparsa, pois cada usuário avalia poucos itens.
import pandas as pd
matrix = ratings.pivot_table(
index="user_id", columns="item_id", values="rating"
)Dois tipos de CF
- Baseada em usuários: encontre usuários semelhantes a você e recomende o que eles apreciaram.
- Baseada em itens: encontre itens semelhantes aos que você apreciou e recomende esses itens.
Ambas dependem de uma medida de similaridade entre linhas (usuários) ou colunas (itens).
Similaridade de cosseno
A similaridade de cosseno mede o ângulo entre dois vetores de avaliações, ignorando a magnitude. Valores próximos de 1 indicam preferências muito semelhantes; valores próximos de 0 indicam que não há relação.
from sklearn.metrics.pairwise import cosine_similarity
filled = matrix.fillna(0)
user_sim = cosine_similarity(filled) # user x userPrevisão baseada em usuários
Para prever sua avaliação de um item, calcule uma média ponderada das avaliações feitas por usuários semelhantes, usando a similaridade como peso. Vizinhos mais semelhantes têm maior influência.
Fórmula da previsão
Avaliação prevista = sum(similarity * neighbor_rating) / sum(similarity), considerando os vizinhos que avaliaram o item. Subtrair primeiro a média de cada usuário (centralização pela média) corrige as diferenças entre usuários que geralmente dão avaliações altas ou baixas.
import numpy as np
def predict(sims, ratings_for_item):
mask = ~np.isnan(ratings_for_item)
if sims[mask].sum() == 0:
return np.nan
return np.dot(sims[mask], ratings_for_item[mask]) / sims[mask].sum()Escolhendo os vizinhos (k)
Em vez de usar todos os usuários, mantenha apenas os k vizinhos mais semelhantes. Isso reduz o ruído causado por usuários diferentes e acelera a previsão. k é um hiperparâmetro ajustável.
Similaridade baseada em itens
A CF baseada em itens calcula a similaridade entre colunas de itens, em vez de entre linhas de usuários. Recomende os itens mais semelhantes àqueles de que um usuário já gostou.
item_sim = cosine_similarity(filled.T) # item x itemPor que a abordagem baseada em itens é mais estável
As relações entre itens mudam lentamente: a similaridade entre dois filmes permanece aproximadamente constante. As preferências dos usuários e a base de usuários mudam mais rapidamente. Por isso, as similaridades entre itens podem ser pré-computadas e reutilizadas, gerando recomendações mais estáveis e escaláveis, razão pela qual a Amazon ficou famosa por adotar essa abordagem.
O problema do início a frio
A CF tem dificuldade com novos usuários ou itens que ainda não têm avaliações; não há nada para comparar. Soluções comuns incluem pedir algumas avaliações aos novos usuários ou recorrer a métodos baseados em conteúdo (abordados mais adiante).
Gerando recomendações
Calcule a pontuação de cada item não avaliado por um usuário, classifique os resultados em ordem decrescente e retorne os N primeiros como recomendações.
scores = {item: predict_for(user, item)
for item in unrated_items(user)}
top_n = sorted(scores, key=scores.get, reverse=True)[:10]Verificação rápida
Faça um teste dos seus conhecimentos sobre filtragem colaborativa.
Recapitulação
Você criou uma CF sobre uma matriz usuário-item, calculou a similaridade de cosseno, previu avaliações como uma média ponderada pela similaridade dos vizinhos e viu por que a CF baseada em itens é mais estável do que a baseada em usuários. Próximo tópico: fatoração de matrizes com SVD.
Perguntas Frequentes
A aula “Filtragem colaborativa: baseada em usuários e itens” é grátis?
Sim — o texto completo de “Filtragem colaborativa: baseada em usuários e itens” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Filtragem colaborativa: baseada em usuários e itens”?
Similaridade entre usuários, similaridade entre itens, métodos de vizinhança e similaridade cosseno para avaliações. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Filtragem colaborativa: baseada em usuários e itens”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Filtragem colaborativa: baseada em usuários e itens
- Fatoração de matrizes com SVD
- Filtragem baseada em conteúdo
- Sistemas híbridos e métricas de avaliação