Compartir a través de


Etiquetado de metadatos y agrupación de usuarios

Intelligent Recommendations se pueden utilizar para mejorar la personalización relevante para los usuarios finales, incluso cuando son anónimos. Los clientes pueden integrar una experiencia personalizada de etiquetado de metadatos para su escaparate. Esta experiencia se logra utilizando la capacidad de identificar etiquetas de metadatos para contenido (como artículos escritos, podcasts, videos, productos minoristas, etc.) y recomendar etiquetas o contenido similares según el gusto/preferencia de ese usuario. Los metadatos del usuario pueden ser útiles para recomendar contenido relevante a todos los usuarios, incluidos:

  • Clientes nuevos o poco frecuentes (también conocidos como "usuarios en frío").
  • Conexión de usuarios con otros usuarios en función del etiquetado de metadatos únicos.
  • Conectar a los usuarios con contenido relevante y de corto plazo.

Cuando el etiquetado de metadatos está habilitado, los usuarios pueden crear nuevos escenarios de recomendaciones como:

  • Categorías de metadatos que elegimos para usted
  • Otras personas también miran estas categorías
  • Eventos recientes basados en su actividad reciente
  • Productos/contenido similares en función de sus etiquetas de metadatos atribuidas
  • Selecciones para usted basadas en segmentos de comportamiento del usuario

¿Que es una etiqueta?

Las etiquetas son una descripción de algo de interés dentro de los elementos/contenido, que atraen a los usuarios, y deben ser específicos para la actividad del usuario final. Por ejemplo, en el mundo de las películas, el género, los miembros del elenco, el estado de ánimo, etc. pueden considerarse etiquetas para una película, así como algo por lo que los usuarios finales tienen un cariño/desagrado especial. Las etiquetas pueden incluso incluir jugadores/usuarios famosos, títulos de artículos, género, categorías de productos, eventos y otra terminología de contenido. El objetivo es garantizar que a los usuarios finales se les recomiende contenido relevante que se ajuste a sus intereses/gustos/preferencias en función de los metadatos disponibles.

Información general de arquitectura

Para configurar el etiquetado de metadatos como se muestra en el diagrama de arquitectura, los requisitos previos son los siguientes:

  1. Almacenamiento autorizado para contenido con etiquetas de metadatos enriquecidos: catálogo.
  2. Comportamiento de interacción del usuario (clics en contenido/Uso). La información del perfil del usuario final también puede estar disponible para su uso.
  3. Una cuenta de Intelligent Recommendations separada y una instancia de modelado para comprender los intereses de los usuarios presentados como etiquetas.
  4. Un componente para clasificar contenido basado en etiquetas personalizadas con una consulta API en tiempo real.

Esta imagen muestra el esquema de la arquitectura para configurar el etiquetado de metadatos en una cuenta de Intelligent Recommendations separada.

Cuando está habilitado, el servicio produce un modelo de "etiquetas" personalizadas para los usuarios, basado en:

  1. Interacciones históricas del usuario
  2. Contenido rico en metadatos con "etiquetas"
    1. La suposición aquí es que las etiquetas se limpian (sin errores ortográficos y las etiquetas son un conjunto predeterminado y racionalizado de expertos y no se crean ni adjuntan al azar).

Configuración de contrato de datos

Para configurar un contrato de datos para admitir el etiquetado de metadatos, haga lo siguiente: tome nota de los cambios entre ItemId, TagId y InteractionGroupingId.

En la sección Aplicaciones, verá ejemplos de cómo la introducción de TagID o BucketId cambia la configuración del contrato de datos. Sugerimos tener una cuenta de Intelligent Recommendations separada y una instancia de modelado al probar el etiquetado de metadatos.

Nombre de la capacidad de IR CATÁLOGO
Entidad de datos
CATÁLOGO
Campos de entidad de datos
INTERACCIONES
Entidad de datos
INTERACCIONES
Campos de entidad de datos
(Es necesario para todas las respuestas) Reco_ItemsAndVariants ItemId como TagId
Title
Capacidad de filtrado
(Se aplica a todas las listas)
Reco_ItemCategories ItemCategories: ItemId (o TagId), Categoría
La gente también ve Reco_Interactions InteractionGroupingId como UserId
ItemId como TagId
UserId
InteractionType: Compra == visto
Marca de tiempo
Picking para usted Reco_Interactions (Como la anterior)

Aplicaciones y ejemplos

Las siguientes secciones recorren dos casos de uso comunes que se benefician del etiquetado de metadatos y brindan algunos ejemplos con datos de demostración para cada uno.

  1. Para obtener los "artículos más populares para usted" para usuarios en frío. Para ver un ejemplo, consulte la sección titulada "Obtenga los artículos más populares para usted para usuarios fríos".
  2. Para crear un mapa de aprendizaje automático de los valores de metadatos de los usuarios. Para ver un ejemplo, consulte la sección titulada "Crear un mapa ML de los valores de metadatos de los usuarios".

Un problema común en el mundo de AI-ML es cómo proporcionar recomendaciones relevantes a los usuarios que son clientes nuevos o poco frecuentes (también conocidos como "usuarios en frío"). Como se mencionó anteriormente, el objetivo aquí es crear algunos cubos distintos basados ​​en categorías significativas e información demográfica disponible (es decir, edad y sexo). Luego, use todas las interacciones para conectar a todos los usuarios con sus grupos demográficos correspondientes, lo que a su vez permite que los grupos se conecten a los elementos durante la fase de entrenamiento del modelo. Durante la fase de servicio, se puede asignar un segmento demográfico de Cold User y luego usarlo para recomendar artículos, por ejemplo, "artículos más populares por segmento de usuario".

Los pasos son los siguientes:

  1. Prepare un depósito de usuarios con su información de metadatos.
  2. Cree las conexiones para el modelo en el archivo de almacenamiento de datos "Reco_Interactions.csv".
  3. Consulte el modelo para obtener la API de "elementos más populares por segmento de usuario".

Paso 1: Prepare un depósito de los usuarios con su información de metadatos

Algunas de las mejores prácticas al crear sus cubos son las siguientes:

  • Los metadatos de usuario se pueden representar como cubos de rango. Considere usar los metadatos que tengan sentido para su dominio comercial y caso de uso. Por ejemplo, si quisiera crear un depósito para datos de edad, podría usar estos valores: Age5To11, Age30To40, etc.
  • Algunos metadatos de usuario pueden incluso combinarse en grupos. Considere usar los metadatos y combinaciones que tengan sentido para su dominio comercial y caso de uso. Por ejemplo, podría combinar los datos de edad y sexo para crear grupos como este: Age20To30Male, Age20To30Female, Age30To40Male, Age30To40Female, etc.
  • Una vez que se crean los depósitos, debe asignar a cada depósito un único BucketId.

Paso 2: Cree las conexiones para el modelo en el archivo de almacenamiento de datos "Reco_Interactions.csv"

Dependiendo de la cantidad de depósitos por encima o por debajo de 1000, la forma en que se configuran los datos en el contrato de datos puede cambiar.

Si hay MENOS de 1000 cubos

Para cada Fila de interacción, establezca el ChannelId en el BucketId, que corresponde (o se adapta mejor) al usuario. La fila del CSV de interacción se cambia a: InteractionGroupingID, ItemId, UserId y BucketId como ChannelId. Un ejemplo de CSV de interacciones es el siguiente:

CSV de muestra para MENOS de 1000 cubos

Los encabezados del CSV de interacciones aparecen solo por conveniencia y no deben ser parte de los datos reales.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
InteractionGroupingID ItemId UserId BucketId
Si hay MÁS de 1000 cubos

Si hay más de 1000 depósitos de datos, crea más filas de interacción con BucketId. Convierta cada fila de interacción original entre un usuario y un elemento en dos nuevas filas distintas con un único InteractionGroupingId que solo es exclusivo para estas dos filas. El ejemplo muestra:

  1. La fila de interacción original usando UserId,ItemId y InteractionGroupingId como UNIQUE_ID.
  2. La fila de interacción adicional con BucketId como ItemId.
CSV de muestra para MÁS de 1000 cubos:

Los encabezados del CSV de interacciones aparecen solo por conveniencia y no deben ser parte de los datos reales.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
UNIQUE_ID ItemId UserId
UNIQUE_ID BucketId UserId

Tenga en cuenta el esquema de construcción del modelo discutido anteriormente. Una vez que se haya determinado un usuario frío y su segmento demográfico, consulte el servicio punto de conexión utilizando el tipo de lista "Next Best Action" (anteriormente CART) con el BucketId centrado en la demografía para recomendar los artículos más populares para ese segmento.

Cuando hay MENOS de 1000 cubos

Un enlace de consulta API de muestra donde el parámetro para ChannelId se reemplaza con el valor BucketId, que se vería así:

<serving-endpoint>/Reco/V1.0/Popular?channelID=<BucketId>
Ejemplo 1: Menos de 1000 cubos

Supongamos un usuario con UserId=100, con una asignación personalizada BucketId=Age30To40, que recientemente compró un artículo con ItemId=98005. Este ejemplo crea una fila en el archivo "Reco_Interactions.csv", que usa un BucketId (en el campo ChannelId del esquema IR) que mejor coincide con el usuario (representado por UserId en el esquema IR):

  • La información de la interacción original es: InteractionGroupingId=1, UserId=100, ItemId=98005
  • Observe en el ejemplo CSV, que se adjunta el ChannelId relevante, que mejor coincide con el UserId. En el ejemplo, el UserId fue emparejado con el BucketId= Age30To40, por lo que la fila de interacción modificada es:
InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
1 98005 100 Age30To40
  • La consulta y la respuesta de la API devuelven una lista de ItemIds, incluidos ItemId=43218 en la tercera posición, que es un elemento popular para los usuarios de esta categoría.
Consulta API
GET <serving-endpoint>/reco/v1.0/Popular?ChannelId=Age30To40
Response
{
    "id": "Lists",
    "name": "Lists",
    "version": "v1.0",
    "interactionsVersion": "20220104115104",
    "items": [
        {
            "id": "65106",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62604",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "43218",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "63503",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62452",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Popular",
    "longTitle": "Popular",
    "titleId": 5,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}
Cuando hay MÁS de 1000 cubos

Un enlace de consulta API de muestra donde ItemId se reemplaza con el valor BucketId para un usuario en frío, que se vería así:

<serving-endpoint>/Reco/V1.0/Cart/<BucketId>?
Ejemplo 2: Más de 1000 cubos

Supongamos un usuario con UserId=100, con una asignación personalizada BucketId=Age30To40Female, que recientemente compró un artículo con ItemId=98005. Ahora puede usar los datos de interacción originales y construir filas en el archivo "Reco_Interactions.csv":

  • La información de la interacción original es: InteractionGroupingId= NEW_UNIQUE_ID, UserId=100, ItemId=98005
  • Las dos filas de información de interacción construida que debe estar en el archivo "Reco_Interactions.csv" que lee el servicio de Intelligent Recommendations:
InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
UNIQUE_ID 98005 100
UNIQUE_ID Age30To40Female 100
  • La consulta y la respuesta de la API devuelven una lista de ItemIds, incluidos ItemId=43218 en la tercera posición, que es un producto popular para los usuarios en esta categoría.
Consulta API
GET <serving-endpoint>/reco/v1.0/Cart/Age30To40Female? 
Response
{
    "id": "Lists",
    "name": "Lists",
    "version": "v1.0",
    "interactionsVersion": "20220104115104",
    "items": [
        {
            "id": "65106",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62604",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "43218",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "63503",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62452",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Cart",
    "longTitle": "FrequentlyBoughtTogether",
    "titleId": 5,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}

Aplicación 2: Cree un mapa ML de los valores de metadatos de los usuarios

El modelado de "etiquetas" de metadatos de usuario en lugar de interacciones directas con el usuario puede ser una modificación importante cuando el objetivo es producir un resultado que muestre qué tan conectados están los usuarios con esas etiquetas y qué etiquetas son realmente similares en cuanto a comportamiento. Asigne a cada etiqueta significativa y disponible (por ejemplo, datos demográficos como edad y sexo u otros metadatos) un identificador único, al que el servicio se refiere como TagId. Durante la fase de entrenamiento del modelo, todos los datos de las interacciones se utilizan para crear una conexión entre los ID de usuario y los ID de etiqueta.

Durante la fase de publicación, el sistema puede proporcionar una lista personalizada de etiquetas llamando a "Selecciones para usted" con UserId, y etiquetas similares llamando a "A la gente también le gusta" con TagId.

Cómo usar TagIds para recomendaciones:

  1. Prepare una lista de valores de metadatos de usuario (etiquetas) y asigne a cada uno de ellos un TagId único.
  2. Cree las conexiones para el modelo en el archivo de almacenamiento de datos Reco_Interactions.CSV.
  3. Consulte el modelo para obtener la API de "etiquetas personalizadas por usuario" o "etiquetas similares".

Paso 1: Prepare una lista de valores de metadatos de usuario (etiquetas) y asigne a cada uno de ellos un TagId único

Cuando se construyen valores para los datos de Edad, la segmentación sigue siendo un buen enfoque: Age5To11, Age12To18, etc.

Para otros valores de metadatos, cree un TagId separado para cada uno. Por ejemplo, si quisiéramos una categoría para Estado familiar: Single, Couple, CoupleWithKids, etc.

Paso 2: Cree las conexiones para el modelo en el archivo de almacenamiento de datos Reco_Interactions.CSV

Utilice cada interacción original entre un usuario y un elemento para construir una fila de datos de interacción con TagId. [!Nota:]

Algunos recordatorios importantes con este enfoque:

  1. Solo los datos recién construidos se utilizarán en la entidad de datos Interacciones para el modelo.
  2. La creación de una fila de Interacción que conecta a los Usuarios con TagIds no necesariamente tiene que estar basada en una interacción. Este es un ejemplo para ilustrar cómo se puede crear una interacción para conectar usuarios a etiquetas en el modelo.
  3. Para InteractionGroupingId podría tener sentido reutilizar la interacción original, si está disponible. De lo contrario, intente agrupar por UserId. Durante la fase de entrenamiento del modelo, todos los datos de las interacciones se utilizan para crear una conexión entre los distintos TagIds y entre UserIDs y TagIds. Probar con diferentes formas de agrupar y luego ver cuál produce los mejores resultados relevantes es nuestra sugerencia, ya que los diferentes escenarios y patrones de uso pueden diferir.
    1. Fila de interacción original: con UserId, ItemId, InteractionGroupingId. A diferencia del ejemplo anterior con BucketId, NO INCLUYA esta fila en la entrada conjunto de datos.
    2. Nueva fila de ineracción: con UserId, TagId como ItemId, UserId como InteractionGroupingId.

Un ejemplo de contrato de datos sería similar a este:

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
UserId TagId UserId

Paso 3: Consulte el modelo para obtener la API de etiquetas personalizadas por usuario o etiquetas similares

Con una construcción cuidadosa del modelo, consultar el servicio punto de conexión utilizando los tipos de lista "Selecciones para usted" y "A la gente también le gusta" produce los resultados deseados.

Una consulta API "Selecciones para usted", que devuelve los TagId recomendados para un UserId determinado, se vería así:

<serving-endpoint>Reco/v1.0/picks?userId=<UserId>

Una consulta API "A la gente también le gusta" en la que el parámetro del elemento semilla se reemplaza por el TagId correspondiente:

<serving-endpoint>/Reco/V1.0/Similar/<TagID-value>?
Salida de respuesta de ejemplo
{
    "id": "Picks",
    "name": "Picks",
    "version": "v1.0",
    "items": [
        {
            "id": "68100",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62500",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "61504",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "65103",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "61401",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Picks for you",
    "longTitle": "Picks for you",
    "titleId": 6,
    "personalizationConfidence": 1.0,
    "pagingInfo": {
        "totalItems": 139
    },
    "status": "Success"
}

Ejemplo 3: consulta de identificadores de etiquetas con datos de demostración

Supongamos que un usuario con UserId=100 ha indicado que está alineado con las siguientes etiquetas: 123 (que representa “ fanático del fútbol”), Age30To40Female, y FamilyWithKids.

Puede usar la fila de interacción original para construir las siguientes filas en el archivo "Reco_Interactions.csv": o Nuevas 3 filas de información de interacción, una para cada etiqueta para ese usuario, que debe estar en el archivo "Reco_Interactions.csv" que es leído por el servicio de Intelligent Recommendations:

![Nota]

En este ejemplo, hemos elegido agrupar por UserId y hemos establecido InteractionGroupingId igual a UserId. También tenga en cuenta que ItemId representa a TagId.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Marca de tiempo Atributo futuro Atributo futuro Canal Catálogo Punto fuerte IsPositive
100 123 100
100 Age30To40Female 100
100 FamilyWithKids 100
Consulta y respuestas para selecciones

Así es como se ve la solicitud construida "Selecciones para usted":

GET <serving-endpoint>/reco/v1.0/picks?UserId=100

La respuesta de selecciones devuelve una lista de 200 ItemIds (para etiquetas) que incluye, TagID=FamilyWithKids en primera posición.

{
    "id": "Picks",
    "name": "Picks",
    "version": "v1.0",
    "items": [
        {
            "id": "FamilyWithKids",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "625",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "Sports",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "651",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "611",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Picks for you",
    "longTitle": "Picks for you",
    "titleId": 6,
    "personalizationConfidence": 1.0,
    "pagingInfo": {
        "totalItems": 139
    },
    "status": "Success"
}

Consulta y respuesta para similares

Así es como se ve la solicitud "Personas también" construida usando la API similar:

GET <serving-endpoint>/Reco/V1.0/Similar/FamilyWithKids?

La respuesta "A la gente también le gusta" devuelve una lista de 200 ItemIds (para etiquetas) que incluye, Age30To40Female en primera posición y FamilyWithKids en la segunda posición.


{
    "id": "Similar",
    "name": "Similar",
    "version": "v1.0",
    "items": [
        {
            "id": "Age30To40Female",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "FamilyWithKids",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "SportsParent",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "651",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "123",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "People also like",
    "longTitle": "People also like",
    "titleId": 6,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}

Para obtener más información sobre nuestro servicio y los modelos que admitimos, consulte nuestra Guía de modelado.

Consulte también

Guía de inicio rápido: crear una cuenta IR
Preguntas y respuestas de modelado
Guía de contratos de datos
Solicitudes de API de muestra