Aprendizado de Representações
Visão geral
Aprendizado de representações (representation learning) é o conjunto de métodos que aprendem características úteis a partir de dados automaticamente, em vez de depender de características elaboradas manualmente. Uma representação aprendida mapeia uma entrada (x) (texto, imagem, áudio, grafos etc.) para um vetor (z \in \mathbb{R}^d) (frequentemente chamado de incorporação (embedding)) de modo que as tarefas posteriores se tornem mais fáceis — tipicamente porque a representação captura os fatores relevantes de variação enquanto descarta detalhes de incômodo.
Em aprendizado profundo (deep learning), o aprendizado de representações é o padrão: camadas intermediárias de Redes Neurais aprendem características progressivamente mais abstratas. O que mudou ao longo da última década é como treinamos representações — especialmente por meio de pré-treinamento em larga escala e Aprendizado Auto-Supervisionado — e o quão amplamente as reutilizamos via transferência.
Por que as representações importam
Uma representação “boa” pode transformar um problema difícil de aprendizado em um mais simples.
- Eficiência amostral: se (z) já codifica estrutura útil, você precisa de menos exemplos rotulados para treinar um classificador ou regressor por cima.
- Generalização: representações que capturam fatores estáveis, causais ou invariantes frequentemente generalizam melhor para novos ambientes.
- Reuso e modularidade: o mesmo modelo de incorporação pode suportar muitas tarefas: classificação, recuperação, agrupamento, detecção de anomalias, recomendação.
- Eficiência computacional: em vez de executar um modelo grande para cada consulta, você pode pré-computar incorporações e fazer busca rápida por vizinhos mais próximos.
Intuição prática: se você consegue incorporar imagens de produtos, consultas de usuários e texto de itens em um espaço vetorial compartilhado, então a recuperação (retrieval) vira “encontrar os vetores mais próximos” em vez de “executar um codificador cruzado (cross-encoder) complexo em todos os candidatos”.
Uma visão formal básica
O aprendizado de representações geralmente define um codificador (encoder) (f_\theta) que mapeia entradas para vetores:
[ z = f_\theta(x) ]
Opcionalmente, uma cabeça (head) (g_\phi) mapeia (z) para uma saída da tarefa:
[ \hat{y} = g_\phi(z) ]
A pergunta-chave é: como treinamos (f_\theta) para que (z) seja útil?
- Em aprendizado supervisionado de representações, rótulos (y) guiam quais informações manter.
- Em aprendizado não supervisionado ou auto-supervisionado, o sinal de treinamento vem da própria estrutura de (x) (prever partes dos dados, discriminar visões, reconstruir etc.).
- Em configurações multitarefa (multi-task), múltiplos objetivos moldam um espaço de incorporação compartilhado (ver Aprendizado Multitarefa).
O que torna uma representação “boa”?
Tarefas diferentes preferem propriedades diferentes, mas desideratos comuns incluem:
Invariância a fatores de incômodo
Para reconhecimento de imagens: robustez a pequenas translações, mudanças de iluminação, poluição de fundo.
Para fala: robustez a ruído de canal.Sensibilidade a fatores relevantes para a tarefa
Se a tarefa é identificação de locutor, você quer pistas do locutor, não invariância a elas.Compacidade / minimalidade
Manter informação suficiente para resolver tarefas, mas não tanta a ponto de ajustar demais ao ruído. Essa ideia está relacionada à perspectiva do gargalo de informação (information bottleneck).Separabilidade linear
Muitas vezes queremos que modelos simples (até classificadores lineares) funcionem bem sobre (z). “Acurácia de sonda linear” é uma avaliação comum.Geometria bem comportada
Itens similares devem estar próximos (sob distância do cosseno ou Euclidiana), itens dissimilares, distantes. Muitos métodos de incorporação otimizam isso explicitamente.
Na prática, você normalmente não “prova” que sua representação é boa; você a mede via desempenho em tarefas posteriores, qualidade de recuperação, robustez e transferência.
Fundamentos teóricos (modelos mentais úteis)
Representações distribuídas e composicionalidade
Representações neurais são tipicamente distribuídas: conceitos são codificados ao longo de muitas dimensões em vez de uma única característica “one-hot”. Isso suporta generalização composicional — novas combinações de fatores conhecidos podem ser representadas sem enumeração explícita.
Hipótese da variedade
Dados de alta dimensão (como imagens) frequentemente ficam próximos de uma variedade (manifold) de menor dimensão. O aprendizado de representações busca encontrar coordenadas nessa variedade (ou próximas a ela) em que a estrutura seja mais fácil de modelar (por exemplo, agrupamentos que se alinham com a semântica).
Viés indutivo e equivariância
Arquiteturas embutem suposições sobre o mundo:
- CNNs incentivam equivariância a translação (útil para imagens).
- Transformers codificam estrutura de sequência e padrões de atenção (ver Arquitetura Transformer).
Esses vieses afetam quais representações são fáceis de aprender e com que eficiência.
Funções objetivo moldam a geometria
Muitos objetivos modernos esculpem diretamente o espaço de incorporação:
- Aprendizado de métricas (metric learning): aproxima positivos, afasta negativos.
- Aprendizado contrastivo (contrastive learning): similar, mas frequentemente com forte aumento de dados e grandes lotes/filas de negativos.
- Reconstrução: comprimir e depois reconstruir, incentivando representações a reter informação necessária para recriar as entradas.
Mesmo quando o codificador é o mesmo, a perda pode produzir incorporações muito diferentes.
Principais famílias de métodos de aprendizado de representações
Aprendizado supervisionado de representações
O caminho mais simples: treinar um modelo de ponta a ponta com rótulos. A penúltima camada (ou estado oculto agregado) vira a incorporação.
Exemplos:
- Classificação de imagens com uma CNN; usar as características antes do classificador final como incorporações.
- Classificação de texto com um transformer; usar a incorporação do token
[CLS].
Prós:
- Frequentemente produz características muito relevantes para a tarefa.
- Treinamento e avaliação diretos.
Contras:
- Requer rótulos.
- Pode se especializar demais no espaço de rótulos de treinamento e falhar em transferir se a tarefa mudar.
Aprendizado não supervisionado via reconstrução (auto-codificação)
Autoencoders aprendem um codificador (f_\theta) e um decodificador (d_\psi) para reconstruir a entrada:
[ \hat{x} = d_\psi(f_\theta(x)) ]
Variantes:
- Autoencoders de remoção de ruído (denoising autoencoders): reconstruir dados limpos a partir de entrada corrompida; incentiva robustez.
- Autoencoders esparsos (sparse autoencoders): incentivam ativações esparsas para aprender fatores interpretáveis.
- Autoencoders variacionais (VAEs) (variational autoencoders): aprendem variáveis latentes probabilísticas; as representações são moldadas por um termo de prior e um termo de reconstrução.
Prós:
- Não requer rótulos.
- Pode aprender estrutura de uso geral.
Contras:
- A reconstrução pode supervalorizar detalhes de baixo nível (por exemplo, fidelidade perfeita em pixels) que não são semanticamente úteis.
- Espaços latentes podem ficar menos alinhados com a semântica da tarefa em comparação com métodos contrastivos.
Aprendizado auto-supervisionado (previsão sem rótulos)
A auto-supervisão cria uma tarefa supervisionada a partir de dados brutos.
Paradigmas comuns:
- Previsão mascarada (masked prediction) (especialmente em linguagem e cada vez mais em visão/áudio): mascarar partes da entrada e prevê-las.
- Pré-treinamento de LLM: prever tokens mascarados/próximos; estados internos se tornam representações ricas.
- Aprendizado contrastivo: criar duas “visões” do mesmo exemplo (aumentos) e treinar incorporações para corresponder, enquanto separa outros exemplos.
- Exemplo: objetivos tipo SimCLR para imagens; objetivos tipo CLIP alinham incorporações de imagem e texto.
Isso é central para modelos fundamentais modernos e é coberto mais profundamente em Aprendizado Auto-Supervisionado.
Prós:
- Escala extremamente bem com dados.
- Frequentemente produz incorporações transferíveis.
Contras:
- Sensível a escolhas de projeto: aumentos, tamanho do lote/negativos, temperatura, prevenção de colapso.
Aprendizado de métricas e perdas de ranqueamento
Quando seu produto é um espaço de incorporação para busca por similaridade, você frequentemente treina com perdas como:
- Perda tripla (triplet loss): incentivar (d(z_a, z_p) + m < d(z_a, z_n))
- Perda contrastiva (contrastive loss): positivos próximos, negativos distantes
- InfoNCE (contrastiva): softmax sobre negativos
Elas são comuns em reconhecimento facial, correspondência de produtos e sistemas de recuperação.
Aprendizado multitarefa e por transferência
Uma única representação pode servir a múltiplas tarefas. O aprendizado multitarefa treina um codificador compartilhado com várias cabeças (ver Aprendizado Multitarefa). O aprendizado por transferência usa um codificador pré-treinado e então faz ajuste fino ou o congela para uma nova tarefa.
Uma receita comum:
- Pré-treinar o codificador em dados genéricos grandes (auto-supervisionado ou supervisionado).
- Ajuste fino no seu conjunto de dados específico com rótulos.
- Opcionalmente, destilar em um modelo de incorporação menor (ver Destilação de Conhecimento).
Exemplos práticos
Exemplo 1: Usando incorporações para busca semântica
Um fluxo de trabalho típico para busca semântica:
- Codificar documentos em vetores (offline).
- Codificar a consulta do usuário (online).
- Recuperar vizinhos mais próximos por similaridade do cosseno.
- (Opcional) Re-ranquear com um modelo mais pesado.
Abaixo está um exemplo mínimo usando uma interface genérica de “modelo de incorporação” (os detalhes dependem do seu framework/modelo):
import numpy as np
def cosine_sim(a, b, eps=1e-8):
a = a / (np.linalg.norm(a) + eps)
b = b / (np.linalg.norm(b, axis=1, keepdims=True) + eps)
return b @ a
# Pretend encoder outputs d-dimensional vectors
def encode(texts):
# Replace with a real embedding model call
rng = np.random.default_rng(0)
return rng.normal(size=(len(texts), 384)).astype(np.float32)
docs = [
"Gradient descent optimizes neural networks by iterative updates.",
"A transformer uses attention to model token interactions.",
"Autoencoders learn representations by reconstructing inputs."
]
doc_vecs = encode(docs)
query = "How does attention work in transformers?"
q_vec = encode([query])[0]
scores = cosine_sim(q_vec, doc_vecs)
topk = scores.argsort()[::-1][:2]
for i in topk:
print(float(scores[i]), docs[i])
Em produção você usaria:
- vetores normalizados,
- um índice de vizinhos mais próximos aproximados (por exemplo, HNSW),
- e avaliação cuidadosa (julgamentos de relevância, métricas de clique).
Exemplo 2: Intuição de aprendizado contrastivo (imagens)
Para incorporações de imagens, o aprendizado contrastivo frequentemente usa dois aumentos da mesma imagem:
- recorte aleatório,
- jitter de cor,
- desfoque,
- etc.
O modelo é treinado para que as incorporações das duas visões aumentadas sejam próximas, enquanto as incorporações de outras imagens no lote sejam distantes. As invariâncias aprendidas vêm dos aumentos: se você “aumenta” removendo cor, a representação se torna mais invariante à cor.
Isso destaca um princípio-chave: seus aumentos de dados definem o que “não deveria importar”.
Exemplo 3: Representações em sistemas de recomendação
Em recomendação, aprendizado de representações frequentemente significa aprender:
- uma incorporação de usuário (user embedding) (u),
- uma incorporação de item (item embedding) (v),
de modo que (u^\top v) prediga cliques/compras.
Essas incorporações podem ser aprendidas:
- diretamente (fatoração de matrizes),
- via codificadores profundos sobre o histórico do usuário (modelos de sequência),
- ou via codificadores de conteúdo multimodal (texto/imagem para itens com cold-start).
Um espaço de incorporação forte permite recuperação rápida de candidatos, com etapas posteriores de re-ranqueamento.
Como representações são treinadas em redes profundas
O aprendizado de representações em modelos profundos é impulsionado por:
- Retropropagação para calcular gradientes,
- variantes de Descida do Gradiente (SGD, Adam) para atualizar parâmetros,
- vieses arquiteturais e normalização,
- regularização e aumento de dados.
Mesmo que seu objetivo seja “apenas incorporações”, a dinâmica de treinamento importa muito:
- o tamanho do lote afeta negativos contrastivos,
- cronogramas de taxa de aprendizado moldam generalização,
- restrições de precisão/throughput aparecem em escala (ver Treinamento em Escala).
Avaliando a qualidade da representação
Não há uma única métrica melhor; use múltiplas perspectivas:
Desempenho em tarefas posteriores
- Congelar o codificador, treinar um classificador/regressor simples por cima.
- Ou ajustar fino o modelo inteiro e comparar.
Sondagem linear
Treinar apenas uma camada linear sobre incorporações congeladas. Alta acurácia de sonda linear sugere que a representação separa classes linearmente.
Avaliação por kNN / recuperação
- Incorporar exemplos rotulados e classificar por vizinhos mais próximos.
- Para busca/recuperação: medir Recall@k, nDCG, MRR.
Agrupamento e estrutura
- Agrupar incorporações e comparar com agrupamentos conhecidos.
- Visualizar com t-SNE/UMAP (use com cautela; podem induzir a interpretações erradas).
Robustez e testes de mudança
Testar sob mudanças de distribuição (mudanças de iluminação, mudanças de domínio, ruído adversarial) para ver se as invariâncias são significativas.
Armadilhas comuns e modos de falha
- Colapso de representação (representation collapse): todas as incorporações ficam quase idênticas (um risco em algumas configurações auto-supervisionadas sem restrições adequadas).
- Aprendizado por atalhos (shortcut learning): incorporações se agarram a correlações espúrias (marcas d’água, fundos, metadados).
- Aumentos desalinhados: aumentos removem informação que de fato importa para sua tarefa (por exemplo, remover cor quando a cor é crítica).
- Sobreajuste do espaço de incorporação às identidades de treinamento: ótima recuperação no treino, mas generalização ruim para novas classes/usuários.
- Desalinhamento de avaliação: otimizar similaridade do cosseno, mas avaliar com distância Euclidiana (ou vice-versa); normalização inconsistente.
Escolhas de projeto que importam na prática
- Dimensão de incorporação (d): maior pode armazenar mais informação, mas pode sobreajustar e aumentar armazenamento/latência.
- Normalização: incorporações normalizadas para norma unitária + similaridade do cosseno são comuns e estáveis para recuperação.
- Lotes e negativos (contrastivo): mais/melhores negativos tipicamente melhoram a qualidade, mas podem introduzir falsos negativos.
- Temperatura e margens: ajustar para controlar o quão apertados os agrupamentos se formam.
- Dados e domínios de pré-treinamento: incompatibilidade de domínio pode dominar todas as outras decisões.
- Currículo (curriculum): ordenar tarefas/exemplos pode estabilizar o treinamento em alguns cenários (ver Aprendizado Curricular).
Onde o aprendizado de representações é usado hoje
- Modelos fundamentais (foundation models): grandes codificadores pré-treinados que fornecem incorporações gerais para texto, imagens, áudio e dados multimodais.
- Busca semântica e RAG: incorporações impulsionam recuperação para pipelines de [geração aumentada por recuperação (retrieval-augmented generation)] (frequentemente em conjunto com LLMs).
- Visão computacional: aprendizado por transferência a partir de grandes pré-treinamentos em imagens; incorporações para pipelines de detecção/segmentação.
- Fala e áudio: incorporações de locutor, incorporações de eventos de áudio, características robustas para ASR.
- Biologia e química: incorporações de sequências de proteínas, incorporações de grafos moleculares para previsão de propriedades.
- Robótica e RL: representações de estado que fatoram características relevantes à dinâmica para controle.
Relação com tópicos próximos em aprendizado profundo
- Aprendizado de representações é o que queremos (características úteis); Aprendizado Auto-Supervisionado é um como poderoso (sinais de aprendizado sem rótulos).
- Aprendizado Multitarefa molda representações ao forçar estrutura compartilhada entre tarefas.
- Destilação de Conhecimento pode comprimir um modelo forte de representações em um menor, mantendo a qualidade das incorporações.
- Treinamento em Escala torna-se essencial quando representações são pré-treinadas em conjuntos de dados massivos.
Resumo
Aprendizado de representações é a prática de aprender incorporações que capturam estrutura significativa nos dados, tornando tarefas posteriores mais simples e mais eficientes em dados. Métodos modernos dependem fortemente de auto-supervisão, objetivos contrastivos e pré-treinamento em larga escala, produzindo representações de uso geral que transferem entre tarefas e domínios. Em sistemas aplicados, aprendizado de representações frequentemente é a diferença entre heurísticas frágeis e capacidades escaláveis como busca semântica, recomendação e compreensão multimodal.