Como utilizar o AWS Personalize

Botao voltar
Banner da página de Blog.
Banner da página de Blog.

Por Gustavo Henrique, Criado em 20/07/2020


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.](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/how-it-works.html#how-it-works-workflow)

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. A. Faça Login no Console da AWS e Acesse o IAM. B. Selecione Roles. C. Clique em Create Role. D. Em Select type of trusted entity, Selecione AWS Service. E. Encontre o Serviço Personalize e selecione-o. F. Clique em Next. G. Em Attach permissions policies, escolha AmazonPersonalizeFullAccess e CloudWatchFullAccess. H. Escolha Next. (Não é necessário adicionar Tags. Selecione Next: Review.). I. Na seção Review, em Role Name, insira um nome para a função(exemplo: PersonalizeRole) clique em Create Role. J. Abra a página de resumo da função e Copie o ARN(Será necessário posteriormente).

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.
  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.

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.

Datalhamento do Dataset.
Datalhamento 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. s3://<bucket-name>/<nome-do-arquivo.csv>
  5. Clique em Finish.

Sua tela deve ser semelhante a seguinte:

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.

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:

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:

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

Foto Do Autor.
Foto Do 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