Logotipo de Zephyrnet

Desbloquee experiencias personalizadas impulsadas por IA utilizando Amazon Personalize y Amazon OpenSearch Service | Servicios web de Amazon

Fecha:

Opensearch es un paquete de software de código abierto escalable, flexible y extensible para aplicaciones de búsqueda, análisis, monitoreo de seguridad y observabilidad, con licencia Apache 2.0. Servicio Amazon OpenSearch es un servicio totalmente administrado que simplifica la implementación, escala y operación de OpenSearch en la nube de AWS.

OpenSearch utiliza un marco de clasificación probabilístico llamado BM-25 para calcular puntuaciones de relevancia. Si una palabra clave distintiva aparece con más frecuencia en un documento, BM-25 asigna una puntuación de relevancia más alta a ese documento. Sin embargo, este marco no considera el comportamiento del usuario, como los datos de clics o compras, lo que puede mejorar aún más la relevancia para los usuarios individuales.

Mejorar la funcionalidad de búsqueda es un aspecto integral para mejorar la experiencia general del usuario y la participación en un sitio web o aplicación. El tráfico de búsqueda se considera de alta intención porque los usuarios buscan activamente un elemento en particular y se ha descubierto que, en promedio, generan hasta dos veces más conversiones que los visitantes que no pertenecen al sitio. Al utilizar datos de interacción del usuario, como clics, me gusta y compras, las empresas pueden mejorar la relevancia de la búsqueda para capitalizar este tráfico y reducir los casos de usuarios que abandonan sus sesiones debido a dificultades para encontrar los artículos deseados. Al refinar la calidad de los resultados de búsqueda, las empresas pueden mejorar significativamente el compromiso, la satisfacción y la lealtad de sus clientes, así como aumentar sus tasas de conversión, lo que en última instancia conduce a una mayor rentabilidad y éxito.

Amazon Personalize le permite agregar capacidades de personalización sofisticadas a sus aplicaciones utilizando la misma tecnología de aprendizaje automático (ML) utilizada en Amazon.com durante más de 20 años. No se requiere experiencia en ML.

Amazon Personalize admite el ajuste automático de recomendaciones basadas en información contextual sobre su usuario, como el tipo de dispositivo, la ubicación, la hora del día u otra información que usted proporcione. Usted proporciona a Amazon Personalize datos históricos sobre sus usuarios y sus interacciones dentro de su aplicación, como historial de compras, calificaciones y me gusta. Puede agregar datos a Amazon Personalize de forma masiva importando grandes conjuntos de datos históricos todos a la vez desde un Servicio de almacenamiento simple de Amazon (Amazon S3) Archivo CSV, utilizando un formato requerido por Amazon Personalize. También puede agregar datos de forma incremental importando registros mediante la consola o API de Amazon Personalize. Después de importar sus datos históricos, puede continuar proporcionando nuevos datos en tiempo real enviando eventos de interacción del usuario. Según el caso de uso que desee abordar, como recomendaciones de productos, seleccione una receta prediseñadas que esté optimizada para ese objetivo. Amazon Personalize analiza sus datos y entrena un modelo de aprendizaje automático personalizado basado en los parámetros de la receta para generar recomendaciones personalizadas optimizadas para sus usuarios y su aplicación. Una vez entrenado el modelo, puede generar recomendaciones personalizadas en tiempo real para sus usuarios.

Con el recién lanzado Complemento de búsqueda personalizada de Amazon para el servicio Amazon OpenSearch, puede utilizar los intereses y los historiales de interacción de los usuarios para mejorar sus resultados de búsqueda. Al utilizar un Receta personalizada de Amazon como Clasificación personalizada, puede ayudar a mejorar los resultados de búsqueda de elementos relevantes según los intereses del usuario al momento de obtener resultados de búsqueda del servicio OpenSearch.

Esta publicación explica cómo integrar el complemento Amazon Personalize Search Ranking con OpenSearch Service para permitir experiencias de búsqueda personalizadas. Para crear los artefactos de Amazon Personalize en esta publicación, utilizamos un conjunto de datos de IMDb, la fuente más autorizada del mundo para contenido de películas, televisión y celebridades. disponible en AWS Marketplace, así como la Conjunto de datos MovieLens elaborado por una investigación de GroupLens en la Universidad de Minnesota, que consiste en clasificaciones de usuarios para varias películas.

Resumen de la solución

El siguiente diagrama ilustra la arquitectura de la solución.

El flujo de trabajo incluye los siguientes pasos:

  1. Un usuario emite una solicitud de búsqueda a través de su sitio web o portal. Esta solicitud de búsqueda se envía al servicio OpenSearch.
  2. Los N resultados de búsqueda principales se devuelven desde el índice del servicio OpenSearch y se envían al complemento para preprocesar y preparar la entrada para una Campaña Amazon Personalize.
  3. La solicitud se envía a Amazon Personalize para obtener los resultados de búsqueda reclasificados.
  4. Amazon Personalize devuelve la clasificación personalizada de los resultados de búsqueda con la puntuación relevante para cada resultado.
  5. El complemento devuelve los resultados reclasificados al servicio OpenSearch, con una ponderación aplicada entre la puntuación de relevancia del servicio OpenSearch y la puntuación de clasificación personalizada de Amazon Personalize. Usted especifica un parámetro de peso (entre 0.0 y 1.0) que controla el equilibrio entre OpenSearch Service y Amazon Personalize al reclasificar los resultados. Un peso más alto significa más influencia de las puntuaciones de clasificación de Amazon Personalize frente a las puntuaciones de OpenSearch Service. Esto le permite personalizar en qué medida las recomendaciones personalizadas afectan la clasificación de los resultados de búsqueda finales que se devuelve al usuario.
  6. El usuario obtiene resultados de búsqueda personalizados según sus preferencias e interacciones.

Requisitos previos

Debe tener los siguientes requisitos previos:

  • An Cuenta de AWS.
  • An Gestión de identidades y accesos de AWS (IAM) con los permisos de acceso adecuados. Proporcionamos Formación en la nube de AWS plantillas y cuadernos de Jupyter para ayudar a configurar el rol y el acceso de IAM requeridos.
  • Para habilitar la personalización en OpenSearch Service, debe configurar los recursos de Amazon Personalize necesarios, incluidos un grupo de conjunto de datos, una versión de la solución y una campaña. Hemos proporcionado un Cuaderno Jupyter que crea todos los recursos de Amazon Personalize, aprovechando las capacidades de instancia de notebook Jupyter totalmente administradas de Amazon SageMaker.

Implementar la pila de CloudFormation

La pila de CloudFormation automatiza la implementación del dominio del servicio OpenSearch y la instancia de SageMaker Notebook. Complete los siguientes pasos para implementar la pila:

  1. Inicia sesión en el Consola de administración de AWS con sus credenciales en la cuenta donde desea implementar la pila de CloudFormation.
  2. Lanzar la pila de CloudFormation .
  3. En Especificar detalles página, proporcione los parámetros requeridos por la plantilla, como el servicio OpenSearch y los tamaños de instancia de SageMaker.
  4. En Configurar opciones de pila página, especifique un nombre de pila y cualquier otra opción que desee configurar.
  5. Complete la creación de la pila y supervise el estado en la página de detalles de la pila.
  6. Una vez creada la pila, abra la instancia del cuaderno de SageMaker desde la consola.

La instancia del cuaderno ya estará precargada con los cuadernos necesarios.

Configure y complete el flujo de trabajo de Amazon Personalize

Abra la 1.Configure_Amazon_Personalize.ipynb notebook para configurar los artefactos de Amazon Personalize. Este cuaderno le guiará por los siguientes pasos:

  1. Descargue el conjunto de datos y preprocese los datos para crear los archivos de entrada necesarios para crear los conjuntos de datos.
  2. Crear un grupo de conjunto de datos.
  3. Cree conjuntos de datos y esquemas.
  4. Preparar e importar datos.
  5. Cree una solución y una versión de la solución.
  6. Cree una campaña para la versión de la solución.

Instale el complemento Amazon Personalize Search Ranking usando una computadora portátil Jupyter

Abra la 2.Configure_Amazon_OpenSearch.ipynb cuaderno y lea las instrucciones. Este cuaderno le guiará por los siguientes pasos:

  1. Ingerir datos de índice de muestra en la instancia del servicio OpenSearch. Completar el índice con datos representativos facilita las pruebas y la validación exhaustivas del complemento.
  2. Instale el paquete de complementos en el dominio del servicio OpenSearch. Esto integra las capacidades de personalización en el entorno OpenSearch.
  3. Configure canales de búsqueda para activar la funcionalidad del complemento. Los canales de búsqueda contienen preprocesadores de solicitudes y posprocesadores de respuestas que transforman consultas y resultados. Al construir una canalización, especifique el ARN de la campaña Amazon Personalize creado anteriormente en una personalized_search_ranking posprocesador para permitir una reclasificación personalizada. Esto configura el complemento para recuperar resultados de personalización en tiempo real de Amazon Personalize para su aplicación durante el procesamiento de resultados. La definición de canalizaciones permite que el complemento aumente la relevancia de la búsqueda según las preferencias del usuario.

Instale el complemento Amazon Personalize Search Ranking usando la consola

También puede configurar el complemento de búsqueda de Amazon Personalize desde la consola. Solo necesita hacer esto si no ha instalado el complemento usando el cuaderno Jupyter anterior.

Para instalar el complemento Amazon Personalize Search Ranking en OpenSearch Service, complete los siguientes pasos:

  1. En la consola del servicio OpenSearch, navegue hasta su dominio.
  2. En Buceo y Alojamiento pestaña, elegir Paquete asociado para asociar el complemento Amazon Personalize Search Ranking con su dominio de OpenSearch Service. La versión del complemento debe coincidir con la versión del dominio del servicio OpenSearch.

El complemento Amazon Personalize Search Ranking se puede instalar en las versiones 2.9 y superiores del servicio OpenSearch.

  1. Localice el complemento Amazon Personalize Search Ranking en la lista de complementos disponibles.
  2. Elige Consejos junto al complemento para instalarlo y asociarlo con su dominio de servicio OpenSearch existente.

Una vez que haya conectado el complemento, aparecerá en la lista de paquetes como un tipo de complemento. Con el complemento instalado, el proceso de instalación ya ha finalizado.

Habilite el complemento Amazon Personalize Search Ranking

El complemento Amazon Personalize Search Ranking utiliza el search-pipeline característica de OpenSearch Service, lanzada a partir de la versión 2.9. El complemento depende del search-pipeline función para aplicar la clasificación personalizada de Amazon en los resultados de búsqueda proporcionados por el servicio OpenSearch y también debe configurarse como search-pipeline procesador de respuesta. Esta definición de canalización contendrá la configuración para el complemento de Amazon Personalize, que incluye la campaña de Amazon Personalize para solicitar la clasificación de Amazon Personalize, la función de IAM para acceder a los recursos de Amazon Personalize, así como los parámetros definidos en la siguiente tabla.

Ajustes Requerido Predeterminado Descripción
campaign Ninguna Especifique el ARN de la campaña Amazon Personalize que se utilizará para personalizar los resultados.
recipe Ninguna Especifique el nombre de la receta de Amazon Personalize que desea utilizar. Al momento de escribir este artículo, aws-personalized-ranking es el único valor admitido.
item_id_field No "_identificación" Si _id El campo de un documento indexado en OpenSearch no se corresponde con su Amazon Personalize itemId, especifique el nombre del campo que lo hace.
weight Ninguna Especifique el énfasis que el procesador de respuestas pone en la personalización cuando vuelve a clasificar los resultados. Especifique un valor dentro de un rango de 0.0 a 1.0. Cuanto más cerca de 1.0 esté, más probable será que los resultados de Amazon Personalize tengan una clasificación más alta. Si especifica 0.0, no se produce ninguna personalización y el servicio OpenSearch tiene prioridad.
tag No Ninguna Especifique un identificador para el procesador.
iam_role_arn Ninguna Especifique la función de IAM para acceder a los recursos de Amazon Personalize. Esto es obligatorio para el servicio OpenSearch y opcional para OpenSearch de código abierto.
aws_region Ninguna Especifique la región de AWS donde creó su campaña de Amazon Personalize.
ignore_failure No Ninguna Especifique si el complemento ignora cualquier falla del procesador. Para valores, especifique true or false. Para sus entornos de producción, le recomendamos que especifique true para evitar interrupciones en las respuestas a las consultas. Para entornos de prueba, puede especificar false para ver los errores que genera el complemento.
external_account_iam_role_arn No Ninguna Si utiliza OpenSearch Service y sus recursos de Amazon Personalize y OpenSearch Service existen en cuentas diferentes, especifique el ARN del rol que tiene permiso para acceder a Amazon Personalize.

El siguiente fragmento de código de Python crea un canal de búsqueda con un personalized_search_ranking procesador de respuesta en un dominio del servicio OpenSearch. Ejecute este paso una vez como parte del cuaderno que acompaña a esta publicación:

Definir canal de búsqueda para clasificación personalizada

Puede utilizar el siguiente código Python para crear un canal de búsqueda con un personalized_search_ranking procesador de respuesta en un dominio del servicio OpenSearch. Reemplace el punto final del dominio con la URL del punto final de su dominio. Por ejemplo: 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 una canalización de búsqueda a una consulta individual

Después de configurar un canal de búsqueda con un personalized_search_ranking procesador de respuestas, puede aplicar el complemento Amazon Personalize Search Ranking a sus consultas de OpenSearch y ver los resultados reclasificados. Actualice el código para especificar el punto final de su dominio, el índice de su servicio OpenSearch, el nombre de su canalización (que configuró anteriormente) y su consulta (usamos "Tom Cruise" para la consulta). Para user_id, especifique el ID del usuario para el que obtiene resultados de búsqueda. Este usuario debe estar en los datos que utilizó para crear la versión de su solución 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}")

Evaluar los resultados

Abra la 3.Prueba.ipynb cuaderno y siga los pasos para probar y comparar los resultados de las consultas que utilizan personalización y las que no. El complemento Amazon Personalize Search Ranking vuelve a clasificar los resultados de la búsqueda en la respuesta a la consulta del servicio OpenSearch. Considera tanto la clasificación de Amazon Personalize como la clasificación de OpenSearch Service. Este cuaderno le guiará por los siguientes pasos:

  1. Defina los parámetros de conexión necesarios para establecer una conexión con su dominio del servicio OpenSearch. Esto implica especificar el punto final del dominio, las credenciales de autenticación y cualquier configuración adicional necesaria para la configuración específica de su servicio OpenSearch.
  2. Cree un conjunto de consultas de muestra, incluidas consultas con parámetros de personalización y consultas sin parámetros de personalización. Estas consultas se utilizarán para evaluar el impacto de la personalización en los resultados de búsqueda.
  3. Ejecute y compare los resultados de las consultas que utilizan personalización y las que no.

Para nuestro ejemplo, utilizamos una consulta para "Tom Cruise" y, para el parámetro de personalización, utilizamos un usuario con un historial reciente de visualización de géneros de películas dramáticas y románticas. Los resultados de búsqueda posteriores muestran cómo el complemento adapta y prioriza las recomendaciones basadas en el comportamiento de visualización observado por el usuario. Esto ejemplifica la capacidad del complemento para ofrecer una experiencia personalizada y seleccionada teniendo en cuenta las preferencias de los usuarios individuales y los patrones de participación. La capacidad de refinar y ajustar los resultados de la búsqueda basándose en inferencias de las preferencias de un usuario permite ofrecer mayor relevancia y utilidad.

Resultados personalizados versus no personalizados

Consideremos personalizar los resultados para un usuario con ID 12. Primero, verificamos las interacciones recientes de este usuario ejecutando el código en el 3.Prueba.ipynb cuaderno para recuperar su historial de interacciones. Esto nos permite ver qué tipos de películas ha revisado este usuario recientemente, lo que puede informarnos cómo personalizamos las recomendaciones para ellas.

En este ejemplo, vemos que el usuario ha expresado interés en los géneros de películas de drama, romance y suspenso. Para brindar recomendaciones personalizadas, primero ejecutamos consultas con parámetros de personalización habilitados, utilizando las preferencias de género del usuario. Luego ejecutamos las mismas consultas sin la personalización habilitada, para comparar. Los siguientes resultados muestran la diferencia entre los resultados de recomendaciones personalizadas y no personalizadas.

Las dos primeras columnas muestran los resultados predeterminados del servicio OpenSearch para la consulta "Tom Cruise" en un índice de películas, mostrando una variedad de películas de Tom Cruise de diferentes géneros. Las siguientes dos columnas muestran resultados personalizados del servicio OpenSearch para la misma consulta "Tom Cruise", pero personalizados para un usuario interesado en los géneros de drama, romance y suspenso. En comparación con los resultados genéricos, los resultados personalizados presentan de manera destacada películas de Tom Cruise en los géneros de drama, romance y suspenso preferidos del usuario. El delta destaca cómo los resultados personalizados se han reclasificado en relación con los resultados no personalizados, dando prioridad a las películas que coinciden con las preferencias de género del usuario. Esto demuestra cómo la personalización puede adaptar los resultados del servicio OpenSearch a los gustos e intereses de los usuarios individuales.

Esta comparación demuestra cómo Amazon Personalize puede personalizar los resultados de las películas del servicio OpenSearch para que coincidan con los intereses de un usuario individual. Aunque el servicio OpenSearch estándar tiene como objetivo ofrecer universalmente resultados de películas relevantes para Tom Cruise, Amazon Personalize adapta los resultados para centrarse en las películas de Tom Cruise que predice que este usuario disfrutará en función de su historial de visualización y preferencias únicos.

Los resultados en paralelo ilustran cómo Amazon Personalize proporciona una experiencia de búsqueda más específica y centrada en el usuario al personalizar los resultados de la película para cada individuo.

Limpiar

Complete los siguientes pasos para limpiar sus recursos:

  1. Sigue los pasos en 4.Limpieza.ipynb notebook para limpiar los recursos creados a través del notebook.
  2. En la consola de AWS CloudFormation, elimine la pila que creó.

Conclusión

El complemento Amazon Personalize Search Ranking se integra perfectamente con OpenSearch Service para permitir experiencias de búsqueda personalizadas. Al utilizar datos de comportamiento del usuario y las capacidades de aprendizaje automático de Amazon Personalize, el complemento puede reordenar las clasificaciones de resultados del servicio OpenSearch para aumentar la relevancia para cada usuario único. Esto crea una experiencia de búsqueda personalizada que muestra el contenido más relevante en la parte superior de los resultados. El complemento se puede configurar para equilibrar la personalización con la puntuación nativa del servicio OpenSearch para adaptarse a diversos casos de uso. En general, el complemento Amazon Personalize Search Ranking es una forma poderosa de mejorar la relevancia de la búsqueda y la participación del servicio OpenSearch al tener en cuenta los intereses y preferencias individuales de sus usuarios. Con solo unos pocos pasos de configuración, puede comenzar a ofrecer resultados muy relevantes que resuenen fuertemente entre sus usuarios.

Recursos adicionales


Acerca de los autores

james jory es Arquitecto Principal de Soluciones en IA Aplicada con AWS. Tiene un interés especial en la personalización y los sistemas de recomendación y experiencia en comercio electrónico, tecnología de marketing y análisis de datos de clientes. En su tiempo libre, disfruta de campamentos y simulaciones de carreras de autos.

reagan rosario es arquitecto de soluciones en AWS y se especializa en la creación de soluciones en la nube escalables, de alta disponibilidad y seguras para empresas de tecnología educativa. Con más de 10 años de experiencia en funciones de arquitectura e ingeniería de software, a Reagan le encanta utilizar su conocimiento técnico para ayudar a los clientes de AWS a diseñar soluciones de nube sólidas que aprovechen la amplitud y profundidad de AWS.

punto_img

Información más reciente

punto_img