Revoluciona la lectura de noticias con Amazon Personalize y Titan Text Embeddings en Amazon Bedrock

Elena Digital López

Los editores de noticias buscan proporcionar una experiencia personalizada e informativa a sus lectores, pero la corta vida útil de los artículos puede dificultar esto. En la publicación de noticias, los artículos generalmente alcanzan su pico de lectura el mismo día de su publicación. Además, los editores suelen publicar nuevos artículos con frecuencia y desean mostrar estos artículos a los lectores interesados lo más rápido posible. Esto plantea desafíos para las metodologías de sistemas de recomendación basados en interacciones, como el filtrado colaborativo y los enfoques basados en el aprendizaje profundo utilizados en Amazon Personalize, un servicio gestionado que puede aprender las preferencias de los usuarios de su comportamiento pasado y ajustar rápidamente las recomendaciones para reflejar cambios en el comportamiento del usuario en tiempo casi real.

Los editores de noticias, generalmente, no tienen el presupuesto ni el personal para experimentar con algoritmos internos y necesitan una solución completamente gestionada. En esta publicación, demostramos cómo proporcionar recomendaciones de alta calidad para artículos con vidas útiles cortas utilizando incrustaciones textuales en Amazon Bedrock. Amazon Bedrock es un servicio completamente gestionado que ofrece una selección de modelos fundacionales de alto rendimiento (FMs) de empresas líderes en inteligencia artificial (IA) como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI y Amazon a través de una única API, junto con un amplio conjunto de capacidades para construir aplicaciones de IA generativa con seguridad, privacidad y responsabilidad.

Las incrustaciones son una representación matemática de una pieza de información como un texto o una imagen. Específicamente, son un vector o lista ordenada de números que ayudan a capturar el significado del texto o imagen para determinar su similitud con otros textos o imágenes midiendo su distancia en el espacio de incrustación. Para nuestra publicación, utilizamos el modelo Amazon Titan Text Embeddings.

Al combinar los beneficios de Amazon Titan Text Embeddings en Amazon Bedrock con la naturaleza en tiempo real de Amazon Personalize, podemos recomendar artículos a usuarios interesados de manera inteligente en cuestión de segundos desde la publicación del artículo. Aunque Amazon Personalize puede proporcionar artículos poco después de ser publicados, generalmente toma algunas horas (y un filtro para seleccionar elementos del marco de tiempo correcto) para mostrar los artículos a los usuarios adecuados. Para nuestro caso de uso, queremos recomendar artículos inmediatamente después de ser publicados.

El diagrama mostrado describe la arquitectura de la solución y los pasos de alto nivel del flujo de trabajo, siguiendo las mejores prácticas de AWS para utilizar servicios gestionados y sin servidor cuando sea posible.

El flujo de trabajo incluye los siguientes pasos:
1. Un desencadenante invoca una función AWS Lambda cada vez que se publica un nuevo artículo.
2. Un modelo de incrustación textual alojado en Amazon Bedrock crea una incrustación del texto del artículo.
3. Un modelo alojado en Amazon SageMaker asigna el artículo a un grupo de artículos similares.
4. Un modelo alojado en Amazon Bedrock puede generar titulares y resúmenes del nuevo artículo si es necesario.
5. Los nuevos artículos se agregan a Amazon DynamoDB con información sobre su tipo y cuándo se publicaron, con un tiempo de vida (TTL) que representa cuándo los artículos ya no se consideran noticias de última hora.
6. Cuando los usuarios llegan al sitio web, sus solicitudes son procesadas por Amazon API Gateway.
7. API Gateway hace una solicitud a Amazon Personalize para saber qué artículos y tipos de artículos individuales le interesan más a un lector.
8. Para recomendar artículos de última hora, se realiza una llamada a DynamoDB para determinar qué artículos se han publicado recientemente de cada tipo, permitiendo mostrar artículos nuevos a los lectores interesados en segundos.
9. A medida que los usuarios leen artículos, sus interacciones se transmiten utilizando Amazon Kinesis Data Streams a un rastreador de eventos de Amazon Personalize.
10. El rastreador de eventos de Amazon Personalize actualiza los modelos personalización en 1–2 segundos.

Para implementar esta solución, se requiere una cuenta de AWS y familiaridad con Amazon Personalize, SageMaker, DynamoDB y Amazon Bedrock, además de tener habilitado el modelo Amazon Titan Text Embeddings V2 en Amazon Bedrock.

Al cargar un conjunto de artículos publicados históricamente y crear incrustaciones para ellos utilizando Amazon Titan Text Embeddings, se puede entrenar y desplegar un modelo de agrupamiento que asigne identificadores de grupo a los artículos históricos y a cualquier artículo que se considere de última hora. Luego, se configura una tabla de DynamoDB para contener los artículos de última hora, sus identificadores y sus grupos. Estos pasos permiten recomendar artículos a los usuarios en tiempo real al identificar el tipo de artículo y recomendarlo inmediatamente.

Amazon Personalize se encarga de generar una lista de recomendaciones para un usuario específico, útil para poblar páginas de inicio de sitios web y secciones específicas. Siguiendo los pasos proporcionados, se puede crear y desplegar una campaña de personalización de usuarios, permitiendo mostrar artículos nuevos y relevantes a los lectores de manera eficiente y personalizada.

Finalmente, la interacción de los usuarios con los artículos se envía a un rastreador de eventos, actualizando las recomendaciones de Amazon Personalize en tiempo real, garantizando que los usuarios reciban recomendaciones actualizadas y relevantes basadas en sus interacciones.

Esta solución destaca el poder de los servicios de IA/ML de AWS para recomendar noticias de última hora a los usuarios, proporcionando una experiencia hiper-personalizada y curada en cuestión de segundos tras la publicación de los artículos.

Scroll al inicio