Pular para o conteúdo

Arquitetura real · Sênior

YouTube DNN Recommendations (2016)

Arquitetura real em produção. Pontos centrais: geração de candidatos como classificação extrema, watch time esperado e example age.

17 min de leitura · Fonte: YouTube · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Arquitetura real em produção. Pontos centrais: geração de candidatos como classificação extrema, watch time esperado e example age. O caso resume o artigo "Deep Neural Networks for YouTube Recommendations", apresentado no RecSys em setembro de 2016. Segundo os autores, o YouTube passou por uma mudança de paradigma rumo ao uso de aprendizado profundo como solução de propósito geral para quase…

01 · CONTEXTO

Um funil de duas redes

O caso resume o artigo "Deep Neural Networks for YouTube Recommendations", apresentado no RecSys em setembro de 2016. Segundo os autores, o YouTube passou por uma mudança de paradigma rumo ao uso de aprendizado profundo como solução de propósito geral para quase todos os problemas de aprendizado.

O artigo aponta três desafios: escala, porque algoritmos que funcionam bem em problemas pequenos falham nessa escala; frescor, porque o acervo é dinâmico e o sistema precisa modelar vídeos recém-enviados e as últimas ações do usuário; e ruído, porque o comportamento histórico é difícil de prever e o sinal disponível é feedback implícito ruidoso.

Em termos de design de sistemas de ML, o sistema é composto por duas redes neurais, uma para geração de candidatos e outra para ranking. A primeira recebe eventos do histórico de atividade do usuário e recupera um subconjunto pequeno, na casa das centenas, de vídeos de um acervo grande, oferecendo apenas personalização ampla por filtragem colaborativa. A segunda dá uma nota a cada vídeo com um conjunto rico de atributos do vídeo e do usuário, e os de maior nota são mostrados em ordem.

  1. O app pede as recomendações ao serviço de recomendação.

    Diagrama da arquitetura: Funil de recomendação em duas redes
    CLApp de vídeopede a lista
    CPServiço de recomendação
    DBHistórico de atividade
    CPGeração de candidatos
    CPOutras fontes de candidatos
    CPRanking
  2. A rede de geração de candidatos recebe eventos do histórico de atividade do usuário e reduz o acervo grande a um subconjunto pequeno, na casa das centenas.

    Diagrama da arquitetura: Funil de recomendação em duas redes
    CLApp de vídeo
    CPServiço de recomendação
    DBHistórico de atividade
    CPGeração de candidatoscentenas de candidatos
    CPOutras fontes de candidatos
    CPRanking
  3. Candidatos de outras fontes podem ser misturados aos da rede de geração de candidatos.

    Diagrama da arquitetura: Funil de recomendação em duas redes
    CLApp de vídeo
    CPServiço de recomendação
    DBHistórico de atividade
    CPGeração de candidatos
    CPOutras fontes de candidatosoutras fontes
    CPRanking
  4. O ranking pontua cada candidato. Como são só algumas centenas de vídeos, cabe usar muito mais atributos do vídeo e da relação do usuário com ele.

    Diagrama da arquitetura: Funil de recomendação em duas redes
    CLApp de vídeo
    CPServiço de recomendação
    DBHistórico de atividade
    CPGeração de candidatos
    CPOutras fontes de candidatos
    CPRankingnota por vídeo
  5. Os vídeos de maior nota chegam ao app, ordenados pela nota.

    Diagrama da arquitetura: Funil de recomendação em duas redes
    CLApp de vídeolista ordenada
    CPServiço de recomendação
    DBHistórico de atividade
    CPGeração de candidatos
    CPOutras fontes de candidatos
    CPRanking

02 · CANDIDATOS

Recomendar como classificação extrema

Os autores formulam a recomendação como classificação multiclasse extrema: prever qual vídeo específico será assistido num dado momento, entre milhões de vídeos (as classes). A rede aprende um embedding do usuário, função do histórico e do contexto, útil para discriminar entre vídeos com um classificador softmax.

Para treinar, usam o feedback implícito das reproduções, em que o usuário concluir um vídeo é um exemplo positivo. A escolha se baseia na quantidade, ordens de grandeza maior, de histórico implícito, que permite recomendar bem na cauda, onde o feedback explícito é muito escasso.

Treinar com milhões de classes exige um atalho: amostram-se classes negativas da distribuição de fundo (candidate sampling) e corrige-se a amostragem por importance weighting; para cada exemplo, minimiza-se a entropia cruzada do rótulo verdadeiro e das classes negativas amostradas.

  1. No treino, o histórico de reproduções vira exemplos: concluir um vídeo é exemplo positivo (feedback implícito).

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reproduçãoreproduções
    CPTreino com amostragem
    DBVetores de vídeos
    CPBusca de vizinhos aproximada
    CPRede do usuário
    CPServiço de candidatos
  2. Para treinar com milhões de classes, o treino amostra classes negativas e minimiza a entropia cruzada do rótulo verdadeiro e dos negativos amostrados.

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reprodução
    CPTreino com amostragemnegativos amostrados
    DBVetores de vídeos
    CPBusca de vizinhos aproximada
    CPRede do usuário
    CPServiço de candidatos
  3. Os embeddings dos vídeos são aprendidos em conjunto com os demais parâmetros do modelo, e a rede aprende o embedding do usuário como função do histórico e do contexto.

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reprodução
    CPTreino com amostragem
    DBVetores de vídeosvetores aprendidos
    CPBusca de vizinhos aproximada
    CPRede do usuário
    CPServiço de candidatos
  4. Ao servir, a rede do usuário transforma o histórico e o contexto em um vetor do usuário.

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reprodução
    CPTreino com amostragem
    DBVetores de vídeos
    CPBusca de vizinhos aproximada
    CPRede do usuáriovetor do usuário
    CPServiço de candidatos
  5. Como as probabilidades calibradas do softmax não são necessárias, a pontuação vira uma busca dos vizinhos mais próximos, no produto escalar, entre o vetor do usuário e os vetores dos vídeos.

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reprodução
    CPTreino com amostragem
    DBVetores de vídeos
    CPBusca de vizinhos aproximadavizinhos mais próximos
    CPRede do usuário
    CPServiço de candidatos
  6. Pontuar milhões de itens com latência de dezenas de milissegundos exige um esquema aproximado e sublinear no número de classes.

    Diagrama da arquitetura: Geração de candidatos: treino e serviço
    DBRegistros de reprodução
    CPTreino com amostragem
    DBVetores de vídeos
    CPBusca de vizinhos aproximadabusca aproximada
    CPRede do usuário
    CPServiço de candidatos

Ao servir, é preciso obter as classes mais prováveis para escolher as primeiras a apresentar. Pontuar milhões de itens com latência de dezenas de milissegundos exige um esquema aproximado e sublinear no número de classes. Como as probabilidades calibradas do softmax não são necessárias, o problema vira uma busca de vizinhos mais próximos no espaço do produto escalar, para a qual bibliotecas de propósito geral servem. Os autores relatam que os resultados dos testes A/B não foram particularmente sensíveis ao algoritmo escolhido.

A entrada é o histórico de reproduções, uma sequência de IDs de vídeos mapeada para um vetor denso por embeddings. O histórico de busca é tratado de forma parecida, e atributos demográficos fornecem priors para que as recomendações se comportem de forma razoável para usuários novos.

03 · FRESCOR

A idade do exemplo

Recomendar conteúdo recém-enviado é extremamente importante para o YouTube como produto. O problema, segundo o artigo, é que sistemas de aprendizado de máquina costumam ter um viés implícito para o passado, porque são treinados para prever o futuro.

A popularidade dos vídeos é muito não estacionária, mas a distribuição que o recomendador produz reflete a probabilidade média de reprodução na janela de treino, de várias semanas. Para corrigir isso, os autores passam a idade do exemplo de treino como atributo durante o treino.

SituaçãoIdade do exemplo
No treinoA idade do exemplo de treino entra como atributo
Ao servirFica em zero (ou levemente negativa), para refletir que a previsão ocorre no fim da janela de treino
Sem o atributoO modelo preveria aproximadamente a probabilidade média na janela de treino

04 · RANKING

Prever o tempo assistido

O papel principal do ranking é usar dados de impressão para especializar e calibrar as previsões dos candidatos para a interface do usuário. Como só algumas centenas de vídeos são pontuados, em vez dos milhões da geração de candidatos, há acesso a muito mais atributos do vídeo e da relação do usuário com ele. O ranking também é crucial para combinar fontes de candidatos cujas notas não são diretamente comparáveis.

Os sinais mais importantes descrevem a interação anterior do usuário com o próprio item e com itens semelhantes, por exemplo quantos vídeos ele já assistiu daquele canal. Atributos sobre a frequência de impressões passadas são críticos para introduzir variação (churn) nas recomendações, isto é, pedidos sucessivos não devolvem listas idênticas.

ObjetivoO que o artigo diz
Taxa de cliquesCostuma promover vídeos enganosos que o usuário não completa (clickbait)
Tempo assistidoCaptura melhor o engajamento
Objetivo final do rankingAjustado o tempo todo por testes A/B ao vivo; em geral uma função simples do tempo assistido esperado por impressão

Para prever o tempo assistido esperado, usam regressão logística ponderada: as impressões positivas (clicadas) recebem peso igual ao tempo assistido observado, e as negativas (não clicadas) recebem peso unitário. Na inferência, a função exponencial é a ativação final e produz as chances que estimam de perto o tempo assistido esperado.

Aumentar a largura e a profundidade das camadas ocultas melhora os resultados, mas o custo é o tempo de CPU do servidor na inferência. A configuração que parte de uma camada ReLU de 1024 unidades e termina em uma de 256 deu os melhores resultados e ainda coube no orçamento de CPU de serving.

05 · LIÇÕES

Rótulo, contexto e testes ao vivo

Uma lição central é que a escolha do problema substituto (surrogate) tem importância desproporcional no desempenho em testes A/B, mas é muito difícil de medir com experimentos offline. Os autores lembram que os resultados A/B ao vivo nem sempre se correlacionam com os offline, e a determinação final da eficácia de um modelo vem de testes ao vivo.

Muitos sistemas de filtragem colaborativa escondem um item aleatório do histórico e o preveem a partir dos demais, . No artigo, reverte-se o histórico: escolhe-se uma reprodução aleatória e usam-se como entrada só as ações anteriores a ela. Os autores encontraram desempenho bem melhor ao prever a próxima reprodução, e concluem que classificar uma reprodução futura foi bem em métricas ao vivo ao capturar o comportamento assimétrico de co-reprodução e evitar o vazamento de informação futura.

Os exemplos de treino vêm de todas as reproduções do YouTube, inclusive as embutidas em outros sites, e não só das reproduções nas recomendações; caso contrário, seria difícil para conteúdo novo aparecer e o recomendador ficaria enviesado demais para a exploitation. Gerar um número fixo de exemplos por usuário pesa os usuários igualmente na perda e impediu que um pequeno grupo de usuários muito ativos dominasse a perda.

Também é preciso reter informação do classificador, para que ele não explore a estrutura do site e sobreajuste o problema substituto. No exemplo do artigo, reproduzir a última página de busca do usuário como recomendação da página inicial funciona muito mal; ao descartar a informação de sequência e representar as buscas como um saco de tokens sem ordem, o classificador deixa de saber diretamente a origem do rótulo.

Perguntas frequentes

O que é YouTube DNN Recommendations (2016)?

Arquitetura real em produção. Pontos centrais: geração de candidatos como classificação extrema, watch time esperado e example age.

O que o design de YouTube DNN Recommendations (2016) cobre?

Ele está organizado nestas seções: Um funil de duas redes, Recomendar como classificação extrema, A idade do exemplo, Prever o tempo assistido e Rótulo, contexto e testes ao vivo.

Quanto tempo leva YouTube DNN Recommendations (2016) e qual é o nível?

Leva cerca de 17 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.