Como filtrar recomendações em lote e segmentos de usuários (recursos personalizados) - Amazon Personalize

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como filtrar recomendações em lote e segmentos de usuários (recursos personalizados)

A filtragem de recomendações em lote e segmentos de usuários funciona quase da mesma forma que as recomendações em tempo real. Ela segue o mesmo fluxo de trabalho descrito em Recomendações em lote e segmentos de usuários (recursos personalizados). Para filtrar recomendações em lote ou segmentos de usuários, faça o seguinte:

  1. Crie um filtro exatamente como você faria para recomendações em tempo real. Para obter mais informações, consulte Como filtrar recomendações em tempo real.

  2. Prepare seus dados de entrada e faça o upload para o Amazon S3 conforme descrito em Como preparar dados de entrada para recomendações em lote ou Como preparar os dados de entrada para segmentos de usuários. Se o filtro usar parâmetros de espaço reservado, você deverá adicionar um objeto filterValues adicional. Para ter mais informações, consulte Como fornecer valores de filtro no seu JSON de entrada. Se seu filtro não usa parâmetros de espaço reservado, seus dados de entrada podem seguir os exemplos em Exemplos de JSON de entrada e saída de trabalho de inferência em lote Exemplos de JSON de entrada e saída de trabalho de segmento em lote.

  3. Crie um local separado para seus dados de saída, seja uma pasta ou um bucket diferente do Amazon S3.

  4. Crie um trabalho de inferência em lote ou um trabalho de segmentos em lote. Ao criar o trabalho, especifique o nome do recurso da Amazon (ARN) do filtro.

  5. Quando o trabalho de inferência em lote ou de segmentos em lote estiver concluído, recupere as recomendações ou os segmentos de usuários do seu local de saída no Amazon S3.

Como fornecer valores de filtro no seu JSON de entrada

Para filtros com parâmetros de espaço reservado, como $GENRE, você deve fornecer os valores dos parâmetros em um objeto filterValues no seu JSON de entrada. Para um objeto filterValues, cada chave é um nome de parâmetro. Cada valor é o critério que você está enviando como parâmetro. Coloque cada valor entre /": "filterValues":{"GENRES":"\"drama\""} Para usar vários valores, separe cada um deles com uma vírgula: "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}.

Exemplo de JSON de entrada de trabalho de inferência em lote

Veja a seguir um exemplo das primeiras linhas de um arquivo de entrada JSON para um trabalho de inferência em lote. O exemplo inclui o objeto filterValues. A chave GENRES corresponde a um espaço reservado $GENRES na expressão do filtro. O trabalho neste exemplo usa a fórmula User-Personalization. Para fórmulas RELATED_ITEMS, forneça um itemId em vez do userId. Para fórmulas PERSONALIZED_RANKING, forneça o userID e uma itemList.

{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}} {"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}} {"userId": "34","filterValues":{"GENRES":"\"drama\""}}

Para obter mais exemplos de dados de entrada de trabalhos de inferência em lote por fórmula, consulte Exemplos de JSON de entrada e saída de trabalho de inferência em lote. Você pode usar esses exemplos como ponto de partida e adicionar o objeto filterValues do exemplo acima.

Exemplo de JSON de entrada de trabalho de segmento em lote

Veja a seguir um exemplo das primeiras linhas de um arquivo de entrada JSON para um trabalho de segmentos em lote. A chave GENRES corresponde a um espaço reservado $GENRES na expressão do filtro.

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}} {"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}} {"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}

Para obter mais exemplos de dados de entrada de trabalhos de inferência em lote por fórmula, consulte Exemplos de JSON de entrada e saída de trabalho de segmento em lote. Você pode usar esses exemplos como ponto de partida e adicionar o objeto filterValues do exemplo acima.

Como filtrar fluxos de trabalho em lote (console)

Para filtrar fluxos de trabalho em lote com o console do Amazon Personalize, crie um filtro e um trabalho de inferência em lote ou de segmentos em lote e escolha o filtro. Para obter instruções detalhadas, consulte Criar um trabalho de inferência em lote (console) e Criar um trabalho de segmento em lote (console).

Como filtrar fluxos de trabalho em lote (AWS SDKs)

Para filtrar recomendações de lote com AWS os SDKs, crie um filtro e inclua o FilterArn parâmetro na CreateBatchSegmentJob solicitação CreateBatchInferenceJob or.

O código a seguir mostra como criar um trabalho de inferência em lote com um filtro usando AWS SDK for Python (Boto3). Recomendamos usar um local diferente para seus dados de saída (uma pasta ou um bucket diferente do Amazon S3). Para obter uma explicação completa de todos os campos, consulte Criação de um trabalho de inferência em lote (AWS SDKs).

import boto3 personalize = boto3.client("personalize") personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM role ARN", filterArn = "Filter ARN", jobInput = {"s3DataSource": {"path": "S3 input path"}}, jobOutput = e {"S3DataDestination": {"path": "S3 output path"}} )