Pular para o conteúdo

Arquitetura real · Sênior

Instagram Explore

Arquitetura real em produção. Pontos centrais: two towers, ranqueamento early/late stage, ig2vec e filtros de integridade.

17 min de leitura · Fonte: Instagram · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Arquitetura real em produção. Pontos centrais: two towers, ranqueamento early/late stage, ig2vec e filtros de integridade. O Explore é a superfície do Instagram para descobrir fotos, vídeos e Stories relevantes para os interesses de cada pessoa. A Meta diz que mais da metade da comunidade do Instagram o visita todo mês e, em outro texto, que centenas de milhões de…

01 · CONTEXTO E ESCALA

O que é o Explore e por que ele é difícil

O Explore é a superfície do Instagram para descobrir fotos, vídeos e Stories relevantes para os interesses de cada pessoa. A Meta diz que mais da metade da comunidade do Instagram o visita todo mês e, em outro texto, que centenas de milhões de pessoas o visitam por dia.

O desafio central é recomendar o conteúdo mais relevante entre bilhões de opções, em tempo real e em escala, o que traz vários desafios de projeto de sistemas de ML. O post da Meta AI descreve o resultado como um funil de ranqueamento em 3 partes que extrai 65 bilhões de atributos e faz 90 milhões de previsões de modelo a cada segundo.

Este caso usa duas fontes da Meta: o post da Meta AI sobre o Explore e um post de engenharia sobre como o sistema foi escalado. O segundo resume a ideia que atravessa o texto: uso inteligente de cache e de pré-cálculo nas diferentes etapas de ranqueamento, o que permite usar modelos mais pesados em cada etapa.

02 · GERAÇÃO DE CANDIDATOS

Das contas semente a um inventário elegível

O post da Meta AI divide o Explore em duas etapas principais: geração de candidatos (também chamada de sourcing) e ranqueamento.

A geração parte de contas com que a pessoa já interagiu, por exemplo ao curtir ou salvar mídia de uma conta, para achar outras contas de interesse; elas são chamadas de contas semente. Em vez de olhar mídia por mídia, o pipeline de recuperação foca em informação no nível de conta.

Os embeddings de conta vêm do ig2vec, um framework parecido com o word2vec que trata os IDs de conta com que a pessoa interage como uma sequência de palavras numa frase. Uma busca KNN então encontra contas topicamente parecidas com qualquer conta do embedding, e a versão descrita cobre milhões de contas.

As fontes são escritas em IGQL, uma linguagem específica de domínio otimizada para recuperar candidatos. A execução é otimizada em C++ para reduzir latência e uso de computação, e cada tipo de fonte é uma subconsulta IGQL diferente.

  1. A pessoa abre o Explore e o serviço aciona as fontes de candidatos, cada uma uma subconsulta IGQL.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatossubconsultas
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilação
    CPRede neural leve
    CPRede neural profunda
  2. As fontes partem das contas semente: contas com que a pessoa já interagiu.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoacontas semente
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilação
    CPRede neural leve
    CPRede neural profunda
  3. O índice devolve contas parecidas com as contas semente, por busca de vizinhos mais próximos entre embeddings de conta.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similarescontas parecidas
    CPFiltros de integridade
    CPPasse de destilação
    CPRede neural leve
    CPRede neural profunda
  4. Antes de formar o inventário elegível, os filtros removem o que não pode ser recomendado.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridadefiltra
    CPPasse de destilação
    CPRede neural leve
    CPRede neural profunda
  5. A cada pedido de ranqueamento, 500 candidatos amostrados do inventário elegível seguem para o ranqueamento.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilaçãorecebe candidatos
    CPRede neural leve
    CPRede neural profunda

Antes de formar o inventário elegível de cada pessoa, a Meta filtra o conteúdo que identifica como não elegível; além de bloquear conteúdo que provavelmente viola políticas e desinformação, usa sistemas de ML para detectar e filtrar conteúdo como spam. A cada pedido de ranqueamento, são identificadas milhares de mídias elegíveis para uma pessoa média, das quais 500 candidatos são amostrados e enviados à etapa de ranqueamento.

03 · RANQUEAMENTO EM PASSES

Destilação, rede leve e rede profunda

Com 500 candidatos disponíveis, o post da Meta AI usa uma infraestrutura de ranqueamento em três estágios para equilibrar relevância do ranqueamento e eficiência computacional.

  1. O primeiro passe é o modelo de destilação, com atributos mínimos, que fica com 150 dos 500 candidatos.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilaçãodestilação
    CPRede neural leve
    CPRede neural profunda
  2. O segundo passe é uma rede neural leve com o conjunto completo de atributos densos e escolhe 50 candidatos.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilação
    CPRede neural leverede leve
    CPRede neural profunda
  3. O passe final é uma rede neural profunda com atributos densos e esparsos e escolhe 25 candidatos para a primeira página.

    Diagrama da arquitetura: Explore: candidatos por contas e ranqueamento em passes
    CLPessoa no app
    CPServiço Explore
    CPFontes de candidatos
    DBInterações da pessoa
    DBÍndice de contas similares
    CPFiltros de integridade
    CPPasse de destilação
    CPRede neural leve
    CPRede neural profundarede profunda
CritérioPrimeiro passeSegundo passePasse final
ModeloDestilação que imita os outros passesRede neural leveRede neural profunda
AtributosMínimosConjunto completo de atributos densosAtributos densos e esparsos
Candidatos que seguem150 de 5005025

O primeiro passe é um modelo super leve que aprende a aproximar o máximo possível os modelos principais de ranqueamento. Entradas e saídas dos modelos mais complicados são gravadas, e a perda de ranqueamento NDCG sobre a saída do modelo principal é o objetivo do treino. O ganho descrito é avaliar um conjunto maior de mídias por pedido mantendo os recursos computacionais sob controle.

Uma rede neural multi-tarefa e multi-rótulo (MTML) prevê as ações sobre cada mídia, que incluem ações positivas como curtir e salvar e também ações negativas. As previsões são combinadas por uma fórmula aritmética chamada modelo de valor; se salvar importa mais que curtir, o peso de salvar deve ser maior.

O modelo de valor também recebe uma regra simples de diversidade: posts do mesmo autor ou da mesma conta semente são rebaixados com um fator de penalidade, que cresce ao descer o lote ranqueado e encontrar mais posts do mesmo autor.

04 · RETRIEVAL COM DUAS TORRES

Embeddings offline e busca aproximada

O post de engenharia, de agosto de 2023, descreve uma abordagem de ranqueamento em várias etapas bem definidas, cada uma com objetivos e algoritmos próprios.

No retrieval, a função de uma fonte é escolher centenas de itens relevantes entre bilhões. As fontes podem ser heurísticas, como posts em alta, ou abordagens de ML mais sofisticadas, em tempo real ou pré-geradas. Candidatos de várias fontes são combinados e passados aos modelos de ranqueamento, e os de fontes pré-geradas podem ser gerados offline fora do pico, o que contribui para a escalabilidade.

O modelo Two Tower tem duas redes neurais separadas, uma para o usuário e outra para o item. Cada rede consome só atributos da própria entidade e produz um embedding, e o objetivo é prever eventos de engajamento (como curtir um post) como medida de similaridade entre os embeddings de usuário e de item.

Critérioig2vecTwo Tower
Entrada do treinoIDs de conta com que a pessoa interage, tratados como palavras de uma fraseAtributos arbitrários de usuário e de mídia ou autor
Sinal de aprendizadoPrever contas com que a pessoa provavelmente interage numa sessãoPrever eventos de engajamento como similaridade entre embeddings

O Two Towers estende o algoritmo Word2Vec: aceita atributos arbitrários e várias tarefas ao mesmo tempo, para retrieval multiobjetivo, e mantém a manutenibilidade e o caráter de tempo real do Word2Vec.

  1. Fora do caminho online, a torre de item gera embeddings de itens em um pipeline offline, diariamente.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de itemgera offline
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  2. Os embeddings gerados vão para um serviço de busca aproximada de vizinhos mais próximos, que evita varrer todos os itens.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)embeddings de itens
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  3. No pedido, a torre de usuário busca os atributos mais frescos e gera o embedding da pessoa na hora.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuárioembedding na hora
    DBAtributos do usuárioatributos frescos
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  4. Esse embedding consulta o serviço de busca aproximada, que devolve os itens mais parecidos como candidatos.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)itens próximos
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final

Há um custo: o modelo não pode consumir atributos de interação usuário-item, porque perderia a capacidade de fornecer embeddings de usuário e item que possam ser cacheados. A vantagem principal é que esses embeddings podem ser guardados em cache, o que torna a inferência do Two Tower extremamente eficiente.

Também é possível usar os embeddings de itens para buscar itens parecidos com os da história de interações da pessoa, o que dá mais controle sobre a troca entre tipos de engajamento. Nesse caso, uma abordagem baseada em regras filtra itens de baixa qualidade dessa história.

05 · RANQUEAMENTO E RERANQUEAMENTO

Duas etapas, modelo de valor e regras finais

O Explore usa duas etapas de ranqueamento. A primeira é um modelo leve, menos preciso e menos custoso, que pode recuperar milhares de candidatos. A segunda é um modelo pesado, mais preciso e intensivo em computação, que opera nos 100 melhores candidatos da primeira. Com duas etapas, mais candidatos são ranqueados mantendo a qualidade das recomendações finais.

Na primeira etapa o Two Tower volta a ser usado, por causa da cacheabilidade. A arquitetura pode ser parecida com a do retrieval, mas o objetivo de aprendizado difere bastante: o ranqueador de primeira etapa é treinado para prever a saída da segunda, uma forma de destilar conhecimento de um modelo maior para um menor.

  1. A primeira etapa usa um modelo leve de duas torres, que reaproveita embeddings em cache.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)modelo leve
    CHCache de embeddingsembeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  2. A segunda etapa recebe só os 100 melhores candidatos da primeira.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)modelo pesado
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  3. O modelo pesado consome os atributos de interação usuário-item mais poderosos.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)atributos de interação
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento final
  4. Para aliviar o pico, parte das recomendações é pré-calculada fora do pico e guardada.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadaslistas prontas
    CPPré-cálculo fora do picofora do pico
    CPReranqueamento final
  5. No reranqueamento final, regras de integridade e de diversidade ajustam a lista ordenada.

    Diagrama da arquitetura: Explore: retrieval com duas torres e ranqueamento em etapas
    CLPessoa no app
    CPServiço Explore
    CPTorre de usuário
    DBAtributos do usuário
    DBBusca aproximada (ANN)
    CPPipeline da torre de item
    CPRanqueador leve (duas torres)
    CHCache de embeddings
    CPRanqueador pesado (MTML)
    DBRecomendações pré-calculadas
    CPPré-cálculo fora do pico
    CPReranqueamento finalintegridade e diversidade

A segunda etapa prevê a probabilidade de eventos de engajamento com um modelo MTML, muito mais pesado que o Two Towers, mas capaz de consumir os atributos de interação usuário-item mais poderosos. Aplicar um modelo tão pesado no horário de pico pode ser complicado, e por isso as recomendações de alguns usuários são pré-calculadas fora do pico, o que ajuda a garantir a disponibilidade para todo usuário do Explore.

As probabilidades previstas são combinadas com pesos numa fórmula chamada modelo de valor (VM), a aproximação do valor que cada mídia traz ao usuário. Ajustar os pesos do VM explora trocas entre métricas de engajamento online.

No reranqueamento final, devolver os itens ordenados só pela nota do VM pode não ser boa ideia: itens podem ser filtrados ou rebaixados com base em notas de integridade, e regras de negócio podem reordenar para aumentar a diversidade, por exemplo para não mostrar itens do mesmo autor em sequência. Essas regras dão muito mais controle sobre as recomendações finais.

Os modelos podem ser re-treinados (fine-tune) a cada hora assim que há dados novos.

06 · TRADE-OFFS E AJUSTE

O que muda entre as versões e como ajustar

CritérioPost da Meta AIPost de engenharia (2023)
Etapas de ranqueamentoTrês passes: destilação, rede leve e rede profundaDuas etapas, com reranqueamento final por regras
Primeira etapaModelo de destilação, com atributos mínimosModelo de duas torres treinado para prever a saída da segunda etapa
Última etapa de previsãoRede neural profunda com atributos densos e esparsosModelo MTML que consome atributos de interação usuário-item

Há centenas de parâmetros ajustáveis que controlam o comportamento do sistema. O post de engenharia cita duas abordagens populares de ajuste: otimização bayesiana e ajuste offline.

CritérioOtimização bayesiana onlineAjuste offline
VantagemSó exige o conjunto de parâmetros, a métrica objetivo e os limites de regressão de outras métricasMonta o experimento em horas em vez de semanas
DesvantagemCostuma demorar para convergir, às vezes mais de um mêsExige forte correlação entre métricas offline e online

No texto de engenharia, a Meta aponta que a complexidade crescente do sistema traz desafios de manutenibilidade e de ciclos de feedback, e que investiga consolidar as estratégias de retrieval em menos algoritmos de ML altamente configuráveis.

Perguntas frequentes

O que é Instagram Explore?

Arquitetura real em produção. Pontos centrais: two towers, ranqueamento early/late stage, ig2vec e filtros de integridade.

O que o design de Instagram Explore cobre?

Ele está organizado nestas seções: O que é o Explore e por que ele é difícil, Das contas semente a um inventário elegível, Destilação, rede leve e rede profunda, Embeddings offline e busca aproximada, Duas etapas, modelo de valor e regras finais e O que muda entre as versões e como ajustar.

Quanto tempo leva Instagram Explore e qual é o nível?

Leva cerca de 17 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.