Zephyrnet Logo

Configurando o Amazon Personalize com AWS Glue

Data:

Os dados podem ser usados ​​de várias maneiras para satisfazer as necessidades de diferentes unidades de negócios, como marketing, vendas ou produto. Nesta postagem, nos concentramos no uso de dados para criar recomendações personalizadas para melhorar o envolvimento do usuário final. A maioria dos aplicativos de comércio eletrônico consome uma grande quantidade de dados do cliente que podem ser usados ​​para fornecer recomendações personalizadas; no entanto, esses dados podem não ser limpos ou estar no formato certo para fornecer esses insights valiosos.

O objetivo desta postagem é demonstrar como usar Cola AWS para extrair, transformar e carregar seus dados JSON em um formato CSV limpo. Em seguida, mostramos como executar um mecanismo de recomendação desenvolvido por Amazon Customize nos dados de interação do usuário para fornecer uma experiência personalizada para seus clientes. A saída resultante do Amazon Personalize são recomendações que você pode gerar a partir de uma API.

Um caso de uso comum é uma plataforma de comércio eletrônico que coleta dados de interação de usuário-item e sugere produtos semelhantes ou produtos que um cliente pode gostar. Ao final desta postagem, você poderá pegar seus dados JSON não limpos e gerar recomendações personalizadas com base nos produtos com os quais cada usuário interagiu, criando uma experiência melhor para seus usuários finais. Para os fins desta postagem, consulte este conjunto de dados de interação de item de usuário para construir esta solução.

Os recursos desta solução podem incorrer em custos em sua conta AWS. Para obter informações sobre preços, consulte Preços AWS Glue e Preços personalizados da Amazon.

O diagrama a seguir ilustra nossa arquitetura de solução.

Pré-requisitos

Para esta postagem, você precisa do seguinte:

Para obter instruções sobre como criar um intervalo, consulte Etapa 1: Crie seu primeiro intervalo S3. Tenha certeza de anexar a política de acesso Amazon Personalize.

Essas são políticas muito permissivas; na prática, é melhor usar o menor privilégio e conceder acesso apenas onde for necessário. Para obter instruções sobre como criar uma função, consulte Etapa 2: Criar uma função IAM para AWS Glue.

Rastreando seus dados com AWS Glue

Usamos o AWS Glue para rastrear o arquivo JSON para determinar o esquema de seus dados e criar uma tabela de metadados em seu Catálogo de dados AWS Glue. O Catálogo de dados contém referências a dados que são usados ​​como fontes e destinos de seus trabalhos ETL no AWS Glue. O AWS Glue é um serviço de preparação de dados sem servidor que facilita a extração, limpeza, enriquecimento, normalização e carregamento de dados. Ele ajuda a preparar seus dados para análise ou aprendizado de máquina (ML). Nesta seção, veremos como preparar seus dados JSON para o Amazon Personalize, que requer um arquivo CSV.

Seus dados podem ter diferentes colunas que você pode não necessariamente querer ou precisar executar no Amazon Personalize. Nesta postagem, usamos o user-item-interaction.json arquivo e limpar esses dados usando AWS Glue para incluir apenas as colunas user_id, item_id e timestamp, enquanto também o transforma em formato CSV. Você pode usar um rastreador para acessar seu armazenamento de dados, extrair metadados e criar definições de tabela no Catálogo de Dados. Ele descobre automaticamente novos dados e extrai definições de esquema. Isso pode ajudá-lo a compreender melhor seus dados e o que deseja incluir durante o treinamento de seu modelo.

A user-item-interaction Os dados JSON são uma matriz de registros. O rastreador trata os dados como um objeto: apenas uma matriz. Nós criamos um classificador personalizado para criar um esquema baseado em cada registro na matriz JSON. Você pode pular esta etapa se seus dados não forem uma matriz de registros.

  1. No console AWS Glue, em Rastreadores, escolha Classificadores.
  2. Escolha Adicionar classificador.
  3. Escolha Nome do classificadorentrar json_classifier.
  4. Escolha Tipo de classificador, selecione JSON.
  5. Escolha Caminho JSON, entrar $[*].
  6. Escolha Crie.

Escolha Criar.

  1. No Página de rastreadores, escolha Adicionar rastreador.
  2. Escolha Nome do rastreador, entrar json_crawler.
  3. Escolha Classificadores personalizados, adicione o classificador que você criou.

Para classificadores personalizados, adicione o classificador que você criou.

  1. Escolha Próximo.
  2. Escolha Tipo de fonte do rastreador, escolha Armazenamento de dados.
  3. Deixe todo o resto como padrão e escolha Próximo.
  4. Escolha Escolha um armazenamento de dados, insira o caminho do Amazon S3 para seu arquivo de dados JSON.
  5. Escolha Próximo.

Escolha Próximo.

  1. Pular a seção Adicionar outro armazenamento de dados.
  2. No Escolha uma função IAM seção, selecione Escolha uma função IAM existente.
  3. Escolha Papel do IAM, escolha a função que você criou anteriormente (AWSGlueServiceRole-xxx).
  4. Escolha Próximo.

Escolha Próximo.

  1. Deixe a frequência como Executar sob demanda.
  2. No saída página, escolha Adicionar banco de dados.
  3. Escolha Nome do banco de dados, entrar json_data.
  4. Escolha Acabamento.
  5. Escolha Execute agora. 

Você também pode executar o seu rastreador acessando o Rastreadores página, selecionando seu rastreador e escolhendo Executar rastreador.

Usando o AWS Glue para converter seus arquivos de CSV para JSON

Depois que seu rastreador terminar de ser executado, vá para o Tabelas página no console AWS Glue. Navegue até a tabela que seu rastreador criou. Aqui você pode ver o esquema de seus dados. Anote os campos que deseja usar com seus dados do Amazon Personalize. Para esta postagem, queremos manter o user_id, item_ide colunas de carimbo de data / hora para Amazon Personalize.

Para esta postagem, queremos manter as colunas user_id, item_id e timestamp para Amazon Personalize.

Neste ponto, você configurou seu banco de dados. O Amazon Personalize requer arquivos CSV, portanto, você deve transformar os dados do formato JSON em três arquivos CSV limpos que incluem apenas os dados necessários no Amazon Personalize. A tabela a seguir mostra exemplos dos três arquivos CSV que você pode incluir no Amazon Personalize. É importante notar que interações dados são necessários, enquanto usuário e item os metadados de dados são opcionais.

Tipo de conjunto de dados Os campos obrigatórios Palavras-chave reservadas
Utilizadores

USER_ID (corda)

1 campo de metadados

Unid

ITEM_ID (corda)

1 campo de metadados

CREATION_TIMESTAMP(longo)
Interações

USER_ID (corda)

ITEM_ID (corda)

TIMESTAMP (longo)

 

EVENT_TYPE (corda)

IMPRESSION (corda)

EVENT_VALUE (flutuante, nulo)

Também é importante certificar-se de que você tenha pelo menos 1,000 interações históricas e de eventos combinadas exclusivas para treinar o modelo. Para obter mais informações sobre cotas, consulte Cotas no Amazon Personalize.

Para salvar os dados como um CSV, você precisa executar um trabalho AWS Glue nos dados. Um trabalho é a lógica de negócios que realiza o trabalho ETL no AWS Glue. O trabalho muda o formato de JSON para CSV. Para obter mais informações sobre formatação de dados, consulte Formatando seus dados de entrada.

  1. No Painel do AWS Glue, escolha Estúdio do AWS Glue.

Estúdio do AWS Glue é uma interface gráfica fácil de usar para criar, executar e monitorar trabalhos ETL do AWS Glue.

  1. Escolha Criar e gerenciar empregos.
  2. Selecionar Fonte e destino adicionados ao gráfico.
  3. Escolha fonte, escolha S3.
  4. Escolha Target, escolha S3.
  5. Escolha Crie.

Escolha Criar.

  1. Escolha o intervalo S3 da fonte de dados.
  2. No Propriedades da fonte de dados - S3 guia, adicione o banco de dados e a tabela que criamos anteriormente.

Na guia Propriedades da fonte de dados - S3, adicione o banco de dados e a tabela que criamos anteriormente.

  1. No Transformar guia, selecione as caixas para soltar user_login e location.

Nesta postagem, não usamos nenhum metadado adicional para executar nosso algoritmo de personalização.

Nesta postagem, não usamos nenhum metadado adicional para executar nosso algoritmo de personalização.

  1. Escolha o intervalo S3 de destino de dados.
  2. No Propriedades do alvo de dados - S3 guia, para Formato, escolha CSV.
  3. Escolha Localização de destino S3, insira o caminho S3 para o seu destino. 

Para esta postagem, usamos o mesmo intervalo que usamos para o arquivo JSON.

Para esta postagem, usamos o mesmo intervalo que usamos para o arquivo JSON.

  1. No Detalhes do trabalho página, para Nome, insira um nome para o seu trabalho (para esta postagem, json_to_csv).
  2. Escolha Papel IAM, escolha a função que você criou anteriormente.

Você também deve ter incluído o AmazonS3FullAccess política anterior.

  1. Deixe o restante dos campos com suas configurações padrão.

Deixe o restante dos campos com suas configurações padrão.

  1. Escolha Salvar.
  2. Escolha Execute.

A execução do trabalho pode demorar alguns minutos.

Em seu bucket do Amazon S3, você agora deve ver o arquivo CSV que usará na próxima seção.

Configurando Amazon Personalize

Neste ponto, você tem seus dados formatados em um tipo de arquivo que o Amazon Personalize pode usar. O Amazon Personalize é um serviço totalmente gerenciado que usa ML e mais de 20 anos de experiência em recomendações na Amazon.com para permitir que você melhore o envolvimento do usuário final ao fornecer recomendações personalizadas de produtos e conteúdo em tempo real e promoções de marketing direcionadas. Nesta seção, veremos como criar uma solução Amazon Personalize para usar seus dados para criar experiências personalizadas.

  1. No console do Amazon Personalize, em Novos grupos de conjuntos de dados, escolha COMECE AGORA.
  2. Insira o nome do seu grupo de conjunto de dados.

Um grupo de conjunto de dados contém os conjuntos de dados, soluções e API de ingestão de eventos.

  1. Insira um nome de conjunto de dados e insira os detalhes do esquema com base em seus dados.

Para este conjunto de dados, usamos o seguinte esquema. Você pode alterar o esquema de acordo com os valores em seu conjunto de dados.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0"
}

  1. Escolha Próximo.
  2. Insira o nome do trabalho de importação do conjunto de dados para importar dados do Amazon S3.

Certifique-se de que sua função de serviço IAM tenha acesso ao Amazon S3 e ao Amazon Personalize, e que seu bucket tenha o política de balde.

  1. Insira o caminho para seus dados (o bucket do Amazon S3 da seção anterior).
  2. No Painel página para seus grupos de conjuntos de dados, em Carregar conjuntos de dados, importe o user-item-interactions dados (dados do usuário e dados do item são opcionais, mas podem aprimorar a solução).

Na página Painel de seus grupos de conjuntos de dados, em Fazer upload de conjuntos de dados,

Incluímos um exemplo item.csv arquivo no GitHub repo. A captura de tela a seguir mostra um exemplo dos dados do item.

A captura de tela a seguir mostra um exemplo dos dados do item.

  1. Debaixo Crie soluções, Por Treinamento de soluções, escolha Início.

Uma solução é um modelo treinado dos dados que você forneceu com o algoritmo, ou receita, que você selecionou.

  1. Escolha Nome da solução, entrar aws-user-personalization.
  2. Escolha Próximo.
  3. Revise e escolha Acabamento.
  4. No painel, em Lançar campanhas, Por Criação de campanha, escolha Início.

Uma campanha permite que seu aplicativo obtenha recomendações de sua versão de solução.

  1. Escolha Nome da campanha, Insira o nome.
  2. Escolha a solução que você criou.
  3. Escolha Criar campanha.

Agora você usou com êxito os dados de seu data lake e criou um modelo de recomendação que pode ser usado para obter várias recomendações. Com este conjunto de dados, você pode obter recomendações personalizadas para produtos de utensílios domésticos com base nas interações do usuário com outros produtos no conjunto de dados.

Usando Amazon Personalize para obter suas recomendações

Para testar sua solução, vá para a campanha que você criou. No Resultados da campanha de teste seção, sob User ID, insira um ID para o qual obter recomendações. Uma lista de IDs é exibida, junto com uma pontuação relativa. Os IDs dos itens se correlacionam com produtos específicos recomendados.

A captura de tela a seguir mostra uma pesquisa por ID de usuário 1. Eles foram recomendados como ID do item 59, que corresponde a uma moldura de madeira. A pontuação listada ao lado do item fornece a relevância prevista de cada item para o usuário.

A captura de tela a seguir mostra uma pesquisa pelo ID do usuário 1.

Para saber mais sobre as pontuações do Amazon Personalize, consulte Apresentando pontuações de recomendação no Amazon Personalize.

Para gerar recomendações, você pode ligar para o GetRecommendations or GetPersonalizedRanking API usando o Interface de linha de comando da AWS (AWS CLI) ou um SDK específico de idioma. Com o Amazon Personalize, suas recomendações podem mudar conforme o usuário clica nos itens para mais casos de uso em tempo real. Para mais informações, veja Obtendo Recomendações em Tempo Real.

Conclusão

AWS oferece uma ampla gama de AI / ML e analítica serviços que você pode usar para obter insights e orientar melhores decisões de negócios. Nesta postagem, você usou um conjunto de dados JSON que incluía colunas adicionais de dados e limpou e transformou esses dados usando o AWS Glue. Além disso, você construiu um modelo personalizado usando o Amazon Personalize para fornecer recomendações para seus clientes.

Para saber mais sobre o Amazon Personalize, consulte o guia do desenvolvedor. Experimente esta solução e deixe-nos saber se você tiver alguma dúvida nos comentários.


Sobre os autores

Zoish PithwafaZoish Pitawala é arquiteto de soluções de startups na Amazon Web Services com sede em San Francisco. Ela trabalha principalmente com clientes iniciantes para ajudá-los a criar soluções seguras e escalonáveis ​​na AWS.

 

 

 

Sam TranSam Tran é arquiteto de soluções de startups na Amazon Web Services com sede em Seattle. Ele se concentra em ajudar seus clientes a criar soluções bem arquitetadas na AWS.

Fonte: https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

local_img

Inteligência mais recente

local_img

Fale Conosco

Olá! Como posso ajudá-lo?