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.
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.
| Desafio | O que o texto descreve |
|---|---|
| Atribuição | Trocar a imagem torna incerto qual imagem levou o membro a se interessar pelo título. |
| Contexto da página | Olhar cada imagem isoladamente pode não bastar; é preciso um conjunto diverso entre títulos e ao longo da sessão. |
| Escala | Pico de mais de 20 milhões de requisições por segundo, com baixa latência. |
| Título novo | Responder rápido no lançamento, aprendendo a personalizar em situação de cold-start. |
| Mudança no tempo | A 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.
O membro só vê a imagem que o seletor escolheu para o título, e qualquer jogada vem dessa imagem.
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.
Cada seleção randomizada é registrada com a informação sobre a aleatoriedade usada, o que permite corrigir propensões de seleção enviesadas.
Cada exibição e seu resultado, jogou ou não jogou, alimentam o conjunto de treino por tupla de membro, título e imagem.
Quando os dados voltam, os modelos são atualizados e colocados em uso de novo, num laço contínuo de melhoria.
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.
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.
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.
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.
Os modelos com aumento substancial no replay seguem para um teste A/B contra bandits não personalizados.
No teste online viu-se uma correlação razoável com o que o replay havia medido.
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.