Cómo destacar y ocultar recomendaciones de contenido multimedia

En esta página, se explica cómo cambiar la posición de clasificación de las recomendaciones de contenido multimedia que muestra el modelo mediante controles de publicación de aumento (también llamados controles).

Un control de aumento cambia el orden de las recomendaciones después de que el modelo las muestra. Aplicas una expresión de filtro a los resultados para identificar qué recomendaciones deseas mejorar o destinar, y luego aplicas un valor de mejora entre -1 y +1. Un valor de impulso de +1 le brinda el impulso más grande a una recomendación, lo que la coloca en la parte superior de las recomendaciones que se muestran. Un valor de -1 entierra la recomendación en la parte inferior de la lista de recomendaciones que se muestra.

El aumento es un control de tiempo de publicación. Primero, el modelo de recomendaciones muestra una lista de recomendaciones. Con una configuración de publicación, el control de aumento se aplica a esa lista para ajustar la clasificación de las recomendaciones. El control de aumento no agrega ni borra recomendaciones, pero sí controla el orden en que se presentan al usuario.

Diferencia entre las recomendaciones de aumento y las de filtrado

El aumento es un filtro suave. Mientras que el filtro normal para las recomendaciones, que se describe en Cómo filtrar recomendaciones, es un filtro estricto.

Si aplicas un filtro estricto a las recomendaciones, nunca verás los documentos que se filtran. Sin embargo, con un filtro suave, no quitas los documentos de la lista de recomendaciones. En cambio, el filtro se usa para determinar qué documentos deben estar más arriba o más abajo en la lista de recomendaciones que se muestran.

Evita sobrecargar tu modelo de recomendaciones

Cuando se aplica un filtro de aumento o ocultación, se recomiendan valores pequeños cercanos a cero. Es probable que los valores cercanos a +1 o -1 abrumen al modelo de recomendaciones, de modo que la clasificación de recomendaciones que aplica el modelo no se refleje en el orden en que el usuario ve las recomendaciones.

Por ejemplo, si promocionas películas animadas con +1, los usuarios solo verán películas animadas en la parte superior de la lista de recomendaciones. Estas desplazarían las películas no animadas que el modelo recomendó mucho hasta la parte inferior de la lista, donde es posible que el usuario no las vea.

Descenso de nivel en comparación con el entierro

La baja de clasificación y el ocultamiento de las recomendaciones las mueven a posiciones más bajas en la lista de recomendaciones que se muestran, de lo contrario.

Sin embargo, la reducción de clasificación se basa en la antigüedad del contenido o en si el usuario ya lo vio. Para obtener más información sobre el descenso de nivel, consulta Cómo descender de nivel las recomendaciones de contenido multimedia.

La ocultación se aplica al contenido identificado por un filtro. El filtro puede ser cualquier campo de datos marcado como filtrable en el esquema. Para obtener información general sobre los filtros de recomendaciones, incluida la forma de marcar un campo como filtrable, consulta Filtra recomendaciones.

Acerca de los controles de aumento y las configuraciones de publicación

Cada control de publicación de aumento se compone de un filtro y un valor de aumento. Por ejemplo, un control de aumento aumenta las películas con el título Navidad con un valor de 0.1 y otro oculta las películas de terror con un valor de -0.2.

Después de crear uno o más controles de aumento, debes adjuntarlos a una configuración de entrega. Cuando se crea una app de Vertex AI Search, también se crea automáticamente una configuración de publicación predeterminada. Se hace referencia a la configuración de entrega en el momento de la entrega para determinar qué resultados genera la app. Además de los controles de aumento, la configuración de publicación puede contener otros tipos de controles, como los controles de diversificación y reducción de clasificación.

La configuración de publicación se puede aplicar cuando llamas al método recommend. Luego, todos los controles de la configuración de publicación se aplican a las recomendaciones que muestra la llamada de método.

Además, puedes tener varias configuraciones de publicación asociadas con tu app. Esto te permite aplicar diferentes conjuntos de controles en diferentes circunstancias. Por ejemplo, si la solicitud de recomendación proviene de la cuenta de un niño o niña, destaca las películas en categorías aptas para niños y oculta las que no lo son. Del mismo modo, si la solicitud proviene de una cuenta marcada como para adultos, aumenta los títulos o las categorías populares entre los adultos. Como alternativa, puedes optar por tener configuraciones de publicación diferentes para diferentes ubicaciones geográficas y aumentar el contenido según lo que sea popular en la región. Para obtener más información sobre las configuraciones de publicación, consulta Crea y administra configuraciones de publicación de contenido multimedia.

Los valores de impulso son aditivos

Si adjuntaste varios controles de publicación a una configuración de publicación, los aumentos y las ocultaciones se suman.

Por ejemplo, si aumentas las películas animadas infantiles en un 0.3 y las películas animadas de aventuras en un 0.4, una película que se clasifica como una aventura animada infantil se aumentará en un 0.7.

Del mismo modo, si un control aumenta una película de terror en 0.2 y otro la reduce en 0.3 en la misma configuración de publicación, el resultado neto sería reducir la película en 0.1.

La suma de los aumentos puede superar el +1. Por ejemplo, si los controles aumentaran las películas animadas para niños en un 0.6 y las películas de aventuras animadas en un 0.5, una película de aventuras animadas para niños aumentaría en un 1.1.

Ejemplos de filtros

A continuación, se incluyen algunos ejemplos de filtros para las recomendaciones de contenido multimedia.

Filtros en propiedades de clave comunes

Ejemplos de filtros en propiedades de cadenas de claves comunes (category, image_name, image_uri, language, title y uri).

  • Animaciones para niños:
    "filter": "categories: ANY(\"animation\") AND categories: ANY(\"children\")"

  • Contenido multimedia aterrador:
    "filter": "categories: ANY(\"horror\", \"thriller\", \"crime\")

  • Contenido multimedia cuyo título es "Navidad":
    "filter": "title: ANY(\"Christmas\")"

  • Contenido multimedia en el que el primer elemento del array images tiene el name “pelota de playa”:
    "filter": "images[0].name: ANY(\"beach ball\")"

Filtros en las propiedades de claves de contenido multimedia

Ejemplos de filtros en propiedades de claves de contenido multimedia. Las propiedades de clave de contenido multimedia comienzan con media_ y, en la sintaxis del filtro, el nombre del campo se antepone con media_key_properties.. Para obtener una lista de las propiedades de claves de contenido multimedia, consulta Esquema predefinido de Google en comparación con el esquema personalizado.

  • Medios cuyo tipo es audio:
    "filter": "media_key_properties.media_type: ANY(\"audio\")"

  • Contenido multimedia en el que el array de hash_tags contiene una cadena #winter:
    "filter": "media_key_properties.hash_tags: ANY(\"#winter\")"

  • Contenido multimedia en el que el primer elemento del array hash_tags es la cadena #winter:
    "filter": "media_key_properties.hash_tags[0]: ANY(\"#winter\")"

Campos personalizados

Ejemplos de filtros en campos personalizados. Para los atributos personalizados, agrega el prefijo attributes. al nombre del campo.

  • Tienes un campo de cadena personalizado, festival, en tu esquema para representar en qué festival de cine se estrenó una película. Para filtrar solo las películas que se estrenaron en Cannes, haz lo siguiente:
    "filter": "attributes.festival: ANY(\"Cannes\")

  • Tienes un campo booleano personalizado, audio_desc, que es verdadero cuando el contenido multimedia incluye una descripción de audio para usuarios con discapacidad visual. Para filtrar contenido multimedia con una descripción de audio, haz lo siguiente:
    "filter": "attributes.audio_desc: ANY(true)"

Limitaciones de los campos filtrables

Se aplican las siguientes limitaciones a los controles de publicación de anuncios mejorados:

  • Solo se pueden usar campos de propiedad de los tipos cadena y booleano en las expresiones de filtro para la mejora.

  • No puedes filtrar campos anidados en más de un nivel. Por ejemplo, puedes filtrar por persons.name, pero no puedes filtrar por un campo persons.name.stage (incluso si ese campo existiera).

  • Los filtros deben ser concordancias exactas. Esto significa que, en los ejemplos, no se promocionaría una película llamada “Christmas Story” o “CHRISTMAS”.

Antes de comenzar

Cómo aumentar o ocultar recomendaciones

En este procedimiento, se describe cómo crear controles de aumento y conectarlos a una configuración de publicación.

Una vez que los controles se hayan adjuntado a la configuración de publicación, puedes especificarla cuando llames al método servingConfigs.recommend, y se usará el control de aumento para influir en el orden de las recomendaciones que se muestran.

REST

Para crear controles de publicación mejorados y adjuntarlos a una configuración de publicación, sigue estos pasos:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID de la columna ID.

  2. Busca el ID de tu almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder y, en el menú de navegación, haz clic en Almacenes de datos.

      Ve a la página Almacenes de datos.

    2. Haz clic en el nombre de tu almacén de datos.

    3. En la página Datos de tu almacén de datos, obtén el ID del almacén de datos.

  3. Crea un control de aumento:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: PROJECT_NUMBER" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
          "displayName": "CONTROL_DISPLAY_NAME",
              "solutionType": "SOLUTION_TYPE_RECOMMENDATION",
              "boostAction": {
                   "dataStore": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/dataStores/DATA_STORE_ID",
                   "boost" :  BOOST_VALUE,
                   "filter": "FILTER"
              }
        }'
    
    • PROJECT_NUMBER: Es el número de tu proyecto de Google Cloud.

    • CONTROL_DISPLAY_NAME: Un nombre legible para identificar el control. Debe ser una cadena UTF-8 con una longitud máxima de 128 caracteres.

    • CONTROL_ID: Un identificador único (dentro de un almacén de datos) para el control. El ID puede contener letras minúsculas, dígitos, guiones y guiones bajos.

    • APP_ID: El ID de la app de Vertex AI Search.

    • DATA_STORE_ID: el ID del almacén de datos de Vertex AI Search.

    • BOOST_VALUE: Un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, las recomendaciones aparecen más abajo en los resultados. Cuando el valor es positivo, se promocionan las recomendaciones (aparecen más arriba en los resultados).

    • FILTER: Es la expresión de filtro que describe qué documentos se destacarán o ocultarán. Para obtener información detallada sobre cómo formular la expresión de filtro, consulta Expresiones de filtro.

  4. Repite el paso 3 para cada control de aumento que quieras aplicar a tus recomendaciones. Por ejemplo, puedes querer un control de aumento que aumente las películas infantiles, boost-kids, y un segundo control que oculte las películas de terror, bury-horror.

  5. Busca el ID de la configuración de publicación. Si ya tienes el ID de configuración de publicación, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder.

      Ve a Apps.

    2. En la página Apps, haz clic en el nombre de tu app.

    3. Ve a la página Configuraciones y haz clic en la pestaña Publicación.

    4. Obtén el ID de configuración de publicación de la columna ID.

  6. Adjunta el nuevo control de publicación de aumento a la configuración de publicación con una solicitud de actualización con el método engines.servingConfigs.patch.

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID?update_mask=boost_control_ids" \
    -d '{
      "boostControlIds": ["CONTROL_ID"]
    }'
    

    Reemplaza lo siguiente:

    • CONFIG_ID: Es el ID de la configuración de publicación a la que deseas adjuntar los controles de aumento, por ejemplo, my_app-1234567_id. Consulta el paso anterior.

    • CONTROL_ID: Contiene los IDs de uno o más de los controles de publicación de aumento que deseas adjuntar a la configuración de publicación, por ejemplo, "boost-kids", "bury-horror". Este es un array de cadenas. Si tienes más de un ID, no olvides usar comillas y comas para separarlos.

  7. Espera unos minutos para que se apliquen los resultados.

  8. Obtén una vista previa de los efectos de tu control de aumento. Consulta Obtén recomendaciones de contenido multimedia.

Actualiza el control de aumento

En este procedimiento, se describe cómo actualizar un control de mejora existente para cambiar el valor de la mejora o el filtro.

Después de probar el control de aumento, es posible que desees que el aumento sea más fuerte o más débil. Como alternativa, te recomendamos que cambies la cadena de filtro.

Cuando actualizas un valor o filtro de aumento, debes llamar al método engines.controls.patch.

El método de parche reemplaza los valores de boost y filter por los valores nuevos que proporciones. En este procedimiento, se muestra cómo editar el valor de boost (paso 3) y el valor de filter (paso 4) por separado. Sin embargo, si quieres editar ambos, puedes hacerlo en un solo comando curl.

REST

Para modificar el valor de aumento del filtro de un control existente, sigue estos pasos:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID de la columna ID.

  2. Busca el ID del control de aumento que deseas actualizar con el método engines.servingConfigs.get. Si ya tienes el ID, ve al siguiente paso.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls"
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

  3. Edita el valor de aumento del control:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID?update_mask=boost_action.boost" \
    -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID",
        "boostAction": {
          "boost": BOOST_VALUE
        }
    }'
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

    • CONTROL_ID: Es el identificador único del control de aumento que deseas editar, la parte final del campo name que muestra el comando GET en el paso 2. Por ejemplo, boost-kids

    • BOOST_VALUE: Un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, las recomendaciones aparecen más abajo en los resultados. Cuando el valor es positivo, se promocionan las recomendaciones (aparecen más arriba en los resultados).

  4. Edita el filtro del control de aumento:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID?update_mask=boost_action.filter" \
    -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID",
        "boostAction": {
          "filter": "FILTER"
        }
    }'
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

    • CONTROL_ID: Es el identificador único del control de aumento que deseas editar, la parte final del campo name que muestra el comando GET en el paso 2.

    • FILTER: Es la expresión del filtro que describe qué documentos se destacarán o ocultarán. Para obtener información detallada sobre cómo formular la expresión de filtro, consulta Expresiones de filtro.

Borra un control de aumento

En este procedimiento, se describe cómo borrar un control de aumento. Si no usas un control de aumento, se recomienda borrarlo para no alcanzar ni superar la cuota de la cantidad de controles permitidos.

Cuando borras un control de aumento, llamas al método engines.controls.delete.

No se pueden borrar los controles de aumento que se adjuntan a una configuración de publicación. Si intentas borrar un control de aumento, un mensaje de error te indicará el nombre de la configuración de publicación. Luego, debes borrar esa configuración de entrega o desvincular ese control de la configuración de entrega.

REST

Para borrar un control de aumento, sigue estos pasos:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID de la columna ID.

  2. Busca el ID del control de aumento que deseas borrar con el método engines.servingConfigs.get. Si ya tienes el ID, ve al siguiente paso.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls"
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

  3. Revise el resultado. Si el control de aumento está adjunto a una configuración de publicación, actualiza la configuración de publicación para quitar el control que deseas borrar. Consulta Cómo actualizar una configuración de publicación para quitar un control de aumento.

  4. Ejecuta el siguiente comando de curl para borrar un control de aumento:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID"
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

    • CONTROL_ID: Es el identificador único del control de aumento que deseas borrar, la parte final del campo name que muestra el comando GET en el paso 2.

    Si recibes un mensaje de error que indica que al menos una configuración de publicación hace referencia de forma activa al control, consulta Cómo actualizar una configuración de publicación para quitar un control de aumento.

Actualiza una configuración de publicación para quitar un control de aumento

Antes de borrar un control de aumento, debes desconectarlo de todos los controles de publicación. Para ello, aplica parches a los controles de publicación para quitar el ID del control de aumento.

Para desconectar los controles de aumento de una configuración de publicación, sigue estos pasos:

  1. Para saber qué controles de aumento están adjuntos a la configuración de publicación, realiza una solicitud engines.servingConfigs.get y observa el campo boostControlIds en la respuesta.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID"
    
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    • APP_ID: El ID de la app de Vertex AI Search.

    • CONFIG_ID: Es el ID de la configuración de publicación sobre la que deseas obtener más información.

  2. Para actualizar la configuración de publicación y quitar un control de aumento, usa el método engines.servingConfigs.patch.

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID?update_mask=boost_control_ids" \
    -d '{
      "boostControlIds": ["CONTROL_ID"]
    }'
    
    • CONFIG_ID: Es el ID de la configuración de publicación a la que deseas adjuntar los controles de aumento, por ejemplo, my_app-1234567_id. Consulta el paso anterior.

    • CONTROL_ID: Contiene los IDs de uno o más de los controles de aumento que deseas que tenga la configuración de publicación. Asegúrate de omitir los controles de aumento que quieras borrar. Este es un array de cadenas. Si tienes más de un ID, no olvides usar comillas y comas para separarlos, por ejemplo, boost-1", "boost-2.