Zephyrnet Logo

Desbloqueie experiências personalizadas com tecnologia de IA usando Amazon Personalize e Amazon OpenSearch Service | Amazon Web Services

Data:

Opensearch é um conjunto de software de código aberto escalonável, flexível e extensível para aplicativos de pesquisa, análise, monitoramento de segurança e observabilidade, licenciado sob a licença Apache 2.0. Serviço Amazon OpenSearch é um serviço totalmente gerenciado que simplifica a implantação, a escala e a operação do OpenSearch na Nuvem AWS.

OpenSearch usa uma estrutura de classificação probabilística chamada BM-25 para calcular pontuações de relevância. Se uma palavra-chave distinta aparecer com mais frequência em um documento, o BM-25 atribui uma pontuação de relevância mais alta a esse documento. Esta estrutura, no entanto, não considera o comportamento do usuário, como cliques ou dados de compra, o que pode melhorar ainda mais a relevância para usuários individuais.

Melhorar a funcionalidade da pesquisa é um aspecto integral para melhorar a experiência geral do usuário e o envolvimento em um site ou aplicativo. O tráfego de pesquisa é considerado de alta intenção porque os usuários estão procurando ativamente um item específico e, em média, eles convertem até duas vezes mais do que os visitantes de pesquisa fora do site. Ao usar dados de interação do usuário, como cliques, curtidas e compras, as empresas podem melhorar a relevância da pesquisa para capitalizar esse tráfego e reduzir os casos de usuários que abandonam suas sessões devido a dificuldades em encontrar os itens desejados. Ao refinar a qualidade dos resultados de pesquisa, as empresas podem melhorar significativamente o envolvimento, a satisfação e a fidelidade do cliente, bem como aumentar as suas taxas de conversão, levando, em última análise, a uma maior rentabilidade e sucesso.

Amazon Customize permite adicionar recursos sofisticados de personalização aos seus aplicativos usando a mesma tecnologia de aprendizado de máquina (ML) usada em Amazon.com há mais de 20 anos. Nenhuma experiência em ML é necessária.

O Amazon Personalize oferece suporte ao ajuste automático de recomendações com base em informações contextuais sobre o usuário, como tipo de dispositivo, localização, horário do dia ou outras informações fornecidas por você. Você fornece ao Amazon Personalize dados históricos sobre seus usuários e suas interações dentro do seu aplicativo, como histórico de compras, classificações e curtidas. Você pode adicionar dados em massa ao Amazon Personalize importando grandes conjuntos de dados históricos de uma só vez de um Serviço de armazenamento simples da Amazon (Amazon S3) Arquivo CSV, usando um formato exigido pelo Amazon Personalize. Você também pode adicionar dados de forma incremental importando registros usando o console ou a API do Amazon Personalize. Depois que seus dados históricos forem importados, você poderá continuar a fornecer novos dados em tempo real enviando eventos de interação do usuário. Com base no caso de uso que você deseja abordar, como recomendações de produtos, você seleciona uma receita predefinida otimizada para esse objetivo. O Amazon Personalize analisa seus dados e treina um modelo de ML personalizado com base nos parâmetros da receita para gerar recomendações personalizadas otimizadas para seus usuários e aplicativos. Depois que o modelo for treinado, você poderá gerar recomendações personalizadas em tempo real para seus usuários.

Com o recém-lançado Plug-in de pesquisa personalizada da Amazon para Amazon OpenSearch Service, você pode usar históricos de interação e interesses do usuário para aprimorar seus resultados de pesquisa. Ao utilizar um Receita personalizada da Amazon tais como Classificação personalizada, você pode ajudar a impulsionar os resultados da pesquisa para itens relevantes com base nos interesses do usuário no momento da obtenção dos resultados da pesquisa do OpenSearch Service.

Esta postagem explica como integrar o plug-in Amazon Personalize Search Ranking ao OpenSearch Service para permitir experiências de pesquisa personalizadas. Para construir os artefatos do Amazon Personalize nesta postagem, usamos um conjunto de dados da IMDb, a fonte mais confiável do mundo para conteúdo de filmes, TV e celebridades, disponível no AWS Marketplace, bem como o Conjunto de dados MovieLens preparado pela pesquisa GroupLens da Universidade de Minnesota, que consiste em classificações de usuários para vários filmes.

Visão geral da solução

O diagrama a seguir ilustra a arquitetura da solução.

O fluxo de trabalho inclui as seguintes etapas:

  1. Um usuário emite uma solicitação de pesquisa por meio de seu site ou portal. Esta solicitação de pesquisa é enviada ao OpenSearch Service.
  2. Os N principais resultados da pesquisa são retornados do índice do OpenSearch Service e enviados ao plug-in para pré-processar e preparar a entrada para um Campanha personalizada da Amazon.
  3. A solicitação é enviada ao Amazon Personalize para obter os resultados da pesquisa reclassificados.
  4. O Amazon Personalize retorna a classificação personalizada dos resultados da pesquisa com a pontuação relevante para cada resultado.
  5. Os hits reclassificados são retornados pelo plug-in para o OpenSearch Service, com uma ponderação aplicada entre a pontuação de relevância do OpenSearch Service e a pontuação de classificação personalizada do Amazon Personalize. Você especifica um parâmetro de peso (entre 0.0 e 1.0) que controla o equilíbrio entre o OpenSearch Service e o Amazon Personalize ao reclassificar os resultados. Um peso maior significa mais influência das pontuações de classificação do Amazon Personalize em comparação com as pontuações do OpenSearch Service. Isso permite que você personalize o quanto as recomendações personalizadas afetam a classificação final dos resultados da pesquisa retornados ao usuário.
  6. O usuário obtém resultados de pesquisa personalizados com base em suas preferências e interações.

Pré-requisitos

Você deve ter os seguintes pré-requisitos:

  • An Conta da AWS.
  • An Gerenciamento de acesso e identidade da AWS (IAM) com permissões de acesso apropriadas. Nós provemos Formação da Nuvem AWS modelos e notebooks Jupyter para ajudar a configurar a função e o acesso necessários do IAM.
  • Para habilitar a personalização no OpenSearch Service, você precisa configurar os recursos necessários do Amazon Personalize, incluindo um grupo de conjuntos de dados, uma versão da solução e uma campanha. Nós fornecemos um Caderno Jupyter que cria todos os recursos do Amazon Personalize, aproveitando os recursos de instância de notebook Jupyter totalmente gerenciados do Amazon Sage Maker.

Implantar a pilha do CloudFormation

A pilha CloudFormation automatiza a implantação do domínio OpenSearch Service e da instância do SageMaker Notebook. Conclua as etapas a seguir para implementar a pilha:

  1. Entre no Console de gerenciamento da AWS com suas credenciais na conta onde você deseja implantar a pilha do CloudFormation.
  2. Inicie a pilha CloudFormation diretamente.
  3. No Especifique detalhes página, forneça todos os parâmetros exigidos pelo modelo, como tamanhos de instância do OpenSearch Service e SageMaker.
  4. No Configurar opções de pilha página, especifique um nome de pilha e quaisquer outras opções que você deseja definir.
  5. Conclua a criação da pilha e monitore o status na página de detalhes da pilha.
  6. Depois que a pilha for criada, abra a instância do notebook SageMaker no console.

A instância do notebook já estará pré-carregada com os notebooks necessários.

Configurar e concluir o fluxo de trabalho do Amazon Personalize

Abra o 1.Configure_Amazon_Personalize.ipynb notebook para configurar os artefatos do Amazon Personalize. Este caderno orienta você nas seguintes etapas:

  1. Baixe o conjunto de dados e pré-processe os dados para criar os arquivos de entrada necessários para a criação dos conjuntos de dados.
  2. Crie um grupo de conjunto de dados.
  3. Crie conjuntos de dados e esquemas.
  4. Preparar e importar dados.
  5. Crie uma solução e uma versão da solução.
  6. Crie uma campanha para a versão da solução.

Instale o plug-in Amazon Personalize Search Ranking usando um notebook Jupyter

Abra o 2.Configure_Amazon_OpenSearch.ipynb caderno e siga as instruções. Este caderno orienta você nas seguintes etapas:

  1. Ingerir dados de índice de amostra na instância do OpenSearch Service. Preencher o índice com dados representativos facilita testes e validação completos do plugin.
  2. Instale o pacote de plug-in no domínio do OpenSearch Service. Isso integra os recursos de personalização ao ambiente OpenSearch.
  3. Configure pipelines de pesquisa para ativar a funcionalidade do plugin. Os pipelines de pesquisa contêm pré-processadores de solicitação e pós-processadores de resposta que transformam consultas e resultados. Ao construir um pipeline, especifique o ARN da campanha do Amazon Personalize criado anteriormente em um personalized_search_ranking pós-processador para permitir a reclassificação personalizada. Isso configura o plug-in para recuperar resultados de personalização em tempo real do Amazon Personalize para aplicativos durante o processamento de resultados. A definição de pipelines permite que o plugin aumente a relevância da pesquisa com base nas preferências do usuário.

Instale o plug-in Amazon Personalize Search Ranking usando o console

Você também pode configurar o plug-in de pesquisa do Amazon Personalize no console. Você só precisa fazer isso se não tiver instalado o plug-in usando o notebook Jupyter anterior.

Para instalar o plug-in Amazon Personalize Search Ranking no OpenSearch Service, conclua as seguintes etapas:

  1. No console do OpenSearch Service, navegue até seu domínio.
  2. No PACK guia, escolha Pacote associado para associar o plug-in Amazon Personalize Search Ranking ao seu domínio do OpenSearch Service. A versão do plugin deve corresponder à versão do domínio do OpenSearch Service.

O plug-in Amazon Personalize Search Ranking pode ser instalado nas versões 2.9 e superiores do OpenSearch Service.

  1. Localize o plug-in Amazon Personalize Search Ranking na lista de plug-ins disponíveis.
  2. Escolha Jurídico ao lado do plug-in para instalá-lo e associá-lo ao seu domínio existente do OpenSearch Service.

Depois de conectar o plugin, ele aparecerá na lista de pacotes como um tipo de plugin. Com o plugin instalado, o processo de instalação está concluído.

Habilite o plug-in Amazon Personalize Search Ranking

O plug-in Amazon Personalize Search Ranking usa o search-pipeline recurso do OpenSearch Service, lançado a partir da versão 2.9. O plugin depende do search-pipeline recurso para aplicar a classificação personalizada da Amazon nos resultados de pesquisa fornecidos pelo OpenSearch Service e também precisa ser configurado como um search-pipeline processador de resposta. Essa definição de pipeline conterá a configuração do plug-in Amazon Personalize, que inclui a campanha Amazon Personalize para chamar a obtenção da classificação do Amazon Personalize, a função do IAM para acessar os recursos do Amazon Personalize, bem como os parâmetros definidos na tabela a seguir.

Configurações Exigido Padrão Descrição
campaign Sim nenhum Especifique o ARN da campanha Amazon Personalize a ser usada para personalizar os resultados.
recipe Sim nenhum Especifique o nome da receita do Amazon Personalize a ser usada. No momento em que este livro foi escrito, aws-personalized-ranking é o único valor suportado.
item_id_field Não "_eu ia" Se o _id O campo de um documento indexado no OpenSearch não corresponde ao seu Amazon Personalize itemId, especifique o nome do campo que faz isso.
weight Sim nenhum Especifique a ênfase que o processador de resposta coloca na personalização ao reclassificar os resultados. Especifique um valor dentro de um intervalo de 0.0 a 1.0. Quanto mais próximo de 1.0 estiver, maior será a probabilidade de os resultados do Amazon Personalize terem uma classificação mais elevada. Se você especificar 0.0, nenhuma personalização ocorrerá e o OpenSearch Service terá precedência.
tag Não nenhum Especifique um identificador para o processador.
iam_role_arn Sim nenhum Especifique a função do IAM para acessar os recursos do Amazon Personalize. Isso é necessário para o OpenSearch Service e opcional para o OpenSearch de código aberto.
aws_region Sim nenhum Especifique a região da AWS onde você criou sua campanha do Amazon Personalize.
ignore_failure Não nenhum Especifique se o plugin ignora quaisquer falhas do processador. Para valores, especifique true or false. Para seus ambientes de produção, recomendamos que você especifique true para evitar interrupções nas respostas da consulta. Para ambientes de teste, você pode especificar false para visualizar quaisquer erros que o plugin gera.
external_account_iam_role_arn Não nenhum Se você usar o OpenSearch Service e os recursos do Amazon Personalize e do OpenSearch Service existirem em contas diferentes, especifique o ARN da função que tem permissão para acessar o Amazon Personalize.

O seguinte trecho de código Python cria um pipeline de pesquisa com um personalized_search_ranking processador de resposta em um domínio do OpenSearch Service. Você executa esta etapa uma vez como parte do bloco de notas que acompanha esta postagem:

Defina pipeline de pesquisa para classificação personalizada

Você pode usar o seguinte código Python para criar um pipeline de pesquisa com um personalized_search_ranking processador de resposta em um domínio do OpenSearch Service. Substitua o endpoint do domínio pelo URL do endpoint do seu domínio. Por exemplo: https://<domain name>.<AWS region>.es.amazonaws.com.

import requests
from requests_auth_aws_sigv4 import AWSSigV4

domain_endpoint = 'domain endpoint'
pipeline_name = 'pipeline name'
url = f'{domain_endpoint}/_search/pipeline/{pipeline_name}'
auth = AWSSigV4('es')

headers = {'Content-Type': 'application/json'}

body = {
  "description": "A pipeline to apply custom re-ranking from Amazon Personalize",
  "response_processors": [
    {
      "personalized_search_ranking" : {
        "campaign_arn" : "<Replace with Amazon Personalize Campaign ARN>",
        "item_id_field" : "itemId",
        "recipe" : "aws-personalized-ranking",
        "weight" : "0.3",
        "tag" : "personalize-processor",
        "iam_role_arn": "<Replace with Role ARN>",
        "aws_region": "<Replace with AWS region>",
        "ignore_failure": true
    }
  ]
}
try:
    response = requests.put(url, auth=auth, json=body, headers=headers)
    print(response.text)
except Exception as e:
    print(f"Error: {e}")

Aplicar um pipeline de pesquisa a uma consulta individual

Depois de configurar um pipeline de pesquisa com um personalized_search_ranking processador de respostas, você pode aplicar o plug-in Amazon Personalize Search Ranking às suas consultas do OpenSearch e visualizar os resultados reclassificados. Atualize o código para especificar o endpoint do seu domínio, o índice do OpenSearch Service, o nome do seu pipeline (você configurou acima) e sua consulta (usamos “Tom Cruise” para consulta). Para user_id, especifique o ID do usuário para o qual você está obtendo resultados de pesquisa. Esse usuário deve estar nos dados que você usou para criar a versão da solução Amazon Personalize.

import requests
from requests_auth_aws_sigv4 import AWSSigV4

domain_endpoint = 'domain endpoint'
index = 'index name'
url = f'{domain_endpoint}/{index}/_search/'

auth = AWSSigV4('es')
headers = {'Content-Type': 'application/json'}
params = {"search_pipeline": "<Replace with pipeline-name>"}
body = {
    "query": {
        "multi_match": {
            "query": "Tom Cruise",
            "fields": ["title", "plot", "genres", "directedBy", "starring"]
        }
    },
    "ext": {
        "personalize_request_parameters": {
            "user_id": "<Replace with USER ID>"
        }
    }
}
try:
    response = requests.post(url, auth=auth, params=params, json=body, headers=headers)
    print(response)
except Exception as e:
    print(f"Error: {e}")

Avalie os resultados

Abra o 3.Teste.ipynb notebook e siga as etapas para testar e comparar os resultados de consultas que usam personalização e aquelas que não usam. O plug-in Amazon Personalize Search Ranking reclassifica os resultados da pesquisa na resposta da consulta do OpenSearch Service. Ele considera tanto a classificação do Amazon Personalize quanto a classificação do OpenSearch Service. Este caderno orienta você nas seguintes etapas:

  1. Defina os parâmetros de conexão necessários para estabelecer uma conexão com seu domínio do OpenSearch Service. Isso envolve a especificação do endpoint do domínio, das credenciais de autenticação e de quaisquer definições de configuração adicionais necessárias para sua configuração específica do OpenSearch Service.
  2. Crie um conjunto de consultas de amostra, incluindo consultas com parâmetros de personalização e consultas sem parâmetros de personalização. Essas consultas serão usadas para avaliar o impacto da personalização nos resultados da pesquisa.
  3. Execute e compare os resultados das consultas que usam personalização e daquelas que não usam.

Para nosso exemplo, usamos uma consulta para “Tom Cruise” e para o parâmetro de personalização, usamos um usuário com um histórico recente de visualização de gêneros de filmes de drama e romance. Os resultados da pesquisa subsequentes mostram como o plug-in adapta e prioriza recomendações baseadas no comportamento de visualização observado pelo usuário. Isso exemplifica a capacidade do plug-in de fornecer uma experiência personalizada e com curadoria, considerando as preferências individuais do usuário e os padrões de envolvimento. A capacidade de refinar e ajustar os resultados da pesquisa com base em inferências das preferências do usuário permite fornecer maior relevância e utilidade.

Resultados personalizados versus não personalizados

Vamos considerar a personalização dos resultados para um usuário com ID 12. Primeiro, verificamos as interações recentes desse usuário executando o código no 3.Teste.ipynb notebook para recuperar seu histórico de interação. Isso nos permite ver quais tipos de filmes esse usuário revisou recentemente, o que pode informar como personalizamos as recomendações para eles.

Neste exemplo, vemos que o usuário manifestou interesse nos gêneros de drama, romance e suspense. Para fornecer recomendações personalizadas, primeiro executamos consultas com parâmetros de personalização habilitados, utilizando as preferências de gênero do usuário. Em seguida, executamos as mesmas consultas sem personalização habilitada, para comparação. Os resultados a seguir mostram a diferença entre os resultados de recomendação não personalizados e personalizados.

As duas primeiras colunas exibem os resultados padrão do OpenSearch Service para a consulta “Tom Cruise” em um índice de filmes, mostrando uma variedade de filmes de Tom Cruise em diferentes gêneros. As próximas duas colunas apresentam resultados personalizados do OpenSearch Service para a mesma consulta “Tom Cruise”, mas personalizados para um usuário interessado em gêneros de drama, romance e suspense. Em comparação com os resultados genéricos, os resultados personalizados apresentam com destaque os filmes de Tom Cruise nos gêneros de drama, romance e suspense preferidos do usuário. O delta destaca como os resultados personalizados foram reclassificados em relação aos resultados não personalizados, priorizando filmes que correspondam às preferências de gênero do usuário. Isso demonstra como a personalização pode adaptar os resultados do OpenSearch Service aos gostos e interesses individuais dos usuários.

Esta comparação demonstra como o Amazon Personalize pode personalizar os resultados de filmes do OpenSearch Service para corresponder aos interesses de um usuário individual. Embora o OpenSearch Service padrão tenha como objetivo fornecer universalmente resultados de filmes relevantes para Tom Cruise, o Amazon Personalize adapta os resultados para se concentrar nos filmes de Tom Cruise que prevê que esse usuário irá gostar com base em seu histórico e preferências de exibição exclusivos.

Os resultados lado a lado ilustram como o Amazon Personalize oferece uma experiência de pesquisa mais direcionada e centrada no usuário, personalizando os resultados do filme para cada indivíduo.

limpar

Conclua as etapas a seguir para limpar seus recursos:

  1. Siga as etapas no 4.Limpeza.ipynb notebook para limpar os recursos criados por meio do notebook.
  2. No console do AWS CloudFormation, exclua a pilha que você criou.

Conclusão

O plug-in Amazon Personalize Search Ranking integra-se perfeitamente ao OpenSearch Service para permitir experiências de pesquisa personalizadas. Ao usar dados de comportamento do usuário e os recursos de ML do Amazon Personalize, o plug-in pode reordenar as classificações de resultados do OpenSearch Service para aumentar a relevância para cada usuário único. Isso cria uma experiência de pesquisa personalizada que apresenta o conteúdo mais relevante na parte superior dos resultados. O plug-in é configurável para equilibrar a personalização com a pontuação nativa do OpenSearch Service para atender a diversos casos de uso. No geral, o plug-in Amazon Personalize Search Ranking é uma maneira poderosa de aumentar a relevância e o envolvimento da pesquisa do OpenSearch Service, levando em consideração os interesses e preferências individuais de seus usuários. Com apenas algumas etapas de configuração, você pode começar a fornecer resultados extremamente relevantes que tenham grande repercussão entre seus usuários.

Recursos adicionais


Sobre os autores

James Jory é Arquiteto de Soluções Principal em IA Aplicada com a AWS. Ele tem um interesse especial em sistemas de personalização e recomendação e experiência em comércio eletrônico, tecnologia de marketing e análise de dados de clientes. Em seu tempo livre, ele gosta de acampar e simular corridas de automóveis.

Reagan Rosário é arquiteto de soluções na AWS, especializado na construção de soluções em nuvem escaláveis, altamente disponíveis e seguras para empresas de tecnologia educacional. Com mais de 10 anos de experiência em funções de engenharia e arquitetura de software, Reagan adora usar seu conhecimento técnico para ajudar os clientes da AWS a arquitetar soluções de nuvem robustas que aproveitam a amplitude e a profundidade da AWS.

local_img

Café VC

Café VC

Inteligência mais recente

local_img