Desenvolvimento

30 ago, 2018

Indo mais longe na plataforma de experimentação da Uber

Publicidade

A experimentação está no centro de como a Uber melhora a experiência do cliente. A Uber aplica diversas metodologias experimentais para usar casos tão diversos quanto testar um novo recurso para aprimorar nosso design de aplicativo.

A Plataforma de Experimentação da Uber (XP) desempenha um papel importante neste processo, permitindo-nos lançar, depurar, medir e monitorar os efeitos de novas ideias, características/recursos do produto, campanhas de marketing, promoções e até modelos de aprendizagem de máquina.

A plataforma suporta experimentos em nossos aplicativos de motorista, passageiro, Uber Eats e Uber Freight e é amplamente usada para executar experimentos contínuos A/B/N, inferência causal e aqueles baseados em bandit com múltiplas armas (MAB).

Existem mais de 1.000 experimentos sendo executados em nossa plataforma a qualquer momento. Por exemplo, antes de a Uber lançar o nosso novo aplicativo de motorista, totalmente redesenhado com nossos parceiros motoristas em mente, ele passou por extensos testes de hipóteses através de uma série de experimentos realizados com o nosso XP.

Em um nível elevado, o XP da Uber permite que engenheiros e cientistas de dados monitorem os efeitos do tratamento para garantir que eles não causem regressões de nenhuma medida-chave. A plataforma também permite que os usuários configurem a validação universal, usada para medir os efeitos a longo prazo de todos os experimentos de um domínio específico.

Figura 1. Em média, mais de 1.000 experimentos estão sendo executados na Plataforma de Experimentação da Uber a qualquer momento.

Abaixo está um quadro descrevendo os tipos de metodologias de experimentação que a equipe da Plataforma de Experimentação usa:

Figura 2. A Plataforma de Experimentação da Uber realiza experimentos aleatórios e estudos observacionais.

Existem vários fatores que determinam qual metodologia de estatística devemos aplicar a um determinado caso de uso. Em linhas gerais, utilizamos quatro tipos de metodologias estatísticas: testes de horizonte fixo A/B/N (teste t, qui-quadrado e testes rank-sum), teste de razão/taxa de probabilidade sequencial (SPRT), testes de inferência causal (controle sintético e diff-in-diff) e testes A/B/N contínuos usando algoritmos de bandit (amostragem de Thompson, limites de confiança superiores e otimização bayesiana com testes de bandit multi-armados contextuais, para citar alguns).

Também aplicamos métodos bootstrap e delta de bloco para estimar erros-padrão, bem como métodos baseados em regressão para medir a correção de viés ao calcular a probabilidade de erros tipo I e tipo II em nossas análises estatísticas.

Neste artigo, discutiremos como cada um desses métodos estatísticos é usado pela Plataforma de Experimentação da Uber para melhorar nossos serviços.

Teste clássico A/B

Os testes A/B ou A/B/N randomizados são considerados o padrão ouro em muitos campos científicos quantitativos para avaliar os efeitos do tratamento. A Uber aplica essa técnica para tomar decisões de produto e negócios objetivas, baseadas em dados e cientificamente rigorosas.

Em essência, os testes A/B clássicos nos permitem dividir aleatoriamente os usuários em grupos de controle e tratamento para comparar as métricas de decisão entre esses grupos e determinar os efeitos do tratamento do experimento.

Figura 3. A equipe da Platforma de Experimentação da Uber conduz experimentos aleatórios utilizando testes A/B/N para determinar o aumento.

Um caso de uso comum para essa metodologia são os experimentos de lançamento de recursos. Suponha que um gerente de produto queira avaliar se um novo recurso aumenta a satisfação do usuário com a plataforma da Uber. O gerente de produto poderia usar nosso XP para coletar as seguintes métricas: os valores médios da métrica nos grupos de tratamento e controle, o aumento (efeito de tratamento), se o aumento é significativo e se os tamanhos das amostras são grandes o suficiente para exercer alto poder estatístico.

Figura 4. Nosso painel de análise XP facilita para os cientistas de dados e outros usuários acessar e interpretar seus resultados de teste A/B.

Mecanismo de estatísticas

Um dos principais objetivos da nossa equipe é fornecer metodologias de teste de hipóteses que sejam mais convenientes para os casos de uso em toda a empresa. Para conseguir isso, colaboramos com várias partes interessadas para criar um mecanismo de estatísticas.

Quando analisamos um experimento aleatório, o primeiro passo é escolher uma métrica de decisão (por exemplo, reservas brutas de passageiros). Essa escolha está diretamente relacionada à hipótese que está sendo testada. Nosso XP permite que os pesquisadores reutilizem facilmente as métricas predefinidas e lidem automaticamente com a coleta de dados e validação de dados.

Dependendo do tipo de métrica, nosso mecanismo de estatísticas aplica procedimentos de testes de hipóteses estatísticos diferentes e gera relatórios fáceis de ler. Na Uber, investimos fortemente na pesquisa e validação de metodologias e estamos constantemente melhorando a robustez e a eficácia do nosso mecanismo de estatísticas.

A Figura 5, abaixo, oferece uma visão geral de alto nível dessa ferramenta poderosa:

Figura 5: O mecanismo de estatísticas da Uber é usado para experimentos A/B/N e ditado por metodologias de teste de hipótese de horizonte fixo.

Componentes chave e metodologias estatísticas

Depois de coletar dados, a plataforma analítica do nosso XP valida os dados e detecta dois grandes problemas para os pesquisadores observarem e manterem um ceticismo saudável em suas experiências A/B:

  • Desequilíbrio no tamanho da amostra, o que significa que a razão do tamanho da amostra nos grupos de controle e tratamento é significativamente diferente do esperado. Nestes cenários, os pesquisadores devem checar duplamente seus mecanismos de randomização.
  • Flickers, que se refere a usuários que mudaram entre grupos de controle e tratamento. Por exemplo, um passageiro adquire um novo celular Android para substituir um iPhone antigo, enquanto o tratamento do experimento foi configurado apenas para iOS. O passageiro mudaria do grupo de tratamento para o grupo de controle. A existência de tais usuários pode contaminar os resultados da experiência. Portanto, excluiríamos esses usuários (flickers) em nossas análises.

A maioria dos nossos casos de uso são experimentos aleatórios e quase sempre os dados resumidos são suficientes para realizar testes A/B de horizonte fixo. No nível do usuário, existem três tipos distintos de métricas:

  • Métricas contínuas contêm uma coluna de valor numérico, por exemplo, reservas brutas por usuário.
  • Métricas de proporção contêm uma coluna de valor do indicador binário, por exemplo, para testar a proporção daqueles usuários que concluem as viagens após a inscrição.
  • Métricas de razão contêm duas colunas de valores numéricos, os valores do numerador e os valores do denominador, por exemplo, a taxa de conclusão da viagem, em que os valores do numerador são o número de viagens concluídas e os valores do denominador são o número total de solicitações de viagem.

Três variantes de pré-processamento de dados são aplicadas para melhorar a robustez e eficácia de nossas análises A/B:

  • A detecção de valores discrepantes remove as irregularidades nos dados e melhora a robustez dos resultados analíticos. Usamos um algoritmo baseado em cluster para executar a detecção e a remoção de erros.
  • A redução de variação ajuda a aumentar o poder estatístico dos testes de hipóteses, o que é especialmente útil quando o experimento tem uma pequena base de usuários ou quando precisamos terminar o experimento prematuramente sem sacrificar o rigor científico. O Método CUPED aproveita informações extras que temos e reduz a variação nas métricas de decisão.
  • O viés pré-experimento é um grande desafio na Uber devido à nossa diversidade de usuários. Às vezes, a construção de um contrafactual robusto por meio de mera aleatorização simplesmente não funciona. A diferença nas diferenças (diff-in-diff) é um método bem aceito na pesquisa quantitativa e a usamos para corrigir o viés pré-experimento entre os grupos, de modo a produzir uma estimativa confiável dos efeitos do tratamento.

O cálculo do valor p é central para o nosso mecanismo de estatísticas. O valor p determina diretamente se o XP informa que um resultado é significativo. Comparamos o valor p com a taxa de falsos positivos (erro tipo I) que desejamos (0,05) em um teste A/B comum. Nosso XP utiliza vários procedimentos para o cálculo do valor p, incluindo:

  • Teste t de Welch, o teste padrão usado para métricas contínuas. Por exemplo, viagens concluídas.
  • O teste U de Mann-Whitney, um teste de soma de classificação não paramétrica usado para detectar a assimetria grave nos dados. Requer pressupostos mais fracos do que o teste t e funciona melhor com dados distorcidos.
  • O teste qui-quadrado, usado para métricas de proporção. Por exemplo, taxa de retenção do passageiro.
  • O método Delta (Deng et al. 2011) e métodos de bootstrap, usados ​​para estimativa de erro padrão sempre que adequado para gerar resultados robustos para experimentos com métricas de razão ou com tamanhos amostrais pequenos, por exemplo, a taxa de viagens canceladas pelos passageiros.

Além desses cálculos, usamos a correção de comparação múltipla (o procedimento de Benjamini-Hochberg) para controlar a taxa global de descobertas falsas (FDR) quando há dois ou mais grupos de tratamento (por exemplo, em um teste A/B/C ou A/B/N).

O cálculo de potência fornece informações adicionais sobre o nível de confiança que os usuários devem colocar em suas análises. Um experimento com baixa potência sofrerá de altas taxas de falsos negativos (erro tipo II) e altas FDRs.

Nos cálculos de potência que nosso XP realiza, um teste t é sempre assumido. Por outro lado, o cálculo do tamanho da amostra necessário é o oposto de um cálculo de potência e estima quantos usuários são necessários para que o experimento atinja uma alta potência (0,8).

Gestão de métricas

À medida em que o número de métricas usadas pelo componente de análise do XP aumenta (incorporando mais de 1.000 métricas), torna-se cada vez mais difícil para os usuários determinar as métricas adequadas para avaliar o desempenho de uma experiência. Para tornar mais fácil para os novos usuários de nossa ferramenta de análise descobrir essas métricas, criamos um mecanismo de recomendação que facilita a descoberta de métricas disponíveis em nossa plataforma.

Na Uber, há dois métodos comuns de filtragem colaborativa usados ​​para recomendação de conteúdo: métodos baseados em itens e baseados em usuário. Utilizamos principalmente um mecanismo de recomendação baseado em itens, uma vez que as características do pesquisador não costumam ter uma forte influência em seu projeto.

Por exemplo, se um pesquisador alternar para a equipe do Uber Eats vindo da equipe do Passageiro, não será necessário que o algoritmo analise as escolhas anteriores inspiradas no Uber Eats desse pesquisador ao selecionar as métricas a serem avaliadas.

Metodologia do mecanismo de recomendação

Para determinar a correlação entre duas métricas, adicionamos sua popularidade e pontuações absolutas, o que nos permite entender melhor o relacionamento delas. As duas abordagens básicas para calcular essas pontuações, são:

  • Pontuação de popularidade: quanto mais frequentemente duas métricas são selecionadas em todos os experimentos, maior a pontuação atribuída ao relacionamento. Usamos o Índice de Jaccard para ajudar os usuários a descobrirem a métrica mais relevante depois de selecionar sua métrica inicial. Essa pontuação é responsável pela seleção de métricas dos pesquisadores de experimentos anteriores.
  • Pontuação absoluta: usando nosso XP, podemos gerar um conjunto de amostras de usuários de nossas métricas e calcular o índice de correlação de Pearson das duas métricas. Isso explica a descoberta fortuita; ou seja, o experimentador pode não ter considerado a adição de uma métrica ao experimento, uma vez que não está diretamente relacionado, mas pode estar se movendo com a métrica selecionada pelo usuário.

Depois de calcular essas duas pontuações, adicionamos a pontuação das duas etapas acima com pesos relativos em cada termo e recomendamos as métricas com a pontuação mais alta para o pesquisador com base em sua primeira escolha de métricas.

Descoberta de insights

À medida em que a Uber continua a crescer, torna-se cada vez mais difícil explorar a nossa base de conhecimento de métricas. Nosso mecanismo de recomendação permite que as equipes globais e locais acessem as informações de que precisam de maneira rápida e fácil, permitindo que aprimorem nossos serviços de acordo.

Por exemplo, se um experimentador quiser medir o efeito do tratamento nas horas de fornecimento do parceiro motorista, pode não ser óbvio para o experimentador adicionar também o número de viagens feitas por novos pilotos como uma métrica, uma vez que este experimento se concentra no lado do motorista. da equação de viagem.

No entanto, ambas as métricas são importantes para este experimento, devido à dinâmica de nosso mercado. Nosso mecanismo de recomendação ajuda os cientistas de dados e outros usuários a descobrir métricas importantes que podem não ter sido óbvias.

Teste sequencial

Embora os métodos tradicionais de teste A/B (por exemplo, um teste t) insuflassem o erro Tipo I ao tomar repetidamente subamostras, o teste sequencial oferece uma maneira de monitorar continuamente as principais métricas de negócios.

Um caso de uso em que um teste sequencial é útil para nossa equipe é em identificar as interrupções causadas pelos experimentos executados em nossa plataforma. Não podemos esperar até que um teste A/B tradicional colete amostras suficientes para determinar a causa de uma interrupção; queremos ter certeza de que os experimentos não estão introduzindo as principais degradações das métricas de negócios o mais rápido possível; neste caso, durante o período de experimentação. Portanto, construímos um sistema de monitoramento acionado por um algoritmo de teste sequencial para ajustar os intervalos de confiança de acordo, sem inflacionar o erro Tipo-I.

Usando nosso XP, realizamos comparações periódicas sobre essas métricas de negócios, como taxas de falhas de aplicativos e taxas de frequência de viagens, entre grupos de tratamento e grupos de controle para experimentos em andamento. As experiências continuam se não houver degradações significativas, caso contrário, elas receberão um alerta ou até mesmo serão pausadas. O fluxo de trabalho deste sistema de monitoramento é mostrado na Figura 6, logo abaixo:

Figura 6. Integramos a metodologia de teste sequencial no fluxo de trabalho do nosso sistema de monitoramento de interrupções do XP.

Metodologias

Utilizamos duas metodologias principais para realizar testes sequenciais para fins de monitoramento de métricas: o teste de razão de probabilidade sequencial de mistura (mSPRT) e a estimativa de variância com FDR.

Teste de Razão de Probabilidade Sequencial da Mistura

O método mais comum que usamos para monitorar é o mSPRT. Este teste baseia-se no teste da razão de verossimilhança incorporando uma especificação extra de distribuição de mistura H. Suponha que estamos testando a diferença métrica com a hipótese nula sendo:

Então as estatísticas de teste poderiam ser escritas como:


Como nós temos grandes tamanhos de amostra e o teorema do limite central pode ser aplicado na maioria dos casos, usamos distribuição normal como nossa distribuição de mistura:


Isso leva a um cálculo fácil e uma expressão de forma fechada para:

Outra propriedade útil sobre este método está sob hipótese nula, nH, 0 é comprovada como sendo um martingale:

Depois disso, poderíamos construir um intervalo de confiança:

Estimativa de variância com controle FDR

Para aplicar corretamente o teste sequencial, precisamos estimar a variação com a maior precisão possível. Como monitoramos a diferença cumulativa entre nossos grupos de controle e tratamento diariamente, observações dos mesmos usuários introduzem correlações que violam a suposição do teste mSPRT.

Por exemplo, se estivermos monitorando cliques por meio de taxas, a métrica de um usuário em vários dias pode estar correlacionada. Para superar isso, usamos os métodos de estimativa de desvio de jackknife de excluir um grupo/block bootstrap para generalizar o teste mSPRT em dados correlacionados.

Como nosso sistema de monitoramento deseja avaliar a integridade geral de um experimento em andamento, monitoramos muitas métricas de negócios ao mesmo tempo, o que pode levar a falsos alarmes. Em teoria, a correção de Bonferroni ou BH poderia ser aplicada nesse cenário.

Entretanto, como a perda potencial de degradações de negócios ausentes pode ser substancial, aplicamos a correção de BH aqui e também sintonizamos parâmetros (MDE, potência, tolerância para significância prática, etc.) para métricas com níveis variados de importância e sensibilidade.

Casos de uso

Suponha que desejamos monitorar uma métrica de negócios chave para um experimento específico, conforme mostrado na Figura 7, abaixo:

Figura 7. A metodologia do teste sequencial indica uma diferença significativa entre nossos grupos de tratamento e controle, conforme identificado no Gráfico B. Em contraste, nenhuma diferença significativa é identificada no Gráfico A.

As linhas vermelhas Parcelas A e B significam a diferença relativa cumulativa observada entre nossos grupos de tratamento e controle. A faixa vermelha é o intervalo de confiança para essa diferença relativa cumulativa:

Com o passar do tempo, acumulamos mais amostras e o intervalo de confiança diminui. Na Parcela B, o intervalo de confiança se desvia consistentemente de zero a partir de uma determinada data, neste exemplo, 21 de novembro.

Com um limite extra (em outras palavras, tolerância para nosso sistema de monitoramento) para significância prática imposta, a degradação de métricas é detectada como sendo estatisticamente e praticamente significativa após uma determinada data.

Em contraste, o intervalo de confiança da Parcela A diminui, mas sempre inclui 0. Assim, não detectamos nenhuma regressão para o acidente monitorado na Parcela A.

Experimentos contínuos

Figura 8. A equipe da Plataforma de Experimentação da Uber conduz experimentos aleatórios utilizando testes A/B/N para determinar o aumento.

Para acelerar a inovação e o aprendizado, a equipe de ciência de dados da Uber está sempre procurando otimizar experiências de motorista, passageiro, comedor, restaurante e parceiro de entregas por meio de experimentos contínuos. Nossa equipe implementou métodos de aprendizagem de reforço focados em bandit e otimização para aprender iterativa e rapidamente a partir da avaliação contínua do desempenho métrico relacionado.

Recentemente, concluímos um experimento usando técnicas de bandit para otimização de conteúdo para melhorar o envolvimento do cliente. A técnica ajudou a melhorar o envolvimento do cliente em comparação com os métodos clássicos de teste de hipóteses.

A Figura 9, abaixo, descreve os vários casos de uso de experimentos contínuos da Uber, incluindo otimização de conteúdo, ajuste de hiper-parâmetros, otimização de gastos e lançamentos de recursos automatizados:

Figura 9. O XP da Uber utiliza experimentos contínuos para vários casos de uso, incluindo ajuste de hiper-parâmetros e lançamentos automatizados de recursos.

No Estudo de Caso 1, descrevemos como os bandits ajudaram a otimizar as campanhas de e-mail e a aumentar o envolvimento do passageiro na Uber. Aqui, a equipe de CRM (Customer Relationship Management/Gestão de Relacionamento com o Cliente) da Uber Eats na Europa, Oriente Médio e África (EMEA) lançou uma campanha por e-mail para incentivar o dinamismo de pedidos no início do ciclo de vida do cliente.

Os pesquisadores planejam executar uma campanha com dez linhas de assunto de e-mail diferentes e descobrir a melhor linha de assunto em termos da taxa de abertura e o número de e-mails abertos. A Figura 10, abaixo, detalha este estudo de caso:

Um segundo exemplo de como aproveitamos experimentos contínuos é o ajuste de parâmetros. Ao contrário do primeiro caso, o segundo estudo de caso usa um algoritmo de bandit mais avançado, a técnica de bandit multi-armados contextuais, que combina experimentos estatísticos e modelagem de aprendizado de máquina. Usamos o MAB contextual para escolher os melhores parâmetros em um modelo de aprendizado de máquina.

Como mostrado na Figura 11 abaixo, a equipe de Ciência de Dados da Uber Eats aproveitou o teste MAB para criar um modelo de programação linear, chamado otimização de múltiplos objetivos (MOO), que classifica os restaurantes no feed principal do aplicativo Uber Eats:

O algoritmo por trás do MOO incorpora várias métricas, como taxa de conversão de sessão, taxa bruta de reserva e taxa de retenção de usuários. No entanto, a solução matemática contém um conjunto de parâmetros que precisamos fornecer ao algoritmo.

Esses experimentos contêm muitos candidatos a parâmetros para uso com nossos algoritmos de classificação. Os resultados do ranking dependem dos hiper-parâmetros que escolhemos para o modelo MOO. Portanto, para melhorar o desempenho do modelo MOO, esperamos descobrir os melhores hiper-parâmetros via algoritmo de bandit multi-armados.

O tradicional framework de teste A/B é muito demorada para lidar com cada teste, então decidimos utilizar o método MAB para esses experimentos. O MAB é capaz de fornecer um framework para ajustar rapidamente esses parâmetros.

Escolhemos os métodos de otimização MAB contextual e Bayesiano para encontrar os maximizadores de um problema de otimização de função de caixa preta. A Figura 12, abaixo, descreve a configuração desta experiência:

Figura 12: Nosso XP utiliza MABs contextuais para ajuste de hiper-parâmetros.

Como mostrado acima, a otimização bayesiana contextual funciona bem tanto com informações personalizadas quanto com trocas exploração-exploração.

Seguindo em frente

Como resultado de sua escala e impacto global, o espaço problemático da Uber apresenta desafios únicos. À medida que nossas metodologias evoluem, aspiramos a construir uma plataforma de experimentação cada vez mais inteligente. No futuro, essa plataforma fornecerá insights obtidos não apenas dos experimentos atuais, mas também dos anteriores, e, com o tempo, preverá proativamente as métricas.

A equipe da Plataforma de Experimentação da Uber está contratando. Se você é apaixonado por experimentação e aprendizado de máquina, por favor, candidate-se a este cargo.

Assine nossa newsletter para acompanhar as mais recentes inovações da Engenharia da Uber.

***

Este artigo é do Uber Engineering. Ele foi escrito por Anirban Deb, Suman Bhattacharya, Jeremy Gu, Tianxia Zhou, Eva Feng e Mandie Liu. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/xp/