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. Ele segue o mesmo fluxo de trabalho descrito em Obtendo recomendações de itens em lote ouObtendo segmentos de usuários em lote. 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 obter mais informações, consulte Fornecendo valores de filtro em sua entrada JSON. Se seu filtro não usa parâmetros de espaço reservado, seus dados de entrada podem seguir os exemplos em Exemplos de entrada e saída JSON de tarefas 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 Amazon Resource Name (ARN) do seu 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.

Fornecendo valores de filtro em sua entrada JSON

Para filtros com parâmetros de espaço reservado$GENRE, como, você deve fornecer os valores dos parâmetros em um filterValues objeto na sua entradaJSON. 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 entrada JSON de trabalho de inferência em lote

Veja a seguir um exemplo das primeiras linhas de um arquivo de JSON entrada 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 ITEMS receitas RELATED _, forneça um itemId em vez douserId. Para PERSONALIZED _ RANKING receitas, forneça o ID do usuário e um. 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 entrada e saída JSON de tarefas de inferência em lote. Você pode usar esses exemplos como ponto de partida e adicionar o objeto filterValues do exemplo acima.

JSONExemplo de entrada de trabalho em segmentos em lote

Veja a seguir um exemplo das primeiras linhas de um arquivo de JSON entrada com valores de filtro para uma tarefa de segmento em lotes. 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).

Filtrando fluxos de trabalho em lote ()AWS SDKs

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

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 Criar 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 = {"S3DataDestination": {"path": "S3 output path"}} )