Casos de uso: Inteligencia artificial, búsqueda inteligente, vista única
Industrias: Servicios financieros
Productos: MongoDB Atlas, Búsqueda enMongoDB Atlas, Búsqueda vectorial en MongoDB Atlas, Procesamiento de flujosen MongoDB Atlas
Asociados: Antrópico, AWS
Resumen de la solución
Esta solución demuestra las capacidades de MongoDB para la prevención de delitos financieros. Análisis de transacciones en tiempo real con incrustaciones vectoriales y resolución sofisticada de entidades con $rankFusion búsqueda híbrida, clasificación de riesgos y generación de casos impulsada por LLM, recorrido de red de relaciones con $graphLookup y modelos de riesgo dinámicos que se actualizan sin tiempo de inactividad del sistema.
Figura 1. Plataforma de mitigación de delitos financieros con MongoDB
La Figura 1 presenta una descripción general de alto nivel de la plataforma de mitigación de delitos financieros "ThreatSight 360", que ilustra el flujo de trabajo de resolución de entidades y mitigación de delitos financieros de extremo a extremo, que se centra en las siguientes capacidades clave:
Flujo de detección de fraude: Demuestra un flujo de trabajo integral en tiempo real. Un simulador de transacciones genera eventos sintéticos para simular escenarios de fraude. Posteriormente, un motor de detección de fraude enriquece cada transacción con datos del perfil del cliente, aplica reglas, realiza búsquedas vectoriales y genera incrustaciones mediante AWS Bedrock. Un motor de modelos de riesgo gestiona modelos de riesgo que se actualizan en tiempo real mediante 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: Utilice MongoDB Atlas Search para coincidencias textuales difusas (nombres, direcciones, identificadores) y MongoDB Atlas Vector Search para similitud semántica. Ejecute ambos métodos en paralelo y combine los resultados con
$rankFusionpara generar una lista única de candidatos clasificados para cada entidad.Análisis de red y recorrido de grafos: Almacene relaciones explícitas e inferidas en una colección dedicada. Utilice
$graphLookupy pipelines de agregación para recorrer redes multisalto, descubrir enlaces ocultos y enriquecer el contexto de las entidades con métricas de conectividad.Evaluación de riesgos asistida por IA: Incorpore perfiles de entidades, historiales de transacciones, coincidencias de búsqueda y contexto de red en indicaciones para un LLM como AWS Bedrock Claude-3 Sonnet. El modelo evalúa los indicadores de riesgo, explica la justificación y recomienda las mejores acciones según las políticas y los umbrales de riesgo de su institución.
Gestión de casos e informes: Almacene archivos de casos, notas de analistas, narrativas generadas por LLM y registros de auditoría como documentos MongoDB. Esto reduce los falsos positivos, facilita el análisis y crea un registro consistente y consultable para equipos de cumplimiento, auditores internos y organismos reguladores.
Arquitecturas de Referencia
Esta solución consta de cuatro módulos principales que juntos implementan un flujo de trabajo de resolución de entidades y mitigación de delitos financieros de extremo a extremo:
Motor de monitoreo de transacciones y puntuación de riesgos
Propósito: Detección de patrones de fraude semántico con búsqueda vectorial
Utilice MongoDB Atlas Vector Search para identificar transacciones que se comportan como patrones de fraude conocidos, incluso cuando no coinciden con una regla explícita.
Generar incrustaciones a partir de los aspectos cualitativos y comportamentales de cada transacción, tales como:
Categoría y descripción del comerciante
Huellas digitales de canales y dispositivos
Rangos de IP e información de ASN
Patrones temporales, como secuencias de horas del día o comportamiento de 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:
Utilice la búsqueda vectorial para descubrir comportamientos semánticamente similares que crucen umbrales o reglas simples.
Utilice reglas deterministas y modelos de riesgo para aplicar límites numéricos y restricciones regulatorias.
Al analizar una nueva transacción, genere una incrustación y consulte MongoDB Atlas con
$vectorSearch.El sistema devuelve transacciones semánticamente similares, incluidas aquellas que evaden reglas estáticas pero que se parecen a fraudes anteriores en su comportamiento.
Combine puntuaciones de similitud vectorial con puntuaciones de riesgo numérico para crear un proceso de toma de decisiones de riesgo unificado.
Gestión de modelos de riesgo
Propósito: Inteligencia de riesgos en tiempo real con flujos de cambio
Utilice los flujos de cambios de MongoDB para recibir notificaciones instantáneas cuando se modifiquen los modelos de riesgo, las reglas de cumplimiento o las listas de vigilancia. Transmita las actualizaciones directamente a sus servicios de detección de fraude y gestión de casos en lugar de sondear o depender de la invalidación de caché ad hoc.
Cuando los analistas activan un nuevo modelo de riesgo, todos los motores de análisis de transacciones reciben el cambio en cuestión de milisegundos y aplican las reglas actualizadas al tráfico entrante. Esto elimina los retrasos en los lotes que permiten que las transacciones fraudulentas se procesen antes de ser detectadas.
Abra un cursor de flujo de cambios en sus modelos de riesgo o colecciones de configuración, y MongoDB enviará cada operación de inserción, actualización o reemplazo a su aplicación. Use tokens de reanudación para reiniciar el procesamiento desde el punto exacto de la interrupción tras reinicios del servicio o fallos de red, para no perderse ninguna actualización.
Figura 2. Proceso de detección de fraude en tiempo real con flujos 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:
Objetivo: Resolución de entidades impulsada por IA con búsqueda híbrida
Utilice el operador $rankFusion de MongoDB para combinar múltiples estrategias de búsqueda durante la incorporación o la investigación de entidades. Ejecute la Búsqueda Atlas para la coincidencia de texto difuso y la Búsqueda Vectorial Atlas para la similitud semántica en paralelo. $rankFusion fusiona los conjuntos de resultados y clasifica las entidades según la relevancia combinada de la similitud textual y las incrustaciones.
Para los mejores candidatos, recorra las redes de relaciones y transacciones usando $graphLookup. MongoDB devuelve el contexto de la red, incluyendo conexiones de entidades, patrones de transacciones, identificadores compartidos e indicadores de riesgo, en una única canalización de agregación. Esto evita consultar múltiples sistemas o realizar uniones costosas.
Incorpore datos de entidades, resultados de búsqueda y análisis de red a un LLM como AWS Bedrock Claude‑3 Sonnet para la clasificación de riesgos asistida por IA. El modelo evalúa indicadores de cumplimiento, patrones de relación, indicadores de comportamiento y coincidencias con listas de vigilancia para generar evaluaciones de riesgos con puntuaciones de confianza y acciones recomendadas.
Cree documentos de casos automáticamente en MongoDB con resúmenes de investigación generados por LLM. Esto reduce la redacción manual de informes y mejora la consistencia de la documentación de cumplimiento.
Propósito: Descubrimiento de red con recorrido de gráficos
Los investigadores a menudo necesitan rastrear redes de lavado de dinero y conexiones ocultas entre entidades. Utilice la etapa de agregación $graphLookup de MongoDB para realizar este análisis de red directamente en su base de datos operativa, sin necesidad de un almacén de grafos independiente.
Comience con una entidad sospechosa y explore recursivamente las relaciones a través de socios comerciales, direcciones compartidas, contrapartes de transacciones o estructuras corporativas. Cada exploración devuelve documentos completos de la entidad con análisis de comportamiento integrado, puntuaciones de riesgo e indicadores de cumplimiento.
Filtrar relaciones por puntuación de confianza, tipo de relación o umbrales de riesgo durante el recorrido.
Descubra redes a través de múltiples saltos en milisegundos, luego combine los resultados de los gráficos con operaciones de agregación estándar, como filtrado, clasificación y 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 del modelo de datos
La plataforma se centra en tres colecciones de MongoDB que aprovechan la flexibilidad del modelo de documento:
Recopilación de Entidades: Almacena datos de personas y organizaciones con perfiles de cliente completos y de vista única. Cada documento agrega datos de identificación, información de contacto, atributos KYC, evaluaciones de riesgo, análisis de comportamiento e incrustaciones de vectores. Los documentos anidados capturan patrones de transacciones, huellas digitales de dispositivos e historial de ubicación, lo que le ofrece una vista completa de cada cliente sin necesidad de integrar varios sistemas. Puede agregar nuevos factores de riesgo o fuentes de datos sin migrar esquemas.
Recopilación de Transacciones: Registra transacciones financieras con detalles del comerciante, datos de ubicación (como puntos GeoJSON), información del dispositivo y evaluaciones de riesgos integrados. Cada documento de transacción es independiente y tiene contexto completo, lo que permite realizar 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 a través de una combinación de referencias integradas y una colección relationships dedicada:
Los documentos de entidad pueden incorporar referencias a entidades relacionadas en matrices
connected_entities.Los documentos de transacción almacenan
customer_idcampos que se vinculan a entidades.La colección
entity_relationshipsalmacena relaciones explícitas con puntuaciones de confianza, tipos de relaciones y registros de auditoría.
Este patrón permite un recorrido gráfico eficiente con $graphLookup y al mismo tiempo mantiene 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:
Configure el autocompletado en
name.fullcon n-gramas de borde (2–15 caracteres) para sugerencias de nombres en tiempo real.Configure las facetas de cadena en
entityType,nationality,residencyyriskAssessment.overall.levelpara filtrar los resultados de búsqueda.
Utilice los índices de Búsqueda Vectorial de Atlas en los campos de incrustación para habilitar la coincidencia por similitud semántica configurando la similitud de coseno con vectores de dimensión 1536para la coincidencia de entidades y patrones de comportamiento. Puede crear incrustaciones independientes para datos de identificadores y patrones de comportamiento para casos de uso específicos.
Utilice índices estándar para cargas de trabajo operativas:
Utilice índices de campo único en
entityId,customer_idytimestamppara búsquedas y consultas de rango.Utilice índices
2dsphereen las coordenadas de ubicación para las reglas de fraude basadas en radio.Utilice índices compuestos sobre el nivel de riesgo y el tipo de entidad para los filtros de investigación 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, ... ] }
Construir la solución
Para obtener instrucciones detalladas de configuración, variables de entorno y opciones de implementación, consulte el archivo README en el repositorio de GitHub.El repositorio incluye configuraciones de Docker para implementación en contenedores e instrucciones para implementación en producción.
Prerrequisitos y configuración
Instale Python 3.10+, Node.js 18+ y Poetry para la gestión de dependencias.
Cree un clúster MongoDB Atlas M10 y configure el acceso a la red.
Solicite acceso a AWS Bedrock para integraciones basadas en LLM y clasificación de riesgos, o configure un proveedor de integraciones alternativo.
Clonar el
fsi-aml-fraud-detectionrepositorio desde GitHub.
Configurar índices de búsqueda de Atlas
Cree índices de Búsqueda Atlas y Búsqueda Vectorial Atlas en sus colecciones. En la pestaña Búsqueda Atlas:
Crea 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.Cree índices de búsqueda vectorial denominados
entity_vector_search_indexytransaction_vector_indexen las respectivas colecciones. Utilice 1536 dimensiones con similitud de coseno para la coincidencia por similitud semántica.
Ejemplo de definición del í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
Cree
envarchivos con su cadena de conexión MongoDB y valores de configuración.Ejecute los siguientes comandos para instalar dependencias:
poetry install npm install Inicie los servicios y luego acceda a la interfaz web en
http://localhost:3000.Genere datos de prueba sintéticos, como perfiles de clientes, transacciones, redes de entidades e incrustaciones de vectores, utilizando cuadernos Jupyter desde el directorio
docs.
Aprendizajes clave
Seis capacidades clave diferencian a MongoDB para la detección de delitos financieros:
Elimine las migraciones de esquemas cuando las amenazas evolucionan: agregue factores de riesgo, métricas de comportamiento o indicadores de cumplimiento a los documentos sin operaciones ALTER TABLE ni tiempo de inactividad.
Procese transacciones en tiempo real con flujos de cambio: reciba notificaciones instantáneas cuando se actualicen los modelos de riesgo o las listas de vigilancia y aplique nuevas reglas a los motores de detección sin demoras en los lotes ni invalidación de caché.
Encuentre patrones de fraude sofisticados con Vector Search: utilice la similitud semántica en las incorporaciones de comportamiento para detectar transacciones que se asemejan 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 mediante canales de agregación nativos.
Combine texto difuso y búsqueda semántica: fusione los resultados de Atlas Search y Atlas Vector Search con clasificación ponderada usando
$rankFusionpara mostrar las coincidencias de entidades más relevantes durante la incorporación y las investigaciones.Aplique LLM gobernados y estrategias de integración para automatizar el cumplimiento: Elija modelos de integración adecuados para cada dominio, separe las características numéricas de riesgo en reglas explicables y aplique las directrices de LLM (plantillas de avisos, barandillas y registro). Utilice estos patrones para generar clasificaciones de riesgos, resúmenes de investigaciones e informes de casos, a la vez que almacena todas las entradas y salidas en MongoDB para una IA transparente y auditable.