DevSecOps

13 jul, 2017

Teste A/B e além: melhorando a experiência de transmissão da Netflix com experimentação e Ciência de Dados

Publicidade

Atualmente a Netflix possui mais de 100 milhões de usuários espalhados pelo mundo. Uma das grandes preocupações que a empresa tem é disponibilizar a mesma experiência para membros de São Paulo, Mumbai, Bangkok, São Francisco, Londres, Paris e tantas outras cidades do globo. Para tal, são necessários experimentos, modelos estatísticos, machine learning e uma cultura de decisão baseada em dados. Assim, é possível testar ideias em produção, obter dados e colher feedbacks a fim de possibilitar uma experimentação contínua do ecossistema.

Método científico

Segundo a própria Netflix, “a experimentação não é apenas algo bom para se ter, mas uma parte necessária da inovação”.

O método científico é baseado em experimentos e observações empíricas. Tais ações na Netflix, possibilitam que os engenheiros e cientistas inovem formulando hipóteses, coletando dados de experimentos e fazendo conclusões ou formulando novas hipóteses. O método científico enfatiza um processo de aprendizagem iterativo, alternando entre dedução e indução (veja a figura abaixo, cortesia do famoso estatístico George Box).

Processo de Aprendizado Iterativo

A dedução é o processo de inferência lógica de um raciocínio, ou seja, chegar a uma conclusão baseado em um raciocínio lógico. A partir dai gerasse uma hipótese. Esta hipótese pode ser comprovada, ou não, pela observação e análise de dados reais. Por outro lado, a indução é o processo de generalização de observações/dados específicos para novas hipóteses ou ideias. A experimentação desempenha um papel crítico na coleta de dados para testar hipóteses e permitir as iterações de indução de dedução como parte do método científico.

Causalidade

A Netflix utiliza a experimentação com o objetivo de entender o impacto das mudanças ocorridas em seus serviços por meio de dados. No caso deste artigo, o foco era entender o impacto de um novo algoritmo relacionado à transmissão ou uma mudança para um algoritmo existente. Normalmente, eles estão interessados ​​em responder a duas perguntas:

1) Como a mudança (“tratamento”) afeta as métricas de QoE?, e 2) Que efeito a mudança tem no comportamento do membro: os membros preferem a nova experiência ou a antiga?

Normalmente, o experimento permite que uma leitura causal seja realizada. Assim, é possível fazer uma alegação com algum grau de confiança, de que o resultado que percebido foi causado pela mudança realizada. Em experimentos controlados, como testes A/B, a randomização adequada garante que os grupos de controle e tratamento, em um teste, difiram apenas na experiência ou “tratamento” que eles recebem e que outros fatores (que podem ou não afetar os resultados do experimento) estejam presentes em proporções iguais em ambos os grupos. Isso faz do teste A/B uma abordagem popular para executar experimentos e determinar se a experiência “A” ou a experiência “B” funciona melhor.

Vale a pena notar que os experimentos ajudam a estabelecer o nexo de causalidade em vez de depender da correlação nos dados observados. A este respeito, a experimentação pode ser considerada como superior à maioria das abordagens machine learning que se baseiam em dados observacionais. Na Netflix é gasto um esforço significativo na pesquisa e construção de modelos e algoritmos de machine learning. A exploração cuidadosa de padrões em dados observados é poderosa para fazer previsões e também para reiterar hipóteses, mas é ainda mais poderosa executar experimentos para chegar à causalidade.

Julgamento baseado em dados

Os testes a/b servem exclusivamente para gerar dados que nos permitem tomar uma decisão assertiva em cima de uma hipótese. Decisões tomadas em cima de dados ajudam a evitar o problema HiPPO (Opinião da Pessoa Mais Bem Paga/Highest Paid Person’s Opinion) e também garantem que a intuição por si só não leve a decisões. Quando combinados com o julgamento humano, os experimentos são uma ferramenta poderosa para garantir que as melhores ideias ganhem. A cultura desempenha um papel importante aqui.

Qualidade da experiência de Transmissão

Existem vários aspectos que determinam a QoE. Neste artigo será fornecida uma breve visão geral de três componentes principais antes de adentrar nos tipos de experimentos que são executados na Netflix para melhorar a QoE.

Para cada filme ou episódio de um programa que é transmitido, o processo de codificação cria arquivos em diferentes níveis de qualidade de vídeo (bitrates) que são, então, armazenados em cache em nos servidores distribuídos da Netflix em todo o mundo. Quando um membro inicia a reprodução, os algoritmos de transmissão adaptativa do lado do cliente selecionam a melhor taxa de bitrates para transmitir com base na rede e em outras considerações, e os algoritmos do lado do servidor determinam a melhor forma de enviar pacotes de dados para o cliente.

Transmissão adaptativa

Uma parte fundamental para garantir que os membros tenham ótima QoE, é o código. Este é executado no dispositivo usado para transmissão. A Netflix está disponível em milhares de dispositivos que vão desde telefones celulares e tablets até consoles de jogos, computadores e TVs Inteligentes. A maioria destes dispositivos executa algoritmos de transmissão adaptativa desenvolvidos pela Netflix que decidem qual bitrate deve ser selecionada em vários momentos durante uma sessão de transmissão. Essas decisões de seleção de bitrate determinam a qualidade do vídeo na tela e também influenciam diretamente na rapidez com que o buffer local no dispositivo está esvaziado. Quando o buffer se esvazia, a reprodução é interrompida e ocorre um “rebuffer”.

A Netflix, como uma boa desenvolvedora de software, é obsessiva pelas excelentes experiências de reprodução. O objetivo é que a reprodução comece imediatamente, com uma ótima qualidade e, que, de forma alguma, a reprodução pare de forma inesperada. Mas na realidade, os efeitos de rede ou os problemas de conectividade da última milha podem tornar isso impossível de alcançar. O que é possível fazer é projetar algoritmos que possam detectar rapidamente as mudanças no rendimento da rede e fazer ajustes em tempo real para fornecer a melhor experiência possível.

Dado o grande número de redes, condições de rede e limitações no nível do dispositivo, enquanto o conteúdo é servido para milhões de membros em todo o mundo, é necessário confiar no método científico para sintonizar algoritmos existentes e desenvolver novos algoritmos que possam se adaptar a uma variedade de cenários. Os engenheiros de transmissão adaptativa utilizam a experimentação para desenvolver e melhorar continuamente os algoritmos e as configurações que proporcionam a melhor experiência para cada sessão de transmissão na Netflix.

Entrega de Conteúdo

Open Connect é a Rede de Entrega de Conteúdo (CDN) da Netflix, e é responsável por servir os arquivos de vídeo e áudio necessários para reproduzir o conteúdo durante uma sessão de transmissão. Em um alto nível, a Open Connect permite a Netflix localizar o conteúdo o mais próximo possível dos seus membros para maximizar a eficiência de entrega e QoE. A equipe da Open Connect faz isso através da parceria com Provedores de Serviços de Internet (ISPs) para localizar seu tráfego, incorporando servidores com conteúdo Netflix dentro da rede ISP. A Open Connect também é compatível com ISPs em locais de interconexão, como os Intercâmbios de Internet em todo o mundo. Para obter mais informações sobre como a Open Connect funciona, consulte este artigo no blog da Netflix.

Os engenheiros da Open Connect otimizam tanto o hardware quanto o software nos servidores usados para atender o conteúdo da Netflix. Isso permite a Netflix ajustar a configuração, o software e os algoritmos do servidor para o propósito específico da transmissão de vídeo. Por exemplo, os algoritmos de armazenamento em cache determinam o conteúdo que deve ser armazenado em servidores distribuídos em todo o mundo com base no conteúdo que provavelmente será assistido pelos membros servidos por esses servidores. Os engenheiros também desenvolvem algoritmos de transporte de rede que determinam como os pacotes de dados são enviados através da internet do servidor para o dispositivo de um membro. Para saber mais sobre alguns dos problemas neste espaço, consulte esta postagem no blog.

Semelhante à transmissão adaptativa no lado do cliente, a experimentação permite uma rápida iteração e inovação na Open Connect à medida que são desenvolvidas novas arquiteturas e algoritmos para entrega de conteúdo. Existe uma complexidade adicional nessa área devido à natureza do sistema. Em alguns cenários, não é prático fazer um experimento randomizado controlado, por isso é necessários adaptar técnicas experimentais para obter uma leitura causal.

Codificação

A qualidade perceptual do conteúdo também é um aspecto importante da transmissão e tem um impacto direto sobre o que é visto na tela. A qualidade de percepção está vinculada a um processo chamado codificação, que comprime os arquivos “fonte” originais correspondentes a um filme ou programa em arquivos menores ou “codifica” em diferentes bitrates. Os algoritmos de codificação são uma área ativa de inovação na Netflix e a equipe de codificação fez alguns avanços significativos para fornecer melhor qualidade perceptual em uma determinada largura de banda da rede ou para usar menos bits em um determinado nível de qualidade. Mais recentemente, os engenheiros têm trabalhado em códigos mais eficientes para transmissão de baixa largura de banda.

As mudanças de codificação representam um desafio diferente para a experimentação, pois essas mudanças geralmente são específicas para o conteúdo de cada filme ou programa. Por exemplo, o efeito de uma mudança de codificação pode ser diferente para conteúdo animado versus um thriller cheio de ação. Além disso, também é importante garantir que as alterações de codificação sejam compatíveis com o aplicativo cliente e os descodificadores nos dispositivos usados para transmitir a Netflix.

Antes de lançar um novo algoritmo de codificação, o que também significa recodificar todo o catálogo da Netflix, a equipe de codificação executa experimentos para validar mudanças e medir o impacto na QoE. O projeto experimental para tais experimentos pode ser desafiador devido a interações específicas de conteúdo e a necessidade de validação em conteúdo e dispositivos suficientemente diversos.

Experimentos para melhorar QoE

Agora serão abordados alguns tipos de experimentos executados na Netflix nas áreas descritas acima para melhorar QoE. Em geral, existem três classes de experimentos para melhorar a QoE e entender o seu impacto comportamento dos membros.

Experimentos do sistema

O objetivo dos experimentos do sistema é estabelecer se um novo algoritmo, mudança para um algoritmo existente, ou uma mudança de parâmetro de configuração, tem o efeito pretendido nas métricas da QoE. Por exemplo, na Netflix existem métricas relacionadas à qualidade do vídeo, rebuffers, atraso de reprodução (tempo entre a reprodução se iniciando e o começo da reprodução), erros de reprodução, etc. As hipóteses para esses experimentos geralmente estão relacionadas a uma melhoria em uma ou mais dessas métricas.

Os experimentos do sistema geralmente são executados como experimentos A/B randomizados. Um teste do sistema pode durar algumas horas ou pode demorar alguns dias, dependendo do tipo de alteração que está sendo feita, e para explicar os padrões diários ou semanais de uso e tráfego. A base de 100 milhões de membros da Netflix permite obter milhões de “amostras” de forma relativamente rápida, o que permite que a iteração rápida e múltiplos experimentos do sistema sejam executados sequencialmente para otimizar o sistema.

Do ponto de vista de um experimentador, esses experimentos de sistema de ritmo acelerado permitem a exploração de novas metodologias de experimentação. Por exemplo, é possível testar novas estratégias de alocação para grupos de controle e de tratamento que permitem que o time da Netflix aprenda rapidamente. Eles também estão adaptando as técnicas de Metodologia da Superfície de Resposta para construir modelos estatísticos a partir de dados experimentais que podem reduzir o número de iterações necessárias para atingir um objetivo estabelecido.

Testes nesta área representam uma série de desafios que também motivam sua pesquisa.

As distribuições da maioria das métricas de QoE não são Gaussianas e há necessidade de métodos de teste de hipóteses que respondam por tais distribuições. Por esse motivo, são utilizados métodos estatísticos não paramétricos na análise para estabelecer significância estatística. Métodos não paramétricos em conjuntos de dados realmente grandes podem ser bastante lentos. Então, esta é uma área de pesquisa ativa que está sendo explorada na Netflix.

Além disso, nestes experimentos, normalmente são medidas várias métricas de QoE, algumas delas correlacionadas em células de tratamento múltiplas. Além disso, eles precisam responder ao problema de teste múltiplo.

Estudos Quase-Experimentais e Inferência Causal

A maioria dos experimentos do sistema da Netflix são experimentos A/B randomizados controlados. No entanto, em certas situações em que a randomização não é viável, eles recorrem a outras abordagens, como estudos quase-experimentais e inferência causal.

Uma área que eles estão explorando, são os estudos quase-experimentais de testes em mudanças em algoritmos na Open Connect. Considere um Internet Exchange com dois clusters de servidor idênticos (ou cache) onde um cluster serve o tráfego de membros do ISP #1 e o outro cluster serve o tráfego do ISP #2. Se eles estiverem interessados em testar um novo algoritmo para preencher conteúdo em caches, idealmente serão executados um experimento A/B com um cluster de cache sendo o controle e o outro sendo o de tratamento. No entanto, como o tráfego para esses clusters não pode ser randomizado (os relacionamentos de peering são difíceis de modificar), não é possível um experimento A/B.

Em tais situações,  um estudo quase-experimental é executado e são aplicadas técnicas de inferência causal para determinar o impacto da mudança. Vários desafios abundam neste espaço, como encontrar um cluster de controle correspondente, determinar a relação funcional apropriada entre o de tratamento e o controle, e explicar os efeitos da rede.

Experimentos da Ciência do Consumidor

Sistema e Estudos Quase-Experimentais podem levar a Experimentos da Ciência do Consumidor

Experimentos projetados para entender o impacto das mudanças no comportamento dos membros da Netflix são chamados de experimentos da Ciência do Consumidor. Normalmente, esses experimentos são executados após várias iterações de experimentos ou estudos quase-experimentais do sistema serem concluídas para confirmar que o novo algoritmo ou alteração de configuração tem o efeito pretendido nas métricas QoE. Isso permite que eles estudem o impacto das mudanças de QoE no comportamento dos membros:

1) Os membros assistem mais a Netflix se tiverem melhor qualidade de vídeo ou rebuffers menores ou um começo da reprodução mais rápido, e

2) Eles são melhor mantidos após o final do mês de teste gratuito e em meses subsequentes?

Também é possível estudar o efeito sobre o comportamento dos membros de fazer trocas entre as métricas de QoE: os membros preferem um começo da reprodução mais rápido (menor atraso de reprodução) com menor qualidade de vídeo ou eles preferem aguardar um pouco mais para começar com uma qualidade superior?

Experimentos de Ciência do Consumidor normalmente são executados por pelo menos um mês para que eles consigam obter uma leitura sobre a retenção de membros após o mês grátis para novos membros. Um desafio interessante com esses experimentos é identificar segmentos da base de membros que podem diferir em suas expectativas em torno da QoE. Por exemplo, uma mudança que reduz drasticamente o atraso de reprodução à custa de qualidade de vídeo inicial mais baixa pode ser preferida por membros em partes do mundo com uma conectividade de internet mais pobre, mas a mesma experiência pode não ser apreciada pelos membros em conexões de internet de alta velocidade estáveis. O problema é mais difícil devido ao fato de que as mudanças na QoE podem ser sutis ao membro e pode demorar um pouco para que as mudanças de comportamento se manifestem como resultado de mudanças de QoE.

Uma cultura de experimentação

Na Netflix existe a cultura da empresa desempenha um papel importante na experimentação. Ela é baseada no conceito central de “liberdade e responsabilidade”, que, segundo eles, é combinado com “a presença de colegas deslumbrantes que são apaixonados e inovadores”. Mas também é necessário emponderar estes colaboradores por meio de frameworks poderosos em que qualquer ideia inovadores possa ser desenvolvida e testada, e dados acima de opinião, são essenciais para o desenvolvimento desta cultura.

Habilitar uma cultura de experimentação requer compromisso antecipado ao mais alto nível. Na Netflix, eles procuram maneiras de experimentar em tantas áreas do negócio quanto possível e tentar trazer rigor científico para sua tomada de decisão.

Assim, a Ciência dos Dados tem um papel importante a desempenhar na Netflix para assegurar que o rigor estatístico adequado seja aplicado à medida que são executados experimentos que determinam o tipo de produto e serviço que seus membros experimentam. A Ciência dos Dados também é necessária para criar novas ideias e melhorar constantemente a forma como são executados os experimentos na Netflix. Ou seja, para experimentar sua abordagem de experimentação. Seus cientistas de dados estão fortemente envolvidos no projeto, execução, análise e tomada de decisão para experiências que são executadas. Além disso, eles também trabalham no avanço da metodologia de experimentação.

Além da ciência, também é importante ter a infraestrutura instalada para executar experimentos e analisá-los e a Netflix tem equipes de engenharia focadas em melhorar a plataforma de experimentação. Esta plataforma permite a automação das etapas necessárias para dar início a um experimento, bem como permite a geração automatizada de relatórios de análise e visualizações durante várias fases do experimento.

A Netflix está liderando a revolução da TV na Internet e está mudando a forma como as pessoas em todo o mundo assistem filmes e programas de TV. Seus cientistas e engenheiros de dados trabalham em problemas difíceis em escala em um ambiente rápido e divertido. São responsávei pelo entretenimento de milhões de pessoas de todos os setores da vida com histórias de diferentes culturas, e isso, segundo eles é “inspirador e verdadeiramente satisfatório”.

 

***

Fonte: https://medium.com/netflix-techblog/a-b-testing-and-beyond-improving-the-netflix-streaming-experience-with-experimentation-and-data-5b0ae9295bdf