Identificação
Resumo
A primeira aula do módulo aborda o algoritmo central que vai dar vida ao app da Sprint 1: Filtragem Colaborativa baseada em Item. Saímos do problema da descoberta (catálogo grande, atenção curta) e percorremos as 4 famílias de SR até nos fixarmos no item-based. A matemática começa em forma de geometria — itens como vetores em Rn — passa por similaridade de cosseno, Pearson e Adjusted Cosine, e termina no algoritmo de predição.
O fechamento conecta o algoritmo ao sistema distribuído (RM-ODP), à arquitetura SOA do módulo e às 4 entregas obrigatórias da Sprint 1, incluindo o workshop com o parceiro.
Objetivos de aprendizagem
- OA-1Distinguir as 4 famílias de sistemas de recomendação (collaborative, content-based, knowledge-based, hybrid) e suas aplicações.
- OA-2Comparar abordagens user-based e item-based identificando pontos de escalabilidade.
- OA-3Calcular similaridade entre itens usando cosseno e Adjusted Cosine, justificando o ajuste pelo viés individual.
- OA-4Construir matriz item×item e aplicar o algoritmo de predição para um par (usuário, item).
- OA-5Avaliar um recomendador com métricas offline (precision@k, recall@k, MAP, NDCG).
- OA-6Mapear o sistema no RM-ODP e relacionar com as entregas da Sprint 1.
Pré-requisitos
- Álgebra linear básica: produto interno, normas e vetores em
Rn. - Estatística mínima: média e desvio (para entender o viés individual).
- Python operante (NumPy ou Pandas) para os exercícios práticos.
- TAPI lido — equipes formadas com domínio do parceiro do projeto.
Cronograma do dia
Três blocos de duas horas. Autoestudo prepara o vocabulário matemático, a instrução PE consolida o algoritmo e a janela de desenvolvimento foca em destravar a Sprint 1.
📚 Bloco 1 · Autoestudo
10h00 — 12h00Estudo individual orientado pelo material da aula 1.
- Leitura do Material da Aula 1 (filtragem colaborativa, similaridade, predição).
- Revisar produto interno e norma vetorial; lápis e papel para reproduzir cosseno entre 2 vetores 4D.
- Mapear, no domínio do parceiro, o que significa "item" e o que significa "rating" (explícito ou implícito).
- Caderno de bordo: anotar 2 dúvidas concretas sobre Adjusted Cosine.
🎓 Bloco 2 · Instrução PE — Aula em metodologia ativa
14h00 — 16h00Encontro síncrono com o professor especialista. 15 minutos de daily seguidos de 1h45 de aula em metodologia ativa.
- 14h00 — 14h15 · Daily da equipe.
- 14h15 — 16h00 · Algoritmo item-based, similaridade, predição e mapeamento RM-ODP.
🍴 Intervalo · Almoço
12h00 — 14h00Janela livre. Recomenda-se não tratar conteúdo da aula nesse período.
🛠️ Bloco 3 · Desenvolvimento do projeto · Workshop do Parceiro
16h00 — 18h00Janela de trabalho da equipe + preparação coordenada para o workshop com o parceiro.
- Mapear, em
docs/recomendador/dominio.md, "usuário", "item", "rating" e fontes de dados. - Implementar protótipo em Python que calcula similaridade entre 2 itens reais do parceiro.
- Listar perguntas únicas para o workshop — sem perguntas duplicadas ou sombreadas entre grupos.
- Iniciar esboço dos 4 artefatos da Sprint 1 (a equipe define dono e prazo de cada um).
- Abrir Merge Request
feat(reco): protótipo de similaridade.
Detalhamento da instrução PE (14h00 — 16h00)
Instrução estruturada em blocos curtos de exposição alternados com prática em pares. Nenhum bloco expositivo passa de 15 minutos sem interação direta dos alunos.
14h15
DailyDaily de abertura
Cada aluno responde em 1 minuto: o que aprendi no autoestudo / qual o item e rating no domínio do parceiro / minha dúvida concreta. O professor mapeia em quadro as dúvidas para encaixar nos blocos seguintes.
14h30
TalkO problema da descoberta · 4 famílias de SR
Exposição (12 min) com referência à long tail e à mudança de papel da curadoria. Encerra com a turma classificando 5 sistemas reais (Spotify, Amazon, Netflix, LinkedIn, YouTube) em uma das 4 famílias.
14h50
AtivaUser-based vs Item-based — debate em pares
Em duplas, alunos recebem um cenário do parceiro e defendem qual abordagem (user vs item) escolheriam. Apresentação de 2 duplas com argumentos opostos. Consolidação no quadro com critério de escalabilidade.
15h10
CodingSimilaridade na prática · Cosseno → Adjusted Cosine
Live coding em Python: cosseno puro entre 2 itens da matriz exemplo. Pares replicam e recalculam com Adjusted Cosine, observando como o viés individual muda o resultado.
15h30
AtivaPredição — exercício em grupo
Cada grupo recebe um par (usuário u, item i) e calcula a predição usando a fórmula. O quadro consolida as predições e debate-se se a recomendação faz sentido para o usuário.
15h45
TalkAmazon 2003 · Métricas e RM-ODP
Por que item-based venceu na indústria, métricas offline (precision@k, recall@k, MAP, NDCG) e mapeamento do recomendador nas 5 visões do RM-ODP — o algoritmo é só uma delas.
16h00
AtivaSprint 1 e workshop do parceiro
Apresentação das 4 entregas obrigatórias da Sprint 1 e do protocolo do workshop. Cada equipe define imediatamente dono e prazo dos artefatos no caderno de bordo. Síntese: cada aluno escreve "a aula 1 me ensinou que...".
Estratégias de metodologia ativa
- Geometria primeiro, fórmula depois — similaridade é apresentada como cosseno do ângulo antes de qualquer notação.
- Aprendizagem por contraste — debate cosseno puro vs. Adjusted Cosine sobre os mesmos vetores força a percepção do viés.
- Cenário do parceiro como laboratório — toda decisão é tomada em cima do domínio real do projeto, evitando exemplo abstrato.
O algoritmo de recomendação não é o produto. O produto é o sistema distribuído que entrega recomendação ao usuário a tempo.
Recursos e ferramentas
| Categoria | Recurso | Uso |
|---|---|---|
| Slides | slides/slide-lesson-1.html | Exposição na instrução PE |
| Material | materials/lesson-1-material.html | Autoestudo |
| Linguagem | Python 3 + NumPy/Pandas | Protótipo de similaridade |
| Ambiente | Jupyter Notebook ou Google Colab | Cálculos e gráficos |
| Repositório | docs/recomendador/dominio.md | Mapeamento do domínio do parceiro |
Verificação de aprendizagem
Avaliação formativa ao longo do dia, sem prova somativa.
- CR-1Defendeu a escolha entre user-based e item-based no cenário do parceiro com argumento de escalabilidade.
- CR-2Calculou cosseno e Adjusted Cosine entre 2 itens, explicando a diferença numérica.
- CR-3Aplicou o algoritmo de predição em par (usuário, item) chegando a um valor coerente.
- CR-4Mapeou no caderno de bordo o que é "item" e "rating" no domínio do parceiro.
- CR-5Abriu Merge Request
feat(reco): protótipo de similaridadecom cálculo entre 2 itens reais até as 18h00.
Aluno que sair às 18h sem protótipo de similaridade rodando e perguntas únicas para o workshop está em débito técnico para a aula 2.
Conexão com a aula 2
A aula 2 amplia para uma visão unificada de filtragem colaborativa, contrastando user-based e item-based em um mesmo pipeline.
- O protótipo de hoje vira a base do pipeline da aula 2.
- O domínio mapeado em
docs/recomendador/dominio.mdnão pode ser trocado entre as aulas.
Antes das 10h: ler material da aula 2, listar 3 limitações que o item-based puro tem no domínio do parceiro e estudar Pearson em paralelo a Adjusted Cosine.