Pular para o conteúdo

Design clássico · Sênior

Recomendação de vídeos

Projeto de entrevista clássico. Pontos centrais: candidate generation + ranking, two-tower, feedback implícito, cold start e A/B.

16 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: candidate generation + ranking, two-tower, feedback implícito, cold start e A/B. O caso é o de recomendar o próximo vídeo ("up next") enquanto o usuário assiste a outro. Para o desenho, adotam-se premissas de escala: cerca de 1B de vídeos, 1B de usuários ativos por dia, 5 vídeos na tela de uma vez e…

01 · CONTEXTO E REQUISITOS

O que é recomendar o próximo vídeo

O caso é o de recomendar o próximo vídeo ("up next") enquanto o usuário assiste a outro. Para o desenho, adotam-se premissas de escala: cerca de 1B de vídeos, 1B de usuários ativos por dia, 5 vídeos na tela de uma vez e uma resposta na janela de 250ms. Esse combinado é o ponto de partida do levantamento de requisitos.

Antes do modelo vem o objetivo de negócio. Otimizar a taxa de cliques é fácil de medir, mas pode levar a comportamentos gananciosos; maximizar o tempo de exibição se alinha melhor a uma plataforma com anúncios; e a opção adotada no caso é o tempo de exibição ajustado por qualidade.

CritérioTaxa de cliquesTempo de exibiçãoTempo ajustado por qualidade
VantagemFácil de medir e de otimizarAlinha-se a uma plataforma com anúncios e controla o problema de retençãoCombina o tempo com sinais como avaliações, taxa de conclusão e compartilhamento
RiscoMiniaturas sensacionalistas geram cliques, mas sem retenção o usuário saiPode promover conteúdo viciante e de baixa qualidadeAinda pode perder fatores como sustentabilidade dos criadores e diversidade

02 · ARQUITETURA EM ESTÁGIOS

Do acervo inteiro a poucos vídeos

Sistemas de recomendação em escala quase sempre usam uma arquitetura em vários estágios, relativamente padrão na indústria. O artigo do YouTube sobre redes neurais descreve duas redes, uma de geração de candidatos e outra de ranking; o desenho a seguir amplia esse funil com um ranqueador leve e um re-ranqueamento final, como no caso.

  1. O app pede as recomendações do próximo vídeo ao serviço de recomendação, que coordena as etapas seguintes.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendaçãocoordena o funil
    CPGeradores de candidatos
    DBBanco vetorial
    CHCache de candidatos pré-calculados
    CPRanqueador leve
    CPRanqueador pesado
    CPRe-ranqueamento da lista
  2. Vários geradores de candidatos rodam em paralelo, com contexto universal ou personalizado, e muitos deles são interfaces finas sobre o banco vetorial.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendação
    CPGeradores de candidatosem paralelo
    DBBanco vetorialvizinhos
    CHCache de candidatos pré-calculados
    CPRanqueador leve
    CPRanqueador pesado
    CPRe-ranqueamento da lista
  3. Geradores de contexto limitado podem ser pré-calculados e guardados em cache.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendação
    CPGeradores de candidatos
    DBBanco vetorial
    CHCache de candidatos pré-calculadospré-calculado
    CPRanqueador leve
    CPRanqueador pesado
    CPRe-ranqueamento da lista
  4. O ranqueador leve reduz o conjunto de candidatos com atributos rápidos de calcular, e o que importa nele é a revocação.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendação
    CPGeradores de candidatos
    DBBanco vetorial
    CHCache de candidatos pré-calculados
    CPRanqueador leveprioriza revocação
    CPRanqueador pesado
    CPRe-ranqueamento da lista
  5. O ranqueador pesado usa o conjunto completo de atributos para pontuar os vídeos que sobraram.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendação
    CPGeradores de candidatos
    DBBanco vetorial
    CHCache de candidatos pré-calculados
    CPRanqueador leve
    CPRanqueador pesadoatributos completos
    CPRe-ranqueamento da lista
  6. O re-ranqueamento ajusta a lista como um todo, equilibrando engajamento, criadores e saúde da plataforma.

    Diagrama da arquitetura: Funil de recomendação do próximo vídeo
    CLApp de vídeo
    CPServiço de recomendação
    CPGeradores de candidatos
    DBBanco vetorial
    CHCache de candidatos pré-calculados
    CPRanqueador leve
    CPRanqueador pesado
    CPRe-ranqueamento da listamodelo de valor
CritérioRanqueador leveRanqueador pesado
PrioridadeRevocação alta, baixa latência e alta vazãoPrecisão alta, alta qualidade e menor vazão
Modelo típicoModelo baseado em árvores, como o GBDTArquitetura baseada em transformers, que se tornou a preferida em recomendação
CustoRoda em CPU com latência abaixo de um milissegundoComputacionalmente mais caro que o DLRM

No artigo do YouTube, pontuar o acervo inteiro dentro de dezenas de milissegundos exige pontuação aproximada, e o serviço gera centenas de vídeos candidatos por uma busca aproximada de vizinhos mais próximos.

03 · DADOS E MODELOS

O que o modelo aprende e com quê

A maior parte dos dados de treino vem de feedback implícito. Sinais explícitos têm alta qualidade, mas são relativamente raros. Vídeos que fazem o usuário deixar a plataforma estão entre os sinais negativos implícitos mais fortes.

Os atributos de conteúdo do vídeo podem ser calculados uma vez, no upload ou na edição, e guardados em cache por muito tempo. Os atributos de engajamento são mais dinâmicos e precisam de atualização mais frequente, com normalização cuidadosa.

Calcular e atualizar esses atributos é trabalho típico de um pipeline de dados.

  1. No desenho, cada interação do usuário vira um evento numa fila, e um pipeline transforma esses eventos em exemplos de treino.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interaçãofila de eventos
    CPPipeline de exemplos de treinomonta exemplos
    DBArmazenamento de exemplos
    CPTreino das torres
    DBBanco vetorial
    CPGerador de candidatos
    CHCache de embeddings e candidatos
  2. A maior parte dos exemplos vem de feedback implícito, e vídeos que fazem o usuário sair da plataforma são sinais negativos fortes.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interação
    CPPipeline de exemplos de treino
    DBArmazenamento de exemplosexemplos prontos
    CPTreino das torres
    DBBanco vetorial
    CPGerador de candidatos
    CHCache de embeddings e candidatos
  3. Duas torres paralelas aprendem embeddings do usuário e dos vídeos candidatos, a partir de trincas de usuário, vídeo positivo e vídeo negativo.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interação
    CPPipeline de exemplos de treino
    DBArmazenamento de exemplos
    CPTreino das torresduas torres
    DBBanco vetorial
    CPGerador de candidatos
    CHCache de embeddings e candidatos
  4. Na amostragem dos negativos, privilegiam-se os negativos difíceis.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interação
    CPPipeline de exemplos de treino
    DBArmazenamento de exemplos
    CPTreino das torresnegativos difíceis
    DBBanco vetorial
    CPGerador de candidatos
    CHCache de embeddings e candidatos
  5. Os embeddings de usuário e de vídeos candidatos vão para o banco vetorial, de onde são recuperados.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interação
    CPPipeline de exemplos de treino
    DBArmazenamento de exemplos
    CPTreino das torres
    DBBanco vetorialembeddings
    CPGerador de candidatos
    CHCache de embeddings e candidatos
  6. O gerador consulta o banco com um embedding e recupera os K vetores mais próximos; embeddings e resultados de candidatos podem ser guardados em cache.

    Diagrama da arquitetura: Treino das torres e embeddings
    CLApp de vídeo
    QFila de eventos de interação
    CPPipeline de exemplos de treino
    DBArmazenamento de exemplos
    CPTreino das torres
    DBBanco vetorial
    CPGerador de candidatosbusca vizinhos
    CHCache de embeddings e candidatosguarda resultados

O ranqueador final do caso usa uma arquitetura baseada em transformers, otimizada para várias tarefas de previsão. O tempo de exibição é uma cabeça de regressão e a probabilidade de clique, uma cabeça de classificação binária. Prever vários resultados ao mesmo tempo permite aprender representações mais ricas de diferentes aspectos do comportamento.

Os exemplos de treino são gerados pelos usuários, mas também pelo sistema atual. A perda do caso inclui uma correção do viés de posição nos dados históricos.

04 · INFERÊNCIA E AVALIAÇÃO

Servir rápido e medir com cuidado

Dá para pré-calcular e guardar em cache os embeddings de todos os vídeos. Também se guardam em cache os embeddings dos usuários e os resultados da geração de candidatos.

As saídas finais podem ser avaliadas com métricas de ranqueamento como NDCG, MAP e precisão e revocação. Como cada estágio é uma nova fonte de erro nos seguintes, a revocação dos geradores de candidatos também deve ser avaliada.

O padrão-ouro da avaliação online é o teste A/B. No artigo do YouTube, os autores determinam a eficácia final por experimentos ao vivo, porque os resultados de A/B ao vivo nem sempre se correlacionam com os experimentos offline. Os experimentos também sofrem de efeito de novidade: o sistema novo pode render resultados melhores do que renderia de outro modo.

05 · APROFUNDAMENTOS

Início frio, laços de retroalimentação e exploração

Usuários e vídeos novos carecem dos dados comportamentais que alimentam o ranqueador pesado. Para usuários novos, usam-se informações demográficas e preferências de entrada para agrupá-los com usuários parecidos. Para vídeos novos, extraem-se atributos do próprio conteúdo e usa-se exploração controlada.

  1. Um vídeo novo ainda não tem comportamento de usuários; extraem-se atributos do próprio conteúdo, com modelos multimodais que analisam miniaturas, títulos, descrições, transcrições e o vídeo.

    Diagrama da arquitetura: Início frio de um vídeo novo
    CLCriador envia o vídeo
    CPExtração de atributos do conteúdoatributos do conteúdo
    DBBanco vetorialvídeo novo
    CPServiço de recomendação
    CPServiço de exploração
    CLEspectadores
    QLog de impressões e feedback
  2. O serviço de exploração expõe o vídeo novo a uma audiência diversa, mas limitada, para obter sinais iniciais sem arriscar a base ampla.

    Diagrama da arquitetura: Início frio de um vídeo novo
    CLCriador envia o vídeo
    CPExtração de atributos do conteúdo
    DBBanco vetorial
    CPServiço de recomendação
    CPServiço de exploraçãoaudiência limitada
    CLEspectadores
    QLog de impressões e feedback
  3. O que foi mostrado e como os espectadores reagiram fica registrado, e técnicas como o registro contrafactual ajudam a reduzir o viés dos dados de treino.

    Diagrama da arquitetura: Início frio de um vídeo novo
    CLCriador envia o vídeo
    CPExtração de atributos do conteúdo
    DBBanco vetorial
    CPServiço de recomendação
    CPServiço de exploração
    CLEspectadores
    QLog de impressões e feedbackimpressões e reações
  4. Quando já há algum sinal comportamental, o vídeo passa para uma abordagem mais personalizada.

    Diagrama da arquitetura: Início frio de um vídeo novo
    CLCriador envia o vídeo
    CPExtração de atributos do conteúdo
    DBBanco vetorial
    CPServiço de recomendaçãopersonaliza
    CPServiço de exploração
    CLEspectadores
    QLog de impressões e feedback

Recomendadores criam laços de retroalimentação que afetam a experiência do usuário. Como mitigação, o caso propõe registro contrafactual, reponderação por propensão inversa, perdas que penalizam a superexposição e restrições de diversidade na lista.

Há ainda o equilíbrio entre mostrar o que o usuário já gosta (aproveitamento) e incluir cartas-curingas que podem revelar novos interesses (exploração). Esse problema é tratado com técnicas como amostragem de Thompson ou bandits contextuais.

Perguntas frequentes

O que é Recomendação de vídeos?

Projeto de entrevista clássico. Pontos centrais: candidate generation + ranking, two-tower, feedback implícito, cold start e A/B.

O que o design de Recomendação de vídeos cobre?

Ele está organizado nestas seções: O que é recomendar o próximo vídeo, Do acervo inteiro a poucos vídeos, O que o modelo aprende e com quê, Servir rápido e medir com cuidado e Início frio, laços de retroalimentação e exploração.

Quanto tempo leva Recomendação de vídeos 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.