caso de uso: Inteligencia Artificial, Búsqueda Inteligente, Vista Única
Industrias: Servicios financieros
Productos: MongoDB Atlas, Búsqueda Atlas de MongoDB, Búsqueda vectorial de MongoDB Atlas, MongoDB Atlas Stream Processing
Descripción general de la solución
Esta solución exhibe las capacidades de MongoDB para la prevención de delitos financieros. Filtrado de transacciones en tiempo real con incrustaciones vectoriales, resolución sofisticada de entidades con $rankFusion búsqueda híbrida, clasificación de riesgos impulsada por LLM y generación de casos, recorrido de la red de relaciones con $graphLookup, y modelos dinámicos de riesgo que se actualizan sin tiempo de inactividad del sistema.
Figura 1. Plataforma de mitigación de delitos financieros con MongoDB
La ilustración 1 presenta una visión general de alto nivel de la Plataforma de Mitigación de Crímenes Financieros "ThreatSight 360", que ilustra la resolución integral de entidades y el flujo de trabajo de mitigación de crímenes financieros, y se centra en las siguientes capacidades clave:
Flujo de detección de fraudes: Demuestra un pipeline de extremo a extremo y en tiempo real. Un Simulador de Transacciones genera eventos sintéticos para practicar escenarios de fraude. Luego, un Motor de Detección de Fraudes enriquece cada transacción con datos del perfil del cliente, aplica reglas, realiza una búsqueda vectorial y genera representaciones a través de AWS Bedrock. Un Motor de Modelado de Riesgos gestiona modelos de riesgo que se actualizan en tiempo real usando flujos de cambios de MongoDB para garantizar que las decisiones siempre reflejen la lógica de riesgo más reciente.
Búsqueda y resolución de entidades: Utiliza MongoDB Atlas Search para coincidencias de texto difusas (nombres, direcciones, identificadores) y MongoDB Atlas búsqueda vectorial para similitud semántica. Ejecuta ambos en paralelo y fusiona los resultados con
$rankFusionpara generar una única lista de candidatos clasificadas para cada entidad.Análisis de redes y recorrido de grafos: Almacena relaciones explícitas e inferidas en una colección dedicada. Utiliza
$graphLookupy pipelines de agregación para recorrer redes multi-hop, descubrir vínculos ocultos y enriquecer el contexto de las entidades con métricas de conectividad.Evaluación de riesgos asistida por IA: describa los perfiles de entidades del paquete, los historiales de transacciones, las coincidencias de búsqueda y el contexto de red en prompts para un LLM, como AWS Bedrock Claude‑3 Sonnet. El modelo evalúa los indicadores de riesgo, explica la justificación y recomienda las siguientes acciones óptimas según las políticas y los umbrales de riesgo de su institución.
Gestión de casos y reportes: almacena archivos de casos, notas de analistas, narrativas generadas por LLM y auditorías como documentos de MongoDB. Esto reduce los falsos positivos, permite el análisis de datos y crea un registro coherente y consultable para los equipos de cumplimiento, auditores internos y reguladores.
Arquitecturas de Referencia
Esta solución consta de cuatro módulos principales que, en conjunto, implementan un flujo de trabajo integral de resolución de entidades y mitigación de delitos financieros:
Motor de supervisión de transacciones y puntuación de riesgos
Propósito: Detección de patrones de fraude semántico con búsqueda vectorial
Utiliza MongoDB Atlas búsqueda vectorial para identificar transacciones que se comportan como patrones de fraude conocidos, incluso cuando no coincidan con una regla explícita.
Genera incrustaciones a partir de los aspectos cualitativos y conductuales de cada transacción, como:
Categoría de comerciante y descripción
Huellas digitales de canales y dispositivos
Rangos de IP e información de ASN
Patrones temporales, como secuencias de hora del día o comportamiento en la sesión
Campos narrativos o notas de texto libre, si corresponde
Almacene estas incrustaciones de 1536dimensiones en los mismos documentos de transacción que contienen sus datos operativos.
Mantenga las funcionalidades numéricas significativas, como el monto bruto, los cambios de saldo y los contadores de velocidad simples, fuera de las incrustaciones y evalúelos con modelos basados en reglas o modelos de scorecard. Esta separación le permite:
Use la búsqueda vectorial para mostrar comportamientos semánticamente similares que cruzan simples umbrales o reglas.
Utiliza reglas deterministas y modelos de riesgo para aplicar límites numéricos y restricciones regulatorias.
Al examinar una nueva transacción, genera un embedding y query MongoDB Atlas con
$vectorSearch.El sistema devuelve transacciones semánticamente similares, incluidas aquellas que evaden reglas estáticas pero que en comportamiento se asemejan a fraudes previos.
Combine las puntuaciones de similitud vectorial con las puntuaciones de riesgo numéricas para crear una pipeline unificada de decisiones de riesgo.
Gestión del modelo de riesgo
Propósito: Inteligencia de Riesgo en Tiempo Real con Change Streams
Utiliza los flujos de cambio de MongoDB para recibir notificaciones instantáneas cuando se modifiquen modelos de riesgo, reglas de cumplimiento o listas de seguimiento. Transmite actualizaciones directamente a tus servicios de detección de fraude y gestión de casos en lugar de realizar sondeos o depender de invalidaciones de caché ad hoc.
Cuando los analistas activan un nuevo modelo de riesgo, todos los motores de filtrado de transacciones reciben el cambio en cuestión de milisegundos y aplican las reglas actualizadas al tráfico entrante. Esto remueve las demoras de agrupación que permiten que las transacciones fraudulentas pasen antes de ser detectadas.
Abrir un cursor de flujo de cambios en los modelos de riesgo o colecciones de configuración, y MongoDB envía cada operación de inserción, actualización o reemplazo a la aplicación. Utilizar tokens de reanudación para reanudar el procesamiento desde el punto exacto de interrupción después de reinicios de servicio o fallas de red, asegurando que no se pierda ninguna actualización.
Figura 2. pipeline de detección de fraude en tiempo real con Streams de Cambio, Búsqueda Vectorial y Modelos de Riesgo
Incorporación de entidades y gestión de casos
Este módulo tiene dos propósitos principales:
Propósito: Resolución de entidades impulsada por IA con búsqueda híbrida
Utilizar el operador $rankFusion de MongoDB para combinar múltiples estrategias de búsqueda durante la incorporación o investigación de entidades. Ejecutar Atlas Search para la coincidencia de texto aproximada y Atlas Vector Search para la similitud semántica en paralelo. $rankFusion fusiona los sets de resultados y clasifica las entidades por relevancia combinada basada en la similitud del texto y las incrustaciones.
Para los principales candidatos, recorra las redes de relaciones y transacciones usando $graphLookup. MongoDB devuelve contexto de red que incluye conexiones de entidades, patrones de transacción, identificadores compartidos e indicadores de riesgo en una única pipeline de agregación. Esto evita que se consulten varios sistemas o que se realicen uniones costosas.
Alimente datos de entidades, resultados de búsquedas y análisis de red a un LLM como AWS Bedrock Claude‑3 Sonnet para una clasificación de riesgo asistida por IA. El modelo evalúa las señales de cumplimiento, los patrones de relación, los indicadores de comportamiento y las coincidencias con las listas de vigilancia para generar evaluaciones de riesgo con puntuaciones de confianza y acciones recomendadas.
Crea documentos automáticamente en MongoDB con resúmenes de investigación generados por LLM. Esto reduce la redacción manual de informes y mejora la coherencia de la documentación de cumplimiento.
Objetivo: Descubrimiento de red con recorrido de grafos
Los investigadores suelen necesitar rastrear redes de lavado de dinero y conexiones ocultas entre entidades. Utiliza la etapa de agregación $graphLookup de MongoDB para realizar este análisis de red directamente en tu base de datos operativa, sin necesidad de un almacén de grafos por separado.
Comienza con una entidad sospechosa y recorre relaciones de forma recursiva mediante socios empresariales, direcciones compartidas, contrapartes de transacciones o estructuras corporativas. Cada recorrido devuelve documentos de entidad completos con análisis de comportamiento integrados, puntuaciones de riesgo y banderas de cumplimiento.
Filtra las relaciones por puntuación de confianza, tipo de relación o umbrales de riesgo durante la exploración.
Descubre redes a través de múltiples saltos en milisegundos, y luego combina los resultados de grafos con operaciones de agregación estándar como el filtrado, la ordenación y la agrupación.
// Multi-hop relationship traversal with MongoDB $graphLookup db.entities.aggregate([ { $match: { entityId: 'ENT_12345' }, }, { $graphLookup: { from: 'entity_relationships', startWith: '$entityId', connectFromField: 'target_entity_id', connectToField: 'source_entity_id', as: 'relationship_network', maxDepth: 2, restrictSearchWithMatch: { confidence_score: { $gte: 0.7 }, relationship_type: { $in: [ 'BUSINESS_ASSOCIATE', 'SHARED_ADDRESS', 'TRANSACTION_COUNTERPARTY', ], }, }, }, }, { $lookup: { from: 'entities', localField: 'relationship_network.target_entity_id', foreignField: 'entityId', as: 'connected_entities', }, }, { $project: { entityId: 1, name: 1, riskAssessment: 1, networkDepth: { $size: '$relationship_network' }, connectedEntities: { $map: { input: '$connected_entities', as: 'entity', in: { id: '$$entity.entityId', name: '$$entity.name.full', riskLevel: '$$entity.riskAssessment.level', }, }, }, }, }, ]);
Figura 3. Resolución de entidades con MongoDB Search y $graphLookup y gestión de casos con LLM
Enfoque de modelo de datos
La plataforma se centra en tres colecciones de MongoDB que aprovechan la flexibilidad del modelo orientado a documentos:
Colección de entidades: almacena datos de personas físicas y organizaciones con perfiles de cliente completos y de vista única. Cada documento agrupa datos de identificación, información de contacto, atributos de KYC, evaluaciones de riesgos, análisis de comportamiento y embeddings vectoriales. Los documentos anidados capturan patrones de transacciones, huellas digitales de dispositivos e historial de ubicaciones, brindándole una visión completa de cada cliente sin tener que fusionar datos de varios sistemas. Puede añadir nuevos factores de riesgo o fuentes de datos sin migraciones de esquema.
Colección de transacciones: Registra transacciones financieras con detalles de comerciantes integrados, datos de ubicación (como puntos GeoJSON), información de dispositivos y evaluaciones de riesgos. Cada documento de transacción es independiente y tiene contexto completo, lo que permite consultas geoespaciales y análisis de patrones sin uniones.
Colección de modelos de riesgo: mantiene modelos de gestión de riesgos versionados como documentos. Cada modelo incluye factores de riesgo, ponderaciones, umbrales y métricas de rendimiento. Los Change Streams de MongoDB notifican a los servicios cuando se activan o actualizan modelos, lo que permite la implementación inmediata de nuevas reglas de riesgo.
Relaciones entre colecciones
El diseño modela las relaciones mediante una combinación de referencias integradas y una colección dedicada de relationships:
Los documentos de entidades pueden insertar referencias a entidades relacionadas en arreglos
connected_entities.Los documentos de transacción almacenan
customer_idcampos que enlazan con entidades.La colección
entity_relationshipsalmacena relaciones explícitas con puntuaciones de confianza, tipos de relaciones y pistas de auditoría.
Este patrón permite un recorrido eficiente del grafo con $graphLookup, manteniendo el esquema flexible a medida que surgen nuevos tipos de relaciones.
Estrategia de indexación para el rendimiento
Usa los índices de búsqueda de Atlas para soportar la resolución de entidades y los flujos de trabajo investigativos:
Configura la autocompletación en
name.fullcon edge n‑grams (2–15 caracteres) para sugerencias de nombres en tiempo real.Configure las facetas de string en
entityType,nationality,residencyyriskAssessment.overall.levelpara filtrar los resultados de búsqueda.
Utiliza los índices de Atlas Vector Search en campos de incrustación para habilitar la correspondencia semántica configurando la similaridad del coseno con vectores de 1536dimensiones para la identificación de entidades y patrones de comportamiento. Puedes crear incrustaciones independientes para datos de identificadores y patrones de comportamiento para orientar casos de uso específicos.
Use índices estándar para cargas de trabajo operativas:
Utilice índices de un solo campo en
entityId,customer_idytimestamppara búsquedas y consultas de rango.Use
2dsphereíndices en las coordenadas de ubicación para reglas de fraude basadas en radio.Usa índices compuestos en el nivel de riesgo y el tipo de entidad para filtros investigativos comunes.
Documento de ejemplo
{ "_id": ObjectId("674a83b654c7f1b869cb1c2"), "customer_id": "CUST_67890", "transaction_id": "TXN_54321", "timestamp": ISODate("2024-11-15T14:22:36Z"), "amount": 2500.75, "currency": "USD", "merchant": { "name": "Global Electronics", "category": "electronics", "id": "MERCH_123" }, "location": { "city": "San Francisco", "state": "California", "country": "US", "coordinates": { "type": "Point", "coordinates": [ -122.4194, 37.7749 ] } }, "device_info": { "device_id": "device_abc123", "type": "desktop", "os": "macOS", "browser": "Chrome", "ip": "203.0.113.45" }, "transaction_type": "purchase", "payment_method": "credit_card", "status": "completed", "risk_assessment": { "score": 78.5, "level": "high", "flags": [ "unusual_amount", "unexpected_location", "velocity_alert" ], "transaction_type": "suspicious", "diagnostics": { "customer_base_risk": 35.0, "transaction_factors": { "amount": 85.0, "location": 90.0, "device": 0, "velocity": 75.0, "pattern": 60.0 } } }, "vector_embedding": [ 0.234, -0.567, 0.890, ... ] }
Compilar la solución
Para obtener instrucciones detalladas sobre la configuración, las variables de entorno y las opciones de implementación, consulta el README en el repositorio de GitHub. El repositorio incluye configuraciones de Docker para la implementación en contenedores e instrucciones para la implementación en producción.
Requisitos previos y configuración
Instale Python 3.10+, Node.js 18+, y Poetry para gestión de dependencias.
Crea un clúster MongoDB Atlas M10 y configura el acceso a la red.
Solicita acceso a AWS Bedrock para incrustaciones basadas en LLM y clasificación de riesgos, o configura un proveedor de incrustaciones alternativo.
Clona el repositorio
fsi-aml-fraud-detectionde GitHub.
Configura los índices de búsqueda de Atlas
Crea índices de Atlas Search y Atlas Vector Search en tus colecciones. En la pestaña de Atlas Search:
Crear un índice llamado
entity_resolution_searchen la colecciónentities.Configura la tokenización
autocompleteenname.fullcon n‑gramas edge y 2–15 caracteres.Configura los campos
stringostringFacetparaentityType,nationality,residencyyriskAssessment.overall.level.Crear índices de búsqueda vectorial llamados
entity_vector_search_indexytransaction_vector_indexen las colecciones respectivas. Usar 1536 dimensiones con la similitud del coseno para coincidencia de similitud semántica.
Ejemplo de definición de índice de búsqueda de Atlas
{ "mappings": { "dynamic": false, "fields": { "name": { "type": "document", "fields": { "full": [ { "type": "autocomplete", "analyzer": "lucene.standard", "tokenization": "edgeGram", "minGrams": 2, "maxGrams": 15, "foldDiacritics": true }, { "type": "string" } ], "aliases": { "type": "string" } } }, "entityType": { "type": "stringFacet" }, "riskAssessment": { "type": "document", "fields": { "overall": { "type": "document", "fields": { "level": { "type": "stringFacet" }, "score": { "type": "numberFacet" } } } } }, "addresses": { "type": "document", "fields": { "full": { "type": "string" } } } } } }
Iniciar la aplicación
Crear archivos
envcon la cadena de conexión de MongoDB y los valores de configuración.Ejecute los siguientes comandos para instalar las dependencias:
poetry install npm install Inicia los servicios y, luego, accede a la interfaz web en
http://localhost:3000.Generar datos de prueba sintéticos, como perfiles de clientes, transacciones, redes de entidades e incrustaciones vectoriales, utilizando Jupyter notebooks del directorio
docs.
Lecciones clave
Seis capacidades clave diferencian a MongoDB en la detección de delitos financieros:
Eliminar migraciones de esquema cuando los riesgos cambien: Añade factores de riesgo, métricas de comportamiento, o indicadores de cumplimiento a los documentos sin realizar operaciones ALTER TABLE ni tiempo de inactividad.
Procesa transacciones en tiempo real con flujos de cambios: recibe notificaciones instantáneas cuando se actualizan los modelos de riesgo o las listas de observación, y aplica nuevas reglas a los motores de evaluación sin retrasos por lotes ni invalidación de caché.
Encontrar patrones de fraude sofisticados con la búsqueda vectorial: Usar la similitud semántica entre incrustaciones de comportamiento para detectar transacciones que se parecen a fraudes conocidos, incluso cuando eluden la detección basada en reglas.
Descubra redes ocultas: recorra relaciones de múltiples saltos entre entidades, rastree flujos de dinero y exponga redes sospechosas usando pipelines de agregación nativos.
Combina la búsqueda de texto difusa y semántica: combina los resultados de Atlas Search y Atlas búsqueda vectorial con una clasificación ponderada utilizando
$rankFusionpara mostrar las coincidencias de entidades más relevantes durante el onboarding e investigaciones.Aplica modelos LLM gobernados y estrategias de embeddings para automatizar el cumplimiento: Escoge modelos de embeddings apropiados para el dominio, separa las funcionalidades de riesgo numérico en reglas explicables y aplica las directrices de LLM (plantillas de prompts, barreras de seguridad y registro de logs). Usa estos patrones para generar clasificaciones de riesgos, resúmenes de investigaciones e informes de casos, mientras almacenas todas las entradas y salidas en MongoDB para una IA transparente y auditable.