Desenvolvimento

30 nov, 2017

Criando transporte mais confiável com machine learning e IA na Uber

Publicidade

Recentemente, a Uber Engineering tem mostrado como usamos Machine Learning (ML), Inteligência Artificial (IA) e tecnologias avançadas para criar experiências mais consistentes e confiáveis para nossos usuários. Desde a introdução de uma arquitetura de rede neural bayesiana que, com mais precisão, estima o crescimento da viagem, nosso sistema de previsão de recursos em tempo real e até mesmo nossa plataforma interna ML-as-a-service, Michelangelo. Esses dois campos são fundamentais para apoiar a missão da Uber de desenvolver transporte confiável a todos, em todos os lugares.

Entre outras áreas, usamos o ML para habilitar um mercado de compartilhamento de viagens eficiente, identificar contas suspeitas ou fraudulentas, sugerir pontos ideais de entrada e saída de passageiros e até mesmo facilitar a entrega do UberEATS, recomendando restaurantes e prevendo tempos de espera para que sua comida possa chegar até você quando você precisar. Mas como elaboramos soluções e desenvolvemos novos algoritmos para enfrentar esses desafios em escala?

Neste artigo, abordamos essa questão descrevendo como o ML e a IA capacitam a Uber Engineering para fornecer experiências de usuário confiáveis e seguras em nossos produtos.

Os participantes ouvem as apresentações durante o nosso Meetup de Uber Machine Learning em 12 de setembro de 2017.

Uber e o mundo físico

Nosso mundo físico é dinâmico. As mudanças no ambiente que afetam o comportamento humano (e o uso de nossos aplicativos) criam incerteza, apresentando assim, um vasto leque de oportunidades de aprendizado.

A complexidade do espaço problemático da Uber vai além de clicar em links da web para pedir um carro – nós realmente lidamos com o próprio carro. Existe uma complexidade enorme ao modelar interações do movimento e roteamento de carros para otimizar milhares de entidades interconectadas em cada lado de um mercado em tempo real.

À medida que a rede de usuários da Uber cresce, também aumenta a quantidade de sensores que nos ajudam a entender o mundo físico. Usamos essas informações para criar mapas, otimizar nosso mercado e treinar nossos carros autônomos.

O espaço problemático da Uber é novo e evolui rapidamente, especialmente nestas dimensões de escala e de interseção:

  • Espacial: em níveis macro (globais, regionais e de cidade) e micro (passageiros, carros e mercadorias).
  • Temporal: de segundos a anos.
  • Humana: envolvido em todas as etapas, desde a tomada de decisão até o recibo da decisão.
  • Ativa: impacto imediato e resposta no sistema a ser modelado.
    Escala: bilhões de cálculos e milhares de decisões tomadas para milhões de passageiros e motoristas cada minuto.

No vídeo abaixo, destacamos como abordamos esse complexo espaço de problemas através do ML:

Nas seções seguintes, fornecemos uma visão geral de alguns dos desafios de ML e IA que nossos engenheiros e cientistas de dados abordam diariamente, começando com nossa equipe de mapas.

Projetando Uber Maps

Os mapas são representações do mundo físico construído em dados, e a missão principal da Uber está ligada à nossa capacidade de aproveitar esses dados para aprimorar nossas tecnologias de mapeamento. A partir de pesquisa e previsão de destino, geração de mapas, ETAs, roteamento e estimativas de tarifas avançadas, os mapas são integrantes de todos os elementos da nossa rede logística. Isso é visualmente representado pelo fato de que os mapas cobrem mais de 95% dos pixels nas interfaces de usuário do passageiro e do motorista.

Uma visualização destaca viagens provenientes do bloco HQ da Uber em São Francisco.

Para permitir uma melhor experiência de usuário, emparelhamos nossas tecnologias de mapeamento com ML. Em tempo real, identificamos sugestões conscientes do contexto para destinos, levando em consideração a localização atual do passageiro, o tempo de solicitação e as informações de histórico. Mesmo para os usuários que são novos para a plataforma ou de uma determinada cidade, fornecemos sugestões de destino usando informações agregadas e a probabilidade condicional de que qualquer usuário selecione um determinado destino, dado o contexto de tempo e espaço.

Destination Prediction, lançado em novembro de 2016, é apenas um exemplo de como usamos o ML para melhorar nossos mapas. Desde a implementação, descobrimos que Destination Prediction atende a mais de 50% de todas as entradas de destino, um testemunho da precisão de nossos algoritmos.

O ranking de previsão de destino alavanca vários recursos e, juntamente com uma árvore de decisão com gradiente, fornece sugestões de destino aos passageiros.

O processo de Destination Prediction é composto por cinco etapas distintas:

  1. Os clientes chamam os pontos finais do serviço.
  2. O serviço recupera os candidatos da loja de recursos e classifica os candidatos com base na latitude/longitude fornecida e na hora do dia.
  3. O serviço retorna as sete principais sugestões de destino, com candidatos selecionados de lugares para onde as pessoas já viajaram e procuraram anteriormente.
  4. Usando uma combinação de informações armazenadas sobre o mundo físico e ML, o serviço produz uma lista de locais que vêm com um conjunto de recursos, incluindo um histograma de destinos populares com os horários de solicitação correspondentes e a hora atual.
  5. Um marcador de machine learning classifica esses lugares, incorporando feedback de outro modelo que treina como colocar cada um desses componentes separadamente.

Conforme mencionado anteriormente, ao desenvolver esse recurso, precisamos considerar como fazer sugestões para novos usuários que não tiveram um histórico de viagens para extrair de uma maneira consciente do contexto. Para resolver esse problema, Destination Prediction usa dados agregados para identificar e sugerir locais populares.

No vídeo abaixo, fornecemos um resumo das formas como ML é usado para construir melhores mapas:

Mapas e sistemas de roteamento são fundamentais para mover nossos passageiros e motoristas, mas como as decisões de preços e despacho ocorrem antes mesmo de eles começarem a se mexer?

Crescendo o Uber Marketplace

Para responder a essa pergunta, não procure além do Uber Marketplace, os cérebros algorítmicos e o mecanismo de decisão por trás dos nossos serviços. Uma variedade de equipes no Marketplace, incluindo Previsão, Despacho, Personalização, Modelagem de Demanda e Preços Dinâmicos, criam e implementam algoritmos de ML para lidar com a imensa coordenação, tomada de decisão hiperlocal e aprendizado necessário para enfrentar a enorme escala e o movimento de nosso transporte rede.

Para que nossos mecanismos de decisão sejam conscientes do futuro, precisamos poder “ver no futuro” com a maior precisão possível no espaço e no tempo. O ML nos permite gerar previsões espaço-temporais de oferta, demanda e outras quantidades em tempo real por até várias semanas à frente. Nossos algoritmos aprendem e modelam rapidamente a influência de sinais externos, como eventos de notícias globais, feriados e clima no Marketplace. Na maioria dos casos, há dados de histórico limitados, e nos casos em que as cidades acabaram de receber o serviço, não há dados. Para lidar com isso, alavancamos técnicas que variam de modelos de deep learning, incluindo redes de memórias de curto prazo longas (LSTM), para nos ajudar a prever os futuros estados do Marketplace e até mesmo prever o início de eventos extremos antes que eles ocorram!

Um mecanismo de processamento de fluxo espaço-temporal, juntamente com modelos personalizados, alimenta a geração de bilhões de previsões em tempo real a cada minuto.

Para oferecer uma experiência de transporte sem atritos, usamos o ML para criar fluxos de experiência aprimorados. Os destinos e as comunicações relevantes são exibidos com base nas preferências agregadas. Por exemplo, novas técnicas de modelagem de elevação e viagens em grupo são usadas e produzidas com TensorFlow para reduzir os pontos de atrito na experiência do passageiro e do motorista.

Quando um passageiro está pronto para fazer uma viagem, também usamos o ML para combiná-lo com os motoristas. Nossos algoritmos de despacho analisam milhares de recursos em tempo real para gerar mais de 30 milhões de correspondências de par por minuto. Esse é um problema massivamente complexo, pois devemos considerar a distância, o tempo, o trânsito, a direção e outras dinâmicas do mundo real, além de compreender profundamente a experiência do motorista e o desejo dos passageiros.

Uma combinação de modelos baseados em árvores, técnicas de montagem e métodos de otimização de correspondência são usados para garantir uma ótima experiência de viagem. De fato, as inovações em nossos algoritmos de correspondência para viagens back-to-back, economizaram muitos anos de cada semana em conjunto para nossos passageiros e motoristas. Essas técnicas são então industrializadas para gerar lotes de 15 mil previsões com um tempo de resposta de 100ms, aproveitando dados de históricos recentes para cada solicitação de viagem que chega.

Correspondência de despacho alavanca milhares de recursos para gerar milhares de previsões em tempos de sub-segundos.

A escala da Uber e a natureza altamente dinâmica da modelagem do mundo físico tornam nossos desafios de ML únicos para a indústria. Para lidar com isso, também criamos sistemas que aprendem e melhoram automaticamente com escala, e algoritmos que podem detectar e resolver problemas em nossos sistemas. Para crescer o Marketplace, pegamos uma ideia desde o início até o modelo de produção em várias equipes, gerando eficiência de rede para nossos passageiros e motoristas, enquanto criamos experiências de usuário mais seguras no processo.

A organização do Marketplace do Uber industrializa o machine learning através da construção de sistemas que aprendem com escala.

No vídeo abaixo, discutimos como casamos o ML com o Uber Marketplace para criar melhores experiências para nossos usuários:

Nossos aplicativos geram uma variedade de dados que podem ser usados para resolver uma infinidade de casos de uso comercial, mas como usamos esses dados para permitir a construção rápida de modelos em toda a empresa?

Construindo plataformas de ciência dos dados

Para construir rapidamente modelos e algoritmos que alavancam as enormes quantidades de dados agregados processados pelos serviços da Uber, construímos várias plataformas de ciência dos dados. Essas plataformas permitem que nossos cientistas de dados criem tecnologias que aumentam a eficácia e a eficiência de nossos produtos e operações.

Michelangelo, a plataforma ML-as-a-service da Uber, permite aos usuários da empresa consultar dados, gerar recursos e aplicar uma série de modelos de ML para resolver problemas de produção. Advanced Technologies Group (ATG), que desenvolve nossas tecnologias de veículos autônomos, UberEATS, Publicidade e Marketing são apenas algumas das equipes que alavancam essa poderosa plataforma.

Outro exemplo de nossa tecnologia habilitada para ML, inclui a nossa plataforma de Processamento de Linguagem Natural (PNL), que gera e implementa respostas acionáveis para nossos tickets de suporte ao cliente, chatbots para facilitar o acesso ao motorista e respostas sugeridas in-app. Com nosso compromisso para com os nossos parceiros motoristas, estamos usando nossa plataforma de PNL, juntamente com modelos de deep learning para melhorar as ações recomendadas e os tempos de resposta para nossos tickets de suporte.

Nossa plataforma personalizável de PNL permite que os cientistas de dados criem modelos rápidos para chatbots, análise de sentimentos e resposta rápida para tickets de suporte.

ML também é usado para melhorar os sistemas internos de produção de engenharia. Para garantir a confiabilidade de nossos serviços durante todas as horas, usamos isso para facilitar as responsabilidades de plantão de nossos engenheiros, em nossa plataforma de detecção de anomalia. Essa ferramenta monitora constantemente dezenas de milhares de métricas de serviço para provocar alertas espúrios. Utilizamos uma combinação de redes neurais recorrentes e novas técnicas de extração de recursos para que o sistema aprenda os padrões dessas métricas, incluindo os ciclos do dia e da noite e dos dias de semana e dos dias de fim de semana.

Os limiares de alerta são constantemente ajustados sem intervenção humana, por isso estamos sempre à frente de qualquer falha crítica potencial nos negócios. Ao garantir um transporte seguro e confiável para milhões de pessoas diariamente, uma interrupção do sistema pode ter um enorme impacto.

A plataforma de detecção de anomalias da Uber ajuda nossas equipes de engenharia a maximizar os alertas on-call acionáveis.

No vídeo abaixo, mostramos Michelangelo, nossas técnicas de previsão de eventos extremos e outros trabalhos que alavancam nossa pesquisa de ML:

Agora que sabemos como usamos o ML para alimentar nossas plataformas de ciência de dados, como podemos aplicar esses sistemas ao transporte do futuro – veículos autônomos?

Criando veículos autônomos com Uber ATG

Globalmente, 1,3 milhão de pessoas morrem em acidentes de carro a cada ano; somente nos Estados Unidos, 94% dos acidentes fatais são resultado de um erro humano. A Uber está empenhada em desenvolver tecnologias que aumentem a segurança para os usuários atuais e futuros. Alimentados por ML e IA, os veículos autônomos desempenharão um papel importante na segurança das estradas.

A anatomia de um carro autônomo Uber ATG inclui sensores LiDAR, câmeras, antena para posicionamento GPS, computação e armazenamento, e radar.

Até agora, os veículos autônomos da Uber completaram mais de 30 mil viagens de passageiros do mundo real em lugares como Pittsburgh, PA, e Tempe, AZ. Nesses ambientes, os veículos autônomos da Uber utilizam ML para informar como eles se movem pelo espaço, ajudando nossos sistemas automatizados a entender as diferenças entre veículos estacionados e em movimento, pedestres e todo o resto.

Múltiplas entradas são usadas para treinar junto com loops de feedback intermediários para criar aprendizado de autocondução de ponta a ponta.

Para garantir que nossos veículos funcionem com a maior segurança possível, as tecnologias de ML autônomas da Uber vão além das abordagens padrão que se concentram em ensinar um carro a dirigir. Em um alto nível, pensamos no problema como tendo uma variedade de entradas para determinar a direção do volante e a velocidade do veículo. No entanto, essa abordagem não resolve o problema de condução end-to-end para máquinas. Em vez disso, devemos considerar o número de exemplos para que a rede capture adequadamente a dinâmica do mundo físico. Se houver um acidente, o modelo deve ser explicável, e se o modelo não funcionar, ele deve ser devolvível através da introspecção.

Essa camada extra de insight garante que nossas ferramentas e algoritmos de ML possam navegar de forma segura e confiável nos veículos autônomos da Uber para um futuro sem acidentes.

As visualizações agregadas no tempo criam informações mais densas e características temporais para algoritmos focados na segurança.

O futuro de ML e IA na Uber

Neste artigo, discutimos apenas uma pequena amostra dos desafios emocionantes que resolvemos com ML e IA na Uber. Entre outras tecnologias, nós também as aplicamos ao nosso UberEATS, passageiro e motorista em grupo, fraude em conta e detecção de riscos, aprendizado sem supervisão para sugerir pontos de captação, melhoria de estimativas de ETA para passageiros e para motoristas, modelagem probabilística para gerenciamento de risco de decisão e otimizações de pipeline de dados.

Se abordar os desafios de ML e IA que desafiam os limites de escala lhe interessam, candidate-se a um cargo em nossa equipe!

***

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