En esta página se explica cómo cambiar la posición en la clasificación de las recomendaciones de contenido multimedia que devuelve el modelo mediante los controles de servicio de impulso (también llamados controles).
Un control de impulso cambia el orden de las recomendaciones después de que el modelo las haya devuelto. Aplica una expresión de filtro a los resultados para identificar las recomendaciones que quieres destacar o ocultar y, a continuación, aplica un valor de impulso entre -1 y +1. Un valor de impulso de +1 proporciona el mayor impulso a una recomendación, lo que hace que se muestre en la parte superior de las recomendaciones devueltas. El valor -1 oculta la recomendación en la parte inferior de la lista de recomendaciones devueltas.
El aumento es un control del tiempo de servicio. En primer lugar, el modelo de recomendaciones devuelve una lista de recomendaciones. A continuación, se aplica el control de aumento a esa lista mediante una configuración de servicio para ajustar la clasificación de las recomendaciones. El control de impulso no añade ni elimina recomendaciones, pero sí controla el orden en el que se presentan al usuario.
Recomendaciones de impulso frente a recomendaciones de filtrado
Potenciador es un filtro suave. En cambio, el filtro normal de recomendaciones, que se describe en Filtrar recomendaciones, es un filtro rígido.
Si aplicas un filtro estricto a las recomendaciones, nunca verás los documentos que se hayan filtrado. Sin embargo, con un filtro flexible, no se eliminan documentos de la lista de recomendaciones. En su lugar, el filtro se usa para determinar qué documentos deben aparecer más arriba o más abajo en la lista de recomendaciones devueltas.
Evitar sobrecargar el modelo de recomendaciones
Cuando apliques un filtro de aumentar o reducir, te recomendamos que uses valores pequeños cercanos a cero. Es probable que los valores cercanos a +1 o -1 sobrecarguen el modelo de recomendaciones, de modo que la clasificación de las recomendaciones que aplique el modelo no se refleje en el orden en el que el usuario ve las recomendaciones.
Por ejemplo, si aumentas la visibilidad de las películas de animación con un +1, los usuarios solo verán películas de animación en la parte superior de la lista de recomendaciones. Esto hará que las películas que no sean de animación y que el modelo haya recomendado en gran medida se desplacen a la parte inferior de la lista, donde es posible que el usuario no las vea.
Rebajar la posición frente a ocultar
Al rebajar y ocultar ambas recomendaciones, se colocan en posiciones inferiores de la lista de recomendaciones devueltas que ocuparían de otro modo.
Sin embargo, la degradación se basa en la antigüedad del contenido o en si el usuario ya ha visto parte del contenido. Para obtener más información sobre la degradación, consulta Degradar recomendaciones de contenido multimedia.
La opción Ocultar 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, incluido cómo marcar un campo como filtrable, consulta el artículo Filtrar recomendaciones.
Acerca de los controles de impulso y las configuraciones de publicación
Cada control de publicación se compone de un filtro y un valor de aumento. Por ejemplo, un control de impulso puede potenciar las películas que incluyan la palabra "Navidad" en el título con un valor de 0.1
, mientras que otro puede ocultar las películas de terror con un valor de -0.2
.
Después de crear uno o varios controles de aumento, los adjuntas a una configuración de servicio. Cuando se crea una aplicación de Vertex AI Search, también se crea automáticamente una configuración de servicio predeterminada. La configuración de servicio se consulta en el momento de servir para determinar qué resultados genera la aplicación. Además de los controles de refuerzo, la configuración de servicio puede contener otros tipos de controles, como los de diversificación y degradación.
La configuración de servicio se puede aplicar al llamar al método recommend. Todos los controles de la configuración de servicio se aplican a las recomendaciones devueltas por la llamada al método.
Además, puedes asociar varias configuraciones de publicación a tu aplicación, lo que te permite aplicar diferentes conjuntos de controles en distintas circunstancias. Por ejemplo, si la solicitud de recomendación procede de una cuenta infantil, se destacarán las películas de categorías adecuadas para niños y se ocultarán las que no lo sean. Del mismo modo, si la solicitud procede de una cuenta marcada como adulta, se potenciarán los títulos o las categorías populares entre los adultos. También puede elegir tener diferentes configuraciones de publicación para distintas ubicaciones geográficas y potenciar el contenido en función de lo que sea popular en cada región. Para obtener más información sobre las configuraciones de publicación, consulta Crear y gestionar configuraciones de publicación de contenido multimedia.
Los valores de aumento son acumulativos
Si has asociado varios controles de servicio a una configuración de servicio, los aumentos y las ocultaciones se suman.
Por ejemplo, si aumentas en 0,3 las películas infantiles de animación y en 0,4 las películas de aventuras de animación, una película que se clasifique como película infantil de aventuras de animación se aumentará en 0,7.
Del mismo modo, si una película de terror se ha impulsado en 0,2 por un control y se ha ocultado en -0,3 por otro control en la misma configuración de publicación, el resultado neto sería ocultar la película en -0,1.
La suma de las mejoras puede ser superior a +1. Por ejemplo, si los controles aumentaran las películas infantiles de animación en 0,6 y las películas de aventuras de animación en 0,5, una película infantil de aventuras de animación se aumentaría en 1,1.
Ejemplos de filtros
A continuación se incluyen algunos ejemplos de filtros para recomendaciones de contenido multimedia.
Filtros en propiedades de clave comunes
Ejemplos de filtros en propiedades de cadena de clave comunes (category
, image_name
, image_uri
, language
, title
y uri
).
Animaciones para niños:
"filter": "categories: ANY(\"animation\") AND categories: ANY(\"children\")"
Contenido multimedia de miedo:
"filter": "categories: ANY(\"horror\", \"thriller\", \"crime\")
Contenido multimedia cuyo título sea "Navidad":
"filter": "title: ANY(\"Christmas\")"
Contenido multimedia en el que el primer elemento de la matriz
images
tiene el valorname
"beach ball":
"filter": "images[0].name: ANY(\"beach ball\")"
Filtros en propiedades de claves multimedia
Ejemplos de filtros en propiedades de claves multimedia. Las propiedades de las claves multimedia empiezan por media_
y, en la sintaxis del filtro, el nombre del campo va precedido de media_key_properties.
. Para ver una lista de las propiedades de las teclas multimedia, consulta Esquema predefinido de Google frente a esquema personalizado.
Medios cuyo tipo es
audio
:
"filter": "media_key_properties.media_type: ANY(\"audio\")"
Contenido multimedia en el que el array hash_tags contiene una cadena
#winter
:
"filter": "media_key_properties.hash_tags: ANY(\"#winter\")"
Contenido multimedia en el que el primer elemento de la matriz hash_tags es la cadena
#winter
:
"filter": "media_key_properties.hash_tags[0]: ANY(\"#winter\")"
Campos personalizados
Ejemplos de filtros en campos personalizados. En el caso de los atributos personalizados, añade 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 audiodescripción para usuarios con deficiencias visuales. Para filtrar el contenido multimedia que tiene una audiodescripción, haz lo siguiente:
"filter": "attributes.audio_desc: ANY(true)"
Limitaciones de los campos que se pueden filtrar
Se aplican las siguientes limitaciones a los controles de servicio de las campañas:
Solo se pueden usar campos de propiedad de tipo cadena y booleano en expresiones de filtro para aumentar la visibilidad.
No puedes filtrar por campos anidados en más de un nivel. Por ejemplo, puedes filtrar por
persons.name
, pero no por un campopersons.name.stage
(aunque exista).Los filtros deben ser concordancias exactas. Esto significa que, en los ejemplos, no se potenciaría una película llamada "
Christmas Story
" o "CHRISTMAS
".
Antes de empezar
Asegúrate de haber creado una aplicación de recomendaciones de contenido multimedia y un almacén de datos. Para obtener más información, consulta Crear una aplicación de recomendaciones de contenido multimedia y un almacén de datos.
Opcional: Si no quieres usar la configuración de publicación predeterminada, crea una siguiendo los pasos del 1 al 5 y el 7 del artículo Crear una configuración de publicación. Si tu aplicación está en producción, Google te recomienda que crees una configuración de publicación independiente para probar los controles de aumento antes de aplicarlos a la configuración de publicación de producción.
Asegúrate de que los campos que quieras usar en el control de aumento estén marcados como Filtrable en el esquema. Para obtener más información, consulta Configurar ajustes de campos. Consulta también los límites de filtrado.
Potenciar o ocultar recomendaciones
En este procedimiento se describe cómo crear controles de impulso y cómo adjuntarlos a una configuración de servicio.
Una vez que los controles se hayan adjuntado a la configuración de servicio, puedes especificar la configuración de servicio al llamar al método servingConfigs.recommend
. El control de impulso se usará para influir en el orden de las recomendaciones devueltas.
REST
Para crear controles de publicación de impulso y adjuntarlos a una configuración de publicación, sigue estos pasos:
Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de IA.
En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.
Busca el ID de tu almacén de datos. Si ya tiene el ID del almacén de datos, vaya al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de IA y, en el menú de navegación, haz clic en Almacenes de datos.
Haga clic en el nombre de su almacén de datos.
En la página Datos de su almacén de datos, obtenga el ID del almacén de datos.
Crear 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" } }'
Haz los cambios siguientes:
PROJECT_NUMBER
: el número de tu proyecto de Google Cloud .CONTROL_DISPLAY_NAME
: nombre legible por humanos para identificar el control. Debe ser una cadena UTF-8 con una longitud máxima de 128 caracteres.CONTROL_ID
: identificador único (dentro de un almacén de datos) del control. El ID puede contener letras minúsculas, dígitos, guiones y guiones bajos.APP_ID
: el ID de la aplicación 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 intervalo [-1,1]. Si el valor es negativo, las recomendaciones aparecerán más abajo en los resultados. Si el valor es positivo, las recomendaciones se promocionan (aparecen más arriba en los resultados).FILTER
: la expresión de filtro que describe qué documentos se van a destacar o a ocultar. Para obtener información detallada sobre cómo formular la expresión de filtro, consulta Expresiones de filtro.
Repite el paso 3 con cada control de impulso que quieras aplicar a tus recomendaciones. Por ejemplo, puedes tener un control para potenciar las películas infantiles
boost-kids
y otro para ocultar las películas de terrorbury-horror
.Busca el ID de la configuración de publicación. Si ya tienes el ID de configuración de servicio, ve al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de IA.
En la página Aplicaciones, haz clic en el nombre de tu aplicación.
Ve a la página Configurations (Configuraciones) y haz clic en la pestaña Serving (Publicación).
Obtén el ID de configuración de publicación de la columna ID.
Adjunta el nuevo control de servicio de aumento a la configuración de servicio con una solicitud de actualización mediante 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"] }'
Haz los cambios siguientes:
CONFIG_ID
: el ID de la configuración de publicación a la que quieres asociar los controles de aumento. Por ejemplo,my_app-1234567_id
. Consulta el paso anterior.CONTROL_ID
: contiene los IDs de uno o varios controles de servicio de impulso que quiera adjuntar a la configuración de servicio. Por ejemplo,"boost-kids", "bury-horror"
. Es una matriz de cadenas. Si tienes más de un ID, no olvides usar comillas y comas para separarlos.
Espera unos minutos para que los resultados se apliquen.
Previsualiza los efectos del control de refuerzo. Consulta Obtener recomendaciones de contenido multimedia.
Actualizar el control de impulso
En este procedimiento se describe cómo actualizar un control de aumento para cambiar el valor del aumento o del filtro.
Después de probar el control de refuerzo, puede que quieras aumentar o reducir el refuerzo. También puedes cambiar la cadena de filtro.
Cuando actualizas un valor de impulso o un filtro, llamas al método engines.controls.patch
.
El método PATCH sustituye los valores de boost
y filter
por los nuevos valores que proporciones. En este procedimiento se muestra cómo editar los valores de boost
(paso 3) y filter
(paso 4) por separado. Sin embargo, si quieres editar ambos, puedes hacerlo con un solo comando curl.
REST
Para modificar el valor de aumento de un filtro de un control, sigue estos pasos:
Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de IA.
En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.
Busca el ID del control de aumento que quieras actualizar con el método
engines.servingConfigs.get
. Si ya tienes el ID, ve al paso siguiente.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"
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.
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 } }'
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.CONTROL_ID
: el identificador único del control de aumento que quieras editar. Es la parte final del camponame
que devuelve el comandoGET
del paso 2. Por ejemplo,boost-kids
.BOOST_VALUE
: un número de punto flotante en el intervalo [-1,1]. Si el valor es negativo, las recomendaciones aparecerán más abajo en los resultados. Si el valor es positivo, las recomendaciones se promocionan (aparecen más arriba en los resultados).
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" } }'
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.CONTROL_ID
: el identificador único del control de aumento que quieras editar. Es la parte final del camponame
que devuelve el comandoGET
del paso 2.FILTER
: la expresión de filtro que describe qué documentos se van a destacar o a ocultar. Para obtener información detallada sobre cómo formular la expresión de filtro, consulta Expresiones de filtro.
Eliminar un control de aumento
En este procedimiento se describe cómo eliminar un control de aumento. Si no usas un control de aumento, lo más recomendable es que lo elimines para no alcanzar ni superar la cuota del número de controles permitidos.
Cuando eliminas un control de aumento, llamas al método engines.controls.delete
.
No se pueden eliminar los controles de impulso que están asociados a una configuración de servicio. Si intentas eliminar un control de impulso, aparecerá un mensaje de error con el nombre de la configuración de servicio. A continuación, debes eliminar esa configuración de publicación o desvincular ese control de la configuración de publicación.
REST
Para eliminar un control de aumento, sigue estos pasos:
Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de IA.
En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.
Busca el ID del control de aumento que quieras eliminar con el método
engines.servingConfigs.get
. Si ya tienes el ID, ve al paso siguiente.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"
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.
Revisa el resultado. Si el control de aumento está asociado a una configuración de publicación, actualiza la configuración de publicación para quitar el control que quieras eliminar. Consulta Actualizar una configuración de publicación para quitar un control de impulso.
Ejecuta el siguiente comando curl para eliminar 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"
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.CONTROL_ID
: el identificador único del control de aumento que quieres eliminar, que es la parte final del camponame
que devuelve el comandoGET
del paso 2.
Si te aparece un mensaje de error que indica que al menos una configuración de publicación hace referencia al control, consulta el artículo Actualizar una configuración de publicación para quitar un control de aumento.
Actualizar una configuración de publicación para quitar un control de aumento
Para poder eliminar un control de aumento, primero debes separarlo de todos los controles de servicio. Para ello, parchea los controles de publicación para quitar el ID del control de impulso.
Para separar los controles de impulso de una configuración de servicio, sigue estos pasos:
Para saber qué controles de aumento están asociados a la configuración de servicio, haz una solicitud
engines.servingConfigs.get
y consulta el campoboostControlIds
de 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"
Haz los cambios siguientes:
PROJECT_ID
: el ID de tu proyecto de Google Cloud .APP_ID
: el ID de la aplicación Vertex AI Search.CONFIG_ID
: el ID de la configuración de publicación de la que quieres obtener más información.
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"] }'
Haz los cambios siguientes:
CONFIG_ID
: el ID de la configuración de publicación a la que quieres asociar los controles de aumento. Por ejemplo,my_app-1234567_id
. Consulta el paso anterior.CONTROL_ID
: contiene los IDs de uno o varios controles de impulso que quiere que tenga la configuración de servicio. Asegúrate de omitir los controles de aumento que quieras eliminar. Es una matriz de cadenas. Si tiene más de un ID, no olvide usar comillas y comas para separarlos. Por ejemplo,boost-1", "boost-2
.