Hendrik Macedo
05/02/2018

Homem pede carona “à moda antiga”. [1]
São 19h30 e você está prestes a sair de um evento durante uma viagem à trabalho. Chove bastante e você resolveu não gastar com aluguel de automóvel. Entre tantos rostos desconhecidos, também não há perspectiva de caronas. Através do aparelho de celular recém-comprado, você realiza download de um aplicativo de transporte, o popularizado “carona remunerada” (do inglês, e-hailing), que nunca havia utilizado antes. Realiza cadastro, faz a solicitação de um automóvel informando o destino e aguarda… nesse meio tempo é impossível esquecer a fome assoladora e a igualmente assoladora falta de mantimentos que o espera no apartamento alugado via aplicativo de reserva de acomodações privadas. Enfim, outro problema para se resolver já, já.

Os desafios do outro lado começam já no novo cadastro e vão desde a simples tarefa de cruzamento de CPF e números de cartão de crédito até o uso de técnicas de Detecção de Anomalias para precisa identificação de contas fraudulentas ou solicitações suspeitas. Naturalmente, maior parte da tecnologia por trás de aplicativos de transporte está relacionada a mapas. Em tempo real, informações de contexto são utilizadas para prever de antemão qual será o destino da corrida. Isso inclui a análise da localização atual do motorista, a hora da solicitação da chamada, aprendizado de destinos mais prováveis considerando local de partida e, para usuários já antigos, o histórico de outras chamadas efetuadas. Para este fim, o Uber, por exemplo, utiliza a técnica de Árvores de Decisão, mas desempenho semelhante pode ser obtido por meio de outras técnicas, como a recentemente proposta por pesquisadores da Universidade de Tolouse/FR [2], onde o destino final é previsto baseando-se na trajetória parcial inicial da corrida. O Uber relata que mais de 50% de suas previsões se mostram acertadas.

A seguir, o desafio é precificar de antemão a corrida para o usuário. Além dos dados de distância da origem ao destino, a geração de previsões espácio-temporais de oferta, demanda e outros dados relevantes por até várias semanas no futuro são realizadas; os algoritmos aprendem e modelam a influência de sinais externos como tráfego, eventos na cidade, feriados e clima, para citar alguns. No caso do Uber, redes de aprendizado profundo do tipo Long-Short Term Memory (LSTM), aquelas mesmas usadas para tarefas de tradução automática de texto (ver artigo “Do you speak English? No. Yo hablo español“), são utilizadas para este fim. Por fim, técnicas de otimização são utilizadas para selecionar que motorista melhor poderá atender à chamada, considerando sua localização e eventual disponibilidade.

Trajeto realizado com sucesso, hora de matar a fome. Entra em cena outro aplicativo que encontra o restaurante, lanchonete ou tipo de cozinha desejada. Tempo de entrega e preço são estimados com uso de tecnologias semelhantes às já descritas anteriormente. Caso o aplicativo utilizado para este fim tenha sido o UberEATS (https://www.ubereats.com/), uma vez que o pedido esteja quase pronto, um motorista Uber parceiro se dirigirá ao restaurante, pegará a encomenda e entregará em seu apartamento conforme especificado. Todos os problemas da noite resolvidos!

Considerando a relevância das redes neuronais profundas para boa parte das tarefas de detecção de padrões que embasam grande parte das soluções da Uber, pesquisadores da empresa publicaram recentemente um conjunto de artigos que resumem uma importante linha de investigação científica [3, 4, 5, 6]: o uso de técnicas de computação evolutiva para melhoria do desempenho dessas redes em detrimento da abordagem mais tradicional, calcada em métodos de aprendizado voltado para a descida do gradiente do erro. Esses artigos mostram como a técnica da Neuroevolução (Neuroevolution) rivalizou e em muitos casos suplantou o desempenho do método do gradiente para diferentes e intrincados problemas como jogar autonomamente videogames tradicionais, resolver labirintos e conseguir com que um robô simulado aprenda a andar. Neuroevolução é um processo que consiste em aplicar operadores genéticos como crossover e mutação e selecionar as melhores redes neuronais resultantes dessa aplicação. A intenção, naturalmente, é verificar a viabilidade da inclusão do processo nas diversas soluções da empresa, que incluem carros autônomos, precificação e roteamento de veículos para passageiros.

Em frações de segundo, muita coisa acontece nos bastidores do uso das diversas tecnologias e serviços hoje à nossa disposição. Aquele termo, outrora relegado a elogiar o garotinho que sabia resolver todas as tarefas da escola com destreza, hoje empresta sua relevância para um monte de dispositivos, aplicativos ou conceitos que convivem pacificamente (ainda) com nossa espécie: smartphone, smartTV, smartwatch, smarthome, smartcities, smartcar, smartclothes, …. É, o mundo é realmente cada vez mais dos espertos!

[1] Crédito da imagem: cocoparisienne (Pixabay) / Creative Commons CC0.
https://pixabay.com/en/road-man-hitcher-wanderer-1536748/.

[2] PC Besse et al. Destination Prediction by Trajectory Distribution-Based Model. IEEE Transactions on Intelligent Transportation Systems 10.1109/TITS.2017.2749413 (2017).

[3] FP Such et al. Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning. arXiv:1712.06567 [cs.NE] (2017).

[4] J Lehman et al. Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients. arXiv:1712.06563 [cs.NE] (2017).

[5] X Zhang et al. On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent. arXiv:1712.06564 [cs.NE] (2017).

[6] E Conti et al. Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents. arXiv:1712.06560 [cs.AI] (2017).

Como citar este artigo: Hendrik Macedo. A “esperteza” dos aplicativos de transporte. Saense. http://www.saense.com.br/2018/02/a-esperteza-dos-aplicativos-de-transporte/. Publicado em 05 de fevereiro (2018).

Artigos de Hendrik Macedo     Home