0Pricing
Learn AI with Python · Aula

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 user

Previsã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 item

Por 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

  1. Filtragem colaborativa: baseada em usuários e itens
  2. Fatoração de matrizes com SVD
  3. Filtragem baseada em conteúdo
  4. Sistemas híbridos e métricas de avaliação
← Voltar para Learn AI with Python