Pinterest: um embedding em vez de três — +46.7% repins no Lens e um terço dos sistemas de ML para manter
Em avaliações offline com julgamento humano, o embedding unificado elevou a precisão@5 em +22.2% para Flashlight, +110.1% para Lens, e +72.1% para Shop the Look versus os modelos especializados. O domínio mais difícil ganhou o máximo — Lens: treinamento multi-task em dados mistos forneceu exatamente a generalização que fotos de câmera careciam. O artigo também mostra honestamente a variância: dentro do Shop the Look, resultados por categoria variam de −33.3% a +249.7% — uma vitória na média não significa vitória em todos os lugares. O teste A/B online no Lens confirmou o cenário offline com lifts em todas as métricas de produto: repins +46.7%, cliques +35.0%, close-ups +32.7%, propensão de engajamento acima de +16.3% para +26.7%. A linha de fundo operacional: em vez de três modelos, três pipelines de treinamento e três infraestruturas de recuperação, o time mantém um; o artigo afirma diretamente que implantar o embedding unificado 'reduziu drasticamente o custo operacional e de engenharia' — enquanto melhorava a qualidade. Em nossa visão, a lição principal do caso é contraintuitiva: consolidação de modelos é geralmente vista como um trade-off 'mais simples mas pior', ainda assim no Pinterest o modelo universal venceu os especialistas em suas próprias tarefas. A mecânica segue a teoria ML — multi-tasking age como regularização, e os dados de um produto se tornam augmentation para outro — mas a escala do efeito (+110% em Lens) foi possível porque as tarefas se provaram suficientemente relacionadas e o domínio mais fraco recebeu o máximo de dados 'estrangeiros'. Não generalizaríamos 'um embedding é sempre melhor' para qualquer conjunto de tarefas: o próprio spread de categoria do Shop the Look do artigo demonstra por quê. Nostra segunda observação: este caso é sobre a economia das plataformas ML, não apenas qualidade. Em 600+ milhões de buscas visuais por mês, cada modelo extra significa re-indexação de bilhões de imagens e serving duplicado; uma frota um terço do tamanho acelera cada iteração subsequente. Consolidação de infraestrutura é um daqueles investimentos raros que cortam custos e elevam a velocidade do time ao mesmo tempo; notamos apenas que números online são publicados apenas para Lens, e todos os resultados são auto-reporting da empresa.
- Learning a Unified Embedding for Visual Search at Pinterest (KDD 2019) — Pinterest / arXiv (Zhai et al.), 2019-08-05
- Unifying visual embeddings for visual search at Pinterest — Pinterest Engineering Blog (Andrew Zhai), 2019-08-08
- Visual Discovery at Pinterest (история продуктов: Related Pins 2014, Similar Looks 2015, Flashlight 2016, Lens 2017) — Pinterest / arXiv (Zhai, Kislyuk et al.), 2017-02-15
Contexto
O Pinterest é uma plataforma para a qual a busca visual não é um recurso, mas a essência do produto: usuários vêm para encontrar ideias que frequentemente não têm descrição verbal. A empresa construiu essa capacidade ao longo dos anos: Related Pins (2014), Similar Looks (2015), Flashlight (2016) — encontrar similar dentro de qualquer pin, Lens (2017) — buscar por foto da câmera do telefone, e em 2019 o Shop the Look automatizado, que encontra produtos específicos dentro de uma cena ou look.
Na época do estudo de caso, a plataforma tinha 250+ milhões de usuários ativos mensais, um corpus de 200+ bilhões de 'ideias', e a busca visual atendia mais de 10 produtos de cliente internos. O próprio time estimou a escala de queries em 600+ milhões de buscas visuais por mês no artigo KDD 2019 (a postagem de blog acompanhante é mais cautelosa: 'centenas de milhões').
O lado oposto dessa evolução é a dívida técnica típica de organizações de ML de rápido crescimento. Cada novo produto foi lançado com seu próprio modelo de embedding especializado: o visual cropper de 2015 rodava em Caffe e VGG16, enquanto o Shop the Look de 2018 usava PyTorch e SE-ResNeXt. Stacks, datasets e espaços vetoriais divergiram; era mais fácil para os times criar mais um modelo task-specific do que melhorar um compartilhado — e a frota de embeddings especializados continuava crescendo.
O time de busca visual liderado por Andrew Zhai descreveu a solução em 'Learning a Unified Embedding for Visual Search at Pinterest', aceito no KDD 2019, e em um artigo técnico do blog. É uma das primeiras publicações detalhadas sobre consolidar vários embeddings de produção em um embedding universal — com números completos de experimentos offline e online.
Problema
Três produtos de busca visual — Flashlight, Lens e Shop the Look — funcionavam em três embeddings especializados separados, o que significava custos triplicados em toda a cadeia. Cada modelo tinha que ser treinado e versionado separadamente; cada um precisava de sua própria infraestrutura de recuperação e armazenamento; e crucialmente, cada atualização de qualquer modelo exigia re-indexação de bilhões de imagens do catálogo no espaço vetorial daquele modelo. Custos de armazenamento e serving cresceram linearmente com o número de modelos enquanto a velocidade de iteração caiu: o time gastava recursos mantendo um zoo em vez de melhorar a qualidade.
Havia também um problema mais sutil: melhorias não se transferiam. Progresso no modelo Flashlight não ajudava Lens e vice-versa — conhecimento aprendido em um produto ficava trancado em seu embedding. Ainda assim, as tarefas são genuinamente diferentes, o que justificava a especialização original. Flashlight encontra itens similares entre imagens de estilo catálogo 'limpo' usando sinais de engajamento. Lens é um problema muito mais difícil: uma foto de câmera — com iluminação doméstica, ângulos arbitrários e ruído — deve corresponder ao domínio do catálogo; uma mudança de domínio clássica. Shop the Look exige precisão em nível de produto: encontrar não 'uma cadeira similar' mas este modelo exato.
A pergunta que o time se propôs a responder: um embedding universal, treinado em todas as três tarefas de produtos ao mesmo tempo, pode corresponder aos modelos especializados — ou degradação de qualidade é o preço inevitável da simplicidade operacional?
Solução
O time treinou um embedding universal com multi-task metric learning. A base é uma rede convolucional SE-ResNeXt101 pré-treinada em ImageNet; no topo do trunk compartilhado estão branches por tarefa: uma camada totalmente conectada e uma perda de classificação softmax. O treinamento rodou simultaneamente nos datasets dos três produtos: 800K imagens Flashlight (15K classes semânticas montadas a partir de sinais de engajamento), 540K imagens Lens (2K classes rotuladas por humanos, domínios mistos — de imagens de catálogo a fotos de câmera), e 340K imagens Shop the Look (189 classes de produtos mais 50K rótulos de instância de itens específicos).
Dois módulos de engenharia tornaram o esquema prático na escala do Pinterest. Um módulo de subsampling habilitou treinamento de classificação sobre dezenas de milhares de classes mantendo o proxy bank em CPU e carregando apenas o subset necessário na memória GPU. Um módulo de binarização (com GroupNorm substituindo LayerNorm, que se provou crítico para compatibilidade multi-task) comprime o vetor em um código binário — são os embeddings binários que vão para produção, reduzindo drasticamente custos de armazenamento e latência de busca em bilhões de imagens. A infraestrutura de treinamento é PyTorch DistributedDataParallel com precisão mista (FP16, Apex): uma run típica é 9 epochs em oito Tesla V100s, SGD com momentum 0.9.
A vitória de produto principal da arquitetura: um espaço vetorial serve todos os cenários de busca através de infraestrutura de recuperação compartilhada. Uma re-indexação de catálogo em vez de três; uma melhoria de modelo automaticamente alcança cada produto e os 10+ clientes internos de busca visual.
A validação rodou em dois níveis. Offline — tanto métricas automáticas em embeddings binários (por exemplo, a precisão@1 do Shop the Look subiu de 33.0% com o modelo especializado para 52.8% com o unificado) quanto julgamentos de relevância humana em queries reais. Online — um teste A/B no Lens, o domínio mais difícil: repins, cliques, close-ups e propensão de engajamento foram medidos.
Resultado
Em avaliações offline com julgamento humano, o embedding unificado elevou a precisão@5 em +22.2% para Flashlight, +110.1% para Lens, e +72.1% para Shop the Look versus os modelos especializados. O domínio mais difícil ganhou o máximo — Lens: treinamento multi-task em dados mistos forneceu exatamente a generalização que fotos de câmera careciam. O artigo também mostra honestamente a variância: dentro do Shop the Look, resultados por categoria variam de −33.3% a +249.7% — uma vitória na média não significa vitória em todos os lugares.
O teste A/B online no Lens confirmou o cenário offline com lifts em todas as métricas de produto: repins +46.7%, cliques +35.0%, close-ups +32.7%, propensão de engajamento acima de +16.3% para +26.7%. A linha de fundo operacional: em vez de três modelos, três pipelines de treinamento e três infraestruturas de recuperação, o time mantém um; o artigo afirma diretamente que implantar o embedding unificado 'reduziu drasticamente o custo operacional e de engenharia' — enquanto melhorava a qualidade.
Em nossa visão, a lição principal do caso é contraintuitiva: consolidação de modelos é geralmente vista como um trade-off 'mais simples mas pior', ainda assim no Pinterest o modelo universal venceu os especialistas em suas próprias tarefas. A mecânica segue a teoria ML — multi-tasking age como regularização, e os dados de um produto se tornam augmentation para outro — mas a escala do efeito (+110% em Lens) foi possível porque as tarefas se provaram suficientemente relacionadas e o domínio mais fraco recebeu o máximo de dados 'estrangeiros'. Não generalizaríamos 'um embedding é sempre melhor' para qualquer conjunto de tarefas: o próprio spread de categoria do Shop the Look do artigo demonstra por quê.
Nostra segunda observação: este caso é sobre a economia das plataformas ML, não apenas qualidade. Em 600+ milhões de buscas visuais por mês, cada modelo extra significa re-indexação de bilhões de imagens e serving duplicado; uma frota um terço do tamanho acelera cada iteração subsequente. Consolidação de infraestrutura é um daqueles investimentos raros que cortam custos e elevam a velocidade do time ao mesmo tempo; notamos apenas que números online são publicados apenas para Lens, e todos os resultados são auto-reporting da empresa.
Lições aprendidas
- Consolidação de modelos é tanto qualidade quanto economia: um embedding multi-task venceu três especializados em relevância e cortou a infraestrutura mantida para um terço.
- Aprendizado multi-task age como regularização: os dados de um produto melhoram os outros — o domínio mais difícil ganhou o máximo (Lens, +110% precisão@5).
- Olhe para a variância, não apenas a média: dentro do Shop the Look, resultados de categoria variam de −33.3% a +249.7%; uma vitória na média não garante vitória em cada segmento.
- Valide tanto offline (juízes humanos) quanto online (A/B): no Pinterest os ganhos de precisão foram confirmados por lifts em todas as métricas de engajamento.
- A binarização de embedding é uma alavanca econômica subestimada: códigos binários reduzem drasticamente custos de armazenamento e busca em bilhões de imagens; o diabo está nos detalhes (GroupNorm sobre LayerNorm).
- Menos modelos significam iterações mais rápidas: uma melhoria única de embedding automaticamente atualiza cada produto de busca visual e 10+ clientes internos de uma vez.
- Unificação compensa em escala: com 600M+ buscas visuais por mês, cada pass de re-indexação e cada modelo extra é caro.
Perguntas frequentes
O que o Pinterest ganhou com um único embedding visual unificado?
Ganhos de qualidade em todos os três produtos de busca visual (precisão@5: +22% Flashlight, +110% Lens, +72% Shop the Look), lifts de engajamento no teste A/B do Lens (+46.7% repins, +35% cliques), e custos de infraestrutura substancialmente menores — um modelo em vez de três.
Como o Pinterest treinou um embedding para três produtos diferentes?
Com multi-task metric learning: uma rede SE-ResNeXt101 com um trunk compartilhado e branches por tarefa treina simultaneamente em Flashlight (800K imagens, 15K classes), Lens (540K, 2K classes), e Shop the Look (340K, 189 classes + 50K rótulos de instância), formando um espaço vetorial.
Por que o modelo universal venceu os especializados?
Aprendizado multi-task age como regularização: os dados de cada produto se tornam sinal extra para os outros. O domínio mais difícil ganhou o máximo — Lens (+110% precisão@5), onde fotos de câmera careciam de diversidade de dados de treinamento.
Como um embedding funciona em escala de bilhões de imagens?
A produção usa vetores binarizados (um módulo de binarização com GroupNorm), que reduzem drasticamente custos de armazenamento e aceleram a busca, enquanto um módulo de subsampling com um proxy bank do lado da CPU habilita treinamento de classificação sobre dezenas de milhares de classes em oito GPUs Tesla V100.
Qual é a escala da busca visual no Pinterest?
De acordo com o artigo KDD 2019 — mais de 600 milhões de buscas visuais por mês em 250+ milhões de usuários ativos mensais e um corpus de 200+ bilhões de pins; a postagem do blog a colocou mais cautelosamente em 'centenas de milhões' de buscas por mês.