Design clássico · Pleno
Busca de vídeos no YouTube
Projeto de entrevista clássico. Pontos centrais: embeddings multimodais, fusão de índice invertido com ANN e reranking.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: embeddings multimodais, fusão de índice invertido com ANN e reranking. Num serviço de vídeo, o usuário digita um texto na caixa de busca e o sistema mostra os vídeos mais relevantes para esse texto. O capítulo da ByteByteGo fixa o escopo para simplificar: só consultas em texto, só inglês e sem personalização.
01 · CONTEXTO E ESCOPO
Buscar vídeos por um texto
Num serviço de vídeo, o usuário digita um texto na caixa de busca e o sistema mostra os vídeos mais relevantes para esse texto. O capítulo da ByteByteGo fixa o escopo para simplificar: só consultas em texto, só inglês e sem personalização. A relevância é decidida pelo conteúdo visual e pelos dados textuais do vídeo.
Os números do exercício são um bilhão de vídeos na plataforma e dez milhões de pares de vídeo e consulta para treinar o modelo. As notas de um repositório público de entrevistas de ML acrescentam um requisito de escala de 50M DAU.
02 · FORMULAÇÃO
Duas buscas que se complementam
O objetivo de ML é ranquear os vídeos pela relevância para a consulta. O capítulo divide o trabalho em dois componentes: uma busca visual, que compara a consulta com o conteúdo visual dos vídeos, e uma busca textual, que compara a consulta com títulos, descrições e tags.
| Aspecto | Busca visual | Busca textual |
|---|---|---|
| O que compara | A consulta com o conteúdo visual dos vídeos | A consulta com títulos, descrições ou tags dos vídeos |
| Técnica | Dois codificadores, um de texto e um de vídeo, e produto escalar entre os embeddings | Índice invertido, com o Elasticsearch como exemplo de motor |
| Custo de treino | Exige treinar os codificadores | Nenhum, porque o índice invertido não é baseado em ML |
O índice invertido não é baseado em ML, então a busca textual não tem custo de treino, e o treino se concentra nos codificadores da busca visual. Juntar as duas listas é o papel da camada de fusão, tratada mais adiante.
03 · MODELOS E TREINO
Codificadores de texto e de vídeo
Antes de entrar no modelo, o texto vira um vetor numérico em três passos: normalização, tokenização e conversão de tokens em IDs. Como o conjunto de dados já vem anotado, o capítulo dispensa a etapa de engenharia de dados.
Para o texto, os métodos estatísticos são rápidos, mas não captam o sentido contextual e geram representações esparsas. Os Transformers geram embeddings diferentes para a mesma palavra conforme o contexto, e o capítulo escolhe uma arquitetura como o BERT.
| Aspecto | Modelo de nível de vídeo | Modelo de nível de quadro |
|---|---|---|
| Como funciona | Processa o vídeo inteiro para criar o embedding, em geral com convoluções 3D ou Transformers | Amostra quadros, gera um embedding por quadro e agrega os embeddings, por exemplo pela média |
| Custo | Computacionalmente caro, porque processa o vídeo todo | Em geral mais rápido e computacionalmente mais barato |
| Aspectos temporais | Capta o entendimento temporal, segundo as notas de um repositório público | Em geral não entende aspectos temporais, como ações e movimentos |
O capítulo adota um modelo de nível de quadro, como o ViT, e treina os dois codificadores com aprendizado contrastivo.
Os dados já chegam anotados como pares de vídeo e consulta, o que dispensa engenharia de dados.
O texto passa por normalização, tokenização e conversão de tokens em IDs antes de chegar ao codificador de texto.
No lado do vídeo, o modelo por quadros começa pré-processando o vídeo e amostrando quadros.
O texto vira embedding num Transformer como o BERT, e o vídeo vira embedding num modelo por quadros como o ViT, com os embeddings de quadro agregados.
Os codificadores de texto e de vídeo são treinados com aprendizado contrastivo.
04 · AVALIAÇÃO
Como medir uma busca
No conjunto de avaliação, cada consulta tem um único vídeo associado. Por isso o numerador de precision@k vale no máximo 1, e precision@k e mAP pouco ajudam. O recall@k também falha: se um modelo põe o vídeo relevante na posição 15 e outro na posição 50, os dois têm recall@10=0. O MRR corrige as falhas do recall@k e é a métrica offline escolhida.
| Métrica online | O que a fonte aponta |
|---|---|
| CTR | Não rastreia se os vídeos clicados são relevantes para o usuário |
| Taxa de conclusão do vídeo | O usuário pode assistir só uma parte e ainda achar o vídeo relevante |
| Tempo total assistido | É um bom indicador de relevância dos resultados |
05 · SERVIÇO
Consulta, fusão e indexação
No serviço de predição, a busca visual codifica a consulta e usa o serviço de vizinho mais próximo, com algoritmos aproximados (ANN) para acelerar a busca. A busca textual usa o Elasticsearch. A camada de fusão combina as duas listas e o serviço de reranking aplica a lógica e as políticas de negócio.
O diagrama começa pelo serviço de busca, que recebe a consulta de texto.
Pelo lado visual, a consulta é codificada em um embedding.
O serviço de vizinho mais próximo usa algoritmos aproximados (ANN) para achar os embeddings de vídeo mais parecidos com o da consulta.
Pelo lado textual, o Elasticsearch devolve vídeos cujos títulos e tags se sobrepõem à consulta.
A camada de fusão recebe as duas listas e as combina numa só.
O reranking ajusta a lista com lógica e políticas de negócio, e a lista final volta ao usuário.
| Aspecto | Soma ponderada | Modelo adicional |
|---|---|---|
| Como combina | Reordena os vídeos pela soma ponderada das relevâncias previstas | Usa um modelo extra para reordenar os vídeos |
| Custo | É a opção mais simples | Mais cara, porque exige treino, e mais lenta no serving |
| Escolha do capítulo | Adotada | Não adotada |
Do outro lado da busca há a indexação. Um codificador de vídeo treinado calcula os embeddings, que são indexados, e o Elasticsearch indexa títulos, tags manuais e tags geradas automaticamente. Quando o vídeo chega sem tags, um modelo independente, o auto-tagger, gera tags que podem ser mais ruidosas, mas ainda valem.
O criador envia o vídeo e, em geral, informa tags para identificá-lo.
Um codificador de vídeo treinado calcula os embeddings, que são então indexados.
Quando faltam tags manuais, o auto-tagger gera tags, que podem ser mais ruidosas, mas ainda valem.
Títulos, tags manuais e tags automáticas vão para o índice textual do Elasticsearch.
06 · PRÓXIMOS PASSOS
O que o capítulo deixa para depois
O próprio capítulo reconhece que o desenho foi simplificado e que na prática o sistema é muito mais complexo. Entre as melhorias que ele lista estão um desenho em vários estágios, com geração de candidatos e ranqueamento, mais atributos do vídeo, como duração e popularidade, e o uso de interações, como cliques e curtidas, para construir e rotular dados.
Outro ponto levantado é a presença de vídeos quase duplicados na saída final, que podem prejudicar a experiência de quem busca.
Perguntas frequentes
O que é Busca de vídeos no YouTube?
Projeto de entrevista clássico. Pontos centrais: embeddings multimodais, fusão de índice invertido com ANN e reranking.
O que o design de Busca de vídeos no YouTube cobre?
Ele está organizado nestas seções: Buscar vídeos por um texto, Duas buscas que se complementam, Codificadores de texto e de vídeo, Como medir uma busca, Consulta, fusão e indexação e O que o capítulo deixa para depois.
Quanto tempo leva Busca de vídeos no YouTube e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Pleno.
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.