Aprendizado Auto-Supervisionado
Aprendizado auto-supervisionado (self-supervised learning, SSL) é uma família de métodos de treinamento que aprendem representações úteis a partir de dados não rotulados ao criar “supervisão” a partir dos próprios dados. Em vez de depender de rótulos fornecidos por humanos, o SSL define uma tarefa pretexto (pretext task) (por exemplo, “estas duas visões aumentadas vêm da mesma imagem” ou “prever as palavras ausentes”) e treina um modelo para resolvê-la. O modelo pré-treinado resultante pode então ser ajustado finamente (fine-tuned) ou adaptado para tarefas supervisionadas posteriores (downstream) com muito menos rótulos.
Duas das estratégias de pré-treinamento em SSL mais influentes hoje são:
- Aprendizado contrastivo (contrastive learning): aprender incorporações (embeddings) em que visões correspondentes ficam próximas e visões não correspondentes ficam distantes.
- Modelagem mascarada (masked modeling): mascarar partes da entrada e treinar o modelo para prever o conteúdo ausente.
Ambas são centrais no Aprendizado de Representações moderno e impulsionaram avanços em visão, linguagem, áudio e IA multimodal.
Por que o aprendizado auto-supervisionado funciona
Em alto nível, o SSL funciona ao forçar um modelo a capturar estrutura nos dados:
- Invariâncias: Algumas transformações não deveriam mudar o significado (por exemplo, recortar uma imagem geralmente não muda a classe do objeto). O SSL pode treinar representações para serem estáveis sob essas transformações.
- Dependência contextual: Partes dos dados dependem de outras partes (palavras dependem das palavras ao redor; patches de imagem dependem de patches próximos). Prever conteúdo ausente incentiva os modelos a aprender essas dependências.
- Compressão de semântica: Uma boa representação descarta variações irrelevantes (ruído) enquanto preserva fatores relevantes para a tarefa.
Na prática, o SSL geralmente é implementado como pré-treinamento + adaptação:
- Pré-treinar uma espinha dorsal (backbone) (frequentemente uma Arquitetura Transformer ou CNN) em grandes corpora não rotulados com um objetivo de SSL.
- Adaptar a tarefas posteriores por meio de:
- ajuste fino completo,
- sondagem linear (linear probing) (treinar um pequeno classificador sobre incorporações congeladas),
- métodos eficientes em parâmetros (parameter-efficient methods) (adapters/técnicas no estilo LoRA; conceitualmente relacionadas a transferência eficiente).
Aprendizado contrastivo como pré-treinamento
Ideia central
O aprendizado contrastivo treina um codificador (encoder) para mapear entradas em vetores (incorporações) de modo que:
- Pares positivos (duas “visões” do mesmo exemplo subjacente) tenham alta similaridade.
- Pares negativos (visões de exemplos diferentes) tenham baixa similaridade.
Um fluxo típico para imagens:
- Pegue uma imagem (x).
- Aplique dois aumentos aleatórios (t_1, t_2) para criar visões (v_1=t_1(x)), (v_2=t_2(x)).
- Codifique-as: (z_1=f(v_1)), (z_2=f(v_2)).
- Otimize uma perda que aproxima (z_1) e (z_2) enquanto afasta incorporações de outras imagens.
Isso produz incorporações que são invariantes aos aumentos escolhidos e codificam características reutilizáveis.
A perda InfoNCE / NT-Xent (objetivo comum)
Um objetivo contrastivo amplamente utilizado é InfoNCE (também chamado de NT-Xent em configurações do tipo SimCLR). Para uma incorporação âncora (z_i) e seu positivo (z_{i^+}), com um conjunto de incorporações candidatas que inclui negativos:
[ \mathcal{L}i = -\log \frac{\exp(\mathrm{sim}(z_i, z{i^+})/\tau)}{\sum_{k} \exp(\mathrm{sim}(z_i, z_k)/\tau)} ]
Onde:
- (\mathrm{sim}(\cdot,\cdot)) é frequentemente similaridade cosseno,
- (\tau) é um hiperparâmetro de temperatura (temperature) que controla a suavidade,
- o denominador soma sobre positivos + negativos (frequentemente implementado como negativos “no lote” (in-batch)).
Intuição: maximizar a similaridade com o positivo enquanto minimiza a similaridade com todos os outros.
Escolhendo positivos: aumentos de dados e “visões”
A escolha do aumento define o que o modelo aprende a ignorar (ser invariante a). Para visão, aumentos comuns incluem:
- recortes/redimensionamentos aleatórios,
- jitter de cor,
- escala de cinza,
- desfoque Gaussiano,
- espelhamentos horizontais.
Para áudio:
- mascaramento no tempo, mascaramento em frequência,
- injeção de ruído.
Para texto, aumentos são mais difíceis (remoção ingênua de palavras pode mudar o significado). Muitas abordagens de SSL para texto, em vez disso, dependem de modelagem mascarada ou de aumentos especialmente projetados.
Se os aumentos forem fracos demais, a tarefa se torna trivial. Se fortes demais, os positivos podem deixar de compartilhar semântica, prejudicando a qualidade das representações.
Negativos: no lote, bancos de memória e filas
Métodos contrastivos frequentemente dependem de ter negativos suficientes:
- Negativos no lote (SimCLR): todas as outras amostras no lote servem como negativos. Isso incentiva tamanhos de lote grandes.
- Banco de memória / fila (MoCo): manter uma fila deslizante de incorporações de lotes anteriores para fornecer muitos negativos sem lotes enormes.
Trade-off:
- Mais negativos podem melhorar a discriminação,
- mas também podem introduzir falsos negativos (duas imagens diferentes da mesma classe tratadas como negativas), o que pode prejudicar.
Evitando colapso de representações
Um modo de falha no aprendizado de representações é o colapso (collapse), em que o modelo mapeia todas as entradas para o mesmo vetor. O aprendizado contrastivo clássico evita isso via negativos explícitos: incorporações colapsadas não conseguem satisfazer restrições de “afastar”.
Curiosamente, várias abordagens modernas reduzem ou removem negativos explícitos (BYOL, SimSiam, auto-destilação (self-distillation) no estilo DINO) e ainda assim evitam colapso por meio de escolhas arquiteturais e de otimização (stop-gradient, cabeças preditoras, momentum professor–aluno). Mesmo que seu foco seja aprendizado contrastivo, é útil saber que objetivos “contrastivos” e “não contrastivos” são estreitamente relacionados na prática.
Exemplo prático: um passo mínimo de treinamento contrastivo (estilo PyTorch)
Abaixo há um esboço simplificado no estilo SimCLR. Ele omite agregação distribuída e detalhes como cabeças de projeção, mas ilustra a mecânica central.
import torch
import torch.nn.functional as F
def cosine_sim(a, b):
a = F.normalize(a, dim=-1)
b = F.normalize(b, dim=-1)
return a @ b.T
def info_nce_loss(z1, z2, tau=0.2):
"""
z1, z2: [B, D] embeddings from two augmented views of the same batch
Uses in-batch negatives.
"""
B = z1.size(0)
z = torch.cat([z1, z2], dim=0) # [2B, D]
sim = cosine_sim(z, z) / tau # [2B, 2B]
# Mask self-similarity
mask = torch.eye(2 * B, device=z.device).bool()
sim = sim.masked_fill(mask, -1e9)
# Positive for i is i±B
pos_idx = (torch.arange(2 * B, device=z.device) + B) % (2 * B)
loss = F.cross_entropy(sim, pos_idx)
return loss
# Example usage inside a training step:
# v1, v2 are two augmented batches; encoder returns embeddings
# z1 = projector(encoder(v1)); z2 = projector(encoder(v2))
# loss = info_nce_loss(z1, z2)
# loss.backward()
Em sistemas reais, você normalmente adiciona:
- uma cabeça de projeção (projection head) (MLP) antes da perda contrastiva,
- negativos via lote grande ou via fila,
- sincronização multi-GPU,
- ajuste cuidadoso de aumentos.
(Veja também práticas de engenharia em Treinamento em Escala.)
Onde o pré-treinamento contrastivo se destaca
- Aprendizado por transferência em visão: características genéricas fortes para classificação, detecção, segmentação.
- Alinhamento multimodal: pré-treinamento contrastivo imagem–texto (por exemplo, do tipo CLIP) alinha incorporações entre modalidades, permitindo classificação e recuperação (retrieval) zero-shot.
- Aprendizado de métrica / recuperação: incorporações são diretamente úteis para busca por vizinho mais próximo.
- Similaridade de granulação fina: objetivos contrastivos frequentemente produzem uma geometria de incorporações bem calibrada.
Modelagem mascarada como pré-treinamento
Ideia central
A modelagem mascarada treina um modelo para prever partes ausentes de sua entrada. O sinal de supervisão é construído por:
- Mascarar ou corromper partes de uma entrada (x) para formar (\tilde{x}),
- Treinar o modelo para prever o conteúdo original das partes mascaradas.
Isso é uma forma de remoção de ruído (denoising) ou modelagem condicional (conditional modeling): aprender (p(x_{\text{masked}} \mid x_{\text{visible}})).
A modelagem mascarada tipicamente usa perdas de reconstrução/predição como:
- entropia cruzada sobre tokens (linguagem),
- MSE ou perdas perceptuais sobre pixels/patches (visão),
- classificação sobre códigos discretos (algumas abordagens de visão/áudio).
Modelagem de linguagem mascarada (MLM)
A MLM no estilo BERT mascara um subconjunto de tokens (por exemplo, 15%) e treina o modelo para prevê-los a partir do contexto usando um transformer bidirecional.
Propriedades principais:
- Aprende incorporações contextuais profundas úteis para classificação, QA, NER etc.
- O modelo vê tanto o contexto à esquerda quanto à direita, ao contrário da modelagem causal de linguagem.
Variantes e melhorias incluem:
- Mascaramento de spans (span masking) (mascarar spans contíguos) para incentivar entendimento em nível de frase.
- Detecção de token substituído (replaced-token detection) (no estilo ELECTRA): em vez de prever tokens mascarados, detectar se cada token foi substituído por um gerador — frequentemente mais eficiente em amostras.
- Remoção de ruído sequência-a-sequência (sequence-to-sequence denoising) (no estilo BART/T5): corromper a entrada e reconstruir a sequência original, útil para tarefas de geração.
A modelagem mascarada é um dos motivos pelos quais a Arquitetura Transformer se tornou dominante em PLN: a atenção pode integrar de forma flexível contexto de longo alcance para preencher partes faltantes.
Modelagem de imagem mascarada (MIM)
Em visão, a modelagem mascarada frequentemente mascara patches em vez de pixels. Duas direções influentes:
- Autoencoders mascarados (MAE): mascarar uma grande fração de patches (frequentemente 75%+) e reconstruir os pixels/patches ausentes com um decodificador leve. O codificador aprende representações fortes enquanto processa apenas patches visíveis (eficiente).
- Predição de alvo discreto (discrete target prediction) (por exemplo, no estilo BEiT): tokenizar patches de imagem em códigos discretos usando um tokenizador visual e então prever os códigos ausentes (mais próximo de “predição de tokens”, como a MLM).
Comparada ao aprendizado contrastivo, a MIM enfatiza aprender a partir de estrutura global e completamento de contexto, em vez de similaridade par a par.
Exemplo prático: corrupção de dados para MLM e perda
Um esboço mínimo de corrupção no estilo MLM (conceitual; tokenizadores reais lidam com tokens especiais e máscaras de atenção com cuidado):
import torch
def mask_tokens(input_ids, mask_token_id, vocab_size, mlm_prob=0.15):
"""
input_ids: [B, T]
Returns: corrupted_input_ids, labels (with -100 for unmasked positions)
"""
device = input_ids.device
labels = input_ids.clone()
# Decide which positions to mask
mask = torch.rand(input_ids.shape, device=device) < mlm_prob
# Labels only for masked positions; ignore others in loss
labels[~mask] = -100
corrupted = input_ids.clone()
corrupted[mask] = mask_token_id
return corrupted, labels
# Training step sketch:
# logits = model(corrupted_input_ids) # [B, T, vocab_size]
# loss = cross_entropy(logits.view(-1, vocab_size), labels.view(-1), ignore_index=-100)
Mesmo essa configuração simples pode produzir modelos pré-treinados fortes quando escalada para grandes corpora.
Onde a modelagem mascarada se destaca
- Compreensão de linguagem: representações contextuais robustas para muitas tarefas de PLN.
- Uso eficiente de dados: cada sequência fornece muitos alvos de predição.
- Modalidades estruturadas: patches em imagens, frames em vídeo, segmentos em áudio, nós/características em grafos.
- Tarefas generativas e condicionais: pré-treinamento com remoção de ruído frequentemente transfere bem para geração quando projetado adequadamente (por exemplo, remoção de ruído seq2seq).
Aprendizado contrastivo vs. modelagem mascarada
Ambos são “auto-supervisionados”, mas induzem vieses diferentes e trade-offs práticos.
Objetivo e invariâncias aprendidas
Aprendizado contrastivo:
- Aprende invariância a aumentos explicitamente.
- Otimiza a geometria das incorporações (estrutura de similaridade).
- Frequentemente produz características excelentes para recuperação e classificação.
Modelagem mascarada:
- Aprende predição contextual e estrutura global.
- Incentiva modelar dependências entre partes.
- Frequentemente produz forte transferência para tarefas que exigem entendimento de composição e contexto.
Comportamento de computação e escalabilidade
O aprendizado contrastivo pode exigir:
- lotes grandes ou filas de memória,
- ajuste cuidadoso de negativos/temperatura,
- aumentos pesados (visão).
A modelagem mascarada frequentemente exige:
- modelos grandes e capacidade suficiente para modelar distribuições condicionais,
- estratégias de mascaramento cuidadosas (taxa de máscara, comprimento de spans),
- projeto apropriado de decodificador (especialmente para configurações do tipo MAE).
Ambas as abordagens se beneficiam de treinamento em larga escala; detalhes de implementação importam muito (otimizadores, agendas, precisão mista), conectando-se a Treinamento em Escala e a fundamentos como Descida do Gradiente e Retropropagação.
Adequação à modalidade de dados
- Visão:
- Ambas funcionam bem; o aprendizado contrastivo foi dominante antes de 2021, a modelagem mascarada ganhou grande tração com métodos do tipo MAE.
- Linguagem:
- Modelagem mascarada (MLM/remoção de ruído) e LM causal são centrais; o aprendizado contrastivo é mais comum em aprendizado de incorporações de sentenças e recuperação.
- Multimodal:
- Alinhamento contrastivo (imagem–texto) é extremamente eficaz.
- Modelagem multimodal mascarada (mascarar texto ou regiões de imagem e prever) também é comum, e híbridos estão se tornando cada vez mais populares.
Padrões de adaptação para tarefas posteriores
- Modelos contrastivos frequentemente se destacam com sondagem linear (codificador congelado + cabeça simples), indicando características linearmente separáveis.
- Pré-treinamento por modelagem mascarada frequentemente se beneficia de ajuste fino completo, especialmente quando a tarefa posterior é próxima de predição/geração.
Na prática, muitos sistemas combinam ambas as estratégias ou adicionam objetivos supervisionados (pré-treinamento multi-tarefa), conectando-se a Aprendizado Multi-Tarefa.
Orientação prática: escolhendo e usando pré-treinamento em SSL
Quando preferir aprendizado contrastivo
Escolha pré-treinamento contrastivo se você quer:
- espaços de incorporações fortes para busca por similaridade, clusterização, recuperação,
- alinhamento multimodal (por exemplo, parear incorporações de imagem/texto),
- robustez a transformações irrelevantes conhecidas (aumentos definem invariâncias).
Dicas:
- Invista no desenho de aumentos; frequentemente é o ajuste mais importante.
- Monitore falsos negativos (especialmente em conjuntos de dados com muitos quase-duplicados).
- Use lotes grandes ou uma fila; ajuste a temperatura.
Quando preferir modelagem mascarada
Escolha modelagem mascarada se você quer:
- representações contextuais fortes (linguagem, sinais estruturados),
- uma tarefa de pré-treinamento que corresponda a raciocínio do tipo “preencher lacunas”,
- sinais de treinamento eficientes por exemplo (muitos alvos mascarados por sequência).
Dicas:
- Ajuste a taxa de máscara e a estrutura da máscara (aleatória vs spans vs blocos).
- Para configurações do tipo MAE em visão, altas taxas de máscara podem funcionar surpreendentemente bem.
- Garanta que o modelo não consiga copiar alvos trivialmente (o mascaramento deve remover informação, não apenas escondê-la de forma superficial).
Avaliação: como saber se o SSL está funcionando
Protocolos comuns de avaliação:
- Sonda linear: congelar o codificador, treinar uma cabeça classificadora.
- Ajuste fino: treinar de ponta a ponta em tarefas posteriores.
- Avaliação k-NN: classificação por vizinho mais próximo no espaço de incorporações (comum em métodos contrastivos).
- Transferência entre domínios: testar robustez a mudanças de distribuição.
Cuidado: objetivos de SSL podem sobreajustar métricas proxy (por exemplo, perda contrastiva diminuindo) sem melhorar desempenho em tarefas posteriores.
Aplicações em sistemas reais
- Aprendizado eficiente em rótulos: reduzir custos de anotação ao pré-treinar com dados brutos e depois ajustar finamente com pequenos conjuntos rotulados.
- Busca e recomendação: incorporações contrastivas para consultas/itens permitem recuperação rápida por vizinho mais próximo.
- Imagem médica e científica: grandes conjuntos de dados não rotulados são comuns; o SSL ajuda quando rótulos são escassos ou caros.
- Fala e áudio: mascaramento + predição ou objetivos contrastivos sobre unidades latentes são amplamente usados para aprendizado de representações de fala.
- Modelos fundamentais e destilação: modelos pré-treinados com SSL frequentemente são usados como professores para Destilação de Conhecimento em modelos menores implantáveis.
Armadilhas comuns e modos de falha
- Soluções de atalho:
- O aprendizado contrastivo pode explorar artefatos de aumento em vez de semântica.
- A modelagem mascarada pode aprender coocorrência superficial de tokens sem entendimento mais profundo se os dados forem estreitos.
- Colapso de representações: mais relevante para métodos não contrastivos, mas pode ocorrer se o objetivo for mal especificado.
- Desalinhamento treino–teste: a tarefa pretexto pode não se alinhar às necessidades posteriores.
- Vazamento em aumentos: se a “visão” contiver metadados ou pistas que tornem positivos identificáveis sem aprender semântica, o treinamento pode ser enganoso.
Tendências atuais e abordagens híbridas
Direções recentes frequentemente borram a linha entre aprendizado contrastivo e modelagem mascarada:
- Incorporação conjunta + predição: auto-destilação professor–aluno (no estilo DINO) aprende clusters semânticos sem negativos explícitos.
- Predição mascarada no espaço de representações: prever regiões mascaradas no espaço latente em vez de pixels/tokens (pode estabilizar o treinamento).
- Modelagem multimodal mascarada: mascarar texto e regiões de imagem conjuntamente para aprender raciocínio cruzando modalidades.
- Combinar objetivos: usar alinhamento contrastivo mais predição mascarada pode melhorar tanto a qualidade das incorporações quanto o entendimento contextual.
Resumo
O aprendizado auto-supervisionado é uma abordagem poderosa para pré-treinar modelos em dados não rotulados ao fabricar supervisão a partir dos próprios dados. Duas estratégias dominantes são:
- Aprendizado contrastivo, que aprende espaços de incorporações ao aproximar pares positivos e afastar negativos — excelente para invariância, recuperação e alinhamento multimodal.
- Modelagem mascarada, que aprende ao prever partes ausentes da entrada — excelente para entendimento contextual e supervisão escalável em nível de tokens/patches.
A escolha entre elas (ou a combinação de ambas) depende da sua modalidade, das tarefas posteriores, do orçamento computacional e de quais invariâncias ou estrutura você deseja que o modelo capture.