En esta página, se explica cómo cambiar la posición de clasificación de las recomendaciones de medios que devuelve el modelo con los controles de publicación de refuerzo (también llamados controles).
Un control de refuerzo 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 refuerzo de +1 le da el mayor refuerzo a una recomendación, ya que la coloca en la parte superior de las recomendaciones que se muestran. Un valor de -1 entierra la recomendación hacia la parte inferior de la lista de recomendaciones que se muestran.
El aumento es un control de tiempo de publicación. Primero, el modelo de recomendaciones devuelve una lista de recomendaciones. Con una configuración de entrega, se aplica el control de refuerzo a esa lista para ajustar la clasificación de las recomendaciones. El control de refuerzo no agrega ni borra recomendaciones, pero sí controla el orden en que se presentan al usuario.
Comparación entre el aumento y el filtrado de recomendaciones
El refuerzo es un filtro leve. En cambio, el filtro normal para las recomendaciones, que se describe en Filtra las recomendaciones, es un filtro rígido.
Si aplicas un filtro estricto a las recomendaciones, nunca verás los documentos que se filtraron. Sin embargo, con un filtro flexible, no quitas documentos de la lista de recomendaciones. En cambio, se usa para determinar qué documentos deben aparecer más arriba o más abajo en la lista de recomendaciones que se muestra.
Evita sobrecargar tu modelo de recomendaciones
Cuando apliques un filtro de refuerzo o de ocultamiento, se recomiendan 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 recomendaciones que aplica el modelo no se refleje en el orden en que el usuario ve las recomendaciones.
Por ejemplo, si aumentas la visibilidad de las películas animadas con un valor de +1, los usuarios solo verán películas animadas en la parte superior de la lista de recomendaciones. Esto hará que las películas no animadas que el modelo recomendó en gran medida se desplacen a la parte inferior de la lista, donde es posible que el usuario no las vea.
Descenso de nivel frente a ocultamiento
Tanto la reducción de la clasificación como el ocultamiento mueven las recomendaciones a posiciones más bajas en la lista de recomendaciones devueltas en las que aparecerían de otro modo.
Sin embargo, la reducción de la visibilidad se basa en la antigüedad del contenido o en si el usuario ya miró parte de él. Para obtener más información sobre el descenso de nivel, consulta Cómo descender de nivel las recomendaciones de contenido multimedia.
La acción de 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 Filtra recomendaciones.
Acerca de los controles de aumento y las configuraciones de entrega
Cada control de publicación de la potenciación se compone de un filtro y un valor de potenciación. Por ejemplo, un control de potenciación potencia las películas con la palabra Navidad en el título 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 refuerzo, 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 entrega 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 refuerzo, la configuración de entrega puede contener otros tipos de controles, como los controles de diversificación y disminución de la clasificación.
La configuración de la publicación se puede aplicar cuando llamas al método recommend. Luego, todos los controles de la configuración de entrega se aplican a las recomendaciones que devuelve la llamada de método.
Además, puedes tener varios parámetros de configuración de entrega asociados a tu app, lo que te permite aplicar diferentes conjuntos de controles en diferentes circunstancias. Por ejemplo, si la solicitud de recomendación proviene de una cuenta infantil, se destacarán las películas de categorías aptas para niños y se ocultarán las películas no aptas. Del mismo modo, si la solicitud proviene de una cuenta marcada como adulta, se potenciarán los títulos o las categorías populares entre los adultos. Como alternativa, puedes optar por tener diferentes configuraciones de publicación para diferentes ubicaciones geográficas y potenciar el contenido según lo que sea popular a nivel regional. Para obtener más información sobre las configuraciones de entrega, consulta Crea y administra configuraciones de entrega de contenido multimedia.
Los valores de impulso son aditivos
Si adjuntaste varios controles de entrega a una configuración de entrega, los aumentos y las ocultaciones se vuelven aditivos.
Por ejemplo, si aumentas en 0.3 las películas infantiles animadas y en 0.4 las películas de aventuras animadas, una película que se categorice como película infantil de aventuras animada se aumentará en 0.7.
Del mismo modo, si una película de terror se promocionó en 0.2 con un control y se ocultó en -0.3 con 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 los aumentos puede superar el valor +1. Por ejemplo, si los controles potenciaron las películas animadas para niños en 0.6 y las películas animadas de aventura en 0.5, una película animada de aventura para niños se potenciaría en +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 en el que el título es "Navidad":
"filter": "title: ANY(\"Christmas\")"
Contenido multimedia en el que el primer elemento del array
images
tiene elname
"pelota de playa":
"filter": "images[0].name: ANY(\"beach ball\")"
Filtros en las propiedades de la clave de medios
Ejemplos de filtros en propiedades de claves de medios. Las propiedades de las teclas de medios comienzan con media_
y, en la sintaxis del filtro, el nombre del campo comienza con media_key_properties.
. Para obtener una lista de las propiedades de las claves de medios, consulta Esquema predefinido de Google en comparación con el esquema personalizado.
Medios en los que el tipo es
audio
:
"filter": "media_key_properties.media_type: ANY(\"audio\")"
Medios en los que el array hash_tags contiene una cadena
#winter
:
"filter": "media_key_properties.hash_tags: ANY(\"#winter\")"
Medios en los 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 En el caso de los atributos personalizados, antepón 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 los usuarios con discapacidad visual. Para filtrar el contenido multimedia con audiodescripción, 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 la potenciación:
Solo se pueden usar campos de propiedad de tipo cadena y booleano en las expresiones de filtro para la potenciación.
No puedes filtrar campos anidados en más de un nivel. Por ejemplo, puedes filtrar por
persons.name
, pero no por un campopersons.name.stage
(incluso si existiera tal campo).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 comenzar
Asegúrate de haber creado una app de recomendaciones de contenido multimedia y un almacén de datos. Para obtener más información, consulta Cómo crear una app y un almacén de datos de recomendaciones de contenido multimedia.
Opcional: Si no deseas usar la configuración de entrega predeterminada, crea una nueva siguiendo los pasos del 1 al 5 y el 7 en Crea una configuración de entrega. Si tu app está en producción, Google 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 todos los campos que quieras usar en el control de la potenciación estén marcados como Filterable en el esquema. Para obtener más información, consulta Cómo configurar los parámetros de configuración de los campos. Consulta también Límites de filtrado.
Cómo ocultar o aumentar las recomendaciones
En este procedimiento, se describe cómo crear controles de refuerzo y adjuntarlos a una configuración de entrega.
Después de que los controles se adjunten a la configuración de entrega, puedes especificar la configuración de entrega cuando llames al método servingConfigs.recommend
y el control de refuerzo se usará para influir en el orden de las recomendaciones que se devuelvan.
REST
Para crear controles de entrega de refuerzo y adjuntarlos a una configuración de entrega, sigue estos pasos:
Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications.
Ve a Apps.
En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.
Busca el ID de tu almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications y, en el menú de navegación, haz clic en Data Stores.
Haz clic en el nombre de tu almacén de datos.
En la página Datos de tu almacén de datos, obtén el ID del almacén de datos.
Sigue estos pasos para crear un control de amplificación:
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" } }'
Reemplaza lo siguiente:
PROJECT_NUMBER
: Es el número de tu proyecto de Google Cloud .CONTROL_DISPLAY_NAME
: Es un nombre legible para identificar el control. Debe ser una cadena UTF-8 con una longitud máxima de 128 caracteres.CONTROL_ID
: Es un identificador único (dentro de un almacén de datos) para el control. El ID puede contener letras en minúscula, dígitos, guiones y guiones bajos.APP_ID
: Es el ID de la app de Vertex AI Search.DATA_STORE_ID
: Es 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 potenciarán o se ocultarán. Para obtener información detallada sobre cómo formular la expresión de filtro, consulta Expresiones de filtro.
Repite el paso 3 para cada control de potenciación que quieras aplicar a tus recomendaciones. Por ejemplo, puedes tener un control de refuerzo que refuerce las películas para niños,
boost-kids
, y un segundo control que oculte las películas de terror,bury-horror
.Busca el ID de la configuración de entrega. Si ya tienes el ID de configuración de la publicación, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications.
Ve a Apps.
En la página Apps, haz clic en el nombre de tu app.
Ve a la página Configuraciones y haz clic en la pestaña Entrega.
Obtén el ID de la configuración de entrega en la columna ID.
Adjunta el nuevo control de entrega de refuerzo a la configuración de entrega con una solicitud de actualización que use 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 refuerzo, por ejemplo,my_app-1234567_id
. Consulta el paso anterior.CONTROL_ID
: Contiene los IDs de uno o más controles de publicación de refuerzo que deseas adjuntar a la configuración de publicación, por ejemplo,"boost-kids", "bury-horror"
. Es un array de cadenas. Si tienes más de un ID, no olvides usar comillas y comas para separar los IDs.
Espera unos minutos para que los resultados se apliquen.
Obtén una vista previa de los efectos del control de refuerzo. Consulta Cómo obtener recomendaciones de contenido multimedia.
Actualiza el control de amplificación
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 refuerzo, es posible que descubras que quieres que el refuerzo sea más fuerte o más débil. Como alternativa, puedes cambiar la cadena de filtro.
Cuando actualizas un valor de refuerzo o un filtro, llamas al método engines.controls.patch
.
El método patch reemplaza los valores de boost
y filter
por los valores nuevos que proporcionas. 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 deseas editar ambos, puedes hacerlo con un solo comando curl.
REST
Para modificar el valor de refuerzo del filtro de un control existente, sigue estos pasos:
Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications.
Ve a Apps.
En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es el ID de la app de Vertex AI Search.
Edita el valor de aumento para el 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 } }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es el ID de la app de Vertex AI Search.CONTROL_ID
: Es el identificador único del control de refuerzo que deseas editar, la parte final del camponame
que genera el comandoGET
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).
Edita el filtro para el control de amplificación:
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" } }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es el ID de la app de Vertex AI Search.CONTROL_ID
: Es el identificador único del control de refuerzo que deseas editar, la parte final del camponame
que genera el comandoGET
en el paso 2.FILTER
: Es la expresión de filtro que describe qué documentos se potenciarán o se 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 refuerzo. Si no usas un control de amplificación, la práctica recomendada es borrarlo para no alcanzar o superar la cuota de la cantidad de controles permitidos.
Cuando borras un control de refuerzo, llamas al método engines.controls.delete
.
No se pueden borrar los controles de refuerzo adjuntos a un parámetro de configuración de entrega. Si intentas borrar un control de refuerzo, 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 potenciación, sigue estos pasos:
Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications.
Ve a Apps.
En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es el ID de la app de Vertex AI Search.
Revise el resultado. Si el control de refuerzo está asociado a una configuración de entrega, actualiza la configuración de entrega para quitar el control que deseas borrar. Consulta Actualiza una configuración de publicación para quitar un control de refuerzo.
Ejecuta el siguiente comando de curl para borrar un control de refuerzo:
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es 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 camponame
que genera el comandoGET
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 Actualiza una configuración de publicación para quitar un control de refuerzo.
Actualiza una configuración de entrega para quitar un control de aumento
Antes de borrar un control de refuerzo, debes desconectarlo de todos los controles de publicación. Para ello, aplica parches a los controles de entrega para quitar el ID del control de refuerzo.
Para desconectar los controles de refuerzo de una configuración de publicación, sigue estos pasos:
Para saber qué controles de refuerzo están adjuntos a la configuración de entrega, realiza una solicitud
engines.servingConfigs.get
y consulta el campoboostControlIds
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"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .APP_ID
: Es 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.
Para actualizar la configuración de la publicación y quitar un control de refuerzo, 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"] }'
Reemplaza lo siguiente:
CONFIG_ID
: Es el ID de la configuración de publicación a la que deseas adjuntar los controles de refuerzo, por ejemplo,my_app-1234567_id
. Consulta el paso anterior.CONTROL_ID
: Contiene los IDs de uno o más controles de refuerzo que deseas que tenga la configuración de publicación. Asegúrate de omitir los controles de amplificación que quieras borrar. 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
.