Pinterest: un embedding en lugar de tres — +46.7% de repins en Lens y una tercera parte de los sistemas ML a mantener
En evaluaciones de juicio humano offline, el embedding unificado elevó la precisión@5 en +22.2% para Flashlight, +110.1% para Lens y +72.1% para Shop-the-Look versus los modelos especializados. El dominio más difícil ganó más — Lens: el entrenamiento multi-tarea en datos mixtos proporcionó exactamente la generalización que las fotos de cámara carecían. El artículo también muestra honestamente la varianza: dentro de Shop the Look, los resultados por categoría varían de −33.3% a +249.7% — una victoria promedio no significa ganar en todas partes. La prueba A/B online en Lens confirmó la imagen offline con aumentos en cada métrica de producto: repins +46.7%, clickthroughs +35.0%, closeups +32.7%, propensión del engager hasta +16.3% a +26.7%. El resultado operativo: en lugar de tres modelos, tres pipelines de entrenamiento e tres infraestructuras de recuperación, el equipo mantiene una; el artículo afirma directamente que desplegar el embedding unificado 'redujo drásticamente el costo operativo y de ingeniería' — mientras se mejora la calidad. En nuestra opinión, la lección clave del caso es contraintuitiva: la consolidación de modelos generalmente se ve como un trade-off 'más simple pero peor', sin embargo en Pinterest el modelo universal superó a los especialistas en sus propias tareas. La mecánica sigue la teoría ML — el multi-tasking actúa como regularización, y los datos de un producto se convierten en aumento para otro — pero la escala del efecto (+110% en Lens) fue posible porque las tareas resultaron estar suficientemente relacionadas y el dominio más débil recibió la mayoría de los datos 'extranjeros'. No generalizaríamos 'un embedding siempre es mejor' a cualquier conjunto de tareas: la propia distribución de categoría de Shop the Look del artículo demuestra por qué. Nuestra segunda observación: este caso se trata de la economía de las plataformas ML, no solo de calidad. Con 600+ millones de búsquedas visuales al mes, cada modelo adicional significa reindexar miles de millones de imágenes y servicio duplicado; una flota de un tercio del tamaño acelera cada iteración posterior. La consolidación de infraestructura es una de esas inversiones raras que reducen costos y elevan la velocidad del equipo al mismo tiempo; solo señalamos que los números online se publican solo para Lens, y todos los resultados son auto-reportados por la 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
Pinterest es una plataforma para la cual la búsqueda visual no es una característica sino la esencia del producto: los usuarios vienen a encontrar ideas que a menudo no tienen descripción verbal. La empresa construyó esta capacidad a lo largo de los años: Related Pins (2014), Similar Looks (2015), Flashlight (2016) — búsqueda de similares dentro de cualquier pin, Lens (2017) — búsqueda mediante una foto de la cámara del teléfono, y en 2019 el Shop the Look automatizado, que encuentra productos específicos dentro de una escena u outfit. En el momento del caso de estudio, la plataforma tenía 250+ millones de usuarios activos mensuales, un corpus de 200+ mil millones de 'ideas', y la búsqueda visual servía a más de 10 productos de clientes internos. El equipo mismo situó la escala de consultas en 600+ millones de búsquedas visuales por mes en el artículo de KDD 2019 (la publicación de blog que lo acompañaba es más cautelosa: 'cientos de millones').
El lado opuesto de esa evolución es la deuda técnica típica de organizaciones ML que crecen rápidamente. Cada nuevo producto se lanzó con su propio modelo de embedding especializado: el cropper visual de 2015 se ejecutaba en Caffe y VGG16, mientras que el Shop the Look de 2018 utilizaba PyTorch y SE-ResNeXt. Los stacks, los conjuntos de datos y los espacios vectoriales divergieron; era más fácil para los equipos crear otro modelo específico de tarea que mejorar uno compartido — y la flota de embeddings especializados siguió creciendo.
El equipo de búsqueda visual liderado por Andrew Zhai describió la solución en 'Learning a Unified Embedding for Visual Search at Pinterest', aceptado en KDD 2019, y en una publicación de blog de ingeniería. Es una de las primeras publicaciones detalladas sobre la consolidación de varios embeddings de producción en un embedding universal — con números completos de experimentos offline y online.
Problema
Tres productos de búsqueda visual — Flashlight, Lens y Shop the Look — vivían en tres embeddings especializados separados, lo que significaba costos triplicados en toda la cadena. Cada modelo tenía que entrenarse y versionarse por separado; cada uno necesitaba su propia infraestructura de recuperación y almacenamiento; y crucialmente, cada actualización de cualquier modelo requería reindexar miles de millones de imágenes de catálogo en el espacio vectorial de ese modelo. Los costos de almacenamiento y servicio crecieron linealmente con el número de modelos mientras que la velocidad de iteración cayó: el equipo gastó recursos manteniendo un zoológico en lugar de mejorar la calidad.
Hubiera también un problema más sutil: las mejoras no se transferían. El progreso en el modelo Flashlight no hacía nada por Lens y viceversa — el conocimiento aprendido en un producto permanecía bloqueado en su embedding. Sin embargo, las tareas son genuinamente diferentes, lo que justificaba la especialización original. Flashlight encuentra elementos similares entre imágenes de estilo catálogo 'limpio' utilizando señales de engagement. Lens es un problema mucho más difícil: una foto de cámara — con iluminación del hogar, ángulos arbitrarios y ruido — debe coincidir contra el dominio del catálogo; un cambio de dominio clásico. Shop the Look exige precisión a nivel de producto: encontrar no 'una silla similar' sino este modelo exacto.
La pregunta que el equipo se propuso responder: ¿puede un embedding universal, entrenado en las tareas de los tres productos a la vez, coincidir con los modelos especializados — o es la degradación de la calidad el precio inevitable de la simplicidad operativa?
Solución
El equipo entrenó un embedding universal con aprendizaje métrico multi-tarea. La base es una red convolucional SE-ResNeXt101 pre-entrenada en ImageNet; encima del trunk compartido se encuentran ramas por tarea: una capa completamente conectada y una pérdida de clasificación softmax. El entrenamiento se ejecutó simultáneamente en los conjuntos de datos de los tres productos: 800K imágenes de Flashlight (15K clases semánticas ensambladas a partir de señales de engagement), 540K imágenes de Lens (2K clases etiquetadas por humanos, dominios mixtos — desde imágenes de catálogo hasta fotos de cámara), e imágenes de Shop the Look de 340K (189 clases de producto más 50K etiquetas de instancia de elementos específicos).
Dos módulos de ingeniería hicieron que el esquema fuera práctico a escala de Pinterest. Un módulo de submuestreo habilitó el entrenamiento de clasificación sobre decenas de miles de clases manteniendo el banco proxy en CPU y cargando solo el subconjunto necesario en la memoria GPU. Un módulo de binarización (con GroupNorm reemplazando LayerNorm, que resultó ser crítico para la compatibilidad multi-tarea) comprime el vector en un código binario — son los embeddings binarios los que se envían a producción, reduciendo drásticamente los costos de almacenamiento y la latencia de búsqueda en miles de millones de imágenes. La infraestructura de entrenamiento es PyTorch DistributedDataParallel con precisión mixta (FP16, Apex): una ejecución típica es 9 épocas en ocho Tesla V100s, SGD con momentum 0.9.
La victoria de producto clave de la arquitectura: un espacio vectorial sirve todos los escenarios de búsqueda a través de infraestructura de recuperación compartida. Una reindexación de catálogo en lugar de tres; una mejora de modelo llega automáticamente a cada producto y a los 10+ clientes internos de búsqueda visual.
La validación se ejecutó en dos niveles. Offline — tanto métricas automáticas en embeddings binarios (por ejemplo, la precisión@1 de Shop the Look aumentó del 33.0% con el modelo especializado al 52.8% con el unificado) como juicios de relevancia humana en consultas reales. Online — una prueba A/B en Lens, el dominio más difícil: repins, clickthroughs, closeups y propensión del engager fueron medidos.
Resultado
En evaluaciones de juicio humano offline, el embedding unificado elevó la precisión@5 en +22.2% para Flashlight, +110.1% para Lens y +72.1% para Shop-the-Look versus los modelos especializados. El dominio más difícil ganó más — Lens: el entrenamiento multi-tarea en datos mixtos proporcionó exactamente la generalización que las fotos de cámara carecían. El artículo también muestra honestamente la varianza: dentro de Shop the Look, los resultados por categoría varían de −33.3% a +249.7% — una victoria promedio no significa ganar en todas partes.
La prueba A/B online en Lens confirmó la imagen offline con aumentos en cada métrica de producto: repins +46.7%, clickthroughs +35.0%, closeups +32.7%, propensión del engager hasta +16.3% a +26.7%. El resultado operativo: en lugar de tres modelos, tres pipelines de entrenamiento e tres infraestructuras de recuperación, el equipo mantiene una; el artículo afirma directamente que desplegar el embedding unificado 'redujo drásticamente el costo operativo y de ingeniería' — mientras se mejora la calidad.
En nuestra opinión, la lección clave del caso es contraintuitiva: la consolidación de modelos generalmente se ve como un trade-off 'más simple pero peor', sin embargo en Pinterest el modelo universal superó a los especialistas en sus propias tareas. La mecánica sigue la teoría ML — el multi-tasking actúa como regularización, y los datos de un producto se convierten en aumento para otro — pero la escala del efecto (+110% en Lens) fue posible porque las tareas resultaron estar suficientemente relacionadas y el dominio más débil recibió la mayoría de los datos 'extranjeros'. No generalizaríamos 'un embedding siempre es mejor' a cualquier conjunto de tareas: la propia distribución de categoría de Shop the Look del artículo demuestra por qué.
Nuestra segunda observación: este caso se trata de la economía de las plataformas ML, no solo de calidad. Con 600+ millones de búsquedas visuales al mes, cada modelo adicional significa reindexar miles de millones de imágenes y servicio duplicado; una flota de un tercio del tamaño acelera cada iteración posterior. La consolidación de infraestructura es una de esas inversiones raras que reducen costos y elevan la velocidad del equipo al mismo tiempo; solo señalamos que los números online se publican solo para Lens, y todos los resultados son auto-reportados por la empresa.
Lecciones aprendidas
- La consolidación de modelos es tanto calidad como economía: un embedding multi-tarea superó a tres especializados en relevancia y redujo la infraestructura mantenida a un tercio.
- El aprendizaje multi-tarea actúa como regularización: los datos de un producto mejoran los otros — el dominio más difícil ganó más (Lens, +110% precision@5).
- Observa la varianza, no solo el promedio: dentro de Shop the Look, los resultados de categoría varían de −33.3% a +249.7%; una victoria promedio no garantiza ganar en cada segmento.
- Valida tanto offline (jueces humanos) como online (A/B): en Pinterest las ganancias de precisión fueron confirmadas por aumentos en cada métrica de engagement.
- La binarización de embeddings es una palanca económica subestimada: los códigos binarios reducen drásticamente los costos de almacenamiento y búsqueda en miles de millones de imágenes; el diablo está en los detalles (GroupNorm sobre LayerNorm).
- Menos modelos significan iteraciones más rápidas: una mejora de embedding único actualiza automáticamente cada producto de búsqueda visual y 10+ clientes internos a la vez.
- La unificación se amortiza a escala: con 600M+ búsquedas visuales al mes, cada paso de reindexación y cada modelo adicional es costoso.
Preguntas frecuentes
¿Qué ganó Pinterest con un embedding visual unificado único?
Ganancias de calidad en los tres productos de búsqueda visual (precision@5: +22% Flashlight, +110% Lens, +72% Shop-the-Look), aumentos de engagement en la prueba A/B de Lens (+46.7% repins, +35% clickthroughs), e costos de infraestructura sustancialmente menores — un modelo en lugar de tres.
¿Cómo entrenó Pinterest un embedding para tres productos diferentes?
Con aprendizaje métrico multi-tarea: una red SE-ResNeXt101 con un trunk compartido y ramas por tarea entrena simultáneamente en Flashlight (800K imágenes, 15K clases), Lens (540K, 2K clases), y Shop-the-Look (340K, 189 clases + 50K etiquetas de instancia), formando un espacio vectorial único.
¿Por qué el modelo universal superó a los especializados?
El aprendizaje multi-tarea actúa como regularización: los datos de cada producto se convierten en señal adicional para los otros. El dominio más difícil ganó más — Lens (+110% precision@5), donde las fotos de cámara carecían de diversidad de datos de entrenamiento.
¿Cómo funciona un embedding a escala de miles de millones de imágenes?
La producción utiliza vectores binarizados (un módulo de binarización con GroupNorm), que reduce drásticamente los costos de almacenamiento y acelera la búsqueda, mientras que un módulo de submuestreo con un banco proxy del lado de la CPU habilita el entrenamiento de clasificación sobre decenas de miles de clases en ocho GPUs Tesla V100.
¿Cuál es la escala de búsqueda visual en Pinterest?
Según el artículo KDD 2019 — más de 600 millones de búsquedas visuales por mes en 250+ millones de usuarios activos mensuales y un corpus de 200+ mil millones de pins; la publicación de blog lo plantea más cautelosamente en 'cientos de millones' de búsquedas por mes.