Scaling Multilingual Semantic Search in Uber Eats Delivery

Este artigo apresenta um sistema de recuperação semântica unificado e multilíngue para o Uber Eats, que utiliza um modelo Qwen2 de duas torres com aprendizado de representação Matryoshka e treinamento em centenas de milhões de interações para melhorar significativamente a precisão na busca por restaurantes, pratos e itens de varejo em múltiplos mercados.

Bo Ling, Zheng Liu, Haoyang Chen, Divya Nagar, Luting Yang, Mehul Parsana

Publicado Wed, 11 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que o Uber Eats é uma cidade gigante, cheia de milhões de restaurantes, pratos deliciosos e itens de supermercado. Antigamente, quando você digitava "pizza" na busca, o sistema funcionava como um bibliotecário um pouco desatualizado: ele só olhava para as palavras exatas que você escreveu. Se você digitasse "pizza de pepperoni" e o restaurante estivesse cadastrado como "pizza com pepperoni", o sistema podia não te encontrar. Era como tentar achar uma agulha num palheiro usando apenas uma lupa de palavras-chave.

Os autores deste artigo (da equipe do Uber Eats) decidiram construir um bibliotecário superinteligente que entende o que você realmente quer, não apenas o que você escreveu. Eles chamam isso de "Busca Semântica".

Aqui está a história de como eles fizeram isso, explicada de forma simples:

1. O Grande "Cérebro" Único (O Modelo Unificado)

Antes, o Uber Eats tinha "cérebros" separados: um para restaurantes, outro para pratos e outro para mercado. Era como ter três bibliotecários diferentes que não conversavam entre si.

  • A Solução: Eles criaram um único "cérebro" (um modelo de Inteligência Artificial baseado no Qwen2, um tipo de LLM muito poderoso) que entende tudo ao mesmo tempo.
  • A Analogia: Imagine um tradutor universal que, ao ouvir "quero algo rápido para o jantar", sabe que pode sugerir um restaurante de fast-food, um prato específico de macarrão ou até uma pizza pronta do mercado, dependendo do que você costuma fazer. Ele unificou tudo em um só lugar.

2. A Técnica do "Boneco Russa" (MRL)

Um dos maiores desafios é que a internet é rápida, mas o cérebro da IA é grande. Se a IA for muito detalhada, ela demora para responder. Se for muito simples, ela erra.

  • A Solução: Eles usaram uma técnica chamada MRL (Matryoshka Representation Learning).
  • A Analogia: Pense em um boneco russa (Matryoshka). Você pode ter o boneco inteiro (1536 dimensões de detalhes), que é perfeito para encontrar a resposta exata, mas é pesado. Mas, se você estiver com pressa, pode usar apenas o "cabeça" do boneco (128 dimensões), que é leve e rápido, mas ainda guarda a ideia principal.
  • O Resultado: O mesmo modelo serve para situações onde você precisa de velocidade (como em celulares antigos) e para situações onde você quer a máxima precisão, sem precisar carregar vários modelos diferentes.

3. O Treinamento: De "Leitura de Livro" a "Estágio na Cozinha"

Como ensinar essa IA a entender o Uber Eats?

  • Fase 1 (A Base): Eles pegaram o modelo Qwen2, que já lia milhões de livros e sabia de tudo (conhecimento geral), e o colocaram para "ler" milhões de buscas reais de usuários do Uber Eats. Eles viram o que as pessoas clicavam e o que colocavam no carrinho.
  • Fase 2 (O Refinamento): Depois, usaram uma IA ainda mais inteligente (um "professor") para criar um teste de "casos difíceis". Por exemplo: "Se o usuário digita 'chocolate', ele quer chocolate em pó ou um bolo de chocolate?". O modelo foi treinado especificamente para não errar nessas pegadinhas.
  • A Analogia: É como pegar um estudante universitário brilhante (o modelo base) e dar a ele um estágio de 6 meses na cozinha do Uber Eats, onde ele aprende os segredos do negócio, e depois faz um exame final com as perguntas mais difíceis que os clientes já fizeram.

4. A Entrada de Dados: O "Formulário" vs. O "Bloco de Texto"

Para a IA entender melhor, eles não jogaram o texto de forma bagunçada.

  • A Solução: Eles organizaram os dados como um formulário estruturado (JSON). Em vez de apenas "Pizza, pepperoni, saborosa", a IA vê: Nome: Pizza, Ingrediente: Pepperoni, Categoria: Italiana.
  • A Analogia: É a diferença entre ler uma carta escrita à mão, rabiscada, e ler um formulário preenchido com campos claros. A IA entende muito melhor quando as informações estão organizadas em caixinhas separadas.

5. O Resultado na Vida Real

O que aconteceu quando eles ligaram isso no app?

  • Mais Acertos: O sistema encontrou muito mais coisas que os usuários queriam (a taxa de "recall" aumentou drasticamente).
  • Menos "Nada Encontrado": A quantidade de vezes que o usuário buscava algo e o sistema dizia "não temos nada" caiu quase 70%.
  • Mais Vendas: Como as pessoas encontraram o que queriam mais rápido, elas compraram mais.
  • Custo: Graças à técnica do "Boneco Russa" e à compressão dos dados (quantização), eles conseguiram fazer tudo isso sem gastar uma fortuna em servidores.

Resumo Final

Os autores criaram um sistema de busca inteligente que:

  1. Entende o contexto (não só palavras-chave).
  2. Funciona em vários idiomas e para vários tipos de produtos (comida, mercado) ao mesmo tempo.
  3. É flexível: pode ser rápido ou detalhado dependendo da necessidade.
  4. Foi treinado com dados reais de milhões de usuários para aprender o que as pessoas realmente querem.

É como substituir um bibliotecário que só sabe ler etiquetas por um concierge pessoal que conhece seus gostos, entende o que você diz (mesmo que você erre a palavra) e te leva direto para o que você precisa, seja um hambúrguer ou um pacote de arroz.