Personalização em tempo real em escala: como a Zepto entende o que você quer agora
Aprofundamento CEVIU
Aprofundamento
A Zepto não está apenas recomendando produtos, está antecipando intenção em tempo real. O cerne do sistema é o Dual Sequence ReRanker, que separa de forma limpa o histórico de longo prazo do comportamento da sessão atual, algo raro na prática, onde modelos costumam fundir tudo em um único vetor estático. Aqui, dois encoders Transformer distintos processam cada sequência, evitando que sinais recentes sejam apagados por padrões antigos ou vice-versa.
O pulo técnico vem com o target aware pooling: ao avaliar cada item candidato, o modelo reconstrói dinamicamente o perfil do usuário com base na similaridade entre o produto e as interações passadas, ponderando recência, tipo de ação (visualização vs. adicionar ao carrinho) e contexto temporal. Isso significa que o mesmo usuário recebe pesos diferentes conforme o item sendo avaliado, essencial para uma plataforma com milhares de categorias e intensidade de uso variável.
Por que isso importa
Em quick commerce, latência é conversão. Um modelo complexo como esse só faz sentido se entregar pontuação em milissegundos. A Zepto resolveu isso com uma otimização de engenharia elegante: codifica as sequências do usuário uma única vez e replica o resultado para todos os itens candidatos usando torch.expand(), eliminando cópias em memória. Isso mantém a sofisticação do Transformer sem sacrificar velocidade.
Além disso, o uso de sinais em tempo real, como contadores de tendência nas últimas duas horas e contexto de calendário, mostra que o time entende que personalização eficaz vai além do histórico. Capturar picos de demanda intra-dia ou padrões sazonais é tão crítico quanto entender preferências individuais, especialmente em mercados emergentes com consumo altamente volátil.
Linha do tempo
Zepto lança Dual Sequence ReRanker com target aware pooling e encoders separados para personalização em tempo real
Perguntas frequentes
Como o modelo lida com usuários novos ou sessões vazias?
Para sessões sem interação, o modelo desvia totalmente para o histórico de longo prazo. Em casos de usuários novos ou itens sem dados, ele usa uma cadeia de fallback em quatro níveis: SKU → Subcategoria → Categoria → Média global. Isso garante cobertura mínima sem depender de embeddings zerados.
Por que usar dois Transformers separados em vez de um compartilhado?
Transformers com pesos compartilhados forçam as mesmas camadas a modelar padrões de tempos muito diferentes, como compras semanais e cliques nos últimos minutos. Separar os encoders permite que cada um aprenda representações adequadas à sua escala temporal, sem interferência cruzada.
Qual o papel do 'fusion gate' no modelo?
O gate de fusão é uma rede neural leve que decide quanto peso dar à sessão atual versus o histórico. Ele analisa metadados como tamanho das sequências e similaridade entre itens, gerando um valor entre 0 e 1. Se a sessão está ativa, prioriza o comportamento recente; se vazia, confia no passado.
Como o sistema evita viés de posição nos dados de treinamento?
O modelo usa Add-to-Cart (ATC) como sinal positivo principal, ignorando cliques que podem ser induzidos pela posição. Também amostra negativos difíceis de janelas próximas na interface, reduzindo o ruído causado por exposição acima da média.
Fontes
- blog.zepto.comfonte original
- Categoria
- CEVIU Dados
- Publicado
- 25 de junho de 2026
- Editoria
- CEVIU Dados

