Pular para o conteúdo

Arquitetura real · Sênior

Netflix: personalização de capas (contextual bandits)

Arquitetura real em produção. Pontos centrais: bandits contextuais, exploração vs exploração e avaliação offline por replay.

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

Resposta curta

Arquitetura real em produção. Pontos centrais: bandits contextuais, exploração vs exploração e avaliação offline por replay. Durante muitos anos, o objetivo do sistema de recomendação da Netflix foi colocar os títulos certos diante de cada membro na hora certa. O blog sobre personalização de capas parte de uma pergunta seguinte: por que o membro deveria se importar com um título…

01 · CONTEXTO

Recomendar o título não basta: falta convencer

Durante muitos anos, o objetivo do sistema de recomendação da Netflix foi colocar os títulos certos diante de cada membro na hora certa. O blog sobre personalização de capas parte de uma pergunta seguinte: por que o membro deveria se importar com um título recomendado? Uma das vias para responder é a imagem usada para retratar o título.

Antes, a Netflix já usava bandits não contextuais para achar a imagem vencedora de cada título, independentemente do contexto. O passo descrito aqui é escolher a melhor imagem para cada membro, motivado pela enorme diversidade de gostos e preferências.

02 · DESAFIOS

Por que escolher uma imagem é diferente de recomendar

A jogada de um título só pode vir da imagem que se decidiu mostrar ao membro. Por isso, a escolha de imagem é um problema do ovo e da galinha em ciclo fechado.

DesafioO que o texto descreve
AtribuiçãoTrocar a imagem torna incerto qual imagem levou o membro a se interessar pelo título.
Contexto da páginaOlhar cada imagem isoladamente pode não bastar; é preciso um conjunto diverso entre títulos e ao longo da sessão.
EscalaPico de mais de 20 milhões de requisições por segundo, com baixa latência.
Título novoResponder rápido no lançamento, aprendendo a personalizar em situação de cold-start.
Mudança no tempoA eficácia da imagem muda conforme o título evolui e os gostos dos membros evoluem.

O conjunto de imagens de cada título também importa: precisa ser diverso o bastante para cobrir públicos interessados em aspectos diferentes, e cada imagem precisa ser engajadora, informativa e representativa para evitar clickbait.

03 · BANDITS CONTEXTUAIS

Do aprendizado em lote ao aprendizado online

No modo tradicional, coleta-se um lote de dados de uso e roda-se um novo algoritmo sobre ele. O texto observa que esse caminho em lote gera arrependimento (regret): muitos membros, por um longo período, não se beneficiaram da experiência melhor.

Para a personalização de capas, o arcabouço é o de bandits contextuais, uma classe de algoritmos de aprendizado online que equilibra o custo de coletar dados de treino com o benefício de aplicar o modelo aprendido ao contexto de cada membro. Aqui o membro é o contexto, porque se espera que membros diferentes respondam de modo diferente às imagens.

A página da palestra na QCon acrescenta que bandits trazem desafios técnicos por exigirem fechar um laço de feedback. O diagrama mostra esse laço de forma ilustrativa.

  1. O membro só vê a imagem que o seletor escolheu para o título, e qualquer jogada vem dessa imagem.

    Diagrama da arquitetura: Laço de seleção de capa com bandit contextual
    CLTela do membro
    CPSeletor de capa
    DBImagens candidatas
    CPModelo de probabilidade de jogada
    QRegistro de exibições e resultados
    CPTreino do modelo
  2. O seletor parte das imagens candidatas do título, até algumas dezenas, e o modelo estima a probabilidade de jogada de qualidade de cada uma no contexto do membro; a de maior probabilidade é a escolhida.

    Diagrama da arquitetura: Laço de seleção de capa com bandit contextual
    CLTela do membro
    CPSeletor de capa
    DBImagens candidatas
    CPModelo de probabilidade de jogada
    QRegistro de exibições e resultados
    CPTreino do modelo
  3. Cada seleção randomizada é registrada com a informação sobre a aleatoriedade usada, o que permite corrigir propensões de seleção enviesadas.

    Diagrama da arquitetura: Laço de seleção de capa com bandit contextual
    CLTela do membro
    CPSeletor de capa
    DBImagens candidatas
    CPModelo de probabilidade de jogada
    QRegistro de exibições e resultados
    CPTreino do modelo
  4. Cada exibição e seu resultado, jogou ou não jogou, alimentam o conjunto de treino por tupla de membro, título e imagem.

    Diagrama da arquitetura: Laço de seleção de capa com bandit contextual
    CLTela do membro
    CPSeletor de capa
    DBImagens candidatas
    CPModelo de probabilidade de jogada
    QRegistro de exibições e resultados
    CPTreino do modelo
  5. Quando os dados voltam, os modelos são atualizados e colocados em uso de novo, num laço contínuo de melhoria.

    Diagrama da arquitetura: Laço de seleção de capa com bandit contextual
    CLTela do membro
    CPSeletor de capa
    DBImagens candidatas
    CPModelo de probabilidade de jogada
    QRegistro de exibições e resultados
    CPTreino do modelo

04 · EXPLORAÇÃO

Explorar sem prejudicar a experiência

Os dados de treino de um bandit contextual vêm da injeção de aleatoriedade controlada nas previsões do modelo. Os esquemas vão de epsilon-greedy, com aleatoriedade uniforme, a esquemas de circuito fechado que variam o grau de aleatoriedade conforme a incerteza do modelo.

Cada seleção randomizada precisa ser registrada. Esse registro permite corrigir propensões de seleção enviesadas e avaliar modelos offline sem viés.

Explorar tem custo, porque a imagem escolhida numa sessão pode não ser a prevista como melhor. Com uma base muito grande de membros, o texto afirma que esse arrependimento costuma ser muito pequeno e fica diluído entre eles.

Dois cuidados melhoram os dados. A exploração pode ser controlada para que a imagem não mude com muita frequência, o que dá uma atribuição mais limpa do engajamento. E o rótulo é definido pela qualidade do engajamento, para evitar um modelo que recomende imagens clickbait.

05 · MODELO

Prever a jogada de qualidade por membro e imagem

O conjunto de treino registra, para cada tupla (membro, título, imagem), se aquela seleção resultou em jogada do título. Há tipicamente até algumas dezenas de imagens candidatas por título, e o problema é simplificado ordenando as imagens de um membro de forma independente entre títulos.

O modelo prevê, para cada tupla, a probabilidade de o membro ter um engajamento de qualidade. Podem ser modelos supervisionados ou equivalentes de bandit contextual com Thompson Sampling, LinUCB ou métodos bayesianos, que equilibram a melhor previsão com a exploração de dados.

Entre os atributos do membro que podem servir de contexto estão os títulos que o membro reproduziu, o gênero, interações com o título, país, idioma, dispositivo, hora do dia e dia da semana, além de sinais do que os algoritmos de recomendação pensam do título, independentemente da imagem.

Algumas imagens são naturalmente melhores que outras. A taxa de reprodução (take rate) de uma imagem é o número de jogadas de qualidade dividido pelo número de impressões, e a personalização ainda recupera seleções que concordam, em média, com a ordenação do modelo não personalizado.

Na hora de escolher, ordenam-se as imagens candidatas por essas probabilidades e apresenta-se ao membro a de maior probabilidade.

06 · AVALIAÇÃO

Replay offline e teste A/B online

Antes de implantar os algoritmos para membros reais, a avaliação offline usa uma técnica chamada replay. Ela responde a perguntas contrafactuais a partir dos dados de exploração registrados e permite comparar, sem viés, o que teria acontecido em sessões históricas com algoritmos diferentes.

  1. Na exploração, uma imagem aleatória é atribuída a cada membro, e o sistema registra a impressão e se o perfil reproduziu o título.

    Diagrama da arquitetura: Avaliação offline por replay antes do teste online
    DBRegistro de exploração
    CPModelo candidato
    CPReplay offline
    NWFração de jogadas
    CPTeste A/B online
  2. O replay confronta o modelo candidato com o registro, e só contam os perfis em que a imagem sorteada e a escolhida pelo modelo coincidem.

    Diagrama da arquitetura: Avaliação offline por replay antes do teste online
    DBRegistro de exploração
    CPModelo candidato
    CPReplay offline
    NWFração de jogadas
    CPTeste A/B online
  3. Sobre esse subconjunto calcula-se a fração de jogadas, que é o número de jogadas de qualidade dividido pelo número de impressões.

    Diagrama da arquitetura: Avaliação offline por replay antes do teste online
    DBRegistro de exploração
    CPModelo candidato
    CPReplay offline
    NWFração de jogadas
    CPTeste A/B online
  4. Os modelos com aumento substancial no replay seguem para um teste A/B contra bandits não personalizados.

    Diagrama da arquitetura: Avaliação offline por replay antes do teste online
    DBRegistro de exploração
    CPModelo candidato
    CPReplay offline
    NWFração de jogadas
    CPTeste A/B online
  5. No teste online viu-se uma correlação razoável com o que o replay havia medido.

    Diagrama da arquitetura: Avaliação offline por replay antes do teste online
    DBRegistro de exploração
    CPModelo candidato
    CPReplay offline
    NWFração de jogadas
    CPTeste A/B online

No texto, os algoritmos de bandit contextual elevam a fração média de jogadas do catálogo em relação à seleção aleatória e aos bandits não contextuais.

Depois de testar muitos modelos offline e achar os de aumento substancial no replay, a equipe rodou um teste A/B dos bandits contextuais mais promissores contra bandits não personalizados. A personalização funcionou e gerou aumento significativo nas métricas centrais, com correlação razoável entre o replay e o resultado online.

O aumento foi maior quando o membro não tinha interação prévia com o título, o que faz sentido porque a imagem tende a pesar mais para quem tem menos familiaridade com ele.

07 · LIÇÕES

O que levar para a entrevista

O blog descreve o projeto como a primeira vez em que a Netflix personaliza não só o que recomenda, mas também como recomenda. Entre os próximos passos listados estão tratar o cold-start de imagens e títulos novos e estender a abordagem a outros tipos de arte e a outras evidências, como sinopses, metadados e trailers.

A ideia central é tratar a escolha como um laço fechado: o que se mostra determina o que se observa. Registrar as exibições, os resultados e a aleatoriedade usada passa a fazer parte do desenho do sistema, e não de um detalhe de instrumentação.

Perguntas frequentes

O que é Netflix: personalização de capas (contextual bandits)?

Arquitetura real em produção. Pontos centrais: bandits contextuais, exploração vs exploração e avaliação offline por replay.

O que o design de Netflix: personalização de capas (contextual bandits) cobre?

Ele está organizado nestas seções: Recomendar o título não basta: falta convencer, Por que escolher uma imagem é diferente de recomendar, Do aprendizado em lote ao aprendizado online, Explorar sem prejudicar a experiência, Prever a jogada de qualidade por membro e imagem e Replay offline e teste A/B online.

Quanto tempo leva Netflix: personalização de capas (contextual bandits) 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.