Design clássico · Sênior
Detecção de conteúdo nocivo
Projeto de entrevista clássico. Pontos centrais: fusão multimodal, multi-task, desbalanceamento, fila de revisão humana e deriva adversarial.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: fusão multimodal, multi-task, desbalanceamento, fila de revisão humana e deriva adversarial. Redes sociais moderam conteúdo nocivo para cumprir a lei e manter uma boa experiência para os usuários, tema ligado a conformidade regulatória. O exercício parte de uma rede social de posts e pede um sistema que detecte todo conteúdo nocivo, de nudez e…
01 · CONTEXTO E REQUISITOS
O que o sistema precisa decidir
Redes sociais moderam conteúdo nocivo para cumprir a lei e manter uma boa experiência para os usuários, tema ligado a conformidade regulatória. O exercício parte de uma rede social de posts e pede um sistema que detecte todo conteúdo nocivo, de nudez e violência até terrorismo e tráfico de pessoas.
O recorte é texto e imagem, o que faz do caso, segundo o roteiro, um problema de classificação multimodal de conteúdo, típico de design de sistemas de ML.
O sistema pode remover automaticamente o que considera nocivo com confiança e rebaixar o conteúdo provavelmente nocivo. Há uma equipe pequena de moderadores, com capacidade limitada. Para a remoção automática, o enunciado não aceita remover nada sem 95% de confiança de que o conteúdo é nocivo.
Errar custa nos dois sentidos: quem tem o conteúdo removido por engano fica insatisfeito e pode deixar a plataforma, e quem é exposto a conteúdo nocivo em excesso também pode sair.
O enunciado assume 1B posts por dia, com menos de 1% nocivos, e 50k exemplos rotulados para o treino inicial, metade nocivos e metade benignos.
02 · OBJETIVO E MÉTRICA
Do que a plataforma se importa
O roteiro lembra que o objetivo de negócio é distinto da função de perda. Maximizar o conteúdo removido incentiva sinalizar o máximo possível, e maximizar a acurácia é um proxy ruim do dano, sujeito a desbalanceamento de classes.
| Objetivo | Ponto forte | Limite |
|---|---|---|
| Maximizar a acurácia do modelo | Parece uma escolha tentadora | Proxy ruim do dano e sujeito a desbalanceamento de classes |
| Maximizar a remoção, com garantia de precisão | Embute uma troca entre precisão e recall | Ainda foca em remoção, não na experiência do usuário |
| Minimizar denúncias de usuários | Dispensa equipe dedicada de moderadores para medir | As denúncias podem ser adversárias |
| Minimizar visualizações de conteúdo nocivo | Prioriza o conteúdo nocivo mais visto | Exige rotular conteúdo com regularidade para medir |
O roteiro adota minimizar o número de visualizações de conteúdo nocivo, sujeito a garantias de precisão. Esse objetivo responde à pergunta de classificar na hora ou esperar: quanto mais se espera, mais visualizações se acumulam. O roteiro também observa que conteúdo nocivo fica mais fácil de detectar quanto mais gente é exposta a ele.
03 · DADOS E SINAIS
Rótulos escassos, sinais abundantes
Os dados vêm em camadas. Os rótulos supervisionados são poucos e o conjunto mais valioso. As denúncias de usuários funcionam como rótulo aproximado, provavelmente correlacionado com o verdadeiro. Os comentários permitem treinar um modelo que prevê comentários a partir do corpo do post, o que gera representações de posts mais úteis do que o corpo sozinho.
Como o conteúdo nocivo é raro, treinar na distribuição bruta faria o modelo aprender a prever "não nocivo" para tudo e ainda atingir 99% de acurácia. A resposta do roteiro combina amostragem balanceada no treino com ponderação da perda para ajustar a troca entre precisão e recall.
As features mais informativas são o texto e as imagens do post. As de comportamento, como a razão de compartilhamentos por visualização, mudam rápido, e por isso o post precisa ser classificado também depois de criado. As do criador combinam embeddings, ricos mas lentos, com contagens em tempo real, rápidas mas ruidosas.
04 · MODELO
Fusão multimodal e múltiplas tarefas
O ponto de partida é um baseline simples: segundo o roteiro, uma regressão logística com as features numéricas e de embedding já é um bom começo.
| Abordagem | Como funciona | Limite |
|---|---|---|
| Modelos unimodais independentes | Modelos separados para texto e imagem, com previsões combinadas por max-pooling | Não captura interações entre modalidades |
| Late fusion | Codificadores separados e concatenação dos embeddings com features de comportamento e de usuário | Interações entre modalidades limitadas às camadas finais |
| Transformer multimodal | Processa texto, imagens e features tabulares ao mesmo tempo | Custo computacional e complexidade |
O roteiro adota o transformer multimodal e deixa o custo para a discussão de inferência.
O treino usa duas cabeças separadas: a tarefa principal, de classificar nocivo ou não, e a previsão da probabilidade de denúncias. Em produção, só a cabeça da tarefa principal é usada. Na perda principal entra um termo logarítmico pequeno sobre as visualizações, porque elas seguem uma distribuição de lei de potência e o conteúdo muito visto dominaria a perda.
Em vez de um softmax entre tipos de conteúdo, o roteiro prefere uma formulação multi-label, porque um mesmo conteúdo nocivo pode ter várias classes ao mesmo tempo.
05 · INFERÊNCIA E REVISÃO HUMANA
Do post à ação
Com 1B posts por dia, o transformer multimodal é grande e caro, provavelmente exigindo GPUs. O roteiro propõe um modelo leve e destilado, com menos features, que filtra rapidamente o que obviamente não viola, deixando o modelo pesado para o restante. Isso também dá um parâmetro para aumentar ou reduzir o consumo de recursos.
O autor publica um post e o serviço de posts o recebe.
Todo post novo entra na fila e passa primeiro pelo classificador leve.
Se o score do filtro é alto o bastante, o post segue para o classificador pesado, que guarda e reaproveita codificações no cache.
A saída do classificador passa por uma camada de calibração que garante a precisão exigida.
A decisão chega ao serviço de ação, que pode apagar o post, sinalizá-lo para revisão ou agir de outra forma.
Os posts sinalizados esperam na fila de revisão, e os moderadores os revisam com capacidade limitada.
Muitos posts usam imagens ou textos idênticos, e guardar e reusar as codificações evita passagens redundantes pelo modelo.
Depois da calibração, o sistema de ação pode apagar o post, sinalizá-lo para revisão ou agir de outra forma, e os moderadores têm capacidade limitada. No desenho, os posts sinalizados esperam em uma fila, tema de filas de mensagens.
O modelo também é acionado de novo quando acontecem eventos importantes, como denúncias, muitas visualizações ou comentários de desagrado. Uma rede leve de atualização funde os sinais de comportamento com os embeddings pesados.
06 · AVALIAÇÃO E DERIVA
Medir e acompanhar o que muda
Na avaliação online, dois modelos rodam lado a lado, candidato e controle, e só um age. Amostrar posts ao acaso exigiria muitos exemplos para medir uma prevalência abaixo de 1%. Por isso a pontuação de cada modelo orienta a subamostragem dos casos extremos, que são reponderados para não gerar viés.
Offline, as métricas sugeridas são PR-AUC e Recall@Precision95: a primeira é um indicador estável da força geral do modelo, e a segunda se alinha ao limiar de ação, com mais variância.
Denúncias, reações e comentários chegam como sinais e o gatilho decide reclassificar o post.
O gatilho reaproveita do cache as codificações de imagem e texto, que não precisam ser recomputadas.
Uma rede leve funde os novos sinais de comportamento ao embedding pesado, e a calibração precisa lidar com classificações repetidas do mesmo conteúdo.
No desenho, os posts em revisão chegam aos moderadores, cujos rótulos são gravados e replicados para o conjunto de treino.
O treino usa o conjunto de treino e publica um novo modelo na rede de atualização, enquanto o monitor recebe as decisões para acompanhar a prevalência e a deriva.
Conteúdo nocivo evolui rapidamente, em parte por causa de pessoas que buscam novas formas de driblar os sistemas. A Meta relata que, em abordagens tradicionais, leva vários meses para coletar e rotular exemplos de cada tipo novo. O Few-Shot Learner (FSL) é descrito como um modelo grande, multimodal e multilíngue, de poucos ou nenhum exemplo, que se adapta a tipos novos em semanas em vez de meses.
| Aspecto | Classificador tradicional | Few-Shot Learner |
|---|---|---|
| Rótulos | Milhares, se não milhões, de exemplos para cada tipo novo | A política pode ser descrita sem exemplos |
| Tempo para um tipo novo | Vários meses para coletar e rotular | Semanas em vez de meses |
| Como aprende | Casamento de padrões em dados rotulados | Pré-treinado em linguagem geral e em conteúdo violador e limítrofe, aprende o texto da política de forma implícita |
O FSL aprende informação multimodal do post inteiro, com texto, imagem, URL e mais. Ele também pode servir para testar um conjunto novo de prováveis violações e entender se as definições propostas fazem sentido.
A Meta avaliou o efeito pela diferença de prevalência de conteúdo nocivo, isto é, a porcentagem de visualizações de conteúdo violador que as pessoas veem, o que combina com o objetivo de minimizar visualizações.
Perguntas frequentes
O que é Detecção de conteúdo nocivo?
Projeto de entrevista clássico. Pontos centrais: fusão multimodal, multi-task, desbalanceamento, fila de revisão humana e deriva adversarial.
O que o design de Detecção de conteúdo nocivo cobre?
Ele está organizado nestas seções: O que o sistema precisa decidir, Do que a plataforma se importa, Rótulos escassos, sinais abundantes, Fusão multimodal e múltiplas tarefas, Do post à ação e Medir e acompanhar o que muda.
Quanto tempo leva Detecção de conteúdo nocivo e qual é o nível?
Leva cerca de 16 minutos para ler e tem nível Sênior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.