Esta es una publicación de un blog invitado por Phil Basford, arquitecto jefe de soluciones de AWS, Inawisdom.
En re: Invent 2018 AWS anunció Amazon Personalize que te permite haga que su primer motor de recomendación funcione rápidamente, para ofrecer un valor inmediato a su usuario final o negocio. A medida que aumenta su comprensión (o si ya está familiarizado con la ciencia de la información), puede aprovechar las capacidades profundas de Amazon Personalize para mejorar sus recomendaciones.
Trabajando en Inawisdom noté un aumento Diversidad en la aplicación del aprendizaje automático (ML) y el aprendizaje profundo. Parece que casi todos los días trabajo en un nuevo y emocionante caso de uso, ¡lo cual es genial!
Los casos de uso más conocidos y exitosos de ML han sido sitios web de venta minorista, aplicaciones de transmisión de música y plataformas de medios sociales. Durante años, han estado incorporando tecnologías ML en el corazón de su experiencia de usuario. Por lo general, brindan a cada usuario una recomendación personalizada individual, basada tanto en los datos históricos como en la actividad en tiempo real (como los datos de clics).
Inawisdom tuvo la suerte de tener acceso temprano para probar Amazon Personalize mientras estaba en vista previa del lanzamiento. En lugar de dárselo a científicos de datos o ingenieros de datos, la empresa me lo dio a mí, un arquitecto de soluciones de AWS. Sin conocimiento previo, pude obtener una recomendación de Personalizar de Amazon en solo unas horas. Esta publicación describe cómo lo hice.
Descripción general
El aspecto más desalentador de la construcción de un motor de recomendación es saber por dónde empezar. Esto es aún más difícil cuando tienes poca o ninguna experiencia con ML. Sin embargo, puede tener la suerte de saber lo que no sabe (y lo que debe averiguar), como:
- Qué datos usar.
- Cómo estructurarlo.
- Qué marco / receta
- Cómo entrenarlo con datos.
- Cómo saber si es preciso.
- Cómo usarlo en una aplicación en tiempo real.
Básicamente, Amazon Personalize proporciona una estructura y lo apoya. Como te guía a través de estos temas. O, si usted es un científico de datos, puede actuar como un acelerador para su propia implementación.
Creación de una solución de recomendación de Personalize de Amazon
Puede crear su propia solución de recomendación personalizada de Amazon Personalize en unas pocas horas. Realice el proceso en el siguiente diagrama.
Creación de grupos de datos y conjuntos de datos
Al abrir Amazon Personalize, el primer paso es crear un grupo de datos, que se puede crear desde la carga de datos históricos. o de datos recopilados de eventos en tiempo real. En mi evaluación de Amazon Personalize en Inawisdom, solo usé datos históricos.
Al usar datos históricos, cada conjunto de datos se importa datos de un archivo .csv ubicado en Amazon S3, y cada grupo de datos puede contener tres conjuntos de datos:
- Usuarios
- Elemento
- Interacciones
Para el propósito de este rápido ejemplo, solo preparé el archivo de datos de Interacciones, porque es obligatorio y el más importante.
El conjunto de datos de Interacciones contiene una relación de muchos a muchos (en términos de la antigua base de datos relacional) que asigna USER_ID
a ITEM_ID
. Las interacciones se pueden enriquecer con conjuntos de datos opcionales de Usuario y Elemento que contienen datos adicionales vinculados por sus ID. Por ejemplo, para un sitio web de transmisión de películas, puede ser valioso conocer la clasificación por edad de una película y la edad del espectador y comprender qué películas ven.
Cuando tenga todos sus archivos de datos listos en S3, importe ellos en su grupo de datos como conjuntos de datos. Para hacer esto, defina un esquema para los datos en el formato Apache Avro para cada conjunto de datos, lo que permite que Amazon Personalize entienda el formato de sus datos. Aquí hay un ejemplo de un esquema para interacciones:
Al evaluar Amazon Personalize, es posible que pases más tiempo en esta etapa que en otras etapas. Esto es importante y refleja que la calidad de sus datos es el factor más importante para producir un modelo utilizable y preciso. Aquí es donde Amazon Personalize tiene un efecto inmediato: le ayuda y acelera su progreso.
No se preocupe por el formato de los datos, solo se identifican los campos clave. No se deje atrapar por la preocupación sobre qué modelo usar o los datos que necesita. Su objetivo es simplemente hacer que sus datos sean accesibles. Si recién está comenzando en ML, puede obtener un grupo de conjuntos de datos básicos que trabaje rápidamente con datos mínimos. Si es un científico de datos, probablemente vuelva a esta etapa para mejorar y agregar más puntos de datos (características de datos).
Creando una solución
Cuando tenga su grupo de datos con datos, la siguiente El paso es crear una solución. Una solución cubre dos áreas: seleccionar el modelo (receta) y luego usar sus datos para entrenarlo. Tienes recetas y una línea de base de popularidad para elegir. Algunas de las recetas que se ofrecen incluyen lo siguiente:
- Reorganización personalizada (búsqueda)
- Elementos relacionados con SIMS
- HRNN (Arranque en frío, Popularidad-Línea de base y Metadatos): personalización del usuario
Si no está un científico de datos, no te preocupes. Puede usar AutoML, que ejecuta sus datos contra cada una de las recetas disponibles. Amazon Personalize luego juzga la mejor receta según los resultados de precisión producidos. Esto también incluye cambiar algunas de las configuraciones para obtener mejores resultados (hiperparámetros). La siguiente imagen muestra una solución con la sección métrica en la parte inferior que muestra la precisión:
Amazon Personalize te permite poner algo en funcionamiento rápidamente, incluso si no eres un científico de datos. Esto incluye no solo la selección del modelo y la capacitación, sino la reestructuración de los datos en lo que cada receta requiere y la ocultación de la molestia de hacer girar los servidores para ejecutar trabajos de capacitación. Si usted es un científico de datos, esta también es una buena noticia, ya que puede tomar el control total del proceso.
Crear una campaña
Después de tener una versión de la solución (una receta confirmada y artefactos capacitados), es el momento de Ponlo en acción. Esto no es fácil, y hay mucho que considerar al ejecutar ML a gran escala.
Para comenzar, Amazon Personalize le permite desplegar una campaña (un motor de inferencia para su receta y los artefactos capacitados) como PaaS . La campaña devuelve una API REST que puede utilizar para generar recomendaciones. Aquí hay un ejemplo de cómo llamar a su API desde Python:
Resultados:
Conclusión
Amazon Personalize es una excelente adición al AWS conjunto de servicios de aprendizaje automático . Su enfoque de dos vías le permite hacer funcionar su primer motor de recomendación de manera rápida y eficiente y entregar un valor inmediato a su usuario final o negocio. Luego, puede aprovechar la profundidad y el poder puro de Amazon Personalize, que lo mantendrá regresando para mejorar sus recomendaciones.
Amazon Personalize pone un motor de recomendaciones en manos de todas las empresas y ahora está disponible en EE. UU. (Ohio). Este de EE. UU. (Virginia del Norte), Oeste de EE. UU. (Oregón), Asia Pacífico (Tokio), Asia Pacífico (Singapur) y UE (Irlanda). ¡Bien hecho, AWS!