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.
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ério | Taxa de cliques | Tempo de exibição | Tempo ajustado por qualidade |
|---|---|---|---|
| Vantagem | Fácil de medir e de otimizar | Alinha-se a uma plataforma com anúncios e controla o problema de retenção | Combina o tempo com sinais como avaliações, taxa de conclusão e compartilhamento |
| Risco | Miniaturas sensacionalistas geram cliques, mas sem retenção o usuário sai | Pode promover conteúdo viciante e de baixa qualidade | Ainda 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.
O app pede as recomendações do próximo vídeo ao serviço de recomendação, que coordena as etapas seguintes.
Vários geradores de candidatos rodam em paralelo, com contexto universal ou personalizado, e muitos deles são interfaces finas sobre o banco vetorial.
Geradores de contexto limitado podem ser pré-calculados e guardados em cache.
O ranqueador leve reduz o conjunto de candidatos com atributos rápidos de calcular, e o que importa nele é a revocação.
O ranqueador pesado usa o conjunto completo de atributos para pontuar os vídeos que sobraram.
O re-ranqueamento ajusta a lista como um todo, equilibrando engajamento, criadores e saúde da plataforma.
| Critério | Ranqueador leve | Ranqueador pesado |
|---|---|---|
| Prioridade | Revocação alta, baixa latência e alta vazão | Precisão alta, alta qualidade e menor vazão |
| Modelo típico | Modelo baseado em árvores, como o GBDT | Arquitetura baseada em transformers, que se tornou a preferida em recomendação |
| Custo | Roda em CPU com latência abaixo de um milissegundo | Computacionalmente 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.
No desenho, cada interação do usuário vira um evento numa fila, e um pipeline transforma esses eventos em exemplos de treino.
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.
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.
Na amostragem dos negativos, privilegiam-se os negativos difíceis.
Os embeddings de usuário e de vídeos candidatos vão para o banco vetorial, de onde são recuperados.
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.
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.
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.
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.
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.
Quando já há algum sinal comportamental, o vídeo passa para uma abordagem mais personalizada.
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.