La creación de un sistema de recomendación del siguiente mejor producto explicable y basado en aprendizaje profundo ayuda a las instituciones bancarias a predecir qué producto necesita un cliente a continuación. Los bancos poseen grandes cantidades de datos de clientes, incluidos historiales de transacciones, registros de propiedad de productos, perfiles demográficos y patrones de comportamiento. Traducir estos datos en recomendaciones de productos personalizadas y procesables sigue siendo un desafío importante. Los sistemas tradicionales basados en reglas y los enfoques de filtrado colaborativo a menudo no logran capturar los complejos patrones temporales en los procesos de adopción de productos de los clientes.
En esta publicación, presentamos la arquitectura y las decisiones de diseño detrás de un sistema de recomendación Next-Best-Product (NBP) que utiliza Amazon SageMaker AI y PyTorch. Explicamos el razonamiento detrás de una arquitectura de red neuronal de múltiples torres, cómo la atención aprendida brinda explicabilidad por cliente y cómo los servicios de AWS trabajan juntos para llevar esta solución de la investigación a la producción. Esta es una descripción general de la arquitectura, no una guía de implementación paso a paso. Ya sea que esté creando sistemas de recomendación para servicios financieros u otros dominios con datos de clientes heterogéneos, los patrones arquitectónicos que se describen aquí pueden ayudarlo a diseñar modelos más precisos e interpretables.
Requisitos previos
Para seguir los patrones arquitectónicos y los ejemplos de código de esta publicación, necesita:
Una cuenta de AWS con permisos para SageMaker AI, Amazon Simple Storage Service (Amazon S3), AWS Glue y Amazon CloudWatch. Esta solución requiere un rol de ejecución de AWS Identity and Access Management (IAM) con acceso a los siguientes servicios de AWS. Cree políticas con permisos con privilegios mínimos destinados únicamente a los recursos necesarios para esta solución. SageMaker AI: cree, describa, inicie, detenga y elimine trabajos de capacitación, trabajos de procesamiento, trabajos de transformación por lotes, modelos, puntos finales, configuraciones de puntos finales, canalizaciones, experimentos y programas de monitoreo. InvokeEndpoint para inferencia en tiempo real. Amazon S3: acceso de lectura y escritura al depósito de datos. Crear y eliminar depósito. Enumere, cargue, descargue y elimine objetos. AWS Glue: cree, ejecute y elimine trabajos ETL. Crear y eliminar rastreadores. Crear y eliminar bases de datos y tablas del catálogo de datos. CloudWatch: acceso de lectura y escritura a grupos de registros, flujos de registros y métricas. Elimine grupos de registros durante la limpieza. IAM: crear y eliminar roles. Adjuntar y desconectar políticas. PassRole (restringido al ARN del rol de ejecución nombrado, con alcance en sagemaker.amazonaws.com y pegamento.amazonaws.com).
Para obtener orientación sobre cómo redactar políticas de IAM con privilegios mínimos para SageMaker AI, consulte Ejemplos de políticas basadas en identidad para SageMaker AI.
Familiaridad con Python 3.11+ y PyTorch Paquetes necesarios para crear este sistema de recomendación: Python 3.11+ PyTorch 2.9+ Pandas 2.3+ NumPy 2.3+ scikit-learn 1.7+ Dask 2025.11+
Recomendamos utilizar un entorno virtual y escanear dependencias en busca de vulnerabilidades conocidas utilizando herramientas como pip-audit antes de la implementación.
Comprensión básica de conceptos de aprendizaje profundo (incrustaciones, redes recurrentes, mecanismos de atención)
Nota: La implementación de esta solución crea recursos de AWS facturables, incluidos trabajos de capacitación de IA de SageMaker (instancias de GPU ml.g5.12xlarge), puntos finales de IA de SageMaker, almacenamiento de Amazon S3 y trabajos de AWS Glue. Siga las instrucciones de limpieza al final de esta publicación para evitar cargos continuos.
Descripción general de la solución
La solución utiliza una arquitectura de aprendizaje profundo de múltiples torres con cuatro torres de redes neuronales especializadas, cada una de las cuales procesa un aspecto diferente de los datos del cliente. Las torres se fusionan mediante un mecanismo de atención aprendido que proporciona alta precisión y explicabilidad por cliente.
El siguiente diagrama ilustra la arquitectura de alto nivel de la solución.
La arquitectura aborda un desafío común en la banca: predecir qué producto es más probable que compre un cliente a continuación entre múltiples categorías de productos (como tarjetas de crédito, depósitos, seguros, préstamos e hipotecas), al tiempo que proporciona resultados explicables que satisfacen los requisitos regulatorios.
Pila de tecnología
La siguiente tabla resume las opciones de tecnología y sus funciones en la solución.
Componente Tecnología Propósito ETL y procesamiento de datos AWS Glue (PySpark) ETL sin servidor basado en Spark para unificación de datos, mapeo de servicios, ingeniería de funciones a escala Marco de aprendizaje profundo PyTorch Gráficos de cálculo dinámico, flexibilidad de investigación a producción, soporte nativo de GPU Ingeniería de funciones Pandas, Dask, PyArrow Ingeniería de funciones específicas de ML (creación de secuencias, agregaciones en ventanas) Utilidades de ML scikit-learn Codificación de etiquetas, escalado estándar, división de entrenamiento/prueba, métricas de evaluación Capacitación Computación SageMaker AI (ml.g5.12xlarge) 192 GB de RAM, 4 GPU NVIDIA A10G Almacenamiento de datos Amazon S3 Archivos Parquet comprimidos Snappy para datos sin procesar, intermedios y procesados Catálogo de datos Catálogo de datos de AWS Glue Administración de esquemas, metadatos de tablas, rastreadores para descubrimiento automático Registro de modelos Registro de modelos de SageMaker AI Artefactos de modelos versionados, flujos de trabajo de aprobación Inferencia Transformación por lotes de SageMaker AI / endpoint Predicciones por lotes y casi en tiempo real Orquestación Canalizaciones de Amazon SageMaker Orquestación de canalizaciones de aprendizaje automático de extremo a extremo Monitoreo CloudWatch Métricas de entrenamiento, latencia de inferencia, detección de deriva del modelo
¿Por qué PyTorch?
Esta solución utiliza PyTorch para gráficos de cálculo dinámico (necesarios para secuencias de longitud variable con pack_padded_sequence), iteración rápida a través de múltiples fases arquitectónicas e integración nativa con contenedores de inferencia y trabajos de entrenamiento de IA de SageMaker.
¿Por qué Parquet en Amazon S3?
La solución almacena datos como Parquet comprimido con Snappy en Amazon Simple Storage Service (Amazon S3). El formato de columnas de Parquet permite la poda de columnas (leer una fracción de un archivo ancho), la inserción de predicados (omitiendo grupos de filas irrelevantes), la compresión de 3 a 5 veces sobre CSV y la preservación de tipos sin volver a analizar en cada lectura.
¿Por qué utilizar AWS Glue para ETL?
El proyecto utiliza trabajos de AWS Glue que se ejecutan en PySpark para el procesamiento de datos de escalamiento automático y sin servidor. AWS Glue proporciona integración nativa de Spark, la API DynamicFrame para esquemas flexibles, registro automático del catálogo de datos, marcadores de trabajos para procesamiento incremental y rentabilidad de pago por DPU.
Arquitectura de canalización de datos
La canalización de datos consta de dos etapas: un trabajo ETL de AWS Glue para la unificación de datos, seguido de un trabajo de procesamiento de Amazon SageMaker para la ingeniería de funciones específicas de ML.
Unificación de datos con AWS Glue
Los datos bancarios suelen llegar desde múltiples sistemas fuente con esquemas inconsistentes. El trabajo ETL de AWS Glue normaliza esquemas, asigna tipos de transacciones sin procesar a categorías de servicios unificadas, combina todos los datos en un único registro cronológico por cliente y diseña características temporales. La salida procesada se escribe como Parquet en Amazon S3 y se registra en el catálogo de datos de AWS Glue.
Ingeniería de funciones específicas de ML con Amazon SageMaker Processing
Después de que el trabajo de AWS Glue produce el historial unificado, un trabajo de procesamiento de Amazon SageMaker crea secuencias de adopción de productos por cliente, calcula agregaciones de transacciones con ventanas de tiempo (en ventanas de 7, 30, 60, 180 y 365 días) utilizando Dask para el paralelismo y rellena las secuencias con una longitud fija para la entrada del modelo.
Manejo de datos a gran escala
Para conjuntos de datos grandes que exceden la memoria disponible, la solución utiliza una estrategia de procesamiento de fragmentos paralelo con PyArrow para la inspección de metadatos, ProcessPoolExecutor para el procesamiento de fragmentos paralelo, recolección explícita de basura entre lotes y fusión incremental para evitar picos de memoria.
Nota: Cuando trabaje con datos reales de clientes, consulte la sección Consideraciones de seguridad para obtener orientación sobre el manejo de PII, el cumplimiento normativo y el gobierno de datos.
Arquitectura modelo
El modelo utiliza un enfoque de múltiples torres en el que cada torre se especializa en procesar un tipo de datos de clientes, seguido de un mecanismo de fusión basado en la atención.
¿Por qué múltiples torres en una sola red?
Los diferentes tipos de datos de clientes tienen estructuras fundamentalmente diferentes. Las secuencias son listas ordenadas de identificaciones discretas. Las transacciones son agregaciones numéricas. La demografía es una mezcla de características categóricas y numéricas. Los segmentos de comportamiento son códigos categóricos.
Forzar todo esto a través de las mismas capas desperdicia la capacidad del modelo. En cambio, la arquitectura utiliza cuatro torres especializadas, cada una diseñada para su tipo de datos:
Torre Tipo de entrada Arquitectura Secuencia de salida Torre Historial de adopción de productos (rellenado a longitud fija) nn.Incrustación → GRU de 2 capas → Fusión con recuento de productos activos Torre de transacciones de vector de 64 atenuaciones Funciones de transacciones con ventana de tiempo MLP de dos capas (128 → 64) con ReLU y abandono Torre de clientes de vectores de 64 atenuaciones Características demográficas, ingresos, familia y cuentas MLP de dos capas (128 → 64) con ReLU y Vector de 64 atenuaciones de deserción Torre de comportamiento Códigos de segmentación, lealtad, patrones de uso MLP de 2 capas (128 → 64) con ReLU y vector de 64 atenuaciones de deserción
Torre de secuencia: capturando patrones temporales
Sequence Tower procesa el historial de adopción de productos del cliente utilizando una unidad recurrente cerrada (GRU) de 2 capas. Este es el componente arquitectónico central porque captura el orden en el que los clientes adoptan los productos, no solo los productos que poseen.
¿Por qué GRU en lugar de LSTM?
GRU tiene dos puertas (reinicio, actualización) frente a las tres de LSTM (entrada, olvido, salida), lo que da como resultado aproximadamente un 33 % menos de parámetros. Para secuencias cortas (20 elementos o menos), GRU tiene un rendimiento comparable al de LSTM mientras entrena más rápido. El mecanismo de interpolación de la puerta de actualización también crea una ruta de gradiente natural similar a un residuo.
¿Por qué pack_padded_sequence?
Las secuencias de clientes tienen longitudes variables. El embalaje le dice al GRU que ignore los tokens de relleno, evitando que el modelo aprenda ruido de posiciones con relleno de ceros.
Mecanismo de atención de la torre: fusión aprendida con explicabilidad
En lugar de una simple concatenación, la arquitectura utiliza un mecanismo de atención aprendido para fusionar las salidas de las torres. Esto es lo que proporciona explicabilidad por cliente sin requerir métodos de interpretación post hoc como SHAP o LIME.
Los pesos de las torres son por cliente. Un cliente con un rico historial de transacciones obtiene un alto peso en la torre de transacciones, mientras que un cliente nuevo con pocas transacciones pero con una demografía clara obtiene un alto peso en la torre de clientes. Esta adaptabilidad mejora la precisión y proporciona una explicabilidad natural para los gestores y reguladores de relaciones.
Fusión consciente del contexto: bloques residuales para un entrenamiento estable
Las salidas ponderadas de la torre pasan por una red de fusión con conexiones residuales. Las conexiones residuales ayudan con el flujo de gradiente durante el entrenamiento y permiten que la red aprenda mapeos de identidad cuando no se necesita profundidad adicional.
Módulo de importancia de funciones: explicabilidad incorporada
Los reguladores bancarios exigen que el modelo sea explicable. En lugar de depender de métodos post-hoc, la arquitectura incluye un módulo de importancia de funciones que produce puntuaciones de importancia por cliente que suman 1,0 como parte del paso hacia adelante.
Esto produce resultados como: "Para este cliente, el 40% de la recomendación fue impulsada por la secuencia de su producto, el 30% por patrones de transacción, el 20% por datos demográficos, el 10% por segmento de comportamiento". Los gerentes de relaciones pueden utilizar esto para adaptar sus conversaciones con cada cliente.
Estrategia de formación
La siguiente tabla resume la configuración de la capacitación y el fundamento de cada elección.
Valor del parámetro Justificación Optimizador Adam (lr=0.001, Weight_decay=1e-5) Tasas de aprendizaje adaptables por parámetro, regularización L2 ligera Pérdida CrossEntropyLoss Estándar para clasificación de clases múltiples, programador LR numéricamente estable ReduceLROnPlateau (factor=0.5, paciencia=3) Reduce automáticamente a la mitad LR cuando la pérdida de validación se estabiliza Recorte de gradiente max_norm=1.0 Previene la explosión de gradiente con GRU y atención Detención temprana paciencia=5 Detiene el entrenamiento cuando la pérdida de validación deja de mejorar Tamaño de lote 32 Cabe cómodamente en la división de datos VRAM de A10G 80 % de entrenamiento / 10 % de validación / 10 % de prueba División estándar para reproducibilidad
Todas las semillas aleatorias son fijas (PyTorch, NumPy, CUDA) para una reproducibilidad total en las ejecuciones de entrenamiento.
El proceso de capacitación utiliza SageMaker AI con instancias ml.g5.12xlarge. El SDK de SageMaker AI Python proporciona un estimador de PyTorch que empaqueta el código de entrenamiento, aprovisiona instancias de GPU, ejecuta entrenamiento y almacena artefactos de modelo en Amazon S3 automáticamente.
Métricas de evaluación
El modelo se evalúa utilizando métricas que se relacionan directamente con el valor comercial:
Métrica Qué mide Relevancia empresarial Precisión Top-1 Precisión de predicción exacta "¿Predijo el modelo el producto exacto?" Precisión de los 3 principales Producto correcto en los 3 primeros “¿Está el producto correcto en la lista corta para el gerente de relaciones?” Top-5 Precisión Producto correcto en el top 5 "¿Está en el carrusel de recomendaciones?" MRR (Rango recíproco medio) Rango recíproco promedio del producto correcto “¿A qué altura se encuentra el producto correcto en promedio?” Ponderado F1 Equilibrio de precisión/recuperación por clase "¿El modelo predice bien todos los tipos de productos?"
El modelo de producción logró un sólido rendimiento en todas las métricas, y el producto correcto apareció constantemente entre las 3 recomendaciones principales. El módulo de importancia de las funciones confirmó que la torre de secuencia (historial de adopción de productos) aporta la mayor señal, seguida de los patrones de transacciones, la demografía de los clientes y la segmentación del comportamiento.
Inferencia y despliegue
El proceso de inferencia admite tanto la puntuación por lotes como las predicciones en tiempo real utilizando SageMaker AI.
Para la puntuación por lotes, SageMaker AI Batch Transform procesa toda la base de clientes todas las noches, generando las mejores recomendaciones con puntuaciones de explicabilidad para cada cliente. Los resultados se almacenan como JSON en Amazon S3 para que los utilicen los sistemas CRM y los paneles de control de relaciones.
Para predicciones en tiempo real, un punto final en tiempo real de SageMaker AI ofrece recomendaciones bajo demanda cuando un cliente inicia sesión en la aplicación de banca móvil o un gerente de relaciones abre un perfil de cliente.
Cada recomendación incluye:
ID del producto y puntuación de probabilidad. Desglose de la importancia de las funciones: contribución porcentual de cada torre. Indicador de confianza: basado en la entropía de la distribución de probabilidad.
Para obtener orientación sobre cómo proteger los puntos finales con autenticación IAM, limitación de velocidad y aislamiento de nube privada virtual (VPC), consulte la sección Consideraciones de seguridad.
Nota: Los fragmentos de código de esta publicación ilustran patrones arquitectónicos y no están listos para producción. Para la producción, agregue validación de entrada (formas de tensor, comprobaciones de NaN, límites de longitud de secuencia, etc.), manejo de errores y registro de inferencia. Configure Amazon SageMaker Model Monitor para alertar sobre cambios en la distribución de entrada.
Decisiones clave de diseño
¿Por qué múltiples torres en una sola red? Una sola red necesitaría aprender simultáneamente a procesar secuencias, agregar transacciones, codificar datos demográficos e interpretar segmentos de comportamiento. Las torres separadas permiten que cada una se especialice en su tipo de datos, luego la fusión basada en la atención aprende cómo combinarlas de manera óptima por cliente. ¿Por qué GRU para la producción en lugar de Transformers? Los transformadores destacan en secuencias largas (más de 100). Para secuencias de 20 elementos o menos, GRU es suficiente, proporciona una interpretabilidad más clara que los mapas de atención del transformador, evita el cálculo de atención cuadrática y produce un modelo más pequeño (~5 MB en comparación con ~15 MB). ¿Por qué aprender los pesos de las torres en lugar de la concatenación? Con la concatenación, el modelo trata todas las torres por igual para cada cliente. Con pesos de atención aprendidos, el modelo se adapta por cliente: un cliente con un rico historial de transacciones obtiene un alto peso en la torre de transacciones, mientras que un cliente nuevo obtiene un alto peso en la torre demográfica. ¿Por qué características de transacción con ventana de tiempo? Diferentes ventanas de tiempo capturan diferentes señales: 7 días capturan la intención inmediata, 30 días capturan patrones mensuales, 180 días capturan patrones estacionales y 365 días capturan patrones anuales. Un cliente que aumenta repentinamente la frecuencia de las transacciones en los últimos 7 días tiene una intención diferente a la de uno con actividad constante durante 365 días.
Consideraciones operativas
Todas las semillas aleatorias se fijan en PyTorch, NumPy y CUDA para un entrenamiento determinista. Los artefactos del modelo, los hiperparámetros y las versiones de datos se rastrean a través de Amazon SageMaker Experiments.
Amazon SageMaker Model Monitor detecta la desviación de los datos (cambios en las distribuciones de las características de entrada), la desviación del modelo (degradación de la calidad de la predicción) y sesgos potenciales (dependencia excesiva de las características demográficas).
El flujo de trabajo de Amazon SageMaker Pipelines vuelve a entrenar el modelo mensualmente con los datos más recientes del cliente. El proceso automatiza todo el flujo de trabajo: procesamiento de datos, capacitación, evaluación e implementación condicional (implementación solo si las métricas mejoran con respecto al modelo de producción actual).
Consideraciones de seguridad
Al implementar esta solución con datos bancarios reales, implemente roles de IAM con privilegios mínimos destinados únicamente a las acciones requeridas de SageMaker AI, Amazon S3, AWS Glue y CloudWatch. Cifre los datos en reposo utilizando claves administradas por el cliente de AWS Key Management Service (AWS KMS) en depósitos de S3 y volúmenes de entrenamiento de IA de SageMaker, y aplique TLS para todos los datos en tránsito a través de políticas de depósitos de S3. Implemente trabajos de capacitación y puntos de enlace en subredes de VPC privadas sin puerta de enlace a Internet, utilice puntos de enlace de VPC (AWS PrivateLink) para la comunicación del servicio de AWS y establezca enable_network_isolation=True en trabajos de capacitación. Proteja los puntos finales de inferencia con la firma de AWS Signature versión 4 y considere Amazon Cognito y Amazon API Gateway para la autenticación del consumidor y la limitación de velocidad. Para la gobernanza de datos, evalúe las obligaciones regulatorias (PCI-DSS, GDPR, CCPA), implemente la minimización de datos y defina políticas de retención. Habilite AWS CloudTrail para el registro de auditoría de API y el control de versiones de S3 para la integridad de los artefactos del modelo.
Para obtener una guía de implementación completa, consulte la documentación de seguridad de SageMaker AI.
Limpiar
Para evitar cargos continuos de AWS, elimine los siguientes recursos una vez que termine de evaluar esta solución.
Puntos finales de SageMaker AI y configuraciones de puntos finales. Modelos de IA de SageMaker y resultados de trabajos de capacitación en Amazon S3. Salida del trabajo de procesamiento de Amazon SageMaker en Amazon S3. SageMaker AI Batch Transforma trabajos y configuraciones. Definiciones de canalizaciones de Amazon SageMaker. Programaciones de Monitor de modelo de Amazon SageMaker. Pruebas de Amazon SageMaker Experiments y datos de experimentos. Buckets de Amazon S3 que contienen datos de entrenamiento, artefactos de modelo y resultados de transformación por lotes. Trabajos ETL de AWS Glue y recursos del catálogo de datos. Grupos de registros de CloudWatch creados por SageMaker AI y AWS Glue.
Puede eliminar estos recursos a través de la Consola de administración de AWS o mediante la interfaz de línea de comandos de AWS (AWS CLI).
Advertencia: la eliminación de estos recursos es irreversible. Antes de continuar:
Exporte cualquier artefacto del modelo o resultado de evaluación que necesite conservar. Verifique que la eliminación se ajuste a sus políticas de retención de datos y requisitos normativos. Elimine todas las versiones de objetos de S3 si el control de versiones está habilitado. Elimine las funciones y políticas de IAM creadas para esta solución. Al eliminar los depósitos de S3, se eliminan permanentemente todos los datos de entrenamiento, los artefactos del modelo y los resultados de la transformación por lotes.
Conclusión
Esta publicación mostró cómo crear un sistema de recomendación del próximo mejor producto para banca utilizando PyTorch y SageMaker AI. La arquitectura de múltiples torres con fusión de atención aprendida logra una alta precisión de predicción al tiempo que proporciona la explicabilidad requerida por los reguladores bancarios.
Las conclusiones clave son:
Las torres especializadas para diferentes tipos de datos superan a las arquitecturas monolíticas para datos bancarios heterogéneos. El procesamiento de secuencias basado en GRU captura patrones temporales de adopción de productos que la agregación de características planas pasa por alto. La atención aprendida en la torre proporciona ganancias en precisión y explicabilidad por cliente sin métodos de interpretación post hoc. SageMaker AI proporciona la infraestructura de un extremo a otro para capacitación, gestión de modelos e inferencia a escala.
Puede adaptar esta arquitectura de múltiples torres a su propio catálogo de productos y datos de clientes. Para comenzar, explore la documentación de SageMaker AI. Para ver ejemplos adicionales de PyTorch en AWS, consulte PyTorch en AWS. Si desea ayuda para crear un sistema de recomendaciones para su organización, comuníquese con un representante de AWS.