Como preparar os dados de entrada para segmentos de usuários - 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 preparar os dados de entrada para segmentos de usuários

Os trabalhos de segmento em lote utilizam uma versão da solução para criar segmentos de usuários com base nos dados que você fornece em um arquivo JSON de entrada. Antes de obter segmentos de usuários, prepare e faça upload do arquivo JSON em um bucket do Amazon S3. Recomendamos que você crie uma pasta de saída no seu bucket do Amazon S3 ou use um bucket de saída separado do Amazon S3. Em seguida, pode executar vários trabalhos de inferência em lote usando o mesmo local de dados de entrada.

Ao utilizar um filtro 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 ter mais informações, consulte Fornecendo valores de filtro em sua entrada JSON.

Preparar e importar dados
  1. Formate os dados de entrada em lote de acordo com a fórmula usada pela sua solução. Separe o elemento de dados de entrada com uma nova linha. Seus dados de entrada são uma lista de itemIds (Item-Affinity) ou atributos do item (Item-Attribute-Affinity).

  2. Faça upload do JSON de entrada em uma pasta de entrada no bucket do Amazon S3. Para obter mais informações, consulte Fazer upload de arquivos e pastas usando arrastar e soltar no Guia do usuário do Amazon Simple Storage Service.

  3. Crie um local separado para seus dados de saída, seja uma pasta ou um bucket diferente do Amazon S3. Ao criar um local separado para o JSON de saída, você pode executar vários trabalhos de segmento em lote com o mesmo local de dados de entrada.

Depois de preparar seus dados de entrada e carregá-los em um bucket do Amazon S3, você poderá gerar segmentos de usuários com um trabalho de segmento em lote. Para ter mais informações, consulte Obtendo segmentos de usuários com uma tarefa de segmentação em lote.

Especificando atributos de item para a receita Item-Attribute-Affinity

Se você usar a receita Item-Attribute-Affinity, seus dados de entrada serão uma lista de atributos do item. Você pode misturar diferentes colunas de metadados. Por exemplo, uma linha pode ser uma coluna numérica e a próxima pode ser uma coluna categórica. Você não pode usar metadados de itens textuais não estruturados como um atributo de item.

Os metadados do item de entrada podem incluir expressões lógicas com o AND operador para obter um segmento de usuário para vários atributos. Por exemplo, uma linha dos seus dados de entrada pode ser {"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} ou {"itemAttributes": "ITEMS.genres = "\Comedy\" AND ITEMS.audience = "\teen\""}.

Ao combinar dois atributos com o operador AND, você cria um segmento de usuários com maior probabilidade de interagir com itens que têm ambos os atributos com base no histórico de interações dos usuários. Diferentemente das expressões de filtro (que usam o operador IN para igualdade de string), as expressões de entrada de segmentos em lote aceitam somente o símbolo = de igualdade para correspondência de strings.

Exemplos de JSON de entrada e saída de trabalho de segmento em lote

Para um trabalho de segmento em lote, seus dados de entrada são uma lista de itemIds (fórmula Item-Affinity) ou atributos de item (Item-Attribute-Affinity). Cada linha de dados de entrada é uma consulta de inferência separada. Cada segmento de usuário é classificado em ordem decrescente com base na probabilidade de cada usuário interagir com os itens do seu inventário.

Ao utilizar um filtro 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 ter mais informações, consulte Fornecendo valores de filtro em sua entrada JSON.

As seções a seguir listam exemplos de saída e entrada JSON formatados corretamente para trabalhos de segmento em lote por fórmula.

Item-Affinity

Input

Seus dados de entrada podem ter um máximo de 500 itens. Separe cada itemId com uma nova linha da seguinte maneira.

{"itemId": "105"} {"itemId": "106"} {"itemId": "441"} ...
Output
{"input": {"itemId": "105"}, "output": {"recommendedUsers": ["106", "107", "49"]}} {"input": {"itemId": "106"}, "output": {"recommendedUsers": ["105", "107", "49"]}} {"input": {"itemId": "441"}, "output": {"recommendedUsers": ["2", "442", "435"]}} ...

Item-Attribute-Affinity

Input

Seus dados de entrada podem ter no máximo 10 consultas, em que cada consulta é um ou mais atributos de itens não textuais. Separe cada atributo ou expressão de atributo com uma nova linha da seguinte maneira.

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} {"itemAttributes": "ITEMS.genres = \"Comedy\""} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\""} ...
Output
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["25", "78", "108"]}} {"itemAttributes": "ITEMS.genres = \"Adventure\"", "output": {"recommendedUsers": ["87", "31", "129"]}} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["8", "442", "435"]}} ...