Arquitetura real · Sênior
Feed do LinkedIn (dois passes, dwell time, LLM em 2026)
Arquitetura real em produção. Pontos centrais: first pass/second pass, dwell time e multiobjetivo.
Resposta curta
Arquitetura real em produção. Pontos centrais: first pass/second pass, dwell time e multiobjetivo. O Feed do LinkedIn atende a mais de 1,3 bilhão de profissionais. O desafio descrito pela empresa é equilibrar conteúdo da rede do membro, de quem ele segue e do Economic Graph em sentido mais amplo, ou seja, conteúdo sugerido.
01 · CONTEXTO E ESCALA
O que o feed precisa decidir
O Feed do LinkedIn atende a mais de 1,3 bilhão de profissionais. O desafio descrito pela empresa é equilibrar conteúdo da rede do membro, de quem ele segue e do Economic Graph em sentido mais amplo, ou seja, conteúdo sugerido.
Um post de engenharia de 2026 afirma que a empresa ranqueia milhões de posts a cada momento, equilibrando frescor e relevância. Um post de 2020 já falava em dezenas de milhares de posts candidatos que poderiam aparecer no feed de um membro.
Em 2020, o post descreve uma camada de geração de candidatos, o primeiro passe, que aplica um algoritmo de ranqueamento eficiente e leve para identificar os melhores candidatos. Em 2026, a empresa descreve a divisão assim: a recuperação determina quais posts chegam à etapa de ranqueamento, e o ranqueamento determina o que o membro de fato vê.
02 · O FEED CLÁSSICO
Pontuação ponderada e o limite dos cliques
O post de 2020 treina modelos de aprendizado de máquina para predizer várias quantidades para cada clique e ação viral possível. As ações são clicar, reagir, comentar e compartilhar, e a empresa chama reagir, comentar e recompartilhar de ações virais. As quantidades são a probabilidade de o membro realizar a ação e, caso a realize, o número esperado de cliques ou ações virais a jusante e o valor esperado a montante para o criador do post.
As saídas dos modelos são sintetizadas numa única pontuação por uma combinação linear ponderada, e essa pontuação é usada para um ranqueamento pontual (point-wise) de todos os candidatos.
O mesmo post aponta limites dos sinais de clique e ação viral. Eles podem ser raros, sobretudo para consumidores passivos do feed, e o clique é um indicador ruidoso de engajamento: um membro pode clicar num artigo, perceber que não é relevante e voltar ao feed em poucos segundos. Para compensar parte desses limites, a equipe avaliou o dwell time agregado por post.
| Aspecto | Cliques e ações virais | Dwell time |
|---|---|---|
| Disponibilidade | Nem sempre mensurável | Sempre mensurável |
| Tipo de sinal | Indicador binário de engajamento | Medida de engajamento de valor real |
| Qualidade do sinal | Indicador ruidoso de engajamento; sinais positivos bastante esparsos | Pode ser um indicador mais confiável de engajamento; não há escassez de sinais |
03 · DWELL TIME E P(SKIP)
Do tempo de permanência à probabilidade de pular
Cada post visto no feed gera dois tipos de dwell time. O primeiro, no feed, começa a ser medido quando pelo menos metade do post está visível enquanto o membro rola o feed. O segundo, depois do clique, é o tempo gasto no conteúdo após clicar num post do feed.
Ao analisar o dwell time por post no celular, a equipe buscou um limiar, chamado Tskip, para classificar como pulado um post visto por menos de Tskip segundos. O post relata que esse limiar natural existe e que o mesmo valor de Tskip serviu para todos os tipos heterogêneos de post, como texto, imagens e vídeos.
Com base nisso, a equipe incorporou à função de valor do feed um objetivo novo, o P(skip), que prevê a probabilidade de o membro pular um post. O modelo é uma regressão logística com atributos brutos e atributos de interação aprendidos por uma árvore de decisão com boosting. Por considerar pular um resultado negativo, a função final reduz a pontuação de todos os posts proporcionalmente ao P(skip) previsto.
A camada de geração de candidatos aplica um algoritmo de ranqueamento eficiente e leve para identificar os melhores candidatos a mostrar.
Os candidatos seguem para os modelos de predição, que estimam a probabilidade da ação, o efeito esperado a jusante e o valor esperado a montante.
O objetivo novo, P(skip), entra na função de valor do feed e prevê a probabilidade de o membro pular o post.
A função de valor sintetiza as saídas numa única pontuação por combinação linear ponderada e reduz a pontuação proporcionalmente ao P(skip) previsto.
A pontuação é usada para ordenar todos os candidatos de forma pontual (point-wise).
Nos experimentos A/B online com uma pequena porcentagem dos membros, a empresa relata grande queda no número de posts pulados e mais interação por cliques e ações virais.
04 · RECUPERAÇÃO UNIFICADA
Uma só recuperação baseada em LLM
Segundo o post de 2026, a abordagem tradicional usava várias fontes de recuperação, como conteúdo em alta, filtragem colaborativa e sistemas baseados em embeddings, cada uma com infraestrutura própria. Isso criou complexidade de engenharia e dificultou a otimização holística. O modelo de ranqueamento, por sua vez, tratava cada impressão de forma independente e perdia os padrões sequenciais de consumo.
A solução combina uma recuperação unificada, que usa LLMs para gerar uma representação de alta qualidade de membros e conteúdo, com um modelo de ranqueamento sequencial que captura como os profissionais interagem com o conteúdo ao longo do tempo. Um benefício citado é o cold-start: para um membro novo com só título e cargo no perfil, o LLM consegue deduzir interesses prováveis sem esperar o histórico de engajamento se acumular.
Para o LLM processar dados estruturados, a equipe criou uma biblioteca de prompts que transforma atributos em sequências padronizadas. Para os atributos numéricos, inicialmente as contagens de engajamento entravam brutas e o modelo as tratava como tokens de texto comuns, o que deixou a correlação entre popularidade do item e similaridade de cosseno próxima de zero (-0.004). A equipe dividiu as contagens em faixas de percentil, envolvidas por tokens especiais, e a correlação subiu 30x, com melhora de 15% no recall@10.
O recuperador é um codificador duplo: um LLM processa os prompts do membro e do item e gera embeddings comparados por similaridade de cosseno. No treino, cada par positivo é contrastado com dois tipos de negativos.
| Tipo de negativo | Como é obtido | Efeito relatado |
|---|---|---|
| Fácil | Posts amostrados aleatoriamente que não foram mostrados ao membro | Sinais contrastivos fracos, porém estáveis |
| Difícil | Posts exibidos ao membro que não receberam engajamento | Adicionar apenas dois por membro melhorou o recall em +3.6% |
Outro ponto foi a curadoria do histórico do membro. Inicialmente ele incluía todos os posts exibidos, e isso piorou o desempenho e custou mais computação, pois a computação de GPU é quadrática no tamanho do contexto. Filtrar só os posts com engajamento positivo fez o modelo aprender melhor. Na configuração de produção, com 8 GPUs H100 para treino, isso trouxe redução de 37% da memória por sequência com profundidade de histórico equivalente e iteração de treino 2.6× mais rápida, devido a sequências menores e melhor eficiência de batching.
05 · FRESCOR COM PIPELINES NEARLINE
Embeddings frescos sem esperar o batch
A empresa mantém três pipelines nearline contínuos: geração de prompts, inferência de embeddings e atualização do índice. Desacoplar o sistema assim permite otimizar cada estágio de forma independente e manter o sistema ponta a ponta fresco em minutos.
Quando um post é publicado ou ganha engajamento, o prompt do item é atualizado; quando o membro atualiza o perfil ou interage, o prompt do membro é atualizado.
Os prompts vão para armazenamentos chave-valor, para acesso online na recuperação, e ao mesmo tempo para um processador de stream nearline que gera embeddings.
Os prompts frescos passam por servidores de inferência de LLM em clusters de GPUs.
Posts novos recebem embeddings em tempo quase real, e posts que ganham engajamento têm os embeddings atualizados.
As atualizações são agrupadas em janelas de tempo configuráveis, trocando eficiência de GPU por frescor dos embeddings.
Os embeddings entram num índice especializado para busca exaustiva de vizinhos mais próximos em GPUs.
No momento da consulta, o sistema busca o embedding do membro e executa uma busca de k vizinhos mais próximos nesse índice, recuperando os melhores candidatos em menos de 50 ms, mesmo com milhões de posts no índice.
A empresa descreve também um ganho para o ranqueamento: em vez de candidatos de fontes díspares, com vieses e perfis de qualidade diferentes, ele recebe um conjunto coerente de candidatos selecionados por similaridade semântica. A empresa afirma que trocar várias fontes por uma abordagem única baseada em embeddings reduziu a complexidade de engenharia.
06 · RANQUEAMENTO SEQUENCIAL
Um modelo de sequência e o custo de servi-lo
No ranqueamento, a empresa construiu o Generative Recommender (GR), que trata o histórico de interações do membro como uma sequência. Em vez de pontuar cada post isoladamente, o GR processa mais de mil interações históricas para entender padrões temporais e interesses de longo prazo.
O GR usa transformers com atenção causal, processando os posts em ordem cronológica junto das ações do membro em cada post. As ações, como dwells longos, curtidas, comentários e compartilhamentos, são embutidas e intercaladas com as representações dos posts. Na atenção causal, cada posição só atende a posições anteriores.
Depois das camadas transformer, o modelo aplica fusão tardia: concatena a saída do transformer com atributos de contexto por passo, como tipo de dispositivo, embeddings do perfil do membro e contagens e afinidades agregadas. Segundo o post, incluir esses atributos no caminho da sequência inflaria o custo computacional sem benefício claro. O resultado passa por uma cabeça de predição Multi-gate Mixture-of-Experts (MMoE), em que tarefas passivas (clique, skip, long-dwell) e ativas (curtir, comentar, compartilhar) recebem portões especializados e compartilham as mesmas representações sequenciais.
| Aspecto | Ranqueamento anterior | Ranqueamento sequencial (GR) |
|---|---|---|
| Unidade avaliada | Cada impressão tratada de forma independente | Histórico de interações tratado como uma sequência |
| Combinação de objetivos | Saídas dos modelos sintetizadas numa única pontuação por combinação linear ponderada (descrição de 2020) | Cabeça MMoE com portões por tarefa sobre representações compartilhadas |
| Hardware | Os modelos históricos de ranqueamento rodavam em CPUs | Contagens enormes de parâmetros exigem memória de alta largura de banda, disponível só em GPUs |
O post lembra que GPUs são caras e que o custo por inferência se torna crítico nessa escala. O diagrama a seguir percorre o caminho online e as escolhas de serving descritas pela empresa.
Ao abrir o feed, o sistema busca o embedding do membro e executa a busca de vizinhos mais próximos.
O índice em GPU devolve os melhores candidatos em menos de 50 ms, mesmo com milhões de posts.
A recuperação determina quais posts chegam à etapa de ranqueamento.
A arquitetura desagregada separa o processamento de atributos, limitado por CPU, da inferência do modelo, pesada em GPU.
O contexto compartilhado em lote calcula a representação do histórico uma vez e pontua todos os candidatos em paralelo com máscaras de atenção customizadas.
O GRMIS, uma variante customizada de Flash Attention, entrega ganho adicional de 2× sobre a atenção padrão do PyTorch.
07 · O QUE LEVAR PARA A ENTREVISTA
Decisões que o caso ensina
Perguntas frequentes
O que é Feed do LinkedIn (dois passes, dwell time, LLM em 2026)?
Arquitetura real em produção. Pontos centrais: first pass/second pass, dwell time e multiobjetivo.
O que o design de Feed do LinkedIn (dois passes, dwell time, LLM em 2026) cobre?
Ele está organizado nestas seções: O que o feed precisa decidir, Pontuação ponderada e o limite dos cliques, Do tempo de permanência à probabilidade de pular, Uma só recuperação baseada em LLM, Embeddings frescos sem esperar o batch e Um modelo de sequência e o custo de servi-lo.
Quanto tempo leva Feed do LinkedIn (dois passes, dwell time, LLM em 2026) 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.