Concept Bottleneck Models
Modelos com gargalo de conceitos (CBMs) primeiro preveem conceitos nomeados por pessoas e, em seguida, preveem o rótulo usando apenas esses conceitos, permitindo que especialistas examinem e corrijam cada decisão.
Um modelo de gargalo de conceitos (CBM) é uma rede neural que primeiro prevê, a partir da entrada, um conjunto de conceitos com nomes atribuídos por pessoas e, em seguida, prevê o rótulo final usando apenas esses conceitos. Numa radiografia do joelho, os conceitos podem ser o estreitamento do espaço articular e os osteófitos; numa fotografia de uma ave, a cor das asas e o formato do bico. Como todas as previsões passam por esta camada estreita e rotulada, uma pessoa pode ver que conceitos determinaram a decisão e corrigir um conceito incorreto para alterar o resultado, o que faz dos CBM uma forma de IA explicável (XAI) integrada na arquitetura. Pang Wei Koh, Thao Nguyen, Yew Siang Tang, Stephen Mussmann, Emma Pierson, Been Kim e Percy Liang, da Stanford e da Google, introduziram o termo em Concept Bottleneck Models, na ICML 2020, e demonstraram uma precisão competitiva com a dos modelos padrão de ponta a ponta em duas tarefas: classificar a osteoartrite do joelho a partir de radiografias e identificar espécies de aves.
Como funcionam os modelos de gargalo de conceitos#
Um CBM tem duas partes: um preditor de conceitos, que mapeia a entrada, como uma imagem, para valores de conceitos, e um preditor de rótulos, que mapeia esses valores para o resultado. Koh e colegas compararam três formas de os treinar:
- Independente: O preditor de conceitos aprende com anotações de conceitos, e o preditor de rótulos aprende com os conceitos verdadeiros; cada um é treinado em separado.
- Sequencial: O preditor de conceitos é treinado primeiro e, em seguida, o preditor de rótulos aprende com os conceitos previstos por esse preditor.
- Conjunto: Ambas as partes são treinadas em simultâneo com uma soma ponderada da perda dos conceitos e da perda dos rótulos.
No conjunto de dados Osteoarthritis Initiative, com 36 369 radiografias de joelhos rotuladas com o grau de gravidade de Kellgren-Lawrence, os conceitos eram 10 características ordinais já avaliadas por radiologistas, como o estreitamento do espaço articular, os osteófitos e a esclerose óssea. No conjunto de dados Caltech-UCSD Birds, com 11 788 fotografias de 200 espécies, eram 112 atributos binários, como a cor das asas e o formato do bico. Cada exemplo de treino precisa de anotações de conceitos e de rótulos, que é o principal custo desta abordagem.
O gargalo permite fazer intervenções no momento da inferência: quando um especialista vê que um conceito previsto está incorreto, substitui-o pelo valor correto e o preditor de rótulos recalcula o resultado. Na tarefa das radiografias, fornecer os valores verdadeiros de apenas dois conceitos reduziu o erro do grau de gravidade previsto de mais de 0,4 para cerca de 0,3 RMSE.
Este exemplo de PyTorch treina um CBM independente com dados de teste simples, nos quais seis conceitos binários geram entradas ruidosas e o rótulo depende apenas dos conceitos. Em seguida, mede a precisão dos rótulos à medida que um especialista fornece os valores verdadeiros dos conceitos menos certos:
import torch
from torch import nn
torch.manual_seed(0)
# Toy data: 6 binary concepts generate noisy 20-D inputs, and the label depends only on the concepts
concepts = torch.randint(0, 2, (3000, 6)).float()
inputs = concepts @ torch.randn(6, 20) + 2 * torch.randn(3000, 20)
labels = (concepts @ torch.tensor([3.0, 2, 2, 1, 1, 1]) >= 5).float()
train, test = slice(0, 2000), slice(2000, None)
# Independent training: inputs -> concepts, and concepts -> label, each against its own ground truth
concept_model, label_model = nn.Linear(20, 6), nn.Linear(6, 1)
optimizer = torch.optim.Adam([*concept_model.parameters(), *label_model.parameters()], lr=0.05)
bce = nn.functional.binary_cross_entropy_with_logits
for _ in range(500):
optimizer.zero_grad()
loss = bce(concept_model(inputs[train]), concepts[train]) + bce(label_model(concepts[train])[:, 0], labels[train])
loss.backward()
optimizer.step()
with torch.no_grad():
probs = concept_model(inputs[test]).sigmoid()
print(f"Concept accuracy: {((probs > 0.5) == concepts[test]).float().mean():.3f}")
for k in range(4):
# Test-time intervention: replace the k least certain predicted concepts with their true values
uncertain = (probs - 0.5).abs().argsort(dim=1)[:, :k]
fixed = probs.scatter(1, uncertain, concepts[test].gather(1, uncertain))
accuracy = ((label_model(fixed)[:, 0] > 0) == labels[test].bool()).float().mean()
print(f"Intervene on {k} of 6 concepts: label accuracy {accuracy:.3f}")O preditor de conceitos acerta 0.834 dos 6 000 conceitos de teste, e o CBM classifica corretamente 0.819 dos 1 000 exemplos de teste. Fornecer os valores verdadeiros dos conceitos menos certos — um, dois e três por exemplo — aumenta a precisão dos rótulos para 0.861, 0.915 e 0.951, sem alterar nenhum dos modelos.
Onde são usados os CBM#
Os CBM são adequados para domínios em que os especialistas já raciocinam com base em características identificadas por nome. Na análise de imagens médicas, o estudo das radiografias referido acima usou as mesmas características registadas pelos radiologistas, pelo que um médico pode verificar cada uma delas. A monitorização de segurança tem a mesma estrutura: um modelo Ultralytics YOLO26 treinado no conjunto de dados Construction-PPE deteta classes nomeadas, como helmet, no_helmet, vest e no_boots. Uma regra de conformidade que leia apenas essas deteções torna-se um gargalo de conceitos, e um revisor pode rastrear a decisão até a um item em falta específico.
Trabalhos posteriores flexibilizaram a exigência de anotações. Os CBM sem rótulos geram uma lista de conceitos com um modelo de linguagem e avaliam os conceitos com CLIP, expandindo a abordagem para o ImageNet sem rótulos de conceitos. Os CBM pós-hoc convertem um modelo já treinado ao projetar as respetivas incorporações em direções de conceitos.
Limitações#
Os conjuntos de conceitos raramente abrangem tudo o que determina o rótulo, o que limita a precisão de um CBM. Quando o preditor de rótulos recebe probabilidades de conceitos em vez de valores categóricos, essas probabilidades podem transportar informações adicionais sobre o rótulo para além do significado de cada conceito. Este efeito, chamado fuga de conceitos, torna as explicações e intervenções menos fiáveis. Os Modelos de Incorporação de Conceitos representam cada conceito como um vetor aprendido para manter uma precisão elevada e continuar a permitir intervenções. Conceitos mal definidos ou correlacionados produzem explicações pouco fiáveis, e as anotações de conceitos enviesadas propagam o viés a todas as decisões que delas dependem.
CBM e conceitos relacionados#
- Mapas de saliência: Destacam os píxeis que influenciaram um modelo de caixa-preta já treinado. Os CBM explicam as decisões através de conceitos identificados por nome e permitem editar esses conceitos.
- Interpretabilidade mecanicista: Faz engenharia reversa das características e dos circuitos que um modelo treinado aprendeu por si próprio. Os CBM definem antecipadamente os conceitos intermédios através de supervisão.
- Sondagem linear: Testa se é possível descodificar um conceito a partir das ativações de um modelo treinado, sem alterar a forma como este faz previsões. As sondagens de conceitos em modelos de caixa-preta, como o TCAV de Been Kim e colegas, medem a influência de um conceito a posteriori.
- Engenharia de características: Calcula manualmente características de entrada a partir de dados em bruto. Num CBM, um modelo treinado prevê os conceitos a partir de entradas em bruto, com supervisão de rótulos humanos.










