<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[iFood Tech - Medium]]></title>
        <description><![CDATA[Somos a maior FoodTech da América Latina e aqui você encontra como usamos inovação e tecnologia para impactar todo ecossistema da alimentação - Medium]]></description>
        <link>https://medium.com/ifood-tech?source=rss----d8f930b20416---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>iFood Tech - Medium</title>
            <link>https://medium.com/ifood-tech?source=rss----d8f930b20416---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 02:28:38 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/ifood-tech" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Ailo: de experimento a produto com propósito]]></title>
            <link>https://medium.com/ifood-tech/ailo-de-experimento-a-produto-com-prop%C3%B3sito-f3341046bf29?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/f3341046bf29</guid>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Thu, 06 Nov 2025 22:12:50 GMT</pubDate>
            <atom:updated>2025-11-06T22:12:49.439Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3n0_kT2DwbkpE0PsBlL84w.png" /></figure><p><em>Texto escrito em parceria com </em><a href="https://medium.com/u/3eadeb45e33b?source=post_page---user_mention--a35478a01f1f---------------------------------------"><em>Valéria Romano</em></a><em>, Gerente Sênior de Produto &amp; Design.</em></p><p>Nos últimos meses, <strong>Ailo, nosso AI agent para consumidores </strong>deixou de ser apenas um pequeno experimento e vem se tornando um produto com propósito.</p><p>Se você perdeu nossos posts anteriores onde contamos sobre como foi o processo de criação desse AI agent, recomendamos que acesse <strong>esse</strong> e <strong>esse</strong> artigo antes, lá falamos um pouco sobre o processo e bastidores.</p><p>Clayton Christensen, em <em>O Dilema da Inovação</em>, mostra como empresas consolidadas muitas vezes se prendem a melhorias incrementais, enquanto as grandes transformações nascem de experimentos que parecem pequenos no início.</p><p>Ailo começou assim, quase invisível, e agora mostra sinais de que pode mudar a forma como as pessoas pedem no iFood.</p><p><strong>Este artigo é sobre essa virada: </strong>os problemas que resolvemos até agora, os primeiros sinais de product-market fit e, principalmente, como os usuários estão recebendo esse produto.</p><p><strong>Primeiros sinais de product market fit</strong></p><p>Hoje, Ailo está disponível no aplicativo do iFood em 5 cidades, e no WhatsApp, para qualquer pessoa no Brasil.</p><p><strong>O fluxo parece simples: </strong>o usuário conversa com o agente, que apresenta um carrossel de itens com base no histórico de pedidos e no contexto da interação. Depois, a jornada segue no app do iFood, na experiência que já existe hoje.</p><p>Mas por trás dessa simplicidade, os números chamam atenção: <strong>usuários Ailo criam 2x mais carrinhos do que na experiência tradicional do app. </strong>Além disso, nossas pesquisas mostram que <strong>80% dos usuários consideram Ailo útil em momentos de indecisão.</strong></p><p>“O iFood tem muitas opções, como a Netflix, e o assistente me ajudou a encontrar um caminho mais curto.” — comentário do usuário</p><p>E é aqui que mora o coração do nosso produto, garantir que essa tarefa que parece simples, mas que é extremamente complexa nos bastidores, seja feita da melhor forma possível para o usuário.</p><h4>Dados e pessoas: o coração do produto</h4><p>A parte mais difícil de construir um recomendador não é o modelo em si, mas a qualidade da base de dados. Nada do que mostramos até aqui seria possível sem a base estruturada do iFood e o LCM, que garante que a intenção do usuário esteja sempre alinhada com as opções de oferta em tempo real.</p><p>Mas dados sozinhos não bastam. <strong>Ailo é uma via de dois sentidos: aprende com cada interação, melhora a partir do feedback dos usuários e se refina </strong>continuamente graças ao trabalho conjunto de pessoas, dados e tecnologia. É nessa combinação que a experiência realmente ganha vida<strong>.</strong></p><p>“Não me interessei por nenhum dos restaurantes sugeridos. Não havia nenhum restaurante que eu conhecia.” — comentário do usuário.</p><p>Ainda estamos aprendendo a equilibrar dois momentos importantes: a exploração de novas opções e o conforto de trazer à tona o que o usuário já conhece e gosta, esse tem sido nosso desafio atual e todo feedback é fundamental!</p><h4><strong>Latência é o calcanhar de todo agente</strong></h4><p>Se você trabalha com agents, já deve ter enfrentado o problema de latência. Para quem não conhece: latência é o tempo que o sistema demora para responder depois que você faz uma pergunta. É como quando alguém demora demais para responder numa conversa, a fluidez se perde e a impaciência ganha espaço.</p><p>No início, nossa latência chegava a 16 segundos ou mais para gerar resultados, o que compromete bastante a experiência principalmente nos momentos em que o usuário está com fome e possivelmente irritado. Com pesquisas e monitoramento constante, conseguimos identificar essa dor e priorizar melhorias até reduzir o tempo para níveis aceitáveis.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WpFw5dMHIUtOS5H3XbIaJg.png" /></figure><p>Fizemos dois movimentos importantes:</p><ul><li>Ajustamos o modo como Ailo processa cada mensagem. Pedidos simples, como um “oi”, não disparam buscas profundas, garantindo respostas mais rápidas.</li><li>Tornamos a arquitetura mais dinâmica, mostrando micro-interações durante buscas complexas para que o usuário perceba que Ailo está trabalhando em segundo plano.</li></ul><p><strong>Esse equilíbrio trouxe mais naturalidade para a conversa e mais confiança no uso.</strong></p><h4><strong>O canal molda o comportamento</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/514/1*h_MXSku7In-0xCq0Im9U8Q.png" /></figure><p>Outro aprendizado importante foi perceber que o canal influencia diretamente o comportamento.</p><ul><li><strong>No app,</strong> menos da metade dos usuários faz mais de uma busca. Isso acontece porque o comparativo é sempre com a experiência tradicional do iFood, construída ao longo dos anos.</li><li><strong>No WhatsApp</strong>, o diálogo é mais natural e contínuo, aproximando-se de uma conversa real.</li></ul><p>Essas diferenças mostram que não existe “o usuário do Ailo”, existem jornadas distintas, moldadas pelo canal e pelo contexto. Agora estamos explorando novas formas de destacar Ailo dentro da experiência no app, respeitando o comportamento esperado e a jornada atual do iFood.</p><h4><strong>A magia está na praticidade</strong></h4><p>Cada vez mais percebemos que Ailo está se tornando um alívio para os usuários ao recomendar de acordo com o perfil e acelerar o processo de compra.<br>As pessoas não querem “AI”. Elas querem o benefício dela — salvar tempo, economizar dinheiro, resolver um problema.</p><p>É o que lembra a icônica frase de Theodore Levitt: <em>“As pessoas não compram brocas, elas compram buracos na parede.”</em></p><p>“Se fosse do zero, talvez fosse diferente. Mas como estava adaptado ao meu perfil, foi fantástico.” — comentário do usuário.</p><p>A verdadeira mágica está na praticidade e na sensação de que alguém entende suas necessidades no momento certo.</p><h4>O que vem a seguir?</h4><p>Estamos apenas no começo. Mas já temos clareza de algumas direções:</p><p>Primeiro, expandir gradualmente disponibilizar o Ailo no app iFood, estamos ansiosos para ver pessoas de diferentes regiões conversando com o Ailo dentro do aplicativo. Enquanto isso, seguimos colhendo feedbacks sobre a experiência no WhatsApp e iterando.</p><p>Outra discussão é tornar a personalização ainda mais profunda: estamos explorando novos momentos em que o Ailo pode se encaixar no dia a dia das pessoas, sendo cada vez mais proativo, sempre com cuidado, responsabilidade e segurança.</p><p>O produto agents ainda está encontrando seu espaço no mercado, e esse futuro muda o tempo todo. Mas nossa visão é clara:</p><p>“Ailo vai entender nossas necessidades na hora certa, com um aprendizado tão rápido que parece mágica, mas é o poder da IA!” — <em>Bruna Faim, product designer do Ailo</em></p><p>“O futuro do Ailo é ser um assistente que entende você tão bem quanto um amigo e antecipa seus desejos.” <em>— Renato R. Ribeiro, Software Engineering do Ailo</em></p><p>“Ailo vai se manifestar de forma multimodal, entendendo o contexto para escolher quando e onde ser mais visual, conversacional ou interativo.” — <em>Camila Gargantini, product designer especialista no Ailo</em></p><p>“O Ailo vai ser como um amigo que sabe o que eu quero e faz o pedido por mim.” — <em>Chiara Caratelli, Data Scientist no Ailo</em></p><p>“O Ailo não é só uma nova forma de pedir comida, mas sim um assistente virtual do iFood que me entende como ninguém.” — <em>João Lippi, Software Engineering do Ailo</em></p><p>“O futuro do Ailo é facilitar minha rotina: planejar meu mercado e refeições, com comando de voz, tudo do meu jeito, sem esforço.” Lucas Mattos, GPM do Ailo</p><p>Se no início parecia só mais um experimento, hoje já enxergamos Ailo como parte fundamental do futuro do iFood. <strong>E esse futuro está sendo construído a cada conversa, a cada escolha e a cada pedido feito com a ajuda do nosso agent.</strong></p><p>👉 Convidamos você a conversar com Ailo no WhatsApp, <a href="https://ifoodwhatsapp.onelink.me/PUlD/Ailo"><strong>clique aqui e teste agora!</strong></a></p><p>E seguindo a nossa cultura de colaboração e testes, manda pra gente <a href="https://docs.google.com/forms/d/1EntiEYkRFmxSbF9CCN-W2v6T6bG9iu3P2x78tcie64w/preview"><strong>aqui nesse forms</strong></a> se você encontrar algum problema, proposta de melhoria, ou algo que gostou na experiência.</p><p>Até a próxima! <strong>👋</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f3341046bf29" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/ailo-de-experimento-a-produto-com-prop%C3%B3sito-f3341046bf29">Ailo: de experimento a produto com propósito</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Repensando a Mensuração: Como nosso MMM Proprietário aprimorou nossa visão de Mídia]]></title>
            <link>https://medium.com/ifood-tech/repensando-a-mensura%C3%A7%C3%A3o-como-nosso-mmm-propriet%C3%A1rio-aprimorou-nossa-vis%C3%A3o-de-m%C3%ADdia-fa68658c14b4?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/fa68658c14b4</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Tue, 28 Oct 2025 19:00:14 GMT</pubDate>
            <atom:updated>2025-10-28T19:00:15.430Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CnQWDONSBzsJMJneh96j4A.png" /><figcaption><em>Texto escrito por </em>@fernandafborem<em>, Cientista de Dados Sênior e @mariane.bando, Coordenadora de Ciência de Dados do time de MediaLab.</em></figcaption></figure><p>O marketing digital vive um paradoxo: nunca tivemos tantos dados e, ao mesmo tempo, nunca foi tão difícil isolar efeitos causais. Modelos de atribuição tradicionais capturam conversões diretas, mas deixam pontos cegos: campanhas de branding, canais offline, efeitos de longo prazo, efeitos de awareness.</p><p>A questão fundamental permanece: <strong>como estimar com confiança o impacto incremental de cada canal e decidir onde alocar o próximo milhão?</strong></p><p>Este é o relato de como construímos o Bobyn, nosso MMM (Marketing Mix Model) proprietário, e a plataforma que busca democratizar a modelagem de mix de marketing no iFood.</p><h3>O Problema: Uma Visão de Marketing no Escuro</h3><p>Antes do Bobyn, tínhamos um problema clássico de inferência causal: medir o ganho incremental de cada canal de marketing nas KPIs de negócio, realizar simulações de investimentos e otimizar a alocação de budget (seja para sessões, pedidos ou outros KPIs). Os desafios eram previsíveis, mas não triviais:</p><ul><li>Dados limitados: Séries temporais diárias ou semanais são curtas para modelos complexos. Como estimar efeitos individuais de 10+ canais com ~365 observações por ano?</li><li>Canais não-rastreáveis: OOH (out-of-home) e campanhas de branding não geram clicks ou conversões diretas. Como atribuir valor a eles?</li><li>Confounders externos: Feriados, sazonalidade, ações da concorrência, eventos externos (Black Friday, Copa do Mundo). Como isolar o efeito real dos nossos investimentos?</li><li>Efeitos de mídia não são instantâneos: Como modelar persistência temporal de awareness e conversão?</li><li>Saturação de canais: Retornos marginais decrescentes são esperados, mas onde está o ponto de inflexão para cada canal?</li></ul><h4><strong>Por que não usar algo pronto?</strong></h4><p>Testamos ferramentas open-source conhecidas (Robyn, Meridian) e consultamos soluções de mercado. O problema não era capacidade técnica delas, inclusive, elas são excelentes, mas nosso contexto (múltiplas verticais, KPIs variados, necessidade de controle fino) pedia uma solução mais customizada:</p><ul><li><strong>Flexibilidade</strong>: Precisávamos adaptar rapidamente o modelo para diferentes verticais (food, groceries, pharma) e KPIs (sessões, pedidos, GMV)</li><li><strong>Interpretabilidade</strong>: Stakeholders de negócio precisavam entender não só os resultados, mas por que o modelo sugeria determinada alocação</li><li><strong>Controle total</strong>: Queríamos iterar rápido, testar priors diferentes, adicionar features customizadas sem depender de roadmap externo</li><li><strong>Conhecimento interno</strong>: Já tínhamos uma equipe de DS capaz de construir e manter um modelo Bayesiano customizado</li></ul><p>A escolha ficou clara: construir nosso próprio MMM nos daria controle, transparência e a capacidade de evoluir o modelo junto com o negócio.</p><h3>A Solução: Nosso Próprio Modelo Bayesiano e uma Plataforma Self-Service</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/895/1*Imwu4hy42r4LuHmwrrNO_w.png" /></figure><p>Com um MMM bem calibrado, conseguiríamos responder perguntas que antes dependiam de intuição ou testes A/B difíceis ou até impossíveis de serem realizados, por exemplo:</p><ul><li>Qual o impacto incremental e ROI de cada canal (online e offline)?</li><li>Como realocar budget para maximizar uma métrica específica (sessões, pedidos, GMV)?</li><li>Onde está o ponto de saturação de cada canal?</li></ul><p>A solução envolveu duas frentes: construir um modelo que englobasse os desafios da modelagem e torná-lo acessível para toda a empresa.</p><p><strong>1. O Cérebro: Nosso Modelo Bayesiano “Bobyn”</strong></p><p>Construir nossa própria solução em Python, usando bibliotecas como o PyMC, nos deu controle total. Optamos por modelagem Bayesiana, porque ela nos permitiu ir além dos números frios:</p><ol><li>Conhecimento de Especialista no Código: Conseguimos traduzir o conhecimento de negócio em premissas matemáticas (as “prioris” do modelo). Com muitos canais e uma base mais enxuta de dados, priors Bayesianos ajudam a regularizar o modelo incorporando conhecimento de domínio, facilitando o aprendizado. Assim, oferecemos “dicas” para o modelo, por exemplo: anúncios de TV têm mais efeito prolongado que canais digitais.</li><li>Flexibilidade para o Mundo Real: Modelamos efeitos complexos como a saturação (a curva de retornos decrescentes) e o carryover (o impacto residual de uma campanha ao longo do tempo), tornando as previsões muito mais realistas.</li></ol><ul><li>TV tem efeito mais prolongado que search → prior de decay mais suave</li><li>Digital satura mais rápido que OOH → prior de saturação mais agressivo</li><li>Efeitos não podem ser negativos → distribuição LogNormal</li></ul><p>É importante notar que nosso objetivo não é enviesar arbitrariamente — é traduzir conhecimento de marketing em matemática.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/716/1*BRux57i4bTULh3xQBUD8xg.png" /></figure><p><strong>Estrutura simplificada do modelo:</strong></p><p>$$ Y_t = baseline_t + Σ (saturação(adstock(spend_canal_i))) + efeitos_t $$</p><p>onde:</p><ul><li>baseline_t = tendência + sazonalidade + eventos</li><li>adstock = carryover temporal (geometric decay)</li><li>saturação = Hill transform (retornos decrescentes)</li></ul><p><strong>2. O Corpo: A Plataforma de Democratização</strong></p><p><strong>Um modelo brilhante nas mãos de poucos tem impacto limitado. </strong>Por isso, criamos uma plataforma interna que permite que qualquer analista de negócio crie seu próprio MMM de forma simples e rápida, adicionando conhecimento operacionais de forma simples.</p><p><strong>O que a plataforma faz?</strong></p><ul><li>Democratiza o acesso: Qualquer área pode criar, rodar e interpretar modelos sofisticados facilmente, além de configurar prioris de efeito prolongado e saturação.</li><li>Integra o Bobyn: Nosso modelo exclusivo já está integrado, garantindo a qualidade e a consistência das análises.</li><li>Permite simular e otimizar o futuro: Com a ferramenta de otimização e simulação, os times podem responder a perguntas como “o que acontece se…” e tomar decisões mais inteligentes sobre o orçamento.</li><li>Libera nossos Cientistas de Dados: Com a plataforma cuidando da execução, nosso time de DS pode focar no que faz de melhor: evoluir o modelo e atuar como suporte estratégico.</li><li>GenPlat como apoio em insights: Nossa plataforma de LLM traduz e resume os insights, além de responder dúvidas específicas baseadas nos resultados.</li></ul><p><strong>Benefício não-planejado</strong></p><p>A plataforma simplifica a criação de modelos, mas não elimina a necessidade de conhecimento técnico — e isso é proposital. Sempre que um novo time se interessa, buscamos fazer um onboarding completo: explicamos a metodologia, de onde vêm os números e como interpretar intervalos de credibilidade.</p><p>Esse processo virou parte essencial do produto. Percebemos que a confiança nos resultados não vem só da acurácia do modelo, mas de stakeholders entenderem por que o modelo sugere determinada alocação. A plataforma facilita a experimentação, mas o aprendizado técnico continua sendo necessário — e desejado.</p><h3>O Impacto: Da Incerteza à Decisão Estratégica</h3><p>O resultado é uma solução robusta que está se expandindo por toda a empresa, muito além do time de marketing. Tornou-se uma ferramenta estratégica de planejamento.</p><p>Um dos grandes apoiadores do projeto foi o time de Branding, que tem buscado ser cada vez mais Data-Driven para tomar decisões de investimento Historicamente, a área tem altos investimentos em mídia offline, logo a grande dor sempre foi: estamos investindo demais ou de menos? Mais ainda, estamos investindo corretamente?</p><p>Usando o otimizador e o simulador de cenários da nossa plataforma, o time conseguiu ter respostas para essas dúvidas, o que permitiu gerar e testar novas alocações de orçamento entre os canais, sem comprometer um único real do plano.</p><p><strong>O resultado?</strong> Em Setembro, o time conseguiu reduzir o investimento em 2% — um número bem expressivo no absoluto — em alguns canais saturados mantendo o volume total de sessões.</p><h3>O Próximo Capítulo da Mensuração</h3><p>Construir o Bobyn foi desafiador, mas valeu a pena. Ter controle total sobre o modelo significa que podemos iterar rápido, adicionar features customizadas e, principalmente, explicar para stakeholders exatamente de onde vêm as recomendações.</p><p>E este é só o começo. Já estamos explorando os próximas desafios:</p><p><strong>Integração com experimentação</strong></p><p>Estamos calibrando o MMM com resultados de testes de geolift. A ideia é usar a incrementalidade medida via experimentos para sugerir as distribuições priors, criando um ciclo de validação entre metodologias.</p><p>2. <strong>Atribuição digital como input</strong></p><p>Ao longo desses últimos meses, também aprimoramos nossos modelos de atribuição (MTA), assim, o próximo passo é usar as distribuições dos modelos de MTA para informar as priors dos canais digitais no MMM. Essa abordagem é especialmente útil para canais com baixo volume de dados históricos.</p><p><strong>Lições aprendidas:</strong></p><p><strong>Build vs buy não é binário</strong>: Ferramentas como Robyn (Meta) e Meridian (Google) são excelentes e resolvem bem para muitos casos. Mas nosso contexto — múltiplas verticais (food, groceries, pharma), KPIs variados (sessões, pedidos, GMV, ROI), necessidade de iterar rápido — pedia customização profunda.</p><ul><li>A decisão não foi “criar tudo do zero”. Usamos PyMC-Marketing como base e construímos em cima. O ganho real veio da flexibilidade: quando o time de CRM pediu para incluir push notifications como “canal”, ajustamos o modelo em 2 semanas. Com ferramenta terceirizada, isso seria roadmap de trimestre.</li><li><strong>Atenção</strong>: bibliotecas abertas exigem conhecimento sólido de teoria Bayesiana e do código base. Não é “plug and play” — você precisa entender o que está acontecendo sob o capô.</li></ul><p><strong>Interpretação &gt; acurácia</strong>: Stakeholders confiaram no modelo não somente porque ele tinha métricas boas, mas porque entenderam a lógica por trás. A transparência venceu a complexidade.</p><p>É importante investir tanto tempo em visualizações e explicações, quanto em tuning de priors. Os gráficos de contribuição, saturação e simulações interativas geraram mais confiança que um diagnóstico de modelo perfeito.</p><p><strong>Self-service tem limite</strong>: A plataforma acelerou a adoção, mas o onboarding técnico continua essencial. Não queremos criar modelos mal configurados, porque isso gera decisões ruins.</p><p>—</p><p><strong><em>Sobre nós</em></strong></p><p><em>Prazer, nós somos o time de MediaLab no iFood! Nosso trabalho é construir ferramentas de dados que ajudam os times de mídia, branding e CRM a tomarem decisões melhores: do Bobyn (MMM) a agentes LLM para hiper personalização de notificações.</em></p><p><em>Se você trabalha com marketing analytics, experimentação ou modelagem Bayesiana e quer trocar ideias, chama a gente no LinkedIn ou comenta aqui embaixo!</em></p><p>→ Quer fazer parte do time de Tecnologia do iFood? Acesse nossas vagas em <a href="http://carreiras.ifood.com.br/">carreiras.ifood.com.br</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fa68658c14b4" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/repensando-a-mensura%C3%A7%C3%A3o-como-nosso-mmm-propriet%C3%A1rio-aprimorou-nossa-vis%C3%A3o-de-m%C3%ADdia-fa68658c14b4">Repensando a Mensuração: Como nosso MMM Proprietário aprimorou nossa visão de Mídia</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Elasticidade de subsídios: Como determinar a promoção ideal em mercados]]></title>
            <link>https://medium.com/ifood-tech/elasticidade-de-subs%C3%ADdios-como-determinar-a-promo%C3%A7%C3%A3o-ideal-em-mercados-85f979d29309?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/85f979d29309</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[statistics]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Tue, 28 Oct 2025 18:43:22 GMT</pubDate>
            <atom:updated>2025-10-28T19:05:09.973Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9DnO7aOe4a9-iErXIR7SRg.png" /><figcaption><em>Texto escrito em parceria com </em><a href="https://medium.com/u/b5988dc4385"><em>Lucas Cardoso Polak</em></a><em>, Data Scientist Specialist no iFood.</em></figcaption></figure><p>No iFood, os dados direcionam as tomadas de decisões em todas as instâncias e no momento de definir as promoções de um item, não é diferente.</p><p>Você já deve ter se deparado com uma promoção quando abriu o App do Ifood. Esses descontos não são definidos aleatoriamente, eles são pensados para causar o maior engajamento possível e a melhor alocação de recursos, de forma a maximizar a conversão de nossos clientes.</p><p>Nesse artigo exploramos o conceito de elasticidade de preço x demanda e sua aplicação para definição de investimentos do iFood em subsídio de promoções.</p><p>Para os casos de Mercado, Atacado e Farmácia, desenvolvemos um modelo de elasticidade de subsídios que define o ponto ótimo de desconto de cada produto.</p><h4>O que é elasticidade de preços e subsídios</h4><p>Um modelo de <a href="https://en.wikipedia.org/wiki/Price_elasticity_of_demand">elasticidade de preço</a> busca determinar a sensibilidade da demanda de um produto em relação ao seu preço, de forma que é esperado que, quanto menor o preço do produto, maior será sua procura e vice-versa.</p><p>Quando falamos de elasticidade de produto em relação aos subsídios ou promoções, esperamos um comportamento inverso: quanto mais subsidiado (dinheiro aplicado à promoção) estiver um produto, maior será sua demanda, já que o preço será reduzido.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/817/1*k1rFLLJcFuLrVLmoSFBoZw.png" /></figure><p>O gráfico acima demonstra uma relação teórica de elasticidade de demanda ao preço para um produto elástico. Quando o preço do produto é de 4 unidades monetárias, 60 unidades do produto são demandadas, já quando o preço é de 8 unidades monetárias, somente 20 unidades do produto são demandadas.</p><p>Em geral, a elasticidade da demanda em relação ao preço não é constante e nem linear ao longo do tempo e da variação de preço, contudo é possível fazer boas aproximações lineares dessa medida.</p><p>Outro ponto a se destacar é que nem todo produto apresentará uma variação de sua demanda conforme os preços se alteram: Esses são os chamados produtos inelásticos.</p><p>No iFood adotamos a notação elasticidade do <a href="https://en.wikipedia.org/wiki/Gross_merchandise_volume">Gross Merchandise Value (GMV)</a> em relação ao subsídio, com uma relação teórica apresentada no gráfico abaixo:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/737/1*EPEsGLFS_6hjItH6N6LHIA.png" /></figure><p>Nesse gráfico notamos que, conforme o subsídio de um produto aumenta, maior é o seu GMV, ou seja, mais desse produto é vendido. Contudo, essa relação não é linear e atinge um platô após um dado valor. Isso ocorre porque, independentemente do subsídio, a demanda pelo produto não aumenta. Isso pode acontecer porque os clientes deixam de identificar uma diferença no valor do produto, porque o mercado já está saturado ou ainda devido a algum outro fator latente.</p><h3>Métodos comuns para cálculo de elasticidade</h3><p>Existem muitos métodos conhecidos para cálculo da elasticidade.</p><h3>Elasticidade entre dois pontos:</h3><p>Um método muito comum utilizado na econometria é o da elasticidade entre 2 pontos, calculado pela variação percentual da demanda dividido pelas variação percentual do preço:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/694/1*c15dMOTWUxIT5McaQD7AHg.png" /></figure><p>Esse método apesar de simples e útil apresenta um problema de simetria, pois uma variação de mesmo módulo apresenta elasticidades diferentes se for positiva ou negativa conforme exemplificado abaixo:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*m5jqOnc5jKaHOEEqAsYUaw.png" /></figure><p>Ao calcular a elasticidade do ponto A para o ponto B e do ponto B para o ponto A, obtemos os seguintes valores:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YiodZXSwcFaIDnfZOqNbug.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LZE3N5CpYwT53l8KeAgb4Q.png" /></figure><p>Note que a mesma variação de preço e demanda apresenta elasticidades diferentes a depender da direção em que calculamos essa grandeza.</p><h3>Elasticidade do ponto médio</h3><p>Esse método é muito similar a elasticidade entre dois pontos, porém resolve o problema da assimetria ao realizar a divisão de cada medida pelo seu ponto médio:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/754/1*4F-cCx1SIpfzDPeO3qI4wA.png" /></figure><p>Nessa equação Q1 e Q2 são as quantidades vendidas pelos preços P1 e P2 respectivamente.</p><h3>Outros métodos possíveis</h3><p>Existem diversos outros métodos que podem ser aplicados para se calcular a elasticidade da demanda em relação ao preço do produto:</p><ul><li>Regressão Log-Log (A depender a distribuição da demanda vs preço)</li><li>Métodos de ensemble (Trabalham bem com o problema de multicolinearidade)</li><li>Métodos de Machine Learning (Robustos, porém requerem muitos dados)</li></ul><h3>Cuidados a serem tomados</h3><p>Apesar de ser relativamente simples de se medir a elasticidade de um produto, devemos observar algumas premissas para não incorrer em erros de medição e interpretação. Por exemplo, um produto pode apresentar variações sazonais em sua demanda: Um sorvete tende a ser muito mais demandado em dias quentes mesmo que seu preço seja superior ao apresentado em dias frios.</p><p>Outro ponto importante é a geografia: Em um país de dimensões continentais como o Brasil, podemos observar preferências por um dado produto em uma região que não se refletem em outra. Essa diferença regional pode nos levar à uma medida pouco significativa da elasticidade geral do produto, quando poderíamos ser mais assertivos ao regionalizar a análise.</p><p>O crescimento orgânico de um produto também deve ser levado em consideração. Muitas vezes a variação da demanda do produto não se deve diretamente à variação do preço, mas a popularidade que o produto vem ganhando ou até mesmo pelo aumento orgânico de clientes em nosso APP.</p><h3>Método adotado pelo iFood</h3><p>Uma forma de mitigar os problemas relatados na sessão anterior é realizar um teste A/B controlado, em que é possível garantir a medição de demanda e preço sob as mesmas condições sem interferências sazonais, submetendo nossos usuários às mesmas condições. Entretanto, além de ser um processo mais caro e demorado, nem sempre existem condições para a realização de um teste A/B. Neste caso, lançamos mão de técnicas de análises sobre dados históricos</p><h3>Premissas adotadas para a modelagem</h3><p>Antes de modelar a elasticidade de subsídios com base em dados históricos, precisamos definir algumas premissas:</p><ol><li>Os resultados da elasticidade deveriam ser facilmente interpretáveis pelas áreas de negócio, de forma que um score não seria suficiente.</li><li>O iFood atua com mercados, farmácias, atacadistas, restaurantes, … e vários desses segmentos vendem o mesmo produto, contudo suas demandas e consequentemente sua elasticidade é diferente.</li><li>Dados históricos podem sofrer alteração de preço e demanda por sazonalidade de produtos, inflação de preços, estratégias de venda de fornecedores e diversos outros fatores não controláveis. Isso posto, deveríamos buscar mitigar a maioria desses problemas em nossa modelagem.</li></ol><p>Com base nas premissas apresentadas, nas análises dos dados notou-se que a utilização de um modelo multinível de regressão linear por partes seria adequado para responder às demandas de negócio.</p><p>Ao utilizar o coeficiente angular da reta ou o 𝛃 da variável de subsídio como indicativo da elasticidade do produto, obtemos uma interpretabilidade do tipo: Para cada X reais investidos em subsídios, obtemos um retorno de Y reais em GMV.</p><p>Para os níveis da regressão utilizamos uma divisão do que chamamos de agressividade (percentual de desconto aplicado sobre os produtos). Na imagem abaixo podemos verificar como isso impacta as predições. A esquerda temos o dado de GMV vs Subsídio investido sem a separação do dado por níveis apresentando uma dispersão e uma heteroscedasticidade muito proeminente. Já na imagem da direita temos o mesmo dado separado em cores por níveis de agressividade de desconto. Isso já reduz muito a dispersão do dado dentro de um mesmo nível, porém em alguns casos ainda mantém a heterocedasticidade quando observamos o GMV apenas em relação.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1023/1*0a9w97bTiKYnPK9i4uOaqg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1023/1*KLp0mIuoxIdKfos6bFyoGg.png" /></figure><p>Para reduzir o efeito de heterocedasticidade além dos efeitos sazonais, adicionamos outras variáveis de controle do GMV à regressão, tais como crescimento orgânico do produto, crescimento orgânico de usuários da plataforma, entre outras.</p><p>Para reduzir o efeito inflacionário dos preços ao longo do tempo, utilizamos a propriedade de igualdade da equação linear para regredir a quantidade de unidades do item vendido pelo subsídio para depois retornar a equação para GMV, que era nossa variável de interesse.</p><p><em>quantidade vendida = 𝛽*[matriz de feature]</em></p><p><em>preço atual do item*quantidade vendida =preço atual do item* 𝛽*[matriz de feature]</em></p><p>Ao multiplicar ambos os lados da igualdade preço do item, ainda é possível manter a interpretabilidade dos 𝛃s da equação, que nesse caso é o fator de interesse para a elasticidade.</p><h3>Resultados</h3><p>Para validar os os resultados obtidos por essa modelagem, realizamos testes controlados atribuindo os descontos sugeridos pelo modelo à alguns produtos e avaliando seu comportamento. Esses produtos foram divididos em 2 grupos:</p><ol><li>Produtos que estavam com promoções muito agressivas, porém o modelo não indicava elasticidade significativa. Para esses itens, removemos a promoção com a expectativa de que não houvesse queda no consumo.</li><li>Produtos sem promoção ou com pouca agressividade que o modelo indicava como altamente elásticos. Para esses produtos, aplicamos a promoção sugerida pelo modelo com a expectativa de que houvesse aumento no consumo dos produtos na ordem indicada pelo modelo.</li></ol><p>Para o grupo 1, em que as promoções foram removidas, notamos uma leve variação dentro da margem de erro esperada, de forma que mesmo sem as promoções, pudemos considerar os produtos como inelásticos, sem variação significativa no consumo dos itens.</p><p>Para os produtos do grupo 2 tivemos um significativo aumento do consumo, com cerca de 26% de aumento de GMV e 45% de aumento no número de pedidos. Esse aumento veio acompanhado de um leve aumento no custo da operação, dado que mais subsídios eram destinados à esses produtos, porém esse aumento do custo foi ínfimo frente ao aumento de GMV.</p><p>Dessa forma pudemos comprovar que a modelagem escolhida, além de possuir interpretação simplificada, gerou resultados positivos e significativos no consumo dos produtos, permitindo que o iFood direcione melhor seus recursos.</p><h3>Oportunidades de melhoria</h3><p>Uma oportunidade de melhoria que deve ser observada é o tratamento de hidden feedback loops: Ao sugerir descontos em itens específicos, direcionamos mais recursos para eles. Isso reforça o comportamento de compra e retroalimenta o modelo de elasticidade, gerando maior confiança nas previsões e aumento na alocação de recursos… Levando à um comportamento de loop em que passamos a operar somente sobre um grupo fechado de itens e perdemos oportunidades em outros.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=85f979d29309" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/elasticidade-de-subs%C3%ADdios-como-determinar-a-promo%C3%A7%C3%A3o-ideal-em-mercados-85f979d29309">Elasticidade de subsídios: Como determinar a promoção ideal em mercados</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[De ideias a impacto: o Jeito iFood de fazer Produto & Design]]></title>
            <link>https://medium.com/ifood-tech/de-ideias-a-impacto-o-jeito-ifood-de-fazer-produto-design-96d28e7f4fde?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/96d28e7f4fde</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Wed, 08 Oct 2025 19:25:10 GMT</pubDate>
            <atom:updated>2025-10-08T19:25:06.835Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yHx_j1TN-pYa9E_c9zBrjA.png" /></figure><p>por <a href="https://www.linkedin.com/in/franciscaisabel/">Bel Araújo</a>, Diretora de Produto &amp; Design no iFood</p><p>Sonhar grande sempre foi parte da nossa essência. Mas no iFood, sonho e entrega caminham juntos. Nosso desafio é transformar ideias em impacto real, equilibrando visão, dados, design e execução. É assim que criamos produtos que resolvem problemas de verdade e experiências que fazem sentido para milhões de pessoas.</p><p>O nosso jeito de fazer Produto e Design é o reflexo de uma cultura que acredita que inovação nasce da prática. A gente mira no futuro, mas começa com entregas reais e mensuráveis. Somos curiosos, mas também práticos. Sabemos que excelência não é uma meta distante, é o ponto de partida.</p><p>Esses princípios nos inspiram todos os dias e traduzem como criamos, colaboramos e evoluímos. Eles representam uma forma de pensar que une propósito e entrega, estratégia e empatia, resultado e aprendizado contínuo.</p><h3>Produto com alma de negócio</h3><p>Fazer produto com alma de negócio é criar soluções que geram resultado e sustentabilidade sem perder de vista o usuário final. Negócio e experiência andam juntos, e um não prospera sem o outro. Por isso, antes de cada entrega, nos perguntamos qual valor real estamos oferecendo para quem usa e para o negócio que sustentamos.</p><p>Sonhar grande e começar pequeno é uma das nossas formas de garantir impacto. Validamos hipóteses, aprendemos com dados e ajustamos o caminho sem medo de mudar. Decisões aqui não se baseiam em achismos, mas em fatos. É assim que conseguimos evoluir rápido e com consistência.</p><p>Fazer produto também é ir além da tela. Mergulhamos no contexto do usuário, testamos, ouvimos e iteramos. Acompanhamos de perto o impacto das soluções que criamos e ajustamos o percurso sempre que necessário.</p><p>E, claro, construímos pontes. Entre áreas, tecnologias e pessoas. Entendemos o ecossistema em que atuamos e conectamos quem precisa estar junto para fazer as coisas acontecerem. Acreditamos que boas ideias ganham força quando ultrapassam fronteiras e são compartilhadas.</p><p>Por fim, fazemos produto com alma de negócio porque sabemos que performance e propósito caminham juntos. Sabemos qual ponteiro mover, o que eliminar e onde colocar energia. O foco é gerar impacto real e levar o iFood sempre mais longe.</p><h3>Design como ponte entre emoção e resultado</h3><p>No iFood, design é verbo. É ação, empatia e estratégia. Não é sobre interface, é sobre entendimento. Cada projeto começa unindo forma e função, emoção e lógica, para criar experiências que inspiram confiança e refletem quem somos.</p><p>Nosso olhar é humano, mas também analítico. Não aceitamos suposições automáticas. Questionamos, investigamos e tomamos decisões com base em dados, conectando o olhar empático do design com métodos quantitativos e qualitativos. Traduzimos números em oportunidades reais.</p><p>Design também é sobre vivência. A gente se coloca no lugar das pessoas, entende suas rotinas, emoções e desafios. Buscamos reduzir atritos e projetar soluções que simplifiquem o cotidiano. Por isso, equilibramos descoberta e entrega, acompanhando o resultado após cada implementação. O trabalho não termina no <em>handoff</em>, ele continua com o aprendizado que vem do uso.</p><p>Com uma visão sistêmica da experiência, desenhamos jornadas que consideram impacto em todas as áreas. Rompemos silos, integramos times e impulsionamos discussões estratégicas. Design não se constrói sozinho, ele é coletivo.</p><p>E mais do que isso: entendemos a língua do negócio. Sabemos quais métricas importam, comunicamos decisões com clareza e traduzimos necessidades de usuários em ações que movem resultados. Design é uma ponte entre pessoas, tecnologia e estratégia.</p><h3>Um só jeito de criar impacto</h3><p>O Jeito iFood de fazer Produto e Design é o equilíbrio entre sonho e execução, empatia e dados, propósito e entrega. É a união de mentes criativas e analíticas trabalhando juntas, com autonomia, colaboração e coragem para testar, errar, aprender e acertar mais rápido.</p><p>Essa forma de trabalhar é o que nos trouxe até aqui. Recentemente, fomos reconhecidos pela PM3, principal escola de Produto Digital da América Latina, pelo segundo ano consecutivo como uma das empresas mais admiradas em Tecnologia e Produto no Brasil. Esse reconhecimento reforça o que vivemos todos os dias: excelência não é um destino, é um hábito. É resultado de um time que conecta estratégia, design e tecnologia para gerar valor real.</p><p>O que fazemos vai muito além de telas, fluxos e jornadas. É sobre entender pessoas, contextos e comportamentos. É sobre transformar ideias em soluções que facilitam a vida, impulsionam negócios e moldam o presente e se tornam referência em construir futuros.</p><p>No iFood, essa é a nossa entrega. E ela nunca para no delivery.</p><p>→ Quer trabalhar com Produto &amp; Design no iFood? Acesse nossas vagas em <a href="http://carreiras.ifood.com.br/">carreiras.ifood.com.br</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=96d28e7f4fde" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/de-ideias-a-impacto-o-jeito-ifood-de-fazer-produto-design-96d28e7f4fde">De ideias a impacto: o Jeito iFood de fazer Produto &amp; Design</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[IA do iFood: os bastidores da construção do produto]]></title>
            <link>https://medium.com/ifood-tech/ia-do-ifood-os-bastidores-da-constru%C3%A7%C3%A3o-do-produto-a35478a01f1f?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/a35478a01f1f</guid>
            <category><![CDATA[inovação]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[product-management]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Fri, 19 Sep 2025 15:25:24 GMT</pubDate>
            <atom:updated>2025-09-19T20:54:53.035Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yf8hPhIsvsgD2-1xvQR_Jg.png" /></figure><p><em>Texto escrito em parceria com a </em><a href="https://medium.com/u/38e401a900be"><em>Isabella Piratininga</em></a><em>, Diretora de Tecnologia e Inovação, e </em><a href="https://medium.com/u/3eadeb45e33b"><em>Valéria Romano</em></a><em>, Gerente Sênior de Produto &amp; Design.</em></p><h3><strong>Construindo a partir do desconhecido</strong></h3><p>Quando Eric Ries escreveu “The Lean Startup”, ele nos ensinou que “o único jeito de vencer, é aprender mais rápido que qualquer outra pessoa”. Nossa jornada construindo o Assistente de IA do iFood é a personificação viva desse princípio. Em um mundo onde até o Vale do Silício ainda tateia no escuro tentando entender como integrar LLMs* ao cotidiano das pessoas, decidimos abraçar a incerteza como nossa maior aliada.</p><blockquote>*LLM large language model, é como conversar com alguém que já leu praticamente toda a biblioteca do mundo e consegue improvisar respostas novas a partir desse conhecimento.</blockquote><h3><strong>O Ciclo Construir-Medir-Aprender em Velocidade Máxima</strong></h3><p>Nossa história começou antes mesmo do ChatGPT existir, éramos como exploradores em uma mata completamente fechada. Começamos com um bot simples de árvore de decisão no WhatsApp, permitindo pedidos em restaurantes específicos. Era nossa primeira hipótese, nosso primeiro MVP.</p><p>Resultado? Pivotamos.</p><p>Como Clayton Christensen descreve em “O Dilema da Inovação”, tecnologias verdadeiramente disruptivas começam simples, quase primitivas. Nosso segundo experimento focou em recomendações básicas de restaurantes e pratos. A IA ainda engatinhava e a qualidade não estava onde queríamos.</p><p><strong>Hoje, após menos de 3 meses de desenvolvimento intensivo (mesmo), temos um assistente que entende contextos complexos através de um linguagem natural.</strong> Você pode mandar um áudio de 5 minutos contando sobre seu dia cansativo, digitar apenas “Oi”, ou descrever detalhadamente suas restrições alimentares, que ele vai te guiar naturalmente até encontrar exatamente o que você precisa, economizando tempo e dinheiro.</p><p>E mesmo após as pivotadas, ainda podemos melhorar, e isso é perfeitamente normal. Cada dia é uma nova iteração, um novo aprendizado, uma nova versão melhor que a anterior.</p><h3>Sobre a importância de falhar: Nossa “Moment of Truth”</h3><p><strong>🍔O hamburguer das 5 da manhã</strong></p><p>Às 5h da manhã, horário de Brasília, nosso time de desenvolvimento estava em plantão acompanhando uma demonstração crucial para investidores internacionais. O plano era elegante em sua simplicidade: mostrar recomendações personalizadas a partir de uma única palavra-chave, usada como busca pelo nosso VP de AI.</p><p>A realidade tinha outros planos.</p><p>No palco europeu, onde já era quase meio-dia, nosso usuário pediu um hambúrguer. Fazia todo sentido para ele,mas naquele horário no Brasil, só existia uma única hamburgueria aberta no endereço que ele estava buscando, como em um momento anterior a apresentação o apresentador já havia executado uma busca o agente entendeu que ele não havia gostado do único hambúrguer disponível na região e foi tentar executar uma nova pesquisa e aí, por um pequeno erro de classificação de taxonomia em nosso catálogo, o agente apresentou um COOKIE. O agente não achou oferta, ele é não determinístico e isso fez com que a todo custo ele procurasse uma solução e neste momento, não entregamos o melhor — ao vivo e erramos!</p><p>Este momento, transmitido ao vivo, foi nosso “<strong>Eat Your Own Dog Food</strong>” mais valioso.</p><p>Como Steve Blank ensina, “saia do prédio”, ou no nosso caso, saia da sua bolha de desenvolvimento. Esse erro público nos forçou a abraçar verdadeiramente nosso mantra interno: “Eat Your Own Dog Food” — use obsessivamente seu próprio produto em todas as situações imagináveis.</p><h3><strong>A Redenção no Palco</strong></h3><p>Semanas depois, no maior evento de restaurantes da América Latina, tivemos nossa chance de redenção. Nosso CEO, rejeitando qualquer roteiro, testou o assistente ao vivo com perguntas não ensaiadas:</p><ul><li>“O que você sabe sobre mim?”</li><li>“Me recomende algo para agora”</li><li>“Tem guardanapo?”</li></ul><p>A resposta sobre guardanapos nos surpreendeu: <em>“Normalmente os restaurantes que entregam pelo iFood já incluem guardanapos no pedido, mas isso pode variar dependendo do estabelecimento.”</em></p><p>Nunca havíamos treinado especificamente para isso. Foi a validação de que estávamos criando algo genuinamente inteligente, não apenas um sistema de respostas programadas. <strong>A inovação disruptiva havia encontrado seu product-market fit inicial.</strong></p><figure><img alt="Nosso CEO apresentando o produto no palco." src="https://cdn-images-1.medium.com/max/303/1*4Z6jjJ-tUq-Ivg-G5Zc7UA.jpeg" /><figcaption>Nosso CEO apresentando o produto no palco.</figcaption></figure><h3>Do Zero aos Primeiros Usuários: A Importância dos Early Adopters</h3><p>Geoffrey Moore, em “Crossing the Chasm”, nos ensina sobre a importância dos early adopters. <strong>Saímos de zero para para um incremento de 40% na nova experiência vs a busca padrão do app</strong>, seguindo religiosamente o princípio de co-criação com usuários reais..</p><p>Como garantir que o produto está certo? que ele está fazendo sentido? que as respostas que podem variar individualmente são relevantes?</p><p>Foi com essas dúvidas que voltamos ao básico da construção de produto:<strong> estar sempre em contato com o usuário.</strong></p><p>Criamos grupos no WhatsApp com amigos próximos, pessoas da comunidade iFood (inclusive se você quer participar de grupos como esse, venha ser parte da nossa comunidade <a href="https://ifoodcliente.com/46qK3dz">se inscreve aqui</a>). Esse grupo nos ajudou a mapear problemas da experiência, avaliar recomendações, encontrar bugs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z7rmodJS2jWzL6mbwY_htg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1002/1*BIY1Z-wLHyVepjb6TZpttg.png" /></figure><p><strong>O aprendizado crucial?</strong> Deveríamos ter feito isso desde o dia zero, mesmo sem produto. Quando finalmente implementamos, os insights coletados reformularam 100% da arquitetura do nosso produto.</p><p>Como Ries enfatiza:<strong> “Se você não está envergonhado da primeira versão do seu produto, você demorou demais para lançar.”</strong></p><h3>O que aprendemos até aqui:</h3><h4><strong>1. O contexto é Rei</strong></h4><p>Não basta recomendar, é preciso entender o momento, o horário, o humor, a história. Um hambúrguer às 5h pode ser jantar para alguém que trabalhou a noite toda ou café da manhã de alguém que chegou da balada :)</p><p>Como já defendem Erika Hall e Cathy Pearl, duas das principais referências em design conversacional, projetar agentes não é só “escrever respostas”: é pensar em tom, contexto, recuperação de falhas e expectativas realistas.</p><h4><strong>2. Velocidade de Iteração Como Vantagem Competitiva</strong></h4><p>Cada erro vira ajuste em horas, não semanas. Esta é nossa vantagem disruptiva, enquanto grandes corporações demoram meses para aprovar mudanças, nós iteramos diariamente.</p><h4><strong>3. Confiança Através da Transparência</strong></h4><p>O usuário precisa sentir que o assistente é um aliado confiável, não uma caixa preta misteriosa. Transparência gera confiança, confiança gera adoção. E mais importante, que o pode de decisão assim como a sua autonomia final, não é substituída pelo agente sem a sua permissão.</p><h4><strong>4. Tecnologia é Apenas 50% da Equação</strong></h4><p>A outra metade é a experiência humana: simples, natural, disponível. Como Jobs dizia, “tecnologia sozinha não é suficiente — é tecnologia casada com humanidade, que nos traz resultados que fazem nosso emocional se conectar com o produto.</p><h3>O Paradoxo da IA: Nunca Está Pronto, Sempre Está Evoluindo</h3><p>Aqui está nossa maior epifania, alinhada com os princípios do Lean Startup: não existe produto de IA “pronto”. Existe uma relação em constante evolução com quem usa.</p><p>Cada conversa é um dado, cada interação é um aprendizado, cada dia o produto é diferente de ontem. É o ultimate continuous deployment — não apenas de código, mas de inteligência.</p><h3>O Futuro é Colaborativo</h3><p>Clayton Christensen nos ensinou que inovações disruptivas começam servindo mercados negligenciados ou criando mercados totalmente novos. Nosso assistente não compete com o app tradicional do iFood — ele cria uma nova categoria de interação, uma nova forma de pensar sobre pedir comida.</p><h4>E esse produto, cadê?</h4><p>O produto está em constante evolução, mas você pode começar a testar agora a versão no nosso WhatsApp, <a href="https://ifoodwhatsapp.onelink.me/PUlD/Ailo"><strong>clique aqui e teste agora!</strong></a></p><p>E seguindo a nossa cultura de colaboração e testes, manda pra gente <a href="https://docs.google.com/forms/d/1EntiEYkRFmxSbF9CCN-W2v6T6bG9iu3P2x78tcie64w/preview"><strong>aqui nesse forms</strong></a> se você encontrar algum problema, proposta de melhoria, ou algo que gostou na experiência.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*L-47AkMni5ZDzG7VYqxcxw.png" /><figcaption>Esse é o nosso convite especial para testar Ailo.</figcaption></figure><h3>A Jornada Continua</h3><p>Como Eric Ries nos lembra: “O sucesso não é entregar um recurso; sucesso é aprender como resolver o problema do cliente.”</p><p>Estamos apenas no início. Cada pivô nos aproximou mais da verdadeira necessidade dos usuários. Cada erro público nos tornou mais resilientes. Cada feedback nos tornou mais resilientes em nosso propósito.</p><p>A verdadeira disrupção não está na tecnologia em si, mas em como ela se entrelaça naturalmente no cotidiano das pessoas, tornando o complexo simples, o demorado instantâneo, o caro acessível.</p><p><strong>E você, o que gostaria de ver nos próximos capítulos dessa jornada?</strong></p><p><em>“The biggest risk is not taking any risk.”</em> — Peter Thiel</p><p>E no nosso caso: “O maior risco é não ouvir quem usa.”</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a35478a01f1f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/ia-do-ifood-os-bastidores-da-constru%C3%A7%C3%A3o-do-produto-a35478a01f1f">IA do iFood: os bastidores da construção do produto</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI Agents no iFood: o que são, por que importam e como estamos aprendendo na prática?]]></title>
            <link>https://medium.com/ifood-tech/ai-agents-no-ifood-o-que-s%C3%A3o-por-que-importam-e-como-estamos-aprendendo-na-pr%C3%A1tica-7d497c21c413?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/7d497c21c413</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[EB Team]]></dc:creator>
            <pubDate>Fri, 19 Sep 2025 14:46:00 GMT</pubDate>
            <atom:updated>2025-09-19T14:45:44.129Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2_n3uGolELrKefIQt6tftg.png" /></figure><p><em>Texto escrito em parceria com a </em><a href="https://medium.com/u/38e401a900be"><em>Isabella Piratininga</em></a><em>, Diretora de Tecnologia e Inovação, e </em><a href="https://medium.com/@romanux"><em>Valéria Romano</em></a><em>, Gerente Sênior de Produto &amp; Design</em>.</p><p>“Fazer um pedido no iFood deveria ser como conversar com alguém que realmente entende o que você quer, tornando cada pedido pessoal e descomplicado.”</p><p>Foi com esse princípio que começamos a construir nosso <strong>agente de IA</strong>, uma experiência capaz de entender o contexto do usuário, raciocinar em várias etapas, agir em sistemas internos e entregar o resultado certo, no momento certo, sem você precisar se preocupar com o “como”.</p><p>Mas antes de abrirmos os bastidores, vale alinhar alguns conceitos importantes e explicar o que é um agente.</p><h4>Agente de IA ≠ Chatbot</h4><p>No nosso time isso é quase regra de convivência: quando alguém solta “bot”, sempre rola uma bronca (amistosa 😅). E há bons motivos:</p><p><strong>Chatbots tradicionais</strong> são reativos: recebem uma pergunta, buscam em uma árvore de respostas e devolvem algo pronto.</p><p><strong>Agentes de IA</strong> são proativos: recebem um objetivo, planejam, testam, aprendem e iteram sozinhos até atingir o resultado. É como trocar um FAQ engessado por um estagiário dedicado que:</p><ol><li><strong>Entende a tarefa</strong></li><li><strong>Formula um plano</strong></li><li><strong>Busca os dados certos</strong></li><li><strong>Age, avalia, ajusta</strong></li><li><strong>Entrega a melhor solução</strong></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*x_gRHiqgMmsSw7wZ84aX5w.png" /></figure><h4>Por que isso é relevante agora?</h4><p><strong>🚀 Explosão de uso</strong> — Empresas como Microsoft, Meta e Amazon citam agentes em praticamente toda apresentação estratégica.</p><p><strong>📊 Resultados concretos</strong> — H&amp;M viu +25 % de conversão; Bank of America ultrapassou 1 bi de interações com “Erica”; fabricantes como Toyota poupam milhares de horas/ano em otimizações de linha.</p><p><strong>✅ Mudança de paradigma</strong> — De interfaces click-by-click para experiências orientadas a objetivos (Goal-oriented UX).</p><h4>O elefante na sala: confiança</h4><p>Agora vem a parte mais interessante (e desafiadora): <strong>por que essa revolução ainda não chegou em todo lugar?</strong></p><p>A resposta é simples: <strong>confiança</strong>.</p><p>Pense comigo: você delegaria uma decisão financeira importante para um sistema sem nenhuma revisão? Ainda existe (e é natural!) uma hesitação em entregar decisões críticas para agentes autônomos.</p><p>Na prática, a maioria das empresas (incluindo a nossa) ainda trabalha com <strong>dupla checagem</strong>: o agente executa, humanos validam o resultado — que no nosso cenário por ser próprio usuário — e, com o tempo, a confiança cresce. Porque ao invés de passar pelo paradoxo da escolha, o usuário recebe em segundos opções que lhe agradam, por exemplo, um vegetariano não precisa passar por um monte de pratos de carne até achar as opções que se adequam a sua dieta. É como aprender a dirigir com alguém experiente ao lado, até estar pronto para ir sozinho.</p><p>Adotar agentes não é só uma decisão tecnológica. É uma <strong>jornada de maturidade organizacional</strong> que envolve mudança de mentalidade, governança robusta, integração com sistemas legados e cultura de experimentação.</p><h4>Como a gente faz no iFood (não é magia, é processo)</h4><ol><li><strong>Times cross-funcionais na mesma sala virtual pois estamos remotos </strong><br>Design, engenharia, dados e produto sentam juntos quase que diariamente, para discutir experiência e arquitetura usando a mesma linguagem. Essa proximidade encurta ciclos de decisão, evita ruídos e permite que ajustes sejam feitos na hora, enquanto a ideia ainda está quente.</li><li><strong>Hipóteses claras, métricas objetivas</strong><br>Nada de testar “por testar”. Cada sprint começa com uma pergunta simples: <em>o que queremos aprender?</em> Definimos hipóteses específicas, JTBD claros e métricas enxutas para medir se o comportamento do agente está evoluindo.</li><li><strong>Testes com usuários reais</strong><br>Antes de lançar para todo mundo, colocamos o agente nas mãos de grupos-piloto no que enviam feedbacks quase que em tempo real através de grupos de WhatsApp. O retorno chega de forma transparente , com mensagens, áudios, prints — e tudo é registrado no nosso Jira, para ser discutido e priorizado.</li><li><strong>Aprendizado contínuo</strong><br>Cada conversa que não sai como esperado é tratada como um estudo de caso. Investigamos por que falhou: foi o prompt? o fluxo? faltou dado? A partir disso, ajustamos e colocamos novamente para rodar, fechando um ciclo constante de evolução.</li></ol><h4>E agora?</h4><p>Este artigo inaugura nossa série sobre como estamos revolucionando a forma como você pede no iFood com agentes de IA. Vamos trazer de tudo um pouco: aprendizados, frameworks, bastidores e evoluções do nosso produto.</p><p>E já que essa é uma jornada colaborativa, conta aí nos comentários: o que você gostaria de ver nos próximos capítulos?</p><p>👀 ah, um spoiler do que vem pela frente…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZIDm8Lf9yB_8CsyvU1MtdA.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7d497c21c413" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/ai-agents-no-ifood-o-que-s%C3%A3o-por-que-importam-e-como-estamos-aprendendo-na-pr%C3%A1tica-7d497c21c413">AI Agents no iFood: o que são, por que importam e como estamos aprendendo na prática?</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Como o iFood conseguiu identificar tabelas duplicadas no Data Lake?]]></title>
            <link>https://medium.com/ifood-tech/como-o-ifood-conseguiu-identificar-tabelas-duplicadas-no-data-lake-a5151d43f338?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/a5151d43f338</guid>
            <category><![CDATA[databricks]]></category>
            <category><![CDATA[optimization]]></category>
            <category><![CDATA[storage]]></category>
            <category><![CDATA[data-lake]]></category>
            <category><![CDATA[data-engineering]]></category>
            <dc:creator><![CDATA[Daniel Ozeas De Oliveira]]></dc:creator>
            <pubDate>Thu, 31 Jul 2025 20:34:23 GMT</pubDate>
            <atom:updated>2025-07-31T20:34:26.520Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Texto escrito em parceria com </em><a href="https://medium.com/u/1687e56e58d7"><em>Rafael Mattos</em></a><em>, engenheiro de dados &amp; IA no iFood.</em></p><figure><img alt="Oi" src="https://cdn-images-1.medium.com/max/1024/1*ecYvJJJLEzWh7s61oyROAA.png" /></figure><p>O iFood se destaca como uma organização <em>data-driven</em>, onde os desenvolvimentos de produtos e as tomadas de decisões estratégicas são fundamentadas em dados. Para sustentar esse padrão de excelência, é essencial proporcionar aos engenheiros, analistas e cientistas a autonomia necessária para criar e gerenciar suas próprias soluções, promovendo assim uma cultura de inovação e autogestão analítica.</p><p>Com esta liberdade, surgem desafios interessantes como o de lidar com a produção e gestão de <strong>dados redundantes</strong>. Sem um monitoramento eficaz das tabelas do Data Lake (DL), este problema pode resultar em custos desnecessários de processamento e armazenamento, além de aumentar a complexidade do parque de dados.</p><p>Na tentativa de identificar e mitigar estas ineficiências, buscamos na literatura algumas possibilidades e acabamos adotando e adaptando o algoritmo proposto por Raunak Shah <em>et al.</em> no artigo “<a href="https://dl.acm.org/doi/10.1145/3626762"><em>R2D2: Reducing Redundancy and Duplication in Data Lakes</em></a>”. O trabalho traz uma abordagem inovadora e principalmente barata, do ponto de vista computacional, a qual constrói e refina grafos relacionais entre datasets para identificar tabelas com dados potencialmente redundantes, destacando oportunidades de ganho e simplificação do ambiente de dados corporativo.</p><h3>Qual foi o ponto de partida?</h3><p>O algoritmo original é composto pelo encadeamento de três etapas capazes de entregar, como produto final, um mapa de relações entre pares de tabelas cujos dados são potencialmente duplicados. A cada etapa aplicada, seu resultado serve de insumo para a próxima, a qual refina e entrega um conjunto de pares de tabelas mais assertivo que aquele obtido pela etapa anterior. Resumidamente, as etapas são:</p><p><strong>➢ Etapa “<em>Schema Graph Builder</em> (SGB)” </strong>— Este componente basicamente compara <em>schemas</em> entre tabelas colunares e determina quais são aqueles coincidentes ou que possuem alguma relação de contenção. Por exemplo, se uma tabela <em>A</em> possui todas as colunas da tabela <em>B</em>, isto pode indicar que <em>A</em> contém potencialmente todos os dados de <em>B</em>, tornando <em>B</em> uma fonte de informações duplicadas (portanto, sem necessidade de existência). E estas relações são representadas em forma de grafo.</p><p>O SGB utiliza uma abordagem inteligente de <em>clustering</em> para evitar comparações custosas O(N²) entre todas as tabelas. O algoritmo funciona da seguinte forma:</p><p><strong>1. Ordenação</strong>: As tabelas são ordenadas por cardinalidade de <em>schema</em> (número de colunas) em ordem decrescente;</p><p><strong>2. Formação de clusters</strong>: Percorre-se a lista ordenada e, para cada <em>schema</em>:</p><ul><li>Se não está contido em nenhum cluster existente → torna-se um <strong>novo centro de cluster;</strong></li><li>Se está contido em algum cluster → é adicionado como <strong>membro</strong> deste cluster;</li></ul><p><strong>3.</strong> <strong>Construção do grafo</strong>: Dentro de cada cluster, são criadas arestas direcionadas entre pares de tabelas onde existe contenção real, sempre apontando da tabela maior para a menor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KvB6sYp77PstAe6d" /></figure><p>Esta estratégia garante que <strong>nenhuma relação de contenção seja perdida</strong>, enquanto mantém a complexidade computacional em O(N log N) + O(K(N-K)), onde K é o número de clusters formados — muito mais eficiente que a abordagem de comparar todas as tabelas entre si.</p><p><strong>➢ Etapa “<em>Min-Max Pruning</em> (MMP)”</strong> — Após a criação do grafo, remove-se algumas conexões (filtragem) com base nos valores mínimos e máximos entre colunas comuns do tipo numéricas. O princípio aplicado é que, se um conjunto de dados <em>A</em> está contido em <em>B</em>, para todas as colunas comuns numéricas, então:</p><p>1. O valor mínimo na coluna de <em>A</em> deve ser maior ou igual ao valor mínimo na coluna de <em>B</em>.</p><p>2. O valor máximo na coluna de <em>A</em> deve ser menor ou igual ao valor máximo na coluna de <em>B</em>.</p><p>Se alguma destas condições for violada, o algoritmo MMP remove a conexão entre os conjuntos de dados no grafo, indicando que a contenção não é possível.</p><p><strong>➢ Etapa “<em>Content Level Pruning</em> (CLP)” </strong>— Nesta fase, o algoritmo ajusta as relações nos grafos (nova filtragem) examinando os dados das tabelas em si, em nível granular de linha.</p><p>O CLP utiliza técnicas de amostragem para decidir se as conexões (ou relacionamentos de contenção potenciais entre datasets) devem ser mantidas ou excluídas. Se o conjunto <em>A</em> está totalmente contido em <em>B</em>, esta relação de contenção deve ser válida mesmo para subconjuntos amostrados de <em>A</em>. Ao consultar subconjuntos específicos de <em>A</em>, e verificar sua presença em <em>B</em>, o algoritmo assegura uma inferência precisa de contenção sem precisar varrer tabelas inteiras.</p><h3>Limitações</h3><p>Esta abordagem SGB ⇒ MMP ⇒ CLP<strong> </strong>demonstrou resultados satisfatórios nos estudos de caso realizados no artigo. Contudo, considerando o contexto específico do iFood e a realidade de uma empresa que lida diariamente com <em>Data &amp; IA</em> em larga escala, identificamos algumas adaptações necessárias para melhor atender ao cenário operacional e às características do nosso DL. <strong>Importante</strong>: sem deixar de lado a premissa original de compor uma <strong>solução eficiente e de baixo custo</strong>.</p><p>Os principais desafios que motivaram estas adaptações incluem:</p><ul><li><strong>Limitações de infraestrutura para metadados estatísticos: </strong>A implementação da etapa MMP, quando trabalhando com tabelas em formato puramente <em>Parquet</em>, é trivial e barata pois os arquivos possuem nativamente valores mínimos e máximos dos dados. Não é o caso de tabelas <em>Delta</em> com as quais trabalhamos no iFood. Isto exigiria uma arquitetura de metadados estatísticos robusta, incluindo: (1) pipelines automatizados para apuração de <em>min</em>/<em>max</em> em todas as colunas numéricas; (2) armazenamento e versionamento destes metadados; e (3) tratamento de <em>edge cases</em> como valores nulos e tipos de dados variados. Esta infraestrutura, embora tecnicamente viável, representaria um investimento significativo e violaria a premissa da solução.</li><li><strong><em>Overhead</em> de processamento</strong>: A comparação entre conteúdos das tabelas, conforme proposta pela etapa CLP, sem o cálculo prévio de valores <em>min/max</em> demandaria recursos computacionais excessivos, impactando a performance e também ferindo a premissa.</li><li><strong>Duplicação inerente à Arquitetura Medalhão</strong>: Por natureza, a arquitetura em medalhão pode resultar em duplicação de tabelas. Este cenário é esperado quando dados são ingeridos na camada <em>bronze</em>, processados na <em>silver</em> e posteriormente disponibilizados na camada <em>gold</em> para consumo. Na ausência de transformações significativas entre as camadas, a duplicação de dados torna-se uma realidade.</li></ul><h3>Como fizemos?</h3><p>Reformulamos o algoritmo original e substituímos as etapas MMP e CLP por <strong>duas novas etapas</strong> com o mesmo objetivo de filtragem e refinamento incremental do resultado, mas trazendo a realidade das tecnologias do iFood para o jogo e dando nossa assinatura à solução.</p><p>Buscamos preservar e/ou aumentar a precisão e relevância dos resultados e eliminando ao máximo falsos positivos. A imagem abaixo ilustra o algoritmo construído, numa abordagem que batizamos de <strong>SGB ⇒ DLP ⇒ LTP</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*iNxURzawE9oOfBqe" /></figure><h3>➢ Etapa “Schema Graph Builder (SGB)”</h3><p>Mantivemos este componente inalterado pois ele oferece a garantia fundamental de 100% de detecção de relações de contenção entre <em>schemas</em>. O SGB continua sendo nossa base sólida para identificar todas as possíveis relações hierárquicas entre tabelas com base nas suas concepções colunares.</p><h3>➢ Etapa “Data Lake Layer Pruning (DLP)” ✨ NEW ✨</h3><p>Introduzimos uma <strong>filtragem por contexto </strong>que permite direcionar o algoritmo para áreas específicas do Data Lake, reservando a potencialidade e assertividade da identificação de informações redundantes a nichos conhecidos e descartando naturalmente redundâncias inerentes a processos internos:</p><ul><li><strong>Filtragem por Domínio</strong>: Restringimos a aplicação e análise a domínios de negócio específicos (ex: áreas de Groceries, de Fintech, etc).</li><li><strong>Filtragem por Camada</strong>: Focamos em camadas específicas da arquitetura medalhão (ex: <em>bronze</em>, <em>silver</em>, <em>gold</em>).</li></ul><p><strong>Benefícios Principais</strong>:</p><ul><li>Redução expressiva do escopo e volumetria de dados sob análise, eliminando comparações irrelevantes entre tabelas de contextos completamente não correlacionados.</li><li>Acionamento direto de times de dados e de negócio para validação da solução proposta e também para o endereçamento mais eficaz quando da eliminação/remoção dos dados duplicados identificados.</li></ul><h3>➢ Etapa “Lineage Track Pruning (LTP)” ✨ NEW ✨</h3><p>Aproveitamos de um poderoso recurso presente no nosso DL conhecido como <em>Data Lineage</em> e implementamos uma <strong>validação por linhagem</strong> para eliminar falsos positivos resultantes de coincidências entre <em>schemas</em>:</p><p><strong>Como funciona:</strong></p><ul><li>Reconstruímos a linhagem completa de cada tabela (<em>upstreams</em> e <em>downstreams</em> diretos e indiretos), determinando assim toda história dos dados e de suas dependências.</li><li>Mantivemos apenas relações de contenção entre tabelas que possuem <strong>conexão real</strong> no pipeline de dados (i.e., pertencem a uma mesma <em>storyline</em>).</li></ul><p><strong>Impacto Observado:</strong></p><ul><li><strong>Eliminação de falsos positivos</strong>: Descobrimos que muitas tabelas tinham <em>schemas</em> similares por pura coincidência, sem qualquer relação real entre seus dados, por vezes resultante de padronizações sistêmicas (por exemplo: tabelas com dados de monitoramento de APIs sempre adotam as mesmas colunas, apesar de se referirem a distintos sistemas).</li><li><strong>Maior precisão</strong>: Focamos apenas em relações de contenção que fazem sentido do ponto de vista do fluxo de dados.</li></ul><h3>Testes e Validações sob Domínio Controlado</h3><p>Com o protótipo do algoritmo em mãos, chegou o momento de colocá-lo à prova. No lugar de partir direto para uma implementação em ampla escala, adotamos uma abordagem mais estratégica e direcional: selecionamos um Domínio de Negócio específico para servir como nosso laboratório de validação. E o time de Fintech topou a parceria!</p><p>Nosso objetivo foi para além de simplesmente medir a taxa de assertividade do algoritmo. Queríamos compreender como os especialistas do domínio perceberam nossa solução e quais <em>insights</em> eles poderiam oferecer para aprimorá-la.</p><h3>O Resultado que Surpreendeu</h3><p>Os números falaram por si: de <strong>76</strong> pares de tabelas identificadas como tendo uma potencial relação de duplicidade, <strong>60</strong> delas realmente refletiam informações totalmente redundantes entre si!!! Isto representa aproximadamente <strong>79% de assertividade</strong> do algoritmo. Para um primeiro teste, este resultado superou algumas expectativas daquelas mais otimistas.</p><p>Destes 60 pares, um total de 30 tabelas puderam ser identificadas como duplicatas e, após sua auditoria detalhada, os especialistas do domínio já puderam tomar ações concretas de limpeza. Os demais pares identificados também envolviam tabelas cujos <em>schemas</em>, linhagens e contextos estavam correlacionados, porém constituíam sub amostragens dos dados umas das outras, por vezes construídas por questões de otimização de processos de leitura de grandes datasets. Apesar de não serem datasets puramente duplicados, abriu-se oportunidade para revisitar e questionar sua real necessidade.</p><blockquote><strong>Curiosidade Técnica</strong>: desde a construção do grafo primário de relações de duplicidade (etapa SGB) até a filtragem com base no pertencimento à linhagem (etapa LTP), o algoritmo varre todo o Data Lake. Isto envolve mais de <strong>15 mil tabelas com volumetria de algumas centenas de Terabytes</strong>!!! Apesar disso, pela natureza hábil da sua construção, este processo leva em torno de 10 minutos numa infraestrutura tímida (alguns poucos <em>workers</em> Spark em instâncias <em>small sized</em>).</blockquote><h3>O Impulso para a Próxima Fase</h3><p>Este primeiro resultado teve um efeito transformador na percepção do projeto. A confiança gerada pelos números abriu caminho para duas expansões importantes para torná-lo uma solução robusta e escalável para a companhia:</p><ol><li><strong>Escalabilidade Horizontal</strong>: estender a aplicação para todos os domínios do iFood.</li><li><strong>Automação Estrutural</strong>: automatizar todo o pipeline, desde a detecção das informações redundantes até a visibilidade e o acionamento dos responsáveis.</li></ol><h3>A Automação e A Robustez</h3><p>Nossa solução de automação foi estruturada em três fases principais, cada uma com responsabilidades bem definidas:</p><h4>Fase #1: Detecção e Análise</h4><p>O coração do sistema reside no algoritmo principal que executa sequencialmente as três etapas essenciais:</p><ul><li><strong>Schema Graph Builder (SGB)</strong>: constrói o grafo de contenção identificando relações hierárquicas.</li><li><strong>Data Lake Layer Pruning (DLP)</strong>: filtra por contexto (domínio &amp; camada) para reduzir ruído.</li><li><strong>Lineage Track Pruning (LTP)</strong>: utiliza a linhagem para aumentar a assertividade e eliminar falsos positivos com base no pertencimento ao mesmo storyline.</li></ul><p>Este processo é orquestrado via Airflow, que garante execução periódica, resiliente e confiável do pipeline. O resultado de cada execução é persistido no Data Lake, criando um histórico rastreável de todas as detecções de potenciais duplicidades.</p><h4>Fase #2: Comunicação Inteligente</h4><p>Um segundo componente, também orquestrado via Airflow, consome os resultados da análise de redundância e traduz os <em>insights</em> técnicos em sugestões de ações efetivas.</p><p>Utilizando um <em>bot</em> personalizado junto ao principal comunicador adotado pela empresa, o sistema notifica diretamente os proprietários e responsáveis pelas tabelas identificadas como potencialmente redundantes, orientando-os com metadados e facilitando como identificá-las, acessá-las e avaliá-las.</p><h4>Fase #3: Autonomia na Tomada de Decisão</h4><p>Em vez de simplesmente informar sobre o problema, oferecemos aos responsáveis notificados opções claras de ação num canal direto para acionamento via comunicador (como, por exemplo, a remoção imediata das tabelas, a inclusão das mesmas em listas de exceção — quando a duplicação é intencional ou necessária, a sugestão de alinhamento entre times para otimização/convergência/redução de datasets essenciais, etc).</p><h3>Oportunidades de Melhoria</h3><p>Apesar dos resultados positivos, permanecemos continuamente com o foco em tornar a solução ainda mais eficiente e inteligente. Já identificamos áreas específicas para aprimoramento futuro do algoritmo, dentre elas:</p><h4>Flexibilidade de Schema</h4><p>O algoritmo atualmente exige <strong>correspondência exata de nomenclatura entre colunas</strong>, o que pode deixar de fora alguns casos de relações de duplicidade como consequência de erros de digitação, descontinuidade de padrão no ciclo de vida do dado pós-transformação, etc . Em pipelines produtivos, é comum encontrar tabelas da mesma linhagem com colunas idênticas que foram renomeadas para adequação a processos específicos (ex: <em>customer_id</em> vs. <em>client_id</em>). Essas tabelas, apesar de semanticamente equivalentes, não são detectadas pela atual etapa SGB.</p><h4>Ambiguidade em Relações Simétricas</h4><p>Quando duas tabelas possuem <strong>exatamente as mesmas colunas</strong>, o algoritmo cria uma <strong>relação bidirecional</strong> (<em>A</em> ⊆ <em>B</em> e <em>B</em> ⊆ <em>A</em>, simultaneamente). Essa situação, embora tecnicamente correta, pode gerar confusão na interpretação dos resultados, exigindo uma análise mais detalhada de qual tabela deve ser removida ou mantida. Este aspecto nos desperta a intenção de adotar soluções em DataViz que cumpram melhor este papel e ilustrem relações em grafos de forma mais inteligível.</p><h4>Validação Semântica por LLM</h4><p>Após algumas PoCs (<em>Proof of Concept</em>), identificamos o potencial da inclusão de uma nova <strong>camada adicional de validação semântica</strong> após o filtro por linhagem. Esta etapa incorpora à solução, para além dos <em>schemas</em>, outras fontes extras de metadados e principalmente os códigos-fonte das ETLs por trás das tabelas envolvidas. Sob esta ótica, temos:</p><ul><li>Análise dos <strong>notebooks </strong>e<strong> códigos que compõem as ETLs </strong>usando o poder de análise textual oferecido pelos <em>Large Language Models</em> (LLMs).</li><li>Validação se as transformações no pipeline realmente indicam <strong>similaridade de propósito</strong>.</li><li>Detecção de casos onde tabelas possuem <em>schemas</em> similares e/ou equivalentes, mas <strong>finalidades distintas</strong>.</li></ul><p>Tais melhorias elevam o algoritmo ao patamar de uma solução que combina <strong>análise estrutural com compreensão semântica</strong>, aumentando significativamente sua precisão a um custo que conserva sua premissa de entregar um caminho inovador e barato para conservação de um Data Lake saudável.</p><h3>Conclusão</h3><p>Nossa adaptação do algoritmo R2D2 demonstrou que é possível gerar valor real adaptando pesquisa acadêmica ao contexto corporativo. Com 79% de assertividade numa primeira aplicação piloto detectando potenciais tabelas redundantes, evoluímos de um experimento controlado e deveras manual para uma solução automatizada completa, com aplicação em todo contexto de Dados do iFood. Esta solução entrega hoje a potencialidade de mantermos nosso Data Lake mais saudável, mais eficiente e reduzido de informações redundantes desnecessárias.</p><p>Substituímos componentes complexos e de maior custo, existentes na solução original, por equivalentes mais leves e mais inteligentes, baseados em filtragem direcionada ao contexto do negócio e incorporando recurso poderoso de <em>Data Lineage</em>. Esta abordagem reduziu com segurança falsos positivos e se alinharam à nossa realidade tecnológica com mínimo esforço.</p><p>As oportunidades de melhoria identificadas — flexibilidade de <em>schemas</em>, tratamento de relações simétricas e validação semântica por LLM — apontam para uma próxima iteração ainda mais precisa e inteligente.</p><h3>Referências</h3><p><strong><em>R2D2: Reducing Redundancy and Duplication in Data Lakes</em></strong><em> [2023]; Raunak Shah et al.; Proceedings of the ACM on Management of Data, Volume 1, Issue 4 (DOI: </em><a href="https://doi.org/10.1145/3626762"><em>https://doi.org/10.1145/3626762</em></a><em> — alternative: </em><a href="https://arxiv.org/abs/2312.13427"><em>arXiv:2312.13427</em></a><em>)</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a5151d43f338" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/como-o-ifood-conseguiu-identificar-tabelas-duplicadas-no-data-lake-a5151d43f338">Como o iFood conseguiu identificar tabelas duplicadas no Data Lake?</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Retenção Inteligente: Como o iFood usa AI para apoiar seus parceiros]]></title>
            <link>https://medium.com/ifood-tech/reten%C3%A7%C3%A3o-inteligente-como-o-ifood-usa-ai-para-apoiar-seus-parceiros-6de3d74b0d4a?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/6de3d74b0d4a</guid>
            <category><![CDATA[ciencia-de-dados]]></category>
            <category><![CDATA[churn]]></category>
            <category><![CDATA[dados]]></category>
            <category><![CDATA[data]]></category>
            <dc:creator><![CDATA[Mário Damhur]]></dc:creator>
            <pubDate>Mon, 07 Jul 2025 16:58:02 GMT</pubDate>
            <atom:updated>2025-07-07T16:58:02.465Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong><em>Introdução</em></strong></h3><p>Hoje iremos compartilhar com vocês um case muito interessante que desenvolvemos no iFood para fortalecer nossa parceria com os restaurantes que utilizam nossa plataforma. Para começar, vamos falar de um dos desafios mais clássicos e importantes para empresas de todos os setores: a perda de clientes, mais conhecida como <strong>churn</strong>.</p><h3><strong><em>Por que a retenção é tão crucial?</em></strong></h3><p>O churn, ou taxa de cancelamento, é uma métrica que indica a porcentagem de clientes que uma empresa perde durante um determinado período. Em qualquer negócio, minimizar o churn é uma prioridade estratégica e o motivo é simples e direto: <strong>manter um cliente existente é muito mais barato do que adquirir um novo</strong>.</p><p>Estudos de mercado e especialistas em gestão, como a Bain &amp; Company, apontam que o custo de aquisição de um novo cliente pode ser de <strong>5 a 25 vezes maior</strong> do que o custo de retenção. Clientes fiéis tendem a gastar mais ao longo do tempo e podem se tornar promotores da sua marca, gerando crescimento orgânico. Portanto, uma alta taxa de churn não apenas impacta a receita, mas também aumenta os custos de marketing e vendas, tornando o crescimento sustentável muito mais difícil.</p><h3><strong><em>O Contexto do Problema no iFood: Muito Além do Churn Tradicional</em></strong></h3><p>No nosso contexto específico, o desafio ganha uma camada extra de complexidade. Não lidamos apenas com o churn do consumidor final, mas sim com o de nossos parceiros de negócio, os restaurantes. E, ao contrário de um churn contratual, onde há uma quebra formal de contrato, nosso principal indicador de risco é a inatividade: o parceiro que para de receber pedidos em nossa plataforma.</p><p>O cenário para esses empreendedores já é desafiador por si só. Um dado da Abrasel (Associação Brasileira de Bares e Restaurantes) revela uma realidade dura: <strong>cerca de 50% dos restaurantes no Brasil fecham as portas antes mesmo de completarem dois anos de existência.</strong></p><p>Em nossa busca contínua pela excelência e pelo sucesso dos nossos parceiros, sempre analisamos nossas estratégias para encontrar novas oportunidades de aprimoramento. Nosso modelo de retenção anterior, alinhado às práticas tradicionais do mercado, evoluiu para uma abordagem mais proativa e inteligente, permitindo otimizar nossos investimentos e gerar um impacto ainda maior.</p><h3><strong><em>A Solução: Surge o Albus</em></strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/392/0*9eCTUp7WccMLmDBk" /><figcaption><em>logotipo do projeto Albus</em></figcaption></figure><p>Foi nesse contexto que nasceu o <strong>Albus</strong>, nosso conjunto de ferramentas e modelos de inteligência artificial projetado para revolucionar a forma como lidamos com a retenção de restaurantes. O nome, inspirado no universo mágico, reflete nossa ambição: usar a “magia” dos dados para prever e solucionar problemas complexos.</p><p>O Albus é um sistema robusto que nos fornece desde insights semanais e mensais até previsões avançadas de churn e estratégias de <em>uplift</em>. Com ele, nossa abordagem mudou fundamentalmente:</p><ul><li><strong>De Reação para Antecipação:</strong> Em vez de esperar um parceiro parar de vender para então agir, agora conseguimos identificar os sinais de risco com antecedência.</li><li><strong>De Ações Genéricas para Estratégias Personalizadas:</strong> Os modelos nos ajudam a entender <em>quais</em> parceiros correm o risco de churn e <em>por quê</em>, permitindo a criação de estratégias de retenção e engajamento muito mais eficazes e personalizadas.</li><li><strong>Decisões Orientadas por Dados (Data-Driven):</strong> Cada ação é agora informada por uma análise profunda, garantindo que nossos esforços e investimentos sejam direcionados para onde eles podem gerar maior impacto.</li></ul><p>Com o Albus, estamos capacitando nossos times a agir de forma mais inteligente e empática, construindo um ecossistema mais saudável e sustentável para todos. O Albus, na verdade, é um ecossistema de soluções que contempla vários módulos:</p><ul><li><strong>Conjunto de Features (Snape):</strong> Uma base de dados massiva com centenas de informações e variáveis relacionadas aos nossos parceiros.</li><li><strong>Modelos Preditivos (Firenze):</strong> Um conjunto de modelos que nos dá a probabilidade de churn em diferentes janelas de tempo e com base em diferentes gatilhos de pedidos.</li><li><strong>Modelo de Uplift (Flitwick):</strong> Um modelo de inferência causal que prevê a sensibilidade de cada parceiro às nossas possíveis ações de retenção, nos ajudando a escolher a melhor abordagem para cada caso.</li><li><strong>Gatilhos de Desengajamento (Hagrid):</strong> Técnicas estatísticas para acompanhar o desengajamento dos parceiros de forma proativa, antes que o churn aconteça.</li><li><strong>Interpretabilidade e Ações Direcionadas (Lupin):</strong> Usamos a interpretabilidade dos modelos para entender quais fatores mais impactam o risco de cada parceiro, permitindo criar ações focadas em mitigar esses pontos de atrito específicos.</li></ul><p>Atualmente, além desses módulos, utilizamos soluções de outros times de dados do iFood que complementam ainda mais as nossas estratégias de retenção, como o <strong>Smart Rollout</strong>, que terá um publicação dedicada só a ele futuramente.</p><p>Nesta postagem, não iremos entrar em detalhes de todos os módulos. Focaremos no <strong>Modelo Preditivo</strong> e no <strong>Modelo de Uplift</strong>, compartilhando alguns dos principais aprendizados que tivemos no desenvolvimento dessas duas soluções.</p><h3><strong><em>Modelo Preditivo</em></strong></h3><p>Vamos agora mergulhar nos detalhes de como o Albus funciona. Começaremos pelo nosso Modelo Preditivo, a primeira linha de defesa que nos ajuda a identificar proativamente os parceiros que precisam da nossa atenção.</p><p>Antes de prever, precisamos definir, o que exatamente significa um “parceiro em risco” no nosso contexto? Após diversas análises, estabelecemos dois conceitos fundamentais baseados na inatividade, ou seja, no tempo em que um parceiro passa sem receber pedidos pela nossa plataforma.</p><ul><li><strong>Pré-Churn:</strong> Consideramos este o primeiro sinal de alerta. É uma evidência inicial de que um parceiro pode estar caminhando para deixar a plataforma. Para nós, isso se traduz em <strong>uma semana sem receber pedidos</strong>.</li><li><strong>Churn:</strong> Este é o estágio mais crítico, que define um parceiro em processo de desengajamento. Caracterizamos o churn quando um parceiro atinge <strong>um mês sem receber pedidos</strong>, podendo ser no conceito Month-To-Date (MTD) ou janela móvel.</li></ul><p>Agir no estágio de pré-churn é a nossa meta, pois nos dá a melhor janela de oportunidade para reengajar o parceiro e reverter a situação.</p><p>Com as definições claras, o objetivo do nosso modelo preditivo é simples e poderoso: <strong>identificar a propensão de um parceiro ativo a não realizar nenhum pedido na semana seguinte</strong>, entrando, assim, em pré-churn. Para isso, seguimos um fluxo de trabalho estruturado. Toda semana, o processo se reinicia:</p><ol><li><strong>Coleta de Dados:</strong> Partimos do histórico de informações de todos os nossos <strong>Parceiros Vigentes</strong>. Esses dados incluem centenas de <em>features</em> sobre o comportamento, atributos e transações de cada restaurante.</li><li><strong>Modelagem Preditiva:</strong> Aplicamos nosso modelo de Machine Learning sobre esses dados para gerar um <strong>Score de Risco</strong> para cada parceiro. Esse score representa a probabilidade de ele entrar em pré-churn.</li><li><strong>Ações de Retenção:</strong> O score gerado orienta nossas <strong>Ações de Retenção</strong>. Dependendo do nível de risco, as ações podem variar desde contatos proativos da nossa equipe até o oferecimento de incentivos personalizados.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*JnNM9SkAHKNWs2iP" /><figcaption><em>Este ciclo contínuo garante que estamos sempre atentos aos movimentos da nossa base, prontos para agir quando necessário.</em></figcaption></figure><h3><strong><em>Exemplo de Utilização no Tático</em></strong></h3><p>Na prática, como o time de negócios utiliza o score de risco? Nós o traduzimos em faixas de probabilidade que sugerem diferentes níveis de investimento e tipos de ação. Isso permite que os recursos sejam alocados de forma inteligente, focando onde podemos ter o maior impacto.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ib8CHksG-pISsXfa" /><figcaption><em>Essa abordagem estratificada garante que não estamos apenas prevendo o risco, mas agindo sobre ele da maneira mais eficiente possível.</em></figcaption></figure><h3><strong><em>Nossos Aprendizados na Construção do Modelo Preditivo</em></strong></h3><p>Desenvolver um modelo como este é uma jornada cheia de aprendizados. Não existe uma receita de bolo, mas algumas decisões se mostraram cruciais para o sucesso do nosso projeto. Compartilhamos aqui algumas dicas e os caminhos que seguimos:</p><ul><li><strong>Sobre os Modelos:</strong> Modelos baseados em árvores de decisão, como <strong>XGBoost</strong> e <strong>LightGBM</strong>, foram nosso ponto de partida e se provaram muito eficazes. Também exploramos métodos de <em>Conformal Predictions</em> para entender melhor a incerteza das nossas previsões.</li><li><strong>Sobre a Métrica de Sucesso:</strong> A escolha da métrica é vital. Focar apenas em acurácia pode ser enganoso. Nós otimizamos o <strong>F-beta score</strong>, uma métrica que nos permite dar um peso maior ao <em>recall</em>, que é mais importante para o nosso objetivo de negócio mas sem penalizar muito a importância da precisão. Além disso, focamos bastante na <strong>calibração</strong> do modelo com a métrica <strong>Brier score</strong>.</li><li><strong>Sobre as Ações:</strong> Um ponto fundamental é que a informação do score, por si só, não é uma bala de prata. Ela precisa ser combinada com as regras de negócio e o conhecimento tático dos times para que as ações de retenção sejam direcionadas e, de fato, eficazes.</li></ul><h3><strong><em>Modelo de Uplift</em></strong></h3><p>O Modelo Preditivo nos diz <em>quem</em> tem chance de sair, mas ele não responde a uma pergunta ainda mais crucial: <strong>devemos investir em uma ação de retenção para este parceiro?</strong> E mais, <em>qual</em> é o impacto real da nossa ação? Para responder a isso, usamos uma abordagem de <strong>modelagem de uplift</strong>. Esse é um tema que, por sua complexidade e relevância, mereceria uma publicação à parte. Mas, vamos tentar resumir aqui a nossa jornada e os principais conceitos.</p><p>Diferente de um modelo preditivo (que prevê um acontecimento), um modelo de uplift é <strong>prescritivo</strong>: ele prevê como cada parceiro provavelmente responderá a uma ação específica. O objetivo é isolar o <strong>efeito causal</strong> da nossa ação, ou seja, entender se o investimento realmente fez a diferença.</p><p>A modelagem de uplift nos ajuda a classificar os parceiros em quatro quadrantes fundamentais, com base em como eles se comportariam com e sem uma ação de retenção (como receber um voucher).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/995/0*cdRWiIj4A3HGVRmR" /></figure><p>A principal desvantagem? Essa técnica exige uma grande <strong>maturidade de dados</strong>, pois depende de histórico de testes (grupo de tratamento e controle) bem desenhados para que o modelo possa aprender e nem toda empresa ou área específica possui essa maturidade.</p><h3><strong><em>Como estimamos essa sensibilidade?</em></strong></h3><p>O problema central é que nunca podemos observar o mesmo restaurante recebendo e não recebendo um voucher no mesmo instante. É aqui que a <strong>inferência causal</strong> entra em jogo. Utilizamos dois conceitos-chave:</p><ul><li><strong>ATE (Average Treatment Effect):</strong> Mede o impacto <em>médio</em> de uma campanha em <em>todos</em> os restaurantes. É útil para uma avaliação geral, para saber se a campanha, como um todo, foi eficaz.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/268/0*Tl19WZLB6ZGl6mBV" /></figure><ul><li><strong>CATE (Conditional Average Treatment Effect):</strong> Estima o impacto <em>esperado</em> do voucher para um restaurante <em>específico</em>, com base em suas características individuais. É com o CATE que conseguimos personalizar as ações e decidir quem, de fato, deve receber o incentivo para otimizar o ROI.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/467/0*AiXDUzsJmF7VGJo-" /></figure><p>Existem diversas famílias de métodos para estimar essa sensibilidade. Nós exploramos várias, desde Meta-Learners até modelos mais robustos como <em>DoubleML</em>. Existem outros métodos e cada um deles poderia ser uma publicação completa, mas vejamos o exemplo de uma abordagem simples, eficaz e flexível, o <strong>T-Learner</strong>, um tipo de Meta-Learner. Nele, treinamos dois classificadores separados: um com o <em>dataset</em> de tratamento (quem recebeu a ação) e outro com o de controle (quem não recebeu). A diferença (o <em>lift</em>) entre a probabilidade de conversão prevista por cada modelo nos dá o <em>uplift</em> para cada parceiro.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/0*uRmZc6RYLHa3oY05" /><figcaption><em>Exemplo de aplicação do T-Learner</em></figcaption></figure><h3><strong><em>Como avaliamos um modelo de uplift?</em></strong></h3><p>Depois de treinado, como sabemos se o nosso modelo de uplift é realmente bom? Precisamos de uma ferramenta que avalie a capacidade do modelo de separar os <strong>Influenciáveis</strong> dos outros grupos. É para isso que usamos a <strong>Curva de Qini</strong>.</p><p>Pense nela como um grande teste de eficiência. O objetivo é responder: “Se tivermos orçamento para aplicar nossa ação de retenção em apenas uma fração dos nossos parceiros, o nosso modelo nos ajuda a escolher o melhor grupo possível para maximizar o retorno?”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*uFBYC5z89ClSy0ci" /></figure><p>A construção da curva é um processo engenhoso:</p><ol><li><strong>Ordenação por Uplift:</strong> Primeiro, pegamos todos os parceiros do nosso grupo de teste (tratamento e controle) e usamos o modelo para prever o score de uplift de cada um. Em seguida, ordenamos todos eles, do maior score de uplift para o menor. A “mágica” do modelo está aqui: ele acredita que os primeiros parceiros da lista são os mais propensos a serem “Influenciáveis”.</li><li><strong>Cálculo do Ganho Acumulado:</strong> Percorremos essa lista ordenada, percentil por percentil (do top 1% mais propenso ao uplift até os 100%), e plotamos um gráfico.</li></ol><ul><li>O <strong>eixo X</strong> representa a porcentagem da população que decidimos contatar, começando pelos de maior score.</li><li>O <strong>eixo Y</strong> plota o <strong>ganho incremental acumulado</strong>. Ou seja, para cada ponto no eixo X, calculamos: <em>(o número de conversões no grupo de tratamento) — (o número de conversões no grupo de controle)</em>. Esse valor nos diz quantos parceiros “salvamos” <em>a </em>mais do que teríamos salvo se não tivéssemos feito ação nenhuma.</li></ul><h3><strong><em>Da Avaliação para a Ação (Inferência)</em></strong></h3><p>Com a confiança de que nosso modelo é eficaz, podemos usá-lo na prática para decidir quem receberá a ação. Na hora de usar o resultado (inferência), seguimos dois caminhos:</p><ul><li><strong>Buckets:</strong> Faixas de uplift (ex: uplift alto, médio, baixo) para dar mais flexibilidade de análise e de estratégia para o time de negócios.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/553/0*krjzgL28CFRscVMf" /><figcaption><em>Imagem ilustrativa retirada da lib scikit-uplift</em></figcaption></figure><ul><li><strong>Binário:</strong> Abordagem direta, onde simplesmente é aplicado a ação se o uplift previsto para o parceiro for maior que zero. É uma regra mais simples e com menos flexibilização.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/470/0*u--gqK0VUkdJ7aw-" /></figure><h3><strong><em>Exemplo de Utilização no Tático</em></strong></h3><p>Com um modelo de uplift validado e um score para cada parceiro em mãos, a pergunta final é: como isso se transforma em ações claras e objetivas para os nossos times de negócio?</p><p>A resposta está em simplificar a complexidade. Embora a matriz de uplift tenha quatro quadrantes, na prática, podemos agrupar os parceiros em duas categorias operacionais que direcionam toda a nossa estratégia de investimento: os <strong>Influenciáveis</strong> e os <strong>Não Influenciáveis</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1008/0*AcxMOl3ZGnWG5Eor" /><figcaption>Essa separação clara permite que nossos times de negócio atuem com precisão cirúrgica, parando de “gastar” com parceiros que não precisam do incentivo e focando os recursos onde eles realmente geram um impacto incremental e positivo para o ecossistema.</figcaption></figure><h3><strong><em>Nossos Aprendizados na Construção do Modelo Uplift</em></strong></h3><p>Alguns aprendizados se destacaram e acreditamos que eles podem ser úteis para qualquer time de dados que enfrenta desafios semelhantes.</p><ul><li><strong>A Maturidade de Dados é o Alicerce:</strong> A regra é clara: <em>garbage in, garbage out</em>. Nenhum modelo, por mais avançado que seja, sobrevive a dados de baixa qualidade. Investir em uma cultura de testes bem desenhados, em conjunto com os times de produto e negócio, não é um luxo, mas o alicerce indispensável para construir modelos causais robustos.</li><li><strong>A Comunicação dos Resultados é Crucial:</strong> Um modelo pode sugerir uma mudança contraintuitiva, como “deixar de investir em 30% dos clientes que antes recebiam incentivos”. Apresentar isso de forma abrupta pode gerar resistência. A nossa dica é: faça uma boa análise de impacto, comece com um piloto, reduzindo o investimento em uma pequena fração da base, e compare os resultados com a estratégia atual. Deixe os números contarem a história e provarem o valor da nova abordagem.</li><li><strong>Comece Simples, Depois Sofistique:</strong> O mundo ideal é ter um modelo para cada tipo de ação ou voucher. O mundo real exige priorização. Não é necessário ter o modelo mais complexo do mundo para começar a gerar valor. Generalize, crie uma ação macro e aplique a regra do 80/20. É melhor ter um modelo simples funcionando e gerando impacto do que um modelo perfeito que nunca sai do papel.</li><li><strong>Cuidado com o Viés do Futuro:</strong> Se você passar a investir apenas nos “influenciáveis”, com o tempo, seu modelo ficará cego. Ele não terá dados recentes sobre como os outros grupos se comportam, o que é um veneno para os futuros re-treinos. A solução é continuar atuando, de forma controlada, em uma pequena porcentagem dos “não influenciáveis”. Esse pequeno “custo” é o preço para garantir uma base histórica sem viés e a longevidade do seu modelo.</li></ul><h3><strong><em>Impacto</em></strong></h3><p>No final das contas, o sucesso de um projeto de dados é medido pelo impacto que ele gera para o negócio e para os nossos parceiros. Felizmente, o impacto do Albus, com seus modelos preditivo e de uplift, trouxe resultados extremamente positivos e que validaram nossa abordagem estratégica.</p><p>Ao combinar a previsão de risco com a atuação direcionada apenas aos parceiros “influenciáveis” e também com o direcional dos outros modelos dentro e fora do Albus, conseguimos otimizar nossos investimentos e, ao mesmo tempo, construir um ecossistema mais saudável.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*g4xRDDrIUy8zF4yZ" /></figure><p>Aqui estão nossos principais indicadores de sucesso:</p><ul><li><strong>Redução de 10% no Churn (YoY):</strong> Mesmo com a nossa base de parceiros ativos crescendo 8% no período de um ano (Year-over-Year), conseguimos diminuir a taxa de churn em 10%. Isso demonstra que nossas ações se tornaram mais eficientes, sendo capazes de reter mais parceiros mesmo diante de um universo maior e mais desafiador.</li><li><strong>Aumento de 7 p.p. no Ganho Incremental:</strong> Ao comparar a nova estratégia (baseada em uplift) com a abordagem anterior, observamos um delta positivo de 7 pontos percentuais no incremento de parceiros retidos.</li><li><strong>CPRi 53% Menor e Economia de R$ 1.2 Milhão/ano:</strong> Talvez o resultado mais direto da eficiência do modelo de uplift. O “Custo de Retenção por Parceiro Incremental” (CPRi) foi reduzido em 53%. Ao pararmos de investir em parceiros que não seriam influenciados pela nossa ação (os “não influenciáveis”), conseguimos uma economia direta de <strong>R$ 1.2 milhão por ano</strong>. É um recurso que pode ser reinvestido em outras frentes estratégicas, gerando ainda mais valor para o ecossistema.</li></ul><p>Esses números mostram que, ao usar Inteligência Artificial não apenas para prever, mas para prescrever a melhor ação, saímos de uma estratégia reativa e de alto custo para uma abordagem proativa, eficiente e genuinamente parceira.</p><p>Vale lembrar que é uma aplicação para um segmento do universo de parceiros que temos em nossa base de dados, agora imagine aplicando isso para os milhões de usuários do iFood. Essa solução existe e também traz um impacto muito relevante.</p><h3><strong><em>Conclusão</em></strong></h3><p>Nossa jornada para otimizar a retenção de parceiros, desde a identificação do problema até a implementação de uma solução sofisticada com o Albus, nos ensinou lições valiosas. Vimos que é possível ir além de uma abordagem reativa e de alto custo, utilizando a inteligência artificial não apenas para “prever o futuro”, mas para moldá-lo de forma mais eficiente e empática.</p><p><strong><em>Modelos não são Balas de Prata</em></strong></p><p>Por fim, é fundamental reforçar que os modelos de Machine Learning não são balas de prata. Em uma era onde <strong>Agentes de IA</strong> autônomos estão na moda e prometem revolucionar operações, é tentador pular para a solução mais tecnológica. No entanto, temas clássicos e profundos como a <strong>Inferência Causal</strong> continuam sendo super importantes. Saber o <strong>“porquê”</strong> uma ação funciona, e não apenas prever “o que” vai acontecer, é o que permite a alocação de recursos verdadeiramente eficiente.</p><p>A maior eficiência não vem de um algoritmo perfeito, mas da <strong>sinergia entre a ciência de dados e o <em>know-how</em> do time de negócios. </strong>O score de risco ou o valor de uplift são apenas números, eles se tornam valiosos quando o time de negócios, com sua experiência prática, os utiliza para desenhar a estratégia certa, escolher o canal de comunicação adequado e definir o tom da abordagem para cada parceiro. É essa união que transforma potencial em resultados concretos.</p><p>Encerramos este case com a certeza de que a retenção inteligente é um esforço contínuo, baseado em aprendizado, testes e, acima de tudo, colaboração.</p><h4><strong><em>Agradecimentos</em></strong></h4><p><strong>Data Oferta Lifecycle:</strong> Luiz Temponi, Janaína Marchesi, Nayane Gomes, Giovanna Carvalho, Mateus Varelo, Celso Silva, Renato Ernandes, Rodrigo Matias, Gabriel Castro.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6de3d74b0d4a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/reten%C3%A7%C3%A3o-inteligente-como-o-ifood-usa-ai-para-apoiar-seus-parceiros-6de3d74b0d4a">Retenção Inteligente: Como o iFood usa AI para apoiar seus parceiros</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[De papiros a queries: Alexandria no centro das regras de negócio do iFood]]></title>
            <link>https://medium.com/ifood-tech/de-papiros-a-queries-alexandria-no-centro-das-regras-de-neg%C3%B3cio-do-ifood-3e580b0b6e7f?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/3e580b0b6e7f</guid>
            <category><![CDATA[business-rules]]></category>
            <category><![CDATA[metrics-and-analytics]]></category>
            <category><![CDATA[data]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[libraries]]></category>
            <dc:creator><![CDATA[Carolina Moreira]]></dc:creator>
            <pubDate>Thu, 26 Jun 2025 20:54:04 GMT</pubDate>
            <atom:updated>2025-06-26T20:54:04.008Z</atom:updated>
            <content:encoded><![CDATA[<p><strong><em>Introdução</em></strong></p><p>“O meu número não bate com esse”.</p><p>Um frio na espinha abala a analista de dados. Desconforto, breves silêncios, promessas de que “os números serão conferidos de novo”. Esse cenário de terror corporativo é um medo constante sobre a cabeça dos times de dados em toda reunião que envolve mais de um time discutindo as mesmas métricas.</p><p>À medida que as organizações crescem, o compartilhamento de verdades se torna cada vez mais complexo. O boca-a-boca, a conversa de corredor, a “documentação soy yo” se tornam cada vez mais ineficientes para garantir que todos saibam a forma mais apropriada de se levantar os números relevantes para a tomada de decisão, e mecanismos de compartilhamento de conhecimento abrangentes, rápidos e de longo alcance se tornam tão mais relevantes.</p><p>Na prática, o que nós vemos entre as equipes de dados de modo geral é a multiplicidade de tabelas sendo geradas sobre os mesmos assuntos, muitas vezes com lógicas de negócio ligeiramente diferentes; próximas o suficiente para que se pense que estamos falando da mesma coisa, distantes o suficiente para surgirem atritos e discussões sobre qual seria o número correto.</p><p>O iFood é referência no Brasil por sua aptidão no trabalho com dados, o que possibilitou construir uma base sólida para tomar decisões constantemente orientadas a dados. Essa mentalidade nos trouxe até aqui, em ciclos de alto crescimento ao longo dos últimos anos.</p><p>Neste cenário de rápido progresso, a velocidade exigida na tomada de decisões resultou em redundâncias, falta de governança na definição de regras, dados perdidos ou conflitantes, e plataformas subutilizadas, dentre outros problemas. Esses fatores geraram custos desnecessários, impactando diretamente os resultados financeiros da empresa. Destaca-se também a ausência de responsabilidade por indicadores básicos do negócio, levando à multiplicidade de resultados que divergem entre si sobre o mesmo evento, dificultando em se tomar decisões rápidas e assertivas.</p><p><strong><em>Por que Alexandria?</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/239/1*6WHFegedaUw3CkP6dGpSgQ.png" /><figcaption>logo do projeto Alexandria</figcaption></figure><p>Essa conjuntura crítica já foi enfrentada por várias organizações em fases anteriores no desenvolvimento em gestão de dados, destacando-se grandes empresas como o Airbnb, o Spotify e a Doordash [<a href="https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70">1</a>], [<a href="https://www.sundeepteki.org/blog/how-big-tech-companies-define-business-metrics#:~:text=the%20data%20lineage.-,Spotify,-The%20Spotify%20global">2</a>], [<a href="https://careersatdoordash.com/blog/using-metrics-layer-to-standardize-and-scale-experimentation-at-doordash-2/">3</a>]. No passado, a ausência de padronização, eficiência, consistência e escalabilidade nos dados levou essas empresas a desafios significativos que, ao longo do tempo, perderam a confiança na qualidade dos dados e viram sua segurança na tomada de decisões reduzir gradativamente. Como o tempo, superaram essas dificuldades ao desenvolver soluções específicas, como as plataformas Minerva (Airbnb), Metrics Hub (Spotify) e Semantic Layer (Doordash), todas atuando nas especificidades de cada empresa, mas com um objetivo comum: servir como repositório central de métricas.</p><p>Foi pensando nos resultados dessas três empresas e nas nossas próprias dores que nasceu o projeto Alexandria. Inspirados na antiga biblioteca de Alexandria do século III a.C. — um imenso local que abrigava o conhecimento materializado em centenas de milhares de rolos de pergaminho, abrangendo áreas da filosofia, ciência, história, drama, dentre outras -, o nosso projeto veio para ser o mais completo repositório de regras de negócios, features e outras funcionalidades do iFood.</p><p>Materialmente, o Alexandria é uma biblioteca em python combinado com algumas rotinas automatizadas para que suas funcionalidades possam ser utilizadas também dentro do ambiente SQL do Databricks.</p><p>Na prática, ela é uma abstração que busca enfrentar os problemas descritos acima. O grande problema de se acompanhar a solução desse problema é que resta-nos acompanhar contrafactuais: o Alexandria está sendo eficaz quando tabelas <strong>não são criadas</strong>, quando regras de negócio <strong>não são multiplicadas</strong>, quando discussões <strong>não são levantadas </strong>em reunião porque todos estão cientes dos mesmos números. Como não é possível acompanhar os erros e confusões que não aconteceram e os recursos que não foram desperdiçados, parece-nos mais inteligente assumir que, se o time de Dados efetivamente vê valor na ferramenta, então observamos impactos tanto qualitativos quanto quantitativos na rotina do time.</p><p>Quantitativamente, medimos o uso: até maio de 2025, contabilizamos mais de 1700 regras registradas na biblioteca e, em média, são cerca de 166 regras novas cadastradas por mês. O gráfico a seguir ilustra a evolução do número de regras na biblioteca desde a sua fundação, em outubro de 2023.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*9ulrvemQ5CZWfpqw" /></figure><p>Outra métrica importante é o impacto transversal na organização, que pode ser medido pelo uso da biblioteca nos ETLs em produção. Só em maio de 2025 foram contabilizados quase 240 notebooks usando pelo menos uma regra no Alexandria. ETLs construídos utilizando a biblioteca são aqueles que buscam garantir conformidade transversal das métricas lá calculadas, por isso, são ETLs que estão prevenindo-se contra os problemas que a biblioteca busca sanar.</p><p>Qualitativamente, temos casos e histórias que demonstram tanto a capacidade de alinhamento transversal quanto a flexibilidade e eficiência da nossa ferramenta.</p><p><strong><em>Case de Integração entre times: sinergia pela governança e eficiência dos indicadores</em></strong></p><p>Ao longo do desenvolvimento do Alexandria, destacamos um marco fundamental: a integração estratégica entre o Alexandria e o time de Gestão, responsável pela criação dos relatórios de Impacto e Sustentabilidade — área transversal dedicada à centralização dos KPIs de diversas frentes do iFood. Tamanha responsabilidade demanda dados confiáveis, rastreáveis e alinhados, não apenas para o uso interno, mas também para garantir a credibilidade dos relatórios frente a auditorias externas e stakeholders.</p><p>Historicamente, a coleta de dados para relatórios de sustentabilidade era um processo fragmentado, dependendo de dezenas de planilhas, múltiplos pontos focais e inúmeras validações manuais. Em um único ciclo, por exemplo, foram utilizados mais de 28 planilhas, totalizando aproximadamente 565 indicadores monitorados por 15 times distintos de várias frentes de negócio — um cenário que tornava a padronização, a confiabilidade e a agilidade tarefas desafiadoras.</p><p>A iniciativa de integração nasceu da necessidade do time de Gestão de garantir não só a eficiência, mas principalmente a governança e a transparência no acesso aos dados. O Alexandria, nesse contexto, passou a assumir o papel de repositório central dos indicadores-chave, promovendo rastreabilidade, alinhamento conceitual e atualização contínua das regras. Com a implementação de novas funcionalidades — como o sistema de notificações para alterações de regras e o registro explícito dos responsáveis de cada indicador — aumentamos a segurança e reduzimos os riscos de desalinhamento nos processos de decisão.</p><p>Esse processo colaborativo envolveu uma série de ações de ambos os times: mapeamento dos indicadores e áreas envolvidas, priorização dos temas críticos, definição conjunta de critérios para padronização, treinamento dos participantes no uso e cadastro de regras no Alexandria, comunicação contínua com stakeholders, e a elaboração de documentação robusta garantindo histórico e sustentabilidade do projeto. As discussões passaram a ocorrer de maneira transparente dentro do próprio canal da plataforma, promovendo responsabilização e celeridade na resolução de divergências.</p><p>Como resultado, apenas no último ciclo, o time de Gestão superou sua meta ao cadastrar 118 indicadores — destes, 75 traduzidos em regras do Alexandria, demonstrando a flexibilidade e escalabilidade do sistema, visto que uma única regra parametrizada pode atender diferentes necessidades de reporte. A otimização do processo foi evidente: enquanto anteriormente a atualização anual dos dados demandava até três meses de trabalho, neste ciclo a mesma tarefa foi concluída em apenas<strong> três semanas</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/663/1*8T4EQLGPnZpHoP43q-F1Pw.png" /></figure><p>A sinergia entre Alexandria, Gestão e outras áreas envolvidas não apenas otimizou esforços e mitigou riscos, mas pavimentou o caminho para um processo cada vez mais automatizado e integrado. Este case reforça como a colaboração estruturada entre equipes e a evolução contínua de ferramentas e metodologias são essenciais para elevar o padrão de governança de dados do iFood, preparando a empresa para desafios ainda maiores e futuros ciclos de crescimento sustentável.</p><p><strong>Case de arquitetura flexível de dados para processos em evolução</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*kntRoeP0yJav-f8S" /><figcaption><em>etapa de cadastro no Self-Sign In</em></figcaption></figure><p>Um outro desafio crítico enfrentado pela empresa pode ser resolvido pelo Alexandria: a organização de dados para consumo analítico no processo de <em>onboarding </em>de restaurantes na plataforma. Este processo, dividido em duas etapas fundamentais — Self-Sign In (assinatura do contrato por autoatendimento) e Self-Setup (criação do perfil com todas as informações necessárias para recebimento de pedidos) — representa um fluxo crucial para o crescimento do nosso marketplace.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/0*ji9IqtRrCIktqt56" /><figcaption><em>página de perfil do self-setup up</em></figcaption></figure><p>A análise e monitoramento eficaz deste processo exige a captura precisa de eventos relevantes ao longo de toda a jornada de integração. No entanto, enfrentávamos um desafio significativo: nosso produto evolui rapidamente, o que significa que os eventos relevantes são constantemente criados, descontinuados e reordenados.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-LEWpMtLl0lYD2SB" /><figcaption><em>estrutura ideal de tabelas de eventos para análises de processos</em></figcaption></figure><p>A abordagem tradicional seria manter um ETL monolítico responsável por capturar todos os eventos relevantes, exigindo redesenho e modificação a cada alteração no processo. Porém, optamos por uma proposta mais ágil e escalável: construir queries padronizadas para cada evento do processo, compartimentalizando o cálculo de cada evento na biblioteca Alexandria e mantendo um ETL em produção que serve apenas para unir o resultado dessas queries.</p><p>Esta arquitetura modular traz uma vantagem significativa: a adição ou remoção de eventos pode ser realizada através de uma simples atualização em uma lista Python contendo os nomes das queries relevantes para o ETL específico. Simultaneamente, a modificação nas regras de captura dos eventos pode ser implementada diretamente na Alexandria, afetando apenas os eventos que precisam ser modificados, garantindo uma estrutura verdadeiramente modularizada e escalável.</p><p>Embora a camada analítica criada ainda seja relativamente nova, já observamos impactos significativos. A flexibilidade na alteração e criação de eventos permitiu ao time iterar e reconstruir soluções com muito mais velocidade, adaptando-se rapidamente às necessidades dos times de negócio e de produto. Esta abordagem também tem facilitado o alinhamento de métricas entre equipes diversas, possibilitando a construção ágil de novos eventos requisitados à medida que os stakeholders começam a utilizar a camada analítica disponibilizada.</p><p><strong>Como funciona na prática?</strong></p><p>O Alexandria é uma biblioteca em Python desenvolvida para solucionar os problemas do nosso ambiente analítico considerando quatro principais pilares:</p><ol><li><strong>Governança</strong>, ao unificar o conceito das regras e ao disseminar o entendimento, acesso e construção de indicadores e resultados de negócio, eliminando divergências;</li><li><strong>Escalabilidade</strong>, ao permitir que a construção dos nossos produtos de dados possam atender às demandas e às constantes evoluções dos times de dados e de negócio e ao facilitar a integração, operacionalização e gerenciamento das regras;</li><li><strong>Eficiência</strong>, ao centralizar e reduzir custos e tempo no cálculo de indicadores transversais;</li><li><strong>Resiliência</strong>, ao garantir a entrega consistente e em prazo adequado das regras, contribuindo para decisões mais ágeis.</li></ol><p>O Alexandria oferece três tipos de funcionalidades de regras: filtros, colunas e queries, que iremos explicar na sequência, e também habilita o uso de adaptadores, que são arquivos de metadados específicos para determinadas áreas de data, e não são consideradas regras. Juntos, regras e adaptadores permitem que analistas de dados e de negócio possam realizar consultas dentro do seu ambiente analítico. Todas essas informações estão cadastradas em um repositório do Gitlab chamado Codex, em homenagem ao tipo de livro manuscrito comumente utilizado na antiguidade. Mais recentemente, é possível também obter features que são exclusivamente utilizadas pelo time de Data Science e Machine Learning, mas não entraremos em detalhes neste artigo sobre o funcionamento destes.</p><p>No que se refere ao uso das regras — filtros, colunas e queries — a biblioteca está organizada obedecendo à estrutura hierárquica de áreas do iFood separada em domínios, subdomínios e módulos até chegar às regras de negócio. O acesso às regras pode ser feito tanto em Python quanto em SQL. No primeiro caso, usando o recurso de <em>autocomplete</em> do Python, cada etapa da hierarquia é obtida a partir da digitação do “ . “, que lista todas as opções disponíveis naquele nível da navegação. Em SQL o uso é um pouco diferente: cada regra cadastrada ou atualizada no repositório do Codex é convertida em uma função e fica disponível no catálogo da Databricks. No entanto, ainda existem limitações no processo de conversão, o que impede que 100% das regras existentes no Codex estejam disponíveis em SQL.</p><p>Para deixar mais claro o funcionamento de filtros, colunas e queries, vamos exemplificar na prática o uso de cada um deles. Iremos demonstrar o seu uso somente em Python, por simplicidade.</p><p><strong>Filtros</strong>:</p><p>São regras utilizadas no Alexandria para filtrar uma tabela fonte. Essa regra é cadastrada num arquivo .yaml, onde são necessários especificar o nome, uma descrição, a regra de negócio em si como uma expressão em SQL, e a tabela fonte compatível com a regra. Confira abaixo a definição do filtro de pedidos concluídos e como utilizá-lo:</p><p>Domínio: <em>orde</em></p><p>Subdomínio: <em>ov4</em></p><p>Produto: <em>status</em></p><p>Arquivo: <em>filters.yaml</em></p><p>Regra: <em>order_filters.status_good_orders</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/892/1*_62Goijey1vLMGVlF7X2IQ.png" /></figure><p>Para usar, basta acessar o produto de dados e criar a coluna utilizando a função filter do PySpark:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/867/1*DMQlCZ85SuDM_jUzDi3DHQ.png" /></figure><p>Quando dizemos que a regra deve ser compatível com a tabela fonte, nos referimos à existência da coluna <em>current_status</em> especificada em rule no <em>data product</em> registrado em <em>compatible_with</em>.</p><p><strong>Colunas</strong>:</p><p>São regras utilizadas no Alexandria para criar uma coluna em uma tabela fonte. Assim como no caso dos filtros, essa regra também é cadastrada em um arquivo .yaml e necessita dos mesmos tipos de informações. Veja no exemplo abaixo como criar uma coluna que faz conversões de data:</p><p>Domínio: <em>orde</em></p><p>Subdomínio: <em>ov4</em></p><p>Produto: <em>orders</em></p><p>Arquivo: <em>columns.yaml</em></p><p>Regra: <em>consumption.order_at_local</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/894/1*TqI1kMSfzFx6ziQH9n6UZg.png" /></figure><p>Para usar, basta ler o <em>data product</em> e criar a coluna usando a função <em>withColumn</em> nativa do PySpark</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/785/1*q36T9cMyMRS9vrcL5BMnSA.png" /></figure><p><strong>Queries</strong>:</p><p>São regras utilizadas no Alexandria para obter uma tabela já tratada. Ao contrário de filtros e colunas, as queries são cadastradas em arquivos com extensão .sql e o próprio nome do arquivo é o nome da regra. Queries são muito versáteis, pois é possível especificar parâmetros de modo que o usuário pode ajustar a tabela no modo que precisa analisar, sem precisar se preocupar com a definição que gerou a tabela. Para cadastrar esse tipo de regra, é necessário especificar metadados como descrição, tabelas usadas, chave primária e parâmetros com seus respectivos tipos, escritos como um cabeçalho em formato de um yaml comentado e na sequência, especificar o código em SQL. A query do exemplo a seguir gera uma tabela agregada com o total de pedidos concluídos por turno em um determinado período de tempo.</p><p>Domínio: <em>orde</em></p><p>Subdomínio: <em>ov4</em></p><p>Produto: <em>status</em></p><p>Arquivo: <em>queries/total_concluded_orders_by_shift.sql</em></p><p>Regra: <em>total_concluded_orders_by_shift</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/887/1*XDEnJbiZ4eAecT7i-LwJ5w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/730/1*wteF39UPORKVNTThCFU-Dw.png" /></figure><p>Para usar uma query não é necessário especificar a tabela fonte, uma vez que os data products (as sources) já são utilizados no próprio código. Como a regra acima tem parâmetros, basta escolher os valores desejados. Neste caso em particular, é preciso definir as datas de início e fim:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/836/1*Nayg03bF16-GKu7HTZLRNg.png" /></figure><p>Vale ressaltar que filtros e colunas também podem ser parametrizados como as queries e seu uso é muito similar ao demonstrado neste último exemplo.</p><p>Com os exemplos mostrados até aqui, podemos ver que, com poucas linhas de código, o analista de dados e de negócio podem, facilmente, abstrair da sua decisão em definir a regra de negócio. Com isso, o Alexandria garante a padronização do conceito, maior agilidade no processo analítico e a mitigação de erros advindos da multiplicidade de definições por parte da interpretação subjetiva dos analistas. Assim, a regra cadastrada no Alexandria garante que produtos de dados gerados por diferentes times dentro do iFood possuam consistência em seus conceitos e, com isso, possam trazer alinhamento em suas decisões orientadas a dados. Além disso, o Alexandria não materializa nenhuma regra, evitando custos de processamento e armazenamento.</p><p>Para que o nosso repositório de conhecimento cresça é essencial a colaboração dos times do iFood, uma vez que cada área é responsável por definir suas próprias regras de negócio. Neste contexto, o Alexandria é considerado um projeto comunitário em constante evolução, alimentado pela participação ativa de seus membros. Para que o repositório esteja em contínuo desenvolvimento, definimos papeis e responsabilidades para o que chamamos de três principais <em>personas</em>:</p><ul><li>os administradores, que garantem a governança das regras e gerenciam a plataforma, prestando suporte a todos os membros da comunidade;</li><li>os <em>codeowners</em>, responsáveis pela definição e sustentação das regras ao longo do tempo, mantendo sempre atualizadas e disponíveis para uso;</li><li>os analistas, que são os consumidores destas regras e que precisam da garantia de que elas estejam corretas e operantes para tomar decisões de negócio com precisão. Sempre que necessário, os analistas contam com a ajuda dos codeowners para solicitar o cadastro e/ou atualização de regras.</li></ul><p><strong><em>Conclusão</em></strong></p><p>Com o Alexandria, o iFood deu um passo decisivo rumo à excelência na gestão e utilização de dados, consolidando as melhores práticas de governança, eficiência, escalabilidade e resiliência. Mais do que uma ferramenta técnica, o projeto simboliza uma mudança de paradigma na forma como trabalhamos com dados, transformando informações em dados acionáveis que orientam decisões estratégicas e impulsionam nossos resultados.</p><p>O sucesso do Alexandria será tanto maior quanto for o engajamento da nossa comunidade. A colaboração ativa das <em>personas</em> é e ainda será fundamental para ampliar e fortalecer o repositório de regras, assegurando que ele continue evoluindo juntamente com as necessidades do iFood. Assim, estruturamos uma base sólida para o futuro, criando um ambiente de dados funcional, coeso e preparado para os desafios que estão por vir.</p><p><em>Texto escrito em parceria com Celso Mattheus C. Silva, analista de dados no iFood.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3e580b0b6e7f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/de-papiros-a-queries-alexandria-no-centro-das-regras-de-neg%C3%B3cio-do-ifood-3e580b0b6e7f">De papiros a queries: Alexandria no centro das regras de negócio do iFood</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[SAL: Uma Abordagem Inteligente para Escalar a Rotulação de Dados no iFood]]></title>
            <link>https://medium.com/ifood-tech/sal-uma-abordagem-inteligente-para-escalar-a-rotula%C3%A7%C3%A3o-de-dados-no-ifood-8e52f1e4a9a1?source=rss----d8f930b20416---4</link>
            <guid isPermaLink="false">https://medium.com/p/8e52f1e4a9a1</guid>
            <category><![CDATA[data-annotation-services]]></category>
            <category><![CDATA[active-learning]]></category>
            <category><![CDATA[data-labeling]]></category>
            <category><![CDATA[model-evaluation]]></category>
            <category><![CDATA[genai]]></category>
            <dc:creator><![CDATA[Feliphe Galiza]]></dc:creator>
            <pubDate>Thu, 29 May 2025 16:40:19 GMT</pubDate>
            <atom:updated>2025-05-30T13:40:05.774Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1007/1*_yujlqGO8PMC0rjQXcllsg.png" /></figure><p><a href="https://institucional.ifood.com.br/sobre/">Com 120 milhões de pedidos mensais</a> e <a href="https://institucional.ifood.com.br/releases/efeito-ifood-fipe/">impacto de 0,55% no PIB brasileiro segundo a Fipe</a>, o iFood evoluiu para além do delivery. Nos transformamos em uma plataforma completa de conveniência multicategoria, com <a href="https://exame.com/marketing/ifood-celebra-120-milhoes-de-pedidos-mensais-com-campanha-na-times-square/">crescimento de 50% em novas verticais no último ano</a>. Para sustentar esta operação massiva e preparar o caminho para o futuro, precisamos constantemente evoluir nossos modelos de inteligência artificial e há um elemento fundamental nessa equação: <strong>dados rotulados de alta qualidade</strong>.</p><p>Foi pensando nisso que desenvolvemos o <strong>SAL (Smart Automated Labeling)</strong>, uma biblioteca de rotulação de dados desenvolvida internamente pelo time de tecnologia do iFood. Nas próximas seções, exploraremos como esta tecnologia proprietária está transformando nossa capacidade de inovação, reduzindo drasticamente o tempo de desenvolvimento e aumentando a qualidade das predições dos nossos modelos.</p><h3>Desafios com rotulações manuais</h3><p>A abordagem tradicional de rotulação manual apresenta diversos desafios significativos que têm sido objeto de análise em estudos e relatórios da indústria:</p><ul><li><strong>Investimento Considerável</strong>: De acordo com <a href="https://www.factmr.com/report/data-labeling-solution-and-services-market">projeções da FactMR (2024)</a>, o mercado global de soluções e serviços de rotulação de dados poderá alcançar aproximadamente US$92,4 bilhões até 2034. Este crescimento substancial sugere o volume de investimento que organizações de todos os portes estão direcionando para desenvolver datasets de qualidade.</li><li><strong>Tempo e Recursos:</strong> O relatório <a href="https://know.anaconda.com/rs/387-XNW-688/images/ANA_2022SODSReport.pdf">State of Data Science 2022 da Anaconda</a>, com base em mais de 3.400 respondentes, revela que cientistas de dados dedicam cerca de 37,75% de seu tempo em atividades de preparação e limpeza de dados. A pesquisa <a href="https://www.jetbrains.com/lp/devecosystem-2023/data-science">JetBrains Developer Ecosystem 2023</a> indica que 46% das equipes gastam mais de 30% de seu tempo gerenciando, limpando ou rotulando dados, destacando o impacto significativo desta etapa no ciclo de desenvolvimento.</li><li><strong>Variabilidade na Qualidade:</strong> Um dos desafios frequentemente relatados em projetos de rotulação de dados é a inconsistência na interpretação de diretrizes. Diferentes anotadores podem compreender as mesmas instruções de formas variadas, potencialmente introduzindo inconsistências nos dados de treinamento que podem influenciar o desempenho dos modelos.</li><li><strong>Desafios de Escalabilidade:</strong> À medida que os modelos de machine learning evoluem em complexidade, a quantidade de dados rotulados necessários para treinamento também aumenta significativamente. Esta tendência, observada em análises do setor, torna cada vez mais desafiador escalar processos manuais de rotulação para acompanhar as demandas crescentes por dados de treinamento de alta qualidade.</li></ul><h3>A Evolução das Abordagens de Rotulação</h3><p>Em resposta a esses desafios, a comunidade de pesquisa e desenvolvimento tem explorado diferentes estratégias para otimizar o processo de rotulação sendo alguma delas:</p><ul><li><strong>Aprendizado Ativo</strong>: Esta abordagem busca otimizar o processo de rotulação priorizando as amostras com maior potencial de contribuição para o aprendizado do modelo. Ao identificar e focar nos casos mais informativos, o aprendizado ativo pode reduzir significativamente a quantidade total de dados que necessitam de rotulação manual.</li><li><strong>Rotulação Semi-Supervisionada</strong>: Combinando um conjunto limitado de dados rotulados com um volume maior de dados não rotulados, esta técnica permite treinar modelos que podem generalizar além dos exemplos rotulados.</li><li><strong>Supervisão Fraca (Weak Supervision)</strong>: Esta metodologia utiliza fontes de supervisão alternativas — como regras heurísticas, modelos existentes e bases de conhecimento — para gerar rótulos probabilísticos. A vantagem principal é a possibilidade de criar conjuntos de dados de treinamento sem depender exclusivamente de rotulação manual extensiva.</li><li><strong>Rotulação Assistida por LLMs</strong>: O uso de grandes modelos de linguagem para auxiliar na geração de rótulos tem emergido como uma tendência interessante. Contudo, implementações que dependem exclusivamente de um único LLM podem enfrentar limitações de precisão e confiabilidade, especialmente em domínios especializados ou com dados complexos.</li></ul><p>Apesar dos avanços significativos nestas abordagens, cada método individualmente ainda apresenta limitações quando aplicado a problemas do mundo real que exigem níveis elevados de precisão e confiabilidade. É neste contexto que soluções híbridas, combinando múltiplas técnicas, mostram-se particularmente promissoras.</p><h3>O que é o SAL?</h3><p>O <strong>SAL (Smart Automated Labeling)</strong> é uma biblioteca para automatizar a anotação de dados para treinamento ou avaliação de modelos de machine learning de forma rápida e confiável. Ele representa uma evolução na trajetória de rotulação de dados no iFood, combinando o poder de múltiplos LLMs através de um sistema de consenso para superar as limitações individuais de cada modelo.</p><p>Enquanto a rotulação automatizada com um único LLM pode apresentar variabilidade e imprecisões expressivas, o sistema de consenso do SAL:</p><ul><li>Distribui a mesma tarefa de rotulação para múltiplos modelos</li><li>Analisa as respostas individuais de cada modelo</li><li>Tende a estimar o rótulo verdadeiro com precisão mesmo em meio à anotações ruidosas</li><li>Quantifica o nível de confiança na rotulação final</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*aU6WDEWJXMGYrfgr" /><figcaption><em>Exemplo de tarefa de rotulação de taxonomia utilizando o SAL</em></figcaption></figure><p>Nas próximas seções, exploraremos em detalhes como o SAL funciona, seus componentes técnicos, casos de uso e o impacto mensurável já produzido nas aplicações de IA do iFood.</p><h3>Componentes do SAL</h3><h4>Tarefa de rotulação</h4><p>A primeira etapa a ser definida ao utilizar o SAL é a especificação da tarefa de rotulação, esta especificação é definida no prompt a ser utilizado como entrada para os rotuladores.</p><p>O SAL inicialmente foi desenvolvido para suportar apenas tarefas de classificação. No iFood temos múltiplas tarefas com essas características, como por exemplo:</p><ul><li>Categorização de itens ou merchants</li><li>Detecção de itens proibidos</li><li>Detecção das intenções do usuário na Busca</li><li>Detecção das intenções dos usuários, entregadores e comerciantes nas conversas do chat</li><li>Entre outros</li></ul><h4>Modelos distintos</h4><p>O <strong>SAL</strong> possui acesso a múltiplas LLMs distintas através da <a href="https://medium.com/ifood-tech/genplat-a-plataforma-de-ia-generativa-do-ifood-8d5715015b4a"><strong>GenPlat (Plataforma de IA Generativa do iFood)</strong></a>. Além disso, o iFood também possui mais de 150 modelos de IA proprietários em produção e que em alguns casos também podem ser utilizados como rotuladores em situações de melhoria contínua, ou até mesmo auxiliares de uma outra tarefa. Por exemplo, saber a taxonomia de um item pode ajudar a determinar o rótulo de relevância do item para um determinado usuário.</p><p>Rotuladores distintos são fundamentais para:</p><ul><li><strong>Redução de Ruído</strong>: Múltiplos rotuladores ajudam a minimizar o impacto de erros aleatórios</li><li><strong>Captura de Incerteza</strong>: A variação entre rotuladores permite estimar a incerteza dos rótulos</li><li><strong>Robustez a Outliers</strong>: Rotuladores discordantes podem ser identificados e tratados adequadamente</li></ul><h3>Modelos de Consenso</h3><p>Os modelos de consenso do SAL visam combinar as respostas de múltiplos rotuladores (modelos de IA ou humanos) para obter um rótulo final mais preciso e confiável. Abaixo, estão detalhados alguns métodos comumente utilizados e suportados:</p><h4>Voto Majoritário</h4><ul><li><strong>Tipo de Resposta:</strong> Categórica</li><li><strong>Descrição:</strong> A classe com o maior número de votos é selecionada como o rótulo final.</li><li><strong>Fórmula:</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/496/0*6ruaXLmUWipuFL3G" /></figure><p>Onde:</p><ul><li>ℒ é o conjunto de rótulos possíveis</li><li>𝒲 é o conjunto de rotuladores</li><li>aij é a resposta do rotulador j para a tarefa i</li><li>I é a função indicadora</li></ul><h4>WAWA (Weighted Average per Worker Agreement)</h4><ul><li><strong>Tipo de Resposta:</strong> Categórica</li><li><strong>Descrição:</strong> Pondera os votos com base no histórico de concordância de cada rotulador. Rotuladores mais confiáveis têm maior peso.</li><li><strong>Fórmula:</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/524/0*IkGnuDiL_gM9ba7E" /></figure><p>Com:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/734/0*BPStORcMGx0-NO0d" /></figure><p>Onde:</p><ul><li>ℒ é o conjunto de rótulos possíveis</li><li>aij é a resposta do rotulador j para a tarefa i</li><li>I é a função indicadora</li><li>Ƭj é o conjunto de tarefas que o rotulador j rotulou</li><li>𝒲i é o conjunto de rotuladores que rotularam a tarefa i</li></ul><h4>Dawid-Skene</h4><ul><li><strong>Tipo de Resposta:</strong> Categórica</li><li><strong>Descrição:</strong> Utiliza Expectativa-Maximização (EM) para estimar a probabilidade de cada rotulador atribuir o rótulo correto, considerando a dificuldade da tarefa.</li></ul><p>Envolve duas etapas:</p><ol><li><strong>Expectativa (E):</strong> Estima a probabilidade de cada rótulo verdadeiro dado os votos dos rotuladores</li><li><strong>Maximização (M):</strong> Atualiza a probabilidade de cada rotulador esta correto para cada classe e a distribuição dos rótulos verdadeiros.</li></ol><p>É um processo iterativo até a convergência.</p><h4>Bradley-Terry</h4><ul><li><strong>Tipo de Resposta:</strong> Comparação entre pares</li><li><strong>Descrição:</strong> Modela a probabilidade de uma resposta ser preferida sobre outra.</li><li><strong>Fórmula:</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/366/0*jOePmtqjpqcaIIcX" /></figure><p>Onde:</p><ul><li>P(i ≻ j) é a probabilidade da resposta i ser preferida à resposta j</li><li>𝜃i &gt;0 é a “habilidade” ou “força” da resposta i</li></ul><p>O objetivo é estimar os parâmetros 𝜃 para todas as respostas com base nas comparações observadas.</p><h4>Noisy Bradley-Terry</h4><ul><li><strong>Tipo de Resposta:</strong> Comparação entre pares</li><li><strong>Descrição:</strong> Adaptação do Bradley-Terry considerando variações na qualidade das respostas. Similar ao Bradley-Terry, mas introduz parâmetros de ruído ou variabilidade na qualidade das respostas.</li><li><strong>Fórmula:</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/670/0*8BIHP3MmEVb4fy4f" /></figure><p>Onde:</p><ul><li>P(i ≻ j) é a probabilidade da resposta i ser preferida à resposta j</li><li>𝜃i &gt;0 é a “habilidade” ou “força” da resposta i</li><li>𝜖i é um parâmetro de ruído, representando a probabilidade de uma comparação ser feita aleatoriamente</li></ul><h4>Observações</h4><ul><li>As fórmulas apresentadas são simplificações para dar uma ideia geral do funcionamento de cada método</li><li>A biblioteca <a href="https://github.com/Toloka/crowd-kit">crowd-kit</a> implementa esses e outros métodos semelhantes que podem ser utilizados como modelo de consenso</li><li>A escolha do modelo de consenso depende do tipo da resposta desejada, da confiabilidade dos rotuladores e dos requisitos de precisão da aplicação</li></ul><h3>Caso de uso — Expansão do Modelo de Taxonomia</h3><h4>Desafio</h4><p>O modelo de taxonomia do iFood é responsável por atribuir categorizações únicas para itens de acordo com uma estrutura de árvore hierárquica. Essas classificações são extremamente importantes porque são metadados valiosos para recomendações, buscas, criação de listas, caracterização dos tipos de oferta por região, estimativa do tempo de preparo, entre outras aplicações essenciais para a operação do iFood.</p><p>Diante do cenário de grande expansão do iFood, a quantidade e diversidade de itens ofertados na plataforma têm crescido de maneira expressiva nos últimos anos e isso faz com que o modelo de taxonomia precise de adaptação constante para cobrir a maior quantidade de oferta disponível e também ter cada vez mais granularidade de categorização para cada item disponível na plataforma.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QMTD2XQp2Nzv55OV" /><figcaption><em>Classificador de taxonomia do iFood</em></figcaption></figure><p>Cada nó da árvore de taxonomia possui uma definição própria que é construída cuidadosamente para que os nós da árvore sigam o princípio <a href="https://en.wikipedia.org/wiki/MECE_principle">MECE (Mutuamente Exclusivo e Coletivamente Exaustivo)</a>, ou seja, não podem existir sobreposições entre definições e todos os itens disponíveis como oferta no iFood devem ter nós onde possam ser categorizados.</p><p>Inicialmente as rotulações para gerar as bases de dados de treinamento e validação para o modelo de taxonomia eram totalmente realizadas por humanos, com o surgimento das LLMs o número de exemplos foram incrementados em 36% através de rotulações automáticas com apenas uma LLM, mas ainda assim havia grande esforço humano empregado revisando amostras de rotulações para reduzir o impacto da inserção de exemplos rotulados incorretamente nas bases de dados.</p><h4>Solução</h4><p>O SAL foi integrado ao pipeline do modelo de taxonomia para realizar as rotulações nos 4 níveis da árvore utilizando 2 LLMs de desempenho similar em benchmarks públicos, sendo uma delas a mesma que foi utilizada para rotular os dados existentes anteriormente.</p><p>O uso dessa estratégia nas rotulações do modelo de taxonomia resultou em aumento de 55,7% nos dados de treino e validação, gerando ganho de 66,7% na cobertura de itens com classificação e 43,6% na precisão do modelo de taxonomia.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jp0j_P5oR3VPPDbo" /><figcaption><em>O uso do SAL resultou em aumento de 55,7% nos dados de treino e validação, gerando um ganho de 66,7% na cobertura de itens com classificação e 43,6% na precisão do modelo de taxonomia.</em></figcaption></figure><h4>Inspeção de rotulações com baixa confiabilidade</h4><p>Além do impacto positivo entregue por rotulações com alta confiabilidade, a inspeção de rotulações com baixa confiabilidade revelou nós ambíguos na árvore de taxonomia, os quais prejudicam a precisão das rotulações e do modelo. A correção desses casos, assim como a obtenção de rotulações altamente confiáveis, contribui para ganhos de qualidade.</p><h3>Benefícios em geral</h3><p>Esses são alguns benefícios observados por times que utilizam o SAL:</p><ul><li>Aumento de qualidade das predições dos modelos</li><li>Ganhos de produtividade no desenvolvimento de modelos supervisionados</li><li>Redução de custos com rotulação</li><li>Identificação de ambiguidades que degradam o desempenho dos modelos</li><li>Habilita monitoramento contínuo mais robusto</li><li>Habilita retroalimentação de exemplos para treinamento contínuo utilizando técnicas de aprendizado ativo</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ygRjJbaTbrdmqfMR" /><figcaption><em>Framework de Active Learning do iFood</em></figcaption></figure><h4>Conclusão</h4><p>O SAL revolucionou a rotulação de dados no iFood, otimizando a qualidade e eficiência dos modelos de IA. A combinação de LLMs e consenso acelera a rotulação e melhora a precisão, resultando em modelos de IA superiores.</p><p>Resultados concretos, como o aumento na cobertura de itens classificados e na precisão da taxonomia, comprovam o impacto positivo no iFood. Equipes relatam melhor qualidade das predições, maior produtividade e redução de custos, consolidando o SAL como ferramenta essencial para o futuro da IA na empresa.</p><p>O iFood continuará investindo no SAL, explorando novas funcionalidades e expandindo seu uso. Em suma, o SAL fomenta a inovação e o desenvolvimento do iFood, capacitando a empresa a liderar o setor e a proporcionar a melhor experiência aos clientes. O SAL demonstra como a tecnologia estratégica transforma desafios em oportunidades, impulsionando o sucesso do negócio.</p><h4>Sobre o autor</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2RDokWWDi9PyaQilo0jChA.png" /></figure><h4>Agradecimentos</h4><p><strong>Oferta AI Team</strong>: Anna Castro, Antonio Pinto, Danilo Romoaldo, Isabelle Martins, Matheus Ferreira, Murilo Menezes, Nicoli Araujo e Rafael Silva</p><h4>Referências</h4><ul><li><a href="https://medium.com/ifood-tech/genplat-a-plataforma-de-ia-generativa-do-ifood-8d5715015b4a">GenPlat: A Plataforma de IA Generativa do iFood</a></li><li>Ustalov D., Pavlichenko N., Tseitlin B. (2024). Learning from Crowds with Crowd-Kit. Journal of Open Source Software, 9(96), 6227</li><li><a href="https://know.anaconda.com/rs/387-XNW-688/images/ANA_2022SODSReport.pdf">Anaconda. (2022). State of Data Science 2022</a></li><li><a href="https://www.jetbrains.com/lp/devecosystem-2023/data-science">JetBrains. (2023). Developer Ecosystem 2023: Data Science</a></li><li><a href="https://www.factmr.com/report/data-labeling-solution-and-services-marketarrow_outward">Fact.MR (2024) <em>Data Labeling Solution and Services Market</em></a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8e52f1e4a9a1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/ifood-tech/sal-uma-abordagem-inteligente-para-escalar-a-rotula%C3%A7%C3%A3o-de-dados-no-ifood-8e52f1e4a9a1">SAL: Uma Abordagem Inteligente para Escalar a Rotulação de Dados no iFood</a> was originally published in <a href="https://medium.com/ifood-tech">iFood Tech</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>