O que é AWS Personalize?

Por Gustavo Henrique, Criado em 20/07/2020 02:20


O Amazon Personalize é um serviço de machine learning com o qual os desenvolvedores podem fornecer recomendações individualizadas aos clientes que usam os aplicativos deles com base no comportamento do usuário em tempo real. Um exemplo prático é a recomendação de itens semelhantes em um catálogo como: Usuários que assistiram 'X' filme também assistiram a 'Y'

Como Funciona?

Para que as recomendações sejam feitas, o Amazon Personalize usa um modelo de machine learning que é treinado com os dados que forem disponibilizados(podem ser um através de um arquivo csv ou em real time a partir de eventos gerados pelos usuários). Um modelo treinado é conhecido como uma versão da solução, que vai ser posteriormente usado em uma campanha dentro do Personalize onde os usuários receberão as recomendações. Saiba Mais.

Exemplo: Uma campanha pode mostrar as recomendações de filmes em um site ou aplicativo em que o título mostrado é baseado em hábitos de visualização que fazem parte do conjunto de dados.

Objetivo

O objetivo deste post é configurar o personalize para que possamos obter recomendações para os usuários a partir do treinamento de um modelo de machine learning.

Nota: Espera-se que você tenha uma conta criada e acesso ao console da AWS.

Passos Iniciais

  1. Crie uma função do serviço IAM para permitir que o Personalize Acesse seus recursos.

    1. Faça Login no Console da AWS e Acesse o IAM.

    2. Selecione Roles.

    3. Clique em Create Role.

    4. Em Select type of trusted entity, Selecione AWS Service.

    5. Encontre o Serviço Personalize e selecione-o.

    6. Clique em Next.

    7. Em Attach permissions policies, escolha AmazonPersonalizeFullAccess e CloudWatchFullAccess.

    8. Escolha Next. (Não é necessário adicionar Tags. Selecione Next: Review.).

    9. Na seção Review, em Role Name, insira um nome para a função(exemplo: PersonalizeRole) e clique em Create Role.

    10. Abra a página de resumo da função e Copie o ARN(Será necessário posteriormente).

    AWS Personalize - Copiando ARN no IAM.
    Copiando ARN no IAM.

Fazer Upload dos dados pra um S3

  1. Faça Download do Arquivo csv que contem dados de interações dos usuários.

  2. Crie um Bucket S3 e faça o Upload do arquivo baixado. Para obter mais informações, consulte Como criar e fazer upload de arquivos para um bucket S3.

  3. Conceda permissão ao Amazon Personalize para ler os dados no bucket. (Selecione um bucket, na aba de Permissões, clique em Bucket Policy.

  4. Cole o código abaixo e clique em Save.

AWS Personalize - Adicionando Permissão ao Bucket.
Adicionando Permissão ao Bucket.

Cole o Seguinte JSON e substitua no Resource, o bucket-name pelo nome do seu bucket.

{ "Version": "2012-10-17", "Id": "PersonalizeS3BucketAccessPolicy", "Statement": [ { "Sid": "PersonalizeS3BucketAccessPolicy", "Effect": "Allow", "Principal": { "Service": "personalize.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

Conceitos básicos utilizando o Console.

Passo 1 - Importar dados de treinamento.

  1. Acesse o Console da Amazon Personalize e faça login caso não esteja logado.

  2. Escolha Create dataset group(Caso essa seja a primeira vez em que você acessa este serviço, clique em Get Started).

  3. Em Dataset Group Details especifique um nome para o grupo de dados e clique em Next.

  4. Em Dataset Details especifique um nome para o grupo de conjuntos de dados(Dataset name). Exemplo: ratings-dsgroup.

  5. Em Schema Details, para Schema Selection, selecione Create New Schema.

  6. Em New Schema name, especifique um nome para o novo esquema. Exemplo: ratings-schema Sua tela deve ser semelhante ao seguinte.

    AWS Personalize - Detalhamento do Dataset.
    Detalhamento do Dataset.

Importar dados de interação entre usuários.

  1. Em Dataset import job name, especifique um nome para o seu trabalho de Importação. Exemplo: ratings-dsimport-job.

  2. Em IAM service role, selecione a opção Enter a Custom IAM role ARN.

  3. Em Custom IAM role ARN, cole o ARN copiado no passo 1 - J (Passos Iniciais).

  4. Em Data Location, especifique o caminho para os dados no seu bucket S3.

    1. s3://<bucket-name>/<nome-do-arquivo.csv>

  5. Clique em Finish.

Sua tela deve ser semelhante a seguinte:

AWS Personalize - Dados de interação entre usuários e items.
Dados de interação entre usuários e items.

DASHBOARD OVERVIEW

Após a conclusão do passo acima, você será redirecionado para o Dashboard do Personalize. Em Upload Datasets, o User-item interaction data deve estar com o status Create Pending, e o botão Solution training deve estar desabilitado. Quando o trabalho de importação dos dados for concluído, o status do User-item interaction data mudará para Active.

AWS Personalize - Dashboard do Personalize
Dashboard do Personalize

Após o término do trabalho de importação, clique no botão Start em Create Solutions.

A importação pode levar algum tempo até ser concluído.

Passo 2 - Criar uma solução. Neste passo, vamos usar o conjunto de dados criado anteriormente para treinar um modelo. Um modelo treinado será chamado de versão da solução.

Como criar uma solução

  1. Na página de Create Solution (Criar Solução), em Solution Detail, especifique um nome para a solução em Solution Name. (Ex: ratings-solution).

  2. Em Recipe, selecione a opção AWS-HRNN.

  3. Na Sessão Solution Configuration, marque a opção true em Perform HPO.

  4. Clique em Next.

Perform HTO permite que o Amazon Personalize encontre os hiperparâmetros ideais para a receita.

Hiperparâmetros são variáveis que controlam o próprio processo de treinamento. Por exemplo, faz parte da configuração de uma rede neural decidir quantas camadas ocultas de nós precisar ser usadas entre a camada de entrada e a camada de saída, bem como quantos nós cada camada precisa usar. Essas variáveis não estão diretamente relacionadas aos dados de treinamento. Elas são variáveis de configuração. Os parâmetros mudam durante um job de treinamento, enquanto os hiperparâmetros geralmente permanecem constantes durante um job. Saiba mais.

Sua tela deve se parecer com isso:

solution-sample
solution-sample

Após o término do treinamento, clique em Create new campaign.

O treinamento pode levar algum tempo até ser concluído.

Passo 3 - Criar uma campanha

Neste passo, vamos criar uma campanha implantando uma versão da solução na etapa anterior.

Criação da Campanha

  1. Clique em Create new campaign.

  2. Em Campaign details, dê um nome para a sua campanha no campo Campaign Name. (Ex: ratings-campaign).

  3. Em Solution, selecione a versão da solução criada no passo anterior.

  4. Em Minimum provisioned transactions per second, mantenha o padrão de 1.

A criação da campanha pode levar algum tempo até ser concluída.

Sua tela deve se parecer com o seguinte:

AWS Personalize - Detalhes de criação da campanha.
Detalhes de criação da campanha.

Passo 4 - Obter recomendações

No quarto e ultimo passo, vamos usar a campanha que criamos anteriormente para obter recomendações do através do id.

Como obter recomendações

  1. Em Teste campaign results, em User Id, especifique um valor do conjunto de dados ratings. (exemplo: 83)

  2. Clique em Get Recommendations. A lista mostra o id do item recomendado para o usuário com o id 83 seguido do Score.

Sua tela deve se parecer com a seguinte:

AWS Personalize - Resultado da Campanha
Resultado da Campanha

Resumo

Neste Artigo, aprendemos a configurar e treinar um modelo de machine learning usando o AWS Personalize com o objetivo de obter recomendações exatas de quais items recomendar para cada usuário de um determinado sistema. Todos os exemplos deste artigo foram feitos seguindo as melhores praticas e documentações da Amazon. Caso tenham interesse em saber mais sobre o serviço, Acessem AWS Personalize.

Tags

#AI/ML #aws console #Machine Learning #Artificial intelligence #Inteligencia Artificial #aws #Personalize

Sobre o autor

Gustavo Henrique

Sou desenvolvedor Front-end e Web Crawler, formado em Análise e Desenvolvimento de Sistemas. Tenho com maior interesse em Data Science e ML. Atualmente trabalhando com Angular e Python.

Comentários

Outros Posts

Confira os últimos posts do nosso blog.

Como Enviar um Aplicativo para o Application Manager

Disponibilize o sistema interno da sua empresa para seus funcionários de forma simples e segura através do Amazon WorkSpaces.

Serviço da Amazon consegue parar o maior ataque DDoS da história

Ataque aconteceu em fevereiro deste ano e conseguiu gerar um tráfego de 2,3 Terabits por segundo. Nome da vítima não foi informado

Como Configurar um AWS Client VPN

Aprenda passo a passo como configurar uma VPN para seus usuários acessarem com segurança os recursos em nuvem da sua empresa

Introdução ao AWS CloudFormation

Aprenda a utilizar o AWS CloudFormation, um serviço fundamental para automação de fluxos de entrega contínua e ambientes padronizados.

Criando um Workspace Bundle

Mantenha seu ambiente padronizado e realize a automação na entrega de Workspaces utilizando a criação de Imagens e Bundles.

Provas de Certificação AWS Online

Tire a sua certificação AWS sem sair de casa. Agora todos os exames de certificação da AWS poderão ser realizado online via Pearson VUE.

Como Criar um Amazon WorkSpaces Application Manager

Viabilize o trabalho em home office de sua equipe disponibilizando aplicações legadas de forma segura, gerenciada e sob demanda.

Como Criar um Amazon Workspace

Descubra como provisionar Amazon WorkSpaces e permitir que a sua equipe remota trabalhe de forma eficiente utilizando os recursos da empresa na nuvem

Como Disponibilizar um Site em GatsbyJS na Amazon Web Services

Apresentamos uma Arquitetura na AWS para implantação de websites estáticos em GatsbyJS de Alta Performance e Baixo Custo utilizando S3 e CloudFront

Entre em Contato

Fale conosco e saiba como poderemos ajudar a sua empresa.