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:

  1. Pré-treinar uma espinha dorsal (backbone) (frequentemente uma Arquitetura Transformer ou CNN) em grandes corpora não rotulados com um objetivo de SSL.
  2. 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:

  1. Pegue uma imagem (x).
  2. Aplique dois aumentos aleatórios (t_1, t_2) para criar visões (v_1=t_1(x)), (v_2=t_2(x)).
  3. Codifique-as: (z_1=f(v_1)), (z_2=f(v_2)).
  4. 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:

  1. Mascarar ou corromper partes de uma entrada (x) para formar (\tilde{x}),
  2. 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.