Data

12 jul, 2018

Transformando previsão financeira com Ciência de Dados e Aprendizado de Máquina na Uber

Publicidade

Anteriormente, destacamos algumas das apresentações entregues durante o nosso segundo Dia da Tecnologia Uber anual. Neste artigo, a engenheira de software sênior e apresentadora do Dia da Tecnologia Uber, Chunyan Song, discute como aplicamos ciência de dados e aprendizado de máquina em nossas plataformas de planejamento financeiro.

A partir de 2018, o negócio de compartilhamento de viagens da Uber opera em mais de 600 cidades, enquanto o negócio de entrega de alimentos Uber Eats se expandiu para mais de 250 cidades em todo o mundo. A taxa bruta de execução de reservas para o compartilhamento de viagens atingiu US $ 37 bilhões em 2018. Com mais de 75 milhões de passageiros ativos e 3 milhões de motoristas ativos, a plataforma da Uber movimenta 15 milhões de viagens todos os dias.

A previsão financeira e o planejamento orçamentário para uma organização que toca a vida de tantas pessoas diariamente é um desafio incrível. Acrescente uma taxa impressionante de crescimento histórico e atual, e essas tarefas parecem quase impossíveis.

Para enfrentar o desafio de administrar um negócio global em escala e tomar decisões estratégicas inteligentes de investimento, mobilizamos nossas equipes a trabalhar em ciência de dados, aprendizado de máquina e tecnologia financeira.

Para enfrentar esse desafio, construímos plataformas financeiras internas onde, em vez de confiar no orçamento e nas previsões anuais, podemos atualizar continuamente nosso planejamento para responder a mudanças nos ambientes de negócios, tanto global quanto localmente. Através do planejamento de cenários, os membros da nossa equipe podem testar os níveis de gastos em torno de metas específicas da Uber, desde crescimento sustentável até lucratividade para mercados individuais.

Nossas plataformas financeiras nos permitem responder rapidamente às mudanças nas condições financeiras e apoiar o crescimento e a complexidade dos negócios da Uber.

Neste artigo, percorremos o processo de planejamento financeiro na Uber e compartilhamos como construímos as plataformas de nuvem de finanças da Uber para enfrentar os desafios únicos representados por nossos mercados dinâmicos e pelo rápido crescimento.

Visão geral do ciclo de planejamento

Como na maioria das empresas, os ciclos de planejamento financeiro da Uber envolvem três fases, descritas na Figura 1, que passam por metas estratégicas, planejamento operacional e análise:

Figura 1: O ciclo de planejamento financeiro da Uber ocorre em três fases: estratégica, operacional e insights.
  • Planejamento estratégico: essa fase determina a alocação de orçamento e a expectativa de metas em toda a empresa e em nossos mercados globais. O cronograma se estende até o final do ciclo financeiro (a maioria das grandes empresas tende a abordar o planejamento em uma base anual ou trimestral).
  • Operações: seguindo o planejamento estratégico, as equipes da cidade trabalham com seus orçamentos definidos e as expectativas de destino. O prazo relativamente curto para o planejamento de operações pode durar tão pouco quanto uma semana e tanto quanto um mês, com ciclos repetidos até a próxima atualização de orçamento durante o planejamento estratégico.
  • Insights: esse processo contínuo monitora o desempenho dos negócios, reavalia e ajusta as metas de orçamento conforme necessário e faz recomendações para melhorar a previsão financeira do próximo ciclo.

Pontos problemáticos e motivação

Na maioria das empresas, o planejamento financeiro ocorre em um ciclo anual, com planejamento estratégico feito no final do ano fiscal anterior. No entanto, a escala global da Uber torna essa cadência anual insuficiente.
Depois de chegar a essa conclusão, começamos a executar nossos ciclos de planejamento com mais frequência.

Estabelecemos um processo de rebase em meados do ano usando cálculos semelhantes aos do nosso planejamento anual para ajustar o orçamento e as previsões. Além disso, realizamos uma verificação de pulso de negócios quinzenal em todos os nossos mercados globais.

Identificamos muitos pontos problemáticos e limitações no processo e nas ferramentas que usamos:

  • Nosso software de terceiros, um sistema de gerenciamento financeiro corporativo, não pode hospedar modelos personalizados criados por nossos cientistas de dados, nem pode efetivamente suportar o planejamento simultâneo de várias organizações.
  • Enquanto o planejamento estratégico era feito em nossa sede corporativa com o apoio de cientistas de dados, o financiamento das operações era planejado no nível da cidade, e cada cidade tinha seus próprios processos. As equipes da cidade muitas vezes precisavam confiar apenas no conhecimento local e em hipóteses não testadas.
  • A falta de coordenação de processos significava que a alocação orçamentária de cima para baixo era enviada em um arquivo CSV de nossa equipe financeira central para líderes regionais. Os líderes regionais e as equipes da cidade fizeram edições nos arquivos CSV e as enviaram de volta por e-mail. O processo foi manual, tedioso e propenso a erros.

Esses pontos problemáticos dificultaram nosso ciclo de planejamento financeiro e prejudicaram nossa capacidade de ajustar nosso foco estratégico em reação às dinâmicas de mercado que mudam rapidamente. Essa falta de agilidade nos motivou a construir nossas próprias plataformas de nuvem financeira para atender às seguintes prioridades:

  • Escala no tempo: planejamento estratégico sob demanda em vez de um cronograma rígido anual ou trimestral
  • Escala no local: colaboração sem esforço em toda a equipe financeira central, líderes de finanças regionais, operadores na cidade, gerentes de marketing e representantes de tecnologia de anúncios
  • Compartilhando modelos em todos os processos: suporte unificado à ciência de dados para planejamento estratégico, operações e fases de insight
  • Suporte aos modelos de previsão inteligente da Uber: a arquitetura permite plugging/conectar qualquer uma das dezenas de milhares de modelos que preveem diferentes métricas de negócios em diferentes cidades, cobrindo prazos curtos e longos

Plataformas de nuvem financeira da Uber

O software que nossa equipe de inteligência financeira criou para planejamento e previsão financeira é uma solução de ponta a ponta, incluindo uma interface de usuário de camada superior, plataformas para modelagem de cenários e otimização de orçamentos e um armazém de dados financeiros e armazenamento de métricas.

Projetamos a interface do usuário para facilitar para que nossa equipe de finanças corporativas faça alocação de orçamento e para que as equipes da cidade façam o planejamento de cenário. Essa interface facilita a colaboração, pois os membros da equipe não precisam mais enviar e-mails uns aos outros com planilhas contendo dados de previsão financeira; em vez disso, eles podem modificar, comparar e compartilhar simultaneamente cenários na mesma interface do usuário, todos em execução nos mesmos sistemas de back-end.

Nossas plataformas de Gerenciamento e Otimização de Cenários compõem a camada intermediária. A plataforma de Gerenciamento de Cenários compõe modelos e calcula cenários usados ​​por equipes da cidade para descobrir quais alavancas, ou métricas, elas podem mover para obter os resultados desejados. A plataforma de Otimização usa a otimização matemática para ajudar a determinar nossa alocação de orçamento global para cada cidade e as métricas de negócios de previsão que eles usam.

Nossa plataforma de aprendizado de máquina, Michelangelo, também desempenha um papel importante aqui, apoiando o planejamento e a otimização de cenários. Ela permite que dezenas de cientistas de dados treinem, experimentem, realizem backtests e implementem seus modelos para previsão on-line, além de funcionar como um serviço de computação modelo.

Por último, mas não menos importante, bons modelos precisam ser treinados com bons dados. A camada inferior do nosso software financeiro consiste em um pipeline de dados, um armazém de dados financeiro e um repositório de métricas.

Figura 2: O software financeiro que construímos na Uber incorpora várias camadas, desde a interface do usuário até a computação e os dados.

Ativando o planejamento dinâmico sob demanda

As plataformas de nuvem de finanças que construímos nos permitem ajustar continuamente o planejamento financeiro ao longo do ano, em vez de depender de um cronograma trimestral ou anual.

  • As partes interessadas podem fazer planejamento estratégico sob demanda. Na Figura 3, abaixo, usamos o planejamento estratégico mensal como um exemplo para ilustrar esse processo.
  • Nos bastidores, o planejamento estratégico e as operações compartilham muitos modelos, graças a uma estrutura unificada de modelagem de aprendizado de máquina e a uma plataforma de computação genérica. Esses modelos compartilhados servem para conectar a previsão de longo e curto prazo, alinhando os resultados de previsão entre si.
  • Dados atualizados com frequência tornam os modelos mais precisos. Todos os meses, usamos dados recém-coletados para treinar novamente nossos modelos, o que nos permite incorporar imediatamente novos aprendizados no planejamento estratégico do próximo mês.
Figura 3: Nossas plataformas de nuvem financeira permitem previsão contínua e planejamento estratégico.

A interface de usuário interativa facilita a colaboração entre as equipes da matriz, regional e da cidade, pois todas elas podem executar suas previsões e planejamento ao mesmo tempo e agrupar seus resultados.

Construindo um cenário

Na Uber, um cenário de planejamento financeiro consiste em métricas e cálculos de negócios organizados em um fluxo de trabalho. Podemos inserir métricas iniciais para ver quais resultados elas produzirão. Para visualizar cenários, nós os representamos como gráficos direcionados, semelhantes à Figura 4, abaixo. Cada cenário geralmente mostra como os orçamentos afetam os resultados. Um cenário pode, por exemplo, mostrar-nos quantos novos passageiros escolherão a Uber com base em nossos gastos de marketing.

Figura 4: O gráfico direcionado é um meio útil de visualizar um cenário. Ele mostra o fluxo de trabalho por meio de métricas e cálculos.

Com o potencial de incluir muitas métricas e cálculos, esses cenários podem ser muito complexos e exibir muitos resultados. Usando cenários, podemos testar como a alocação do orçamento afetará os resultados em cidades específicas. Nós alimentamos esses cenários com inteligência de máquina, mas isso é apenas metade da magia.

Também alavancamos o conhecimento especializado de milhares de funcionários talentosos em nossas equipes da cidade em todo o mundo.

Métricas

O negócio da Uber é medido por muitas métricas, cobrindo tudo, desde o número de inscrições de passageiro/motorista e o número de viagens pela primeira vez até nossas reservas brutas. Dependendo da maturidade de mercados específicos, otimizamos estrategicamente determinadas métricas.

Por exemplo, em um mercado recém-lançado, o foco estratégico é muitas vezes o crescimento de passageiros, e uma métrica fundamental que usamos para medir o sucesso pode ser o número de first_trips, a primeira viagem que um novo passageiro faz.

Em mercados maduros, como as principais cidades dos EUA, podemos mudar nosso foco para a lucratividade, o que significa que podemos querer maximizar a métrica net_inflow, nosso lucro líquido, enquanto mantemos a métrica de gastos sob controle.

Computação

Executamos conjuntos de métricas de entrada por meio de cálculos para obter um conjunto de métricas de saída, que podem ser etapas intermediárias no cenário ou resultados finais, nos mostrando, por exemplo, que se gastarmos uma certa quantia em marketing, podemos esperar um número específico de novos passageiros. Um cálculo pode ser:

  • Um modelo de aprendizado de máquina, treinado com dados históricos.
  • Uma fórmula matemática, geralmente implementada com bibliotecas matemáticas existentes.
  • Um cálculo simples, por exemplo, o número de viagens multiplicadas pela tarifa é igual a reservas brutas.

Quando um node de gráfico é uma computação, os nodes imediatamente precedentes são todas métricas de entrada e os nodes imediatamente a seguir são todas métricas de saída. Portanto, o gráfico do cenário não apenas captura todas essas métricas e cálculos, mas também suas dependências. Por sua natureza, o gráfico é de 2-colorable e acíclico, pois não faz sentido ter uma métrica ou computação dependente de si mesma, direta ou indiretamente.

Como o gráfico é acíclico, podemos classificar topologicamente seus nodes. Como mostrado na Figura 4, podemos classificar seus nodes como x1, x2, A, x3, B, x4, x5, o que nos dá outra maneira de representar esse gráfico usando uma lista de funções:

x3 = A (x1, x2)
x4, x5 = B (x2, x3)

Neste exemplo, x1 e x2 são métricas iniciais, o que significa que eles não têm nenhum node anterior. Dadas essas métricas iniciais, podemos calcular todas as métricas restantes no cenário, executando os cálculos em ordem topológica.

Como usado no negócio de compartilhamento de viagens da Uber, nós estruturamos um cenário como mostrado na Figura 5, abaixo. Fornecendo as métricas iniciais, neste caso acquiscling_spending e engagement_spending, executar os cálculos topologicamente calculará as métricas restantes no cenário, até a última: net_inflow.

Figura 5: Este gráfico direcionado representa um cenário para o negócio de compartilhamento de viagens da Uber, com métricas mostradas em caixas e cálculos em ovais.

O cenário acima mostra como somos capazes de fazer uma grande quantidade de modelos inteligentes, projetados por equipes diferentes em toda a Uber, trabalhando juntos.

Planejamento baseado em cenários

Depois de construirmos nossos cenários, podemos colocá-los para funcionar. Os cenários aprimoram nossos resultados de previsão financeira e tomada de decisões, combinando inteligência de máquina com experiência humana.

A plataforma de gerenciamento de cenário tem as seguintes responsabilidades:

  • Cria, lê (consulta), atualiza e exclui entidades do cenário. Cada entidade de cenário consiste em nossos valores de métrica desejados e é armazenada pelo Cassandra, nosso banco de dados distribuído, por trás da plataforma.
  • Delega a otimização de alocação de orçamento a outro serviço e cria cenários base com base nos resultados da alocação em um processo que chamamos de “semeadura”.
  • Calcula cenários com substituições de métricas fornecidas pelo usuário. Cada cálculo individual pode ser delegado a outro serviço, geralmente um serviço de hospedagem de modelo.
Figura 6: A plataforma de Gerenciamento e Computação de Cenário, que faz parte do nosso sistema de previsão financeira, processa as entidades do cenário por meio de cálculos para chegar aos resultados.

Semeando cenários de base

No início de cada ciclo de planejamento financeiro, usamos algoritmos de alocação de orçamento para determinar as métricas iniciais de gastos para cada cidade, executar a computação de cenário completo e produzir um conjunto de cenários de base, também conhecido como processo de semeadura.

Cenários de base, criados por pura inteligência de máquina são métricas projetadas pelos algoritmos. Tomemos, por exemplo, um cenário base hipotético para São Paulo, mostrado na Figura 7, abaixo:

Figura 7: O cenário base para São Paulo, desenvolvido com inteligência de máquina, combina modelos e métricas para determinar a alocação de orçamento necessária para alcançar resultados específicos.

Para explicar, suponha que o processo de semeadura dê à equipe da cidade de São Paulo US $ 200 para novas aquisições de usuários (métrica acquisition_spending) e US $ 100 para retenção de usuários existentes (métrica engagement_spending). O modelo de curva de custo nos diz que definir $ 200 para a métrica acquistion_spending nos levará 35 novas inscrições de passageiro. Ao executar nossos modelos em ordem topológica, podemos calcular nossas métricas, incluindo a última, uma net_inflow de US $ 1.274. O cálculo do cenário é idempotente, o que significa que a uma nova computação repetida produzirá os mesmos valores de métrica.

Substituições de usuário e recálculo de cenário

Os modelos podem ser imprecisos por vários motivos, incluindo:

  • Em um novo mercado, podemos não ter dados históricos suficientes para treinar os modelos e alcançar a precisão desejada.
  • Geralmente os modelos são muito bons em incorporar a sazonalidade, como o Dia das Bruxas nos EUA e o Ramadã no Oriente Médio, mas os modelos podem não levar em conta os próximos eventos pontuais. Por exemplo, quando os modelos estavam sendo treinados para a Filadélfia, seria difícil para eles prever que os Eagles iriam para o Super Bowl e que o próprio jogo aconteceria na Filadélfia, o que provavelmente afetaria o número de viagens projetado em Fevereiro de 2018.

Nossas equipes da cidade geralmente têm informações adicionais sobre suas localidades e podem fazer ajustes de acordo com as métricas nos cenários de base. Por exemplo, a equipe de São Paulo pode pensar que a mesma despesa de aquisição acquisition_spending de $ 200 levará a 50 novas assinaturas de passageiro, não as 35 previstas nos cenários de base.

Conforme mostrado na Figura 8, abaixo, podemos executar novamente o cenário com o valor de substituição e gerar métricas atualizadas, incluindo uma net_inflow de US $ 1.350.

Figura 8: O cenário aceita conhecimento especializado da equipe da cidade de São Paulo, levando em conta fatores desconhecidos pelos modelos.

Ajuste de alavancas e comparação de cenários

Para otimizar nossa eficiência operacional, as equipes locais geralmente querem ajustar as alavancas, essencialmente mudando as métricas, para testar diferentes hipóteses. Por exemplo, elas podem querer saber o impacto de reduzir os gastos com aquisição versus reduzir as tarifas em uma determinada cidade. Criamos uma interface de usuário interativa para que elas possam comparar cenários.

Quando nossa equipe precisa testar uma hipótese, elas poderiam, por exemplo, criar dois novos cenários clonando o cenário base e, em um cenário, substituir a métrica acquisition_spending e na outra substituir a tarifa. Depois de computar os dois cenários, elas podem compará-los e ver seu impacto em viagens, reservas brutas e outras métricas. Elas podem criar quantos cenários quiserem e, eventualmente, promover o cenário mais relevante para orientar as operações reais do dia a dia.

Figura 9: O sistema financeiro permite que os usuários testem diferentes hipóteses para descobrir qual cenário atingirá os resultados desejados.
Figura 10: Os usuários podem substituir as métricas e recalcular o cenário para comparação com o cenário base.

Otimização de alocação de orçamento

O processo de semeadura de cima para baixo no início de um ciclo de planejamento financeiro resulta em alocação de orçamento para todas as mais de 600 equipes de operação da cidade da Uber, bem como um cenário base contendo as métricas de previsão de negócios para cada cidade. Para obter um orçamento ideal para nossa organização mundial, usamos a otimização matemática para modelar a tomada de decisões estratégicas de alto nível da Uber. Construímos nossa plataforma de otimização, parte de nossos serviços de nuvem financeira, para lidar com esses cálculos.

Modelando investimentos estratégicos como um problema de otimização

Cada foco estratégico pode ser traduzido para resolver um problema de otimização para uma métrica de negócios específica. Nos primeiros dias da Uber, nossa principal prioridade era o crescimento, portanto, a métrica que optamos por otimizar foi o número de viagens. É claro que precisávamos trabalhar com restrições, como gastos. À medida que o negócio amadurece, nossa prioridade muda para a lucratividade, e a métrica para otimizar para torna-se entrada líquida.

Em um problema de otimização matemática, a métrica que otimizamos é chamada de “objetivo”. Observe que a otimização nem sempre implica em um problema de maximização; pode ser um problema de minimização também. Aqui estão alguns exemplos dos objetivos que surgem em nossos negócios:

Minimizar gastos

  • Maximizar o número de pilotos ou passageiros
  • Maximizar o número de primeiras viagens ou total de viagens
  • Maximize as reservas brutas

Com cada problema de otimização, também podemos especificar restrições, como:

  • Orçamento máximo, global ou específico de determinados canais (como promoção de marketing versus promoção de passageiro)
  • Número mínimo de primeiras viagens ou viagens
  • Crescimento mensal mínimo da reserva bruta

Esses objetivos e restrições, que são baseados nas prioridades estratégicas atuais da empresa, são inseridos na plataforma de otimização, que encontra a alocação ótima do orçamento e produz os cenários de base para todas as cidades, conforme ilustrado na Figura 11 abaixo:

Figura 12: Alinhar os objetivos financeiros por região nos permite responder às condições em mercados específicos.

Criamos uma interface de usuário que permite que nossa equipe de Finanças na sede/HQ especifique seus objetivos estratégicos na forma de problemas de otimização, como otimizar para o crescimento versus otimizar para obter eficiência.

Plataforma de otimização e algoritmos

Uma vez que os objetivos de investimento estratégico são inseridos na interface do usuário na forma de um problema de otimização, a plataforma de otimização tenta resolver o problema localizando os máximos ou mínimos por meio de iterações.

A Figura 13, abaixo, oferece um exemplo de como resolvemos um problema de otimização de orçamento. Suponha que estamos fazendo alocação orçamentária para a América Latina, que inclui dezenas de cidades (São Paulo, Cidade do México, Rio de Janeiro, Buenos Aires, etc.). Neste modelo, definimos o foco estratégico para o crescimento e o objetivo de otimização para “Maximizar o total de viagens” para todas as cidades.

Figura 13: Com o seu objetivo definido para o número máximo de viagens, a plataforma de otimização percorre milhares ou até milhões de cenários para encontrar o cenário ideal.

O algoritmo transforma o problema de otimização em um grande loop while, que pode incluir milhares ou até milhões de iterações. Em cada iteração, o algoritmo fornece um conjunto de métricas iniciais para cada cidade, que no nosso exemplo é a métrica de gasto. Em seguida, cria um cenário para cada cidade e calcula todas as métricas nesses cenários. O algoritmo simplesmente controla os cenários gerados na iteração em que a métrica de viagens agregadas é a maior (em outras palavras, ela encontra os máximos por meio de iterações).

Podemos precisar apenas de executar o gráfico direcionado até nossa métrica objetiva, que é viagens neste exemplo. Todos os modelos e métricas subsequentes (reserva bruta e entrada líquida) podem ser ignorados. Em outras palavras, o gráfico direcionado que a plataforma de otimização usa é sempre um sub gráfico do gráfico completo usado no planejamento de cenário.

O mecanismo da plataforma de otimização é realmente simples. A mágica está nos algoritmos de otimização, que compõem os cérebros de todo o processo de otimização de alocação de orçamento. Existem alguns algoritmos de otimização que usamos. A otimização convexa é fácil de construir e implementar, mas é teoricamente limitada por suposições que nem sempre são válidas para problemas complexos do mundo real.

Também adotamos a otimização de gradiente descendente, que nos permite expressar a riqueza de nosso problema de otimização. A descida de gradiente gera significativamente mais iterações de cálculos mais caros, e nem sempre converge e geralmente leva muito tempo para convergir. No entanto, podemos definir nossa precisão desejada e os resultados aproximados geralmente são mais do que suficientes para as nossas necessidades.

Próximos passos

Como parte do nosso esforço para permitir previsões contínuas, também automatizamos os processos de atualização, reciclagem e backtesting do modelo do nosso sistema. Automatizar esses processos agiliza o ciclo de feedback e melhora continuamente a precisão do nosso modelo. Também estamos aproveitando o trabalho de outras equipes, como Marketplace, Global Intelligence e Risk, para injetar mais métricas no sistema.

Nossos cientistas de dados financeiros constroem constantemente novos modelos. Primeiramente, usamos métricas agregadas no nível da cidade para fazer previsões, mas agora estamos experimentando modelos de aprendizagem profunda que dependem de métricas individuais no nível do usuário. Os modelos de aprendizagem profunda exigem muito mais complexidade computacional, mas geram previsões mais precisas. O uso desses modelos treinados para previsão on-line apresenta um desafio técnico devido ao seu desempenho em tempo de execução.

Também estamos analisando como nossos serviços de nuvem financeira podem ser aplicados ao gerenciamento geral de recursos na Uber. O design e a implementação generalizados desse sistema já permitiram que nossas equipes da Uber Eats e Marketing migrassem seus processos de previsão financeira. Por exemplo, a equipe da Uber Eats só precisa definir uma especificação, criando métricas e cálculos de negócios, para gerar previsões em nosso sistema.

Também estamos explorando como podemos aplicar essas plataformas a outras áreas além do planejamento financeiro, como otimização de alocação de recursos de hardware e alocação de recursos humanos.
Estamos ansiosos para ver como outras equipes da Uber podem alavancar nosso sistema para construir plataformas de previsão baseadas em inteligência artificial para aumentar ainda mais nossos negócios.

Se você está interessado na construção de software de planejamento financeiro inovador e inteligente, considere juntar-se à nossa equipe!

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

***

Este artigo é do Uber Engineering. Ele foi escrito por Chunyan Song. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/transforming-financial-forecasting-machine-learning/