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
Resumen 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 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 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: 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 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 juntos implementan un flujo de trabajo de resolución de entidades y mitigación de delitos financieros de extremo a extremo:
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.
Generar incrustaciones a partir de los aspectos cualitativos y comportamentales de cada transacción, tales 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:
Utilice la búsqueda vectorial para descubrir comportamientos semánticamente similares que crucen umbrales o reglas simples.
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 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 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 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. 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:
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 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.
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.
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 de documento:
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 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:
Configura la autocompletación en
name.fullcon edge n‑grams (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.
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 GitHubEl 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.
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.
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 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
Cree
envarchivos con su cadena de conexión MongoDB y 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.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.
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.
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 usando pipelines 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.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.