¡Hola Devs! El problema con los IDs

Todo sistema de recomendación clásico le asigna un ID único a cada anuncio, producto, página y píxel. Funciona... hasta que lanzas algo nuevo. Un tenis de trail recién lanzado no tiene historial de engagement, así que el modelo arranca de cero. Los anuncios de cola larga, con pocas impresiones, generan señal débil. Y lo que el modelo aprendió en una campaña rara vez transfiere bien a la siguiente.

GenRecs Tokenization cambia la capa de representación. En lugar de memorizar un ID por ítem, el sistema describe qué es el ítem usando un vocabulario pequeño de tokens semánticos de un codebook estable. Los ítems parecidos comparten tokens, como las palabras parecidas comparten raíces. Un producto nuevo hereda lo que el modelo ya aprendió sobre su categoría.

Es un cambio de fondo: de IDs efímeros a representaciones semánticas estables sobre las que los modelos generativos pueden razonar. 🚀

LLM reasoning over ad content and user preferences with GenRecs tokenization System Abstract Visual

El pipeline de tokenización en tres etapas

En el corazón de GenRecs Tokenization, cada ítem se codifica en un embedding semántico, ese embedding se descompone en subespacios independientes, y cada subespacio se cuantiza a una entrada del codebook. El resultado es una secuencia corta de tokens discretos que carga señal de contenido y de engagement.

# Ilustración simplificada del pipeline de tokenización GenRecs
import torch
import torch.nn.functional as F

class GenRecsTokenizer(torch.nn.Module):
    def __init__(self, encoder, codebooks, num_subspaces=8):
        super().__init__()
        self.encoder = encoder              # Encoder multimodal preentrenado
        self.codebooks = codebooks          # Codebooks vectoriales aprendidos por subespacio
        self.num_subspaces = num_subspaces

    def forward(self, item_text, item_image):
        # 1. Codifica el contenido del ítem en un embedding semántico
        embedding = self.encoder(item_text, item_image)

        # 2. Descomposición residual en subespacios independientes
        residual = embedding
        tokens = []
        for i in range(self.num_subspaces):
            codebook = self.codebooks[i]
            # 3. Cuantización: entrada más cercana del codebook por subespacio
            distances = torch.cdist(residual, codebook)
            token = distances.argmin(dim=-1)
            tokens.append(token)
            residual = residual - codebook[token]

        return torch.stack(tokens, dim=-1)  # Secuencia de tokens semánticos

El tokenizer no es caja negra. Puedes medir su calidad antes de entrenar el modelo de ranking:

  • Pureza de clúster — ítems que comparten un código tienden a compartir categoría.
  • Balance de distribución — ítems repartidos por los IDs semánticos en vez de amontonados en pocos.
  • Utilización del codebook — mientras mayor sea la porción de códigos con al menos un ítem, más distinciones expresa el vocabulario.

En las ocho versiones de tokenizer probadas internamente, estas métricas intrínsecas correlacionaron fuerte con la precisión de CTR downstream. Traducción: puedes iterar el tokenizer sin esperar un ciclo completo de entrenamiento del modelo. Eso es ganancia pura de ingeniería. 💡

Semantic token clusters replacing item IDs in a recommendation system pipeline Dev Environment Setup

Dónde ayuda — y dónde no

DimensiónIDs tradicionalesTokens semánticos GenRecs
Cold start de ítem nuevoArranca de ceroHereda conocimiento de categoría
Transferencia entre campañasDébil, IDs por campañaVocabulario estable compartido
Anuncios de cola largaSeñal ruidosa y dispersaGeneraliza vía estructura compartida
EscalaLineal en número de ítemsCompone con la curva de escala del LLM
InterpretabilidadID opacoTokens mapean a conceptos
Costo de servingBajoMayor (encoder + cuantización)

Resultado en producción: combinado con el Generative Ads Model (GEM) y el Adaptive Ranking Model de Meta, GenRecs Tokenization entregó +0.35% de lift en conversiones en las superficies (datos internos de Meta, febrero de 2026).

Lo más interesante es el flywheel: mejores predicciones para anuncios de cola generan mejores datos de entrenamiento, que mejoran las predicciones para todos los anuncios. Cada vuelta del ciclo sube la calidad.

Limitaciones y cuidados:

  • Latencia de serving. La tokenización totalmente verbalizada da la vista más rica del anuncio, pero exige ventanas de contexto inviables a escala de anuncios. El enfoque actual mezcla tokens verbalizados compactados con IDs semánticos para equilibrar calidad de razonamiento y latencia.
  • Drift del tokenizer. Un vocabulario solo es estable si el codebook se mantiene. Reentrenar o expandir el codebook puede mover la semántica de los tokens e invalidar mapeos aprendidos.
  • Complejidad de evaluación. Métricas intrínsecas como pureza de clúster son proxies. Correlacionan con precisión de ranking en las pruebas de Meta, pero esa correlación debe revalidarse para cada dominio nuevo.
  • No es drop-in. Es un cambio de capa de representación que toca retrieval, ranking y pipelines de entrenamiento al mismo tiempo.

Scalable tokenization flywheel improving ranking accuracy for tail ads Coding Session Visual

El panorama completo

GenRecs Tokenization es parte de un giro más grande en sistemas de recomendación: de scoring discriminativo a razonamiento generativo. La base de datos va con él — de IDs efímeros a representaciones semánticas estables que los LLMs pueden aprender, razonar y generar.

Tres direcciones para seguir de cerca:

  1. Generalización de cold start más profunda — escalar la cobertura de tokenización a todos los tipos de ítem.
  2. Calidad del tokenizer como objetivo de primera clase — entrenamiento alineado a engagement, vocabulario unificado entre entidades, mejoras de codebook.
  3. Serving eficiente de arquitecturas LLM-native — tokens verbalizados compactados + IDs semánticos para mantener latencia aceptable.

Más adelante, el mismo vocabulario podría unificar representación entre texto, imagen, audio y video — un solo espacio de tokens para razonar sobre lo que el usuario quiere y lo que el anunciante ofrece.

Próximos pasos si quieres experimentar: empieza con un tokenizer semántico pequeño sobre tu propio catálogo, mide pureza de clúster y utilización del codebook, y compara el CTR de cold start contra tu baseline basado en IDs antes de tocar el modelo de ranking. Para la disciplina de validar sistemas generativos antes de producción, checa Eval-Driven Development: The Engineering Discipline Behind Trustworthy GenAI. Y si operas la capa de configuración que entrega estos cambios de modelo con seguridad, How Airbnb Ships Dynamic Config Changes Safely at Scale es lectura obligada.

Fuente: Meta Engineering — GenRecs Tokenization

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.