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:
- An Serviço de armazenamento simples da Amazon (Amazon S3) bucket que contém o conjunto de dados de interação de item de usuário.
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.
- An Gerenciamento de acesso e identidade da AWS (IAM) para AWS Glue com o
AmazonS3FullAccess
eAmazonPersonalizeFullAccess
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.
- No console AWS Glue, em Rastreadores, escolha Classificadores.
- Escolha Adicionar classificador.
- Escolha Nome do classificadorentrar
json_classifier
. - Escolha Tipo de classificador, selecione JSON.
- Escolha Caminho JSON, entrar
$[*].
- Escolha Crie.
- No Página de rastreadores, escolha Adicionar rastreador.
- Escolha Nome do rastreador, entrar
json_crawler
. - Escolha Classificadores personalizados, adicione o classificador que você criou.
- Escolha Próximo.
- Escolha Tipo de fonte do rastreador, escolha Armazenamento de dados.
- Deixe todo o resto como padrão e escolha Próximo.
- Escolha Escolha um armazenamento de dados, insira o caminho do Amazon S3 para seu arquivo de dados JSON.
- Escolha Próximo.
- Pular a seção Adicionar outro armazenamento de dados.
- No Escolha uma função IAM seção, selecione Escolha uma função IAM existente.
- Escolha Papel do IAM, escolha a função que você criou anteriormente (
AWSGlueServiceRole-xxx
). - Escolha Próximo.
- Deixe a frequência como Executar sob demanda.
- No saída página, escolha Adicionar banco de dados.
- Escolha Nome do banco de dados, entrar
json_data
. - Escolha Acabamento.
- 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_id
e colunas de carimbo de data / hora 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 |
1 campo de metadados |
|
Unid |
1 campo de metadados |
CREATION_TIMESTAMP (longo) |
Interações |
|
|
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.
- 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.
- Escolha Criar e gerenciar empregos.
- Selecionar Fonte e destino adicionados ao gráfico.
- Escolha fonte, escolha S3.
- Escolha Target, escolha S3.
- Escolha Crie.
- Escolha o intervalo S3 da fonte de dados.
- No Propriedades da fonte de dados - S3 guia, adicione o banco de dados e a tabela que criamos anteriormente.
- No Transformar guia, selecione as caixas para soltar
user_login
elocation
.
Nesta postagem, não usamos nenhum metadado adicional para executar nosso algoritmo de personalização.
- Escolha o intervalo S3 de destino de dados.
- No Propriedades do alvo de dados - S3 guia, para Formato, escolha CSV.
- 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.
- No Detalhes do trabalho página, para Nome, insira um nome para o seu trabalho (para esta postagem,
json_to_csv
). - Escolha Papel IAM, escolha a função que você criou anteriormente.
Você também deve ter incluído o AmazonS3FullAccess
política anterior.
- Deixe o restante dos campos com suas configurações padrão.
- Escolha Salvar.
- 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.
- No console do Amazon Personalize, em Novos grupos de conjuntos de dados, escolha COMECE AGORA.
- 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.
- 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.
- Escolha Próximo.
- 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.
- Insira o caminho para seus dados (o bucket do Amazon S3 da seção anterior).
- 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).
Incluímos um exemplo item.csv
arquivo no GitHub repo. A captura de tela a seguir mostra um exemplo dos dados do item.
- 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.
- Escolha Nome da solução, entrar
aws-user-personalization
. - Escolha Próximo.
- Revise e escolha Acabamento.
- 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.
- Escolha Nome da campanha, Insira o nome.
- Escolha a solução que você criou.
- 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.
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 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 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/