Filtrado de recomendaciones en tiempo real - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Filtrado de recomendaciones en tiempo real

Puede filtrar las recomendaciones en tiempo real con la consola Amazon Personalize, AWS Command Line Interface (AWS CLI) o los AWS SDK.

Al obtener recomendaciones de elementos personalizadas o de elementos similares, puede especificar una promoción en la solicitud. Una promoción usa un filtro para definir reglas empresariales adicionales que se aplican a un subconjunto configurable de elementos recomendados. Para obtener más información, consulte Promoción de elementos en las recomendaciones.

Filtrado de recomendaciones en tiempo real (consola)

Para filtrar recomendaciones en tiempo real, cree un filtro y, a continuación, aplíquelo a una solicitud de recomendación.

nota

Para filtrar recomendaciones mediante un filtro con parámetros y una campaña implementada antes del 10 de noviembre de 2020, debe volver a implementar la campaña mediante la operación UpdateCampaign o crear una nueva campaña.

Creación de un filtro (consola)

Para crear un filtro en la consola, elige el grupo de conjuntos de datos que contiene la campaña o el generador de recomendaciones que desea usar para obtener recomendaciones filtradas. A continuación, proporcione un nombre de filtro y una expresión de filtro.

Para crear un filtro (consola)
  1. Abra la consola de Amazon Personalize en https://console.aws.amazon.com/personalize/home e inicie sesión en su cuenta.

  2. Elija el grupo de conjuntos de datos que contiene la campaña o el generador de recomendaciones que desee usar para obtener recomendaciones filtradas.

  3. En la página de navegación, elija Filtros y, a continuación, Crear filtro. Aparece la página Crear filtro.

    Representa la página de creación de filtros con los campos de nombre y expresión del filtro.
  4. Para Nombre del filtro, introduzca un nombre para el filtro. Elegirá el filtro con este nombre cuando lo aplique a una solicitud de recomendación.

  5. En Expresión, elija Crear expresión o Añadir expresión manualmente, y cree o inserte la expresión:

    • Para usar el generador de expresiones, elija Crear expresión. El generador de expresiones proporciona la estructura, los campos y las directrices para crear expresiones de filtro con el formato correcto. Para obtener más información, consulte Uso del generador de expresiones de filtro.

    • Para introducir su propia expresión, elija Añadir expresión manualmente. Para obtener más información, consulte Filtrar elementos de expresión.

  6. Seleccione Finalizar. La página de información general del filtro muestra el nombre de recurso de Amazon (ARN), el estado y la expresión completa del filtro. Para eliminar el filtro, elija Eliminar. Para obtener información acerca de la búsqueda y eliminación de filtros después de haber salido de la página de información general, consulte Eliminación de un filtro (consola).

    Representa la página de detalles del filtro con el ARN y la expresión del filtro.

Aplicación de un filtro (consola)

Para aplicar un filtro, en Probar recomendador (para recomendadores) o Probar resultados de la campaña (para campañas personalizadas), elija el filtro y escriba los valores de los parámetros de filtro. A continuación, obtenga recomendaciones para un usuario.

importante

En el caso de las expresiones de filtro que utilizan un elemento INCLUDE, debe proporcionar valores para todos los parámetros definidos en la expresión. En el caso de los filtros con expresiones que utilizan un elemento EXCLUDE, puede omitir filter-values. En este caso, Amazon Personalize no utiliza esa parte de la expresión para filtrar recomendaciones.

Para aplicar un filtro (consola)
  1. Abra la consola de Amazon Personalize en https://console.aws.amazon.com/personalize/home e inicie sesión en su cuenta.

  2. Elija el grupo de conjuntos de datos que contiene la campaña o el generador de recomendaciones que desee usar para obtener recomendaciones filtradas.

  3. En función del tipo de grupo de conjunto de datos o el tipo de recurso, puede seguir uno de los procedimientos a continuación:

    1. Para un grupo de conjuntos de datos de dominio, en el panel de navegación, elija Generadores de recomendaciones.

    2. Para un grupo de conjuntos de datos personalizados o recursos personalizados, en el panel de navegación, elija Recursos personalizados y, a continuación, Campañas.

  4. En la página Generadores de recomendaciones o Campañas, elija el generador de recomendaciones o la campaña objetivo.

  5. Para comparar, comience por obtener recomendaciones sin aplicar un filtro. En Probar recomendador/Probar resultados de la campaña, introduzca el ID de un usuario para el que quiera recibir recomendaciones, o el ID del elemento para obtener elementos relacionados, y elija Obtener recomendaciones. Aparece una tabla que contiene las recomendaciones principales.

    Representa los resultados de las recomendaciones sin aplicar un filtro.
  6. En Nombre del filtro, elija el filtro que ha creado. Si el filtro tiene parámetros de marcador de posición, aparecen los campos asociados para cada parámetro.

  7. Si utiliza un filtro con parámetros de marcador de posición, introduzca el valor para establecer los criterios de filtro. Para usar varios valores para un parámetro, separe cada valor con una coma.

  8. Con el mismo User ID o Item ID que en el paso anterior, elija Obtener recomendaciones. Aparece la tabla de recomendaciones.

    Representa los resultados de las recomendaciones con un filtro aplicado.

    Por ejemplo, si el usuario ya ha comprado un producto recomendado, el filtro lo quita de la lista de recomendaciones. En este ejemplo, los elementos 2657 y 2985 se sustituyeron por los elementos más adecuados que el usuario no compró (los elementos 2641 y 1573).

Uso del generador de expresiones de filtro

El generador de expresiones de la página Crear filtro proporciona la estructura, los campos y las pautas para crear un filtro con el formato correcto.

Representa los campos del generador de expresiones en la página de creación de filtros.

Para crear una expresión de filtro:

  • Utilice los campos Tipo, Acción, Propiedad, Operador y Valor para crear una expresión.

    Para el Valor, introduzca un valor fijo o, para establecer los criterios de filtro cuando reciba recomendaciones, introduzca $ + un nombre de parámetro. Por ejemplo, $GENRES. Cuando reciba recomendaciones, proporcionará el valor o valores por los que filtrar. En este ejemplo, proporcionaría un género o una lista de géneros al recibir recomendaciones.

    Separe los valores que no sean parámetros con una coma. No puede añadir parámetros separados por comas a un filtro.

    nota

    Tras elegir una Propiedad (en formato dataset.field), el valor de la Propiedad de las filas sucesivas encadenadas por las condiciones AND o OR debe ser el mismo dataset.

  • Utilice los botones + y X para añadir o eliminar una fila de la expresión. No se puede eliminar la primera fila.

  • Para las filas nuevas, utilice los operadores AND, IF o OR o del menú AND para crear una cadena de condiciones.

    Para las condiciones IF:

    • Cada expresión solo puede contener un elemento IF. Si elimina una condición IF, el Generador de expresiones elimina cualquier condición AND posterior a la misma.

    • Solo puede usar las condiciones IF para las expresiones que filtran por el CurrentUser.

  • Elija el botón Agregar expresión para agregar una expresión de filtro adicional para un filtrado más preciso. Cada expresión se evalúa primero de forma independiente y el resultado es una unión de los dos resultados.

    nota

    Para crear un filtro que utilice conjuntos de datos tanto de elementos como de interacciones de elementos, o bien conjuntos de datos de acciones y de interacciones de acción, debe utilizar varias expresiones.

Ejemplo de generador de expresiones

En el siguiente ejemplo, se muestra cómo crear un filtro que excluya los elementos de un género que especifique al recibir recomendaciones (observe el parámetro de marcador de posición $GENRES). El filtro también excluye los elementos con un valor de DOWNLOAD_COUNT superior a 200, pero solo si la edad del usuario actual es superior a 17.

Muestra cómo utilizar el generador de expresiones para crear una expresión de filtro de ejemplo.

Eliminación de un filtro (consola)

Al eliminar un filtro, se elimina el filtro de la lista de filtros de un grupo de conjuntos de datos.

importante

No puede eliminar un filtro mientras se está realizando un trabajo de inferencia por lotes.

Para eliminar un filtro (consola)
  1. Abra la consola de Amazon Personalize en https://console.aws.amazon.com/personalize/home e inicie sesión en su cuenta.

  2. En la lista de Grupos de conjuntos de datos, elija el grupo de conjuntos de datos que contiene el filtro que desea eliminar.

  3. En el panel de navegación, elija Filtros.

  4. En la lista de filtros, elige el filtro que desea eliminar y Ver detalles. Se abrirá la página de detalles del filtro.

  5. Elija Eliminar y confirme la eliminación en el cuadro de diálogo de confirmación.

Filtrado de recomendaciones en tiempo real (AWS CLI)

Para filtrar las recomendaciones mediante el AWS CLI, debe crear un filtro y, a continuación, aplicarlo especificando el ARN del filtro en una solicitud GetRecommendations oGetPersonalizedRanking.

importante

Para filtrar recomendaciones mediante un filtro con parámetros y una campaña que haya implementado antes del 10 de noviembre de 2020, debe volver a implementar la campaña mediante la llamada a UpdateCampaign o crear una nueva campaña.

Creación de un filtro (AWS CLI)

Utilice la siguiente operación create-filter para crear un filtro y especificar la expresión de filtro.

Sustituya el Filter name por el nombre del filtro y el Dataset group ARN por el nombre de recurso de Amazon (ARN) del grupo de conjunto de datos. Sustituya el filter-expression de ejemplo por su propia expresión de filtro.

aws personalize create-filter \ --name Filter name \ --dataset-group-arn dataset group arn \ --filter-expression "EXCLUDE ItemID WHERE Items.CATEGORY IN (\"$CATEGORY\")"

Si se realiza correctamente, aparecerá el ARN de filtro. Regístrelo para su uso posterior. Para comprobar que el filtro está activo, utilice la operación DescribeFilter antes de utilizar el filtro.

Para obtener más información sobre la API, consulte CreateFilter. Para obtener más información sobre las expresiones de filtro, incluidos ejemplos, consulte Estructura y elementos de las expresiones de filtro.

Aplicación de un filtro (AWS CLI)

Cuando utilice las operaciones get-recommendations, get-action-recommendations o get-personalized-ranking, aplique un filtro al pasar el valor filter-arn y cualquier valor de filtro como parámetro.

A continuación se muestra un ejemplo de la operación get-recommendations. Sustituya Campaign ARN por el nombre de recurso de Amazon (ARN) de su campaña User ID por el ID del usuario para el que recibes recomendaciones, y Filter ARN por el ARN de su filtro. Si recibe recomendaciones de un generador de recomendaciones en lugar de una campaña, utilice recommender-arn en lugar de --campaign-arn y proporcione el ARN del generador de recomendaciones.

Si su expresión tiene algún parámetro, incluya el objeto filter-values. Para cada parámetro de su expresión de filtro, proporcione el nombre del parámetro (distingue entre mayúsculas y minúsculas) y los valores. Por ejemplo, si la expresión de filtro tiene un parámetro $GENRE, escriba “GENRE” como la clave, y uno o varios géneros, por ejemplo, "Comedy", como el valor. Separe los valores con comas. Por ejemplo, "\"comedy\",\"drama\",\"horror"\".

importante

En el caso de las expresiones de filtro que utilizan un elemento INCLUDE para incluir elementos, debe proporcionar valores para todos los parámetros definidos en la expresión. En el caso de los filtros con expresiones que utilizan un elemento EXCLUDE para excluir elementos, puede omitir filter-values. En este caso, Amazon Personalize no utiliza esa parte de la expresión para filtrar recomendaciones.

aws personalize-runtime get-recommendations \ --campaign-arn Campaign ARN \ --user-id User ID \ --filter-arn Filter ARN \ --filter-values '{ "Parameter name": "\"value\"", "Parameter name": "\"value1\",\"value2\",\"value3\"" }'

Eliminación de un filtro (AWS CLI)

Utilice la siguiente operación delete-filter para eliminar un filtro. Sustituya filter ARN por el ARN del filtro.

aws personalize delete-filter --filter-arn Filter ARN

Filtrar recomendaciones en tiempo real (AWS SDK)

Para filtrar las recomendaciones mediante los AWS SDK, debe crear un filtro y, a continuación, aplicarlo especificando el ARN del filtro en GetRecommendations una GetPersonalizedRanking solicitud o.

importante

Para filtrar recomendaciones mediante un filtro con parámetros y una campaña que haya implementado antes del 10 de noviembre de 2020, debe volver a implementar la campaña mediante la llamada a UpdateCampaign o crear una nueva campaña.

Crear un filtro (SDK)AWS

Cree un filtro nuevo con la operación CreateFilter. El código siguiente muestra cómo crear un filtro. Especifique el nombre de filtro, el nombre de recurso de Amazon (ARN) de su grupo de conjunto de datos, y proporcione la expresión de filtro.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_filter( name = 'Filter Name', datasetGroupArn = 'Dataset Group ARN', filterExpression = 'EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)' ) filter_arn = response["filterArn"] print("Filter ARN: " + filter_arn)
SDK for Java 2.x
public static String createFilter(PersonalizeClient personalizeClient, String filterName, String datasetGroupArn, String filterExpression) { try { CreateFilterRequest request = CreateFilterRequest.builder() .name(filterName) .datasetGroupArn(datasetGroupArn) .filterExpression(filterExpression) .build(); return personalizeClient.createFilter(request).filterArn(); } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateFilterCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the filter's parameters. export const createFilterParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ name: 'NAME', /* required */ filterExpression: 'FILTER_EXPRESSION' /*required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateFilterCommand(createFilterParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Registre el ARN del filtro para su uso posterior. Para comprobar que el filtro está activo, utilice la operación DescribeFilter antes de utilizar el filtro. Para obtener más información sobre la API, consulte CreateFilter. Para obtener más información sobre las expresiones de filtro, incluidos ejemplos, consulte Estructura y elementos de las expresiones de filtro.

Aplicar un filtro (AWS SDK)

Cuando utilice las GetPersonalizedRanking operaciones GetRecommendations GetActionRecommendations, o, aplique un filtro pasando a filterArn y cualquier valor del filtro como parámetros.

El siguiente código muestra cómo obtener recomendaciones de elementos de Amazon Personalize filtradas para un usuario. Especifique el ID del usuario para el que desea obtener recomendaciones, el nombre de recurso de Amazon (ARN) de la campaña y el ARN de su filtro. Si recibe recomendaciones de un generador de recomendaciones en lugar de una campaña, utilice recommenderArn en lugar de campaignArn y proporcione el ARN del generador de recomendaciones.

Para filterValues, para cada parámetro opcional de la expresión de filtro, proporcione el nombre del parámetro (distingue entre mayúsculas y minúsculas) y el valor o los valores. Por ejemplo, si la expresión de filtro tiene un parámetro $GENRES, indique "GENRES" como la clave y uno o varios géneros, como "\"Comedy"\", como valor. Para varios valores, separe cada valor con una coma. Por ejemplo, "\"comedy\",\"drama\",\"horror\"".

importante

En el caso de las expresiones de filtro que utilizan un elemento INCLUDE para incluir elementos, debe proporcionar valores para todos los parámetros definidos en la expresión. En el caso de los filtros con expresiones que utilizan un elemento EXCLUDE para excluir elementos, puede omitir filter-values. En este caso, Amazon Personalize no utiliza esa parte de la expresión para filtrar recomendaciones.

SDK for Python (Boto3)
import boto3 personalize_runtime = boto3.client("personalize-runtime") response = personalize_runtime.get_recommendations( campaignArn = "Campaign ARN", userId = "User ID", filterArn = "Filter ARN", filterValues = { "Parameter name": "\"value1\"", "Parameter name": "\"value1\",\"value2\",\"value3\"" .... } )
SDK for Java 2.x

En el siguiente ejemplo, se utilizan dos parámetros, uno con dos valores y otro con uno. Según la expresión de filtro, modifique el código para añadir o eliminar los campos parameterName y parameterValue.

public static void getFilteredRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, String filterArn, String parameter1Name, String parameter1Value1, String parameter1Value2, String parameter2Name, String parameter2Value){ try { Map<String, String> filterValues = new HashMap<>(); filterValues.put(parameter1Name, String.format("\"%1$s\",\"%2$s\"", parameter1Value1, parameter1Value2)); filterValues.put(parameter2Name, String.format("\"%1$s\"", parameter2Value)); GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .filterArn(filterArn) .filterValues(filterValues) .build(); GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest); List<PredictedItem> items = recommendationsResponse.itemList(); for (PredictedItem item: items) { System.out.println("Item Id is : "+item.itemId()); System.out.println("Item score is : "+item.score()); } } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { GetRecommendationsCommand } from "@aws-sdk/client-personalize-runtime"; import { personalizeRuntimeClient } from "./libs/personalizeClients.js"; // Or, create the client here: // const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"}); // Set recommendation request parameters. export const getRecommendationsParam = { campaignArn: 'CAMPAIGN_ARN', /* required */ userId: 'USER_ID', /* required */ numResults: 15, /* optional */ filterArn: 'FILTER_ARN', /* required to filter recommendations */ filterValues: { "PROPERTY": "\"VALUE\"" /* Only required if your filter has a placeholder parameter */ } } export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetRecommendationsCommand(getRecommendationsParam)); console.log("Success!", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Eliminar un filtro (SDK de AWS Python)

Utilice el siguiente método delete_filter para eliminar un filtro. Sustituya filter ARN por el ARN del filtro.

import boto3 personalize = boto3.client("personalize") response = personalize.delete_filter( filterArn = "filter ARN" )