Docs 菜单
Docs 主页
/

利用 MongoDB Atlas 防范金融犯罪

使用案例: 人工智能智能搜索单一视图

行业: 金融服务

产品: MongoDB AtlasMongoDB Atlas SearchMongoDB Atlas Vector SearchMongoDB Atlas Stream Processing

合作伙伴: AnthropicAWS

该解决方案展示了 MongoDB 在预防金融犯罪方面的功能。实时事务筛选使用向量嵌入,复杂的实体解析使用 $rankFusion 混合搜索,LLM 驱动的风险分类和案例生成,使用 $graphLookup 进行关系网络遍历,以及动态风险模型,这些模型可在不停机的情况下更新。

金融犯罪缓解平台
点击放大

图 1. 使用 MongoDB 的金融犯罪防控平台

图 1 展示了金融犯罪防控平台“ThreatSight 360”的高层级概览,阐释了端到端的实体解析与金融犯罪防控工作流程,其核心聚焦于以下关键能力:

  • 欺诈检测流程:展示了一个端到端的实时管道。交易模拟器生成合成事件以模拟欺诈场景。随后,欺诈检测引擎会将客户画像数据与每笔交易进行关联丰富,应用预设规则,执行向量搜索,并通过 AWS Bedrock 生成嵌入向量。风险模型引擎则利用 MongoDB 变更流实现风险模型的实时更新,确保决策始终反映最新的风险评估逻辑。

  • 搜索与实体解析:使用 MongoDB Atlas Search 实现基于文本的模糊匹配(如名称、地址、标识符等),同时采用 MongoDB Atlas Vector Search 进行语义相似度匹配。二者并行运行,并通过$rankFusion对结果进行融合,最终为每个实体生成一份统一排序的候选列表。

  • 网络分析和图表遍历:将显式及推断得出的关系存储于专用集合中。运用 $graphLookup 与聚合管道遍历多跳网络,揭示隐藏关联,并通过连通性指标丰富实体上下文信息。

  • AI 辅助风险评估:将实体画像、交易记录、搜索匹配结果及网络关联信息整合为提示词,输入至如 AWS Bedrock Claude 3 Sonnet 这类 LLM。该模型会依据贵机构政策与风险阈值,评估风险指标、阐释判断依据,并推荐最优后续行动方案。

  • 案例管理与报告:将案例档案、分析师备注、LLM 生成的叙述内容及审计追踪记录以 MongoDB 文档形式存储。此举可降低误报率、支持数据分析,并为合规团队、内部审计人员及监管机构创建统一、可查询的记录。

该解决方案由四个核心模块组成,共同实现端到端实体解决和金融犯罪防控工作流程:

用途:使用向量搜索进行语义欺诈模式检测

  • 使用 MongoDB Atlas Vector Search 来识别行为类似于已知欺诈模式的交易,即使它们不匹配明确的规则。

  • 从每笔交易的定性和行为方面生成嵌入,例如:

    • 商户类别及说明

    • 渠道和设备指纹

    • IP 范围和 ASN 信息

    • 时间模式,如一天中的时间序列或会话行为

    • 叙述性字段或自由文本注释(如适用)

  • 将这些 1536 维嵌入存储在保存操作数据的同一交易文档中。

  • 将高信号数值型特征(如原始金额、余额变动、简易交易频率计数器等)保留在嵌入向量之外,并采用基于规则或评分卡模型对其进行评估。通过这种分离,您可以:

    • 使用向量搜索来发现跨越简单阈值或规则的语义相似行为。

    • 使用确定性规则和风险模型来实施数值限制和监管约束。

  • 筛查新交易时,生成嵌入并使用 $vectorSearch 查询 MongoDB Atlas。

    • 该系统返回语义相似的交易,包括那些规避静态规则但在行为上与先前欺诈行为相似的交易。

    • 将向量相似度评分与数值风险评分相结合,创建统一的风险决策管道。

用途:基于 Change Streams 的实时风险情报

使用 MongoDB 变更流,可在风险模型、合规规则或监控列表发生变更时接收即时通知。将更新信息直接流式传输至您的欺诈检测与案例管理服务中,无需轮询或依赖临时性缓存失效机制。

当分析师激活新的风险模型时,所有交易筛选引擎都会在几毫秒内收到更改,并对输入流量应用更新规则。这样就可以消除批处理延迟的情况,避免欺诈性事务在检测前被清除。

针对风险模型或配置集合开启变更流游标,MongoDB 会将每项插入、更新或替换操作实时推送至您的应用程序。利用恢复令牌,可在服务重启或网络故障后从中断的精确位置重新启动处理流程,确保不会遗漏任何更新。

金融犯罪缓解平台
点击放大

图 2. 借助 Change Streams、向量搜索和风险模型构建实时欺诈检测管道

该模块有两个主要用途:

目的:基于混合搜索的 AI 驱动实体解析

在实体入驻或调查过程中,可使用 MongoDB 的 $rankFusion 操作符来整合多种搜索策略。并行运行 Atlas Search(用于模糊文本匹配)和Atlas 向量搜索(用于语义相似度分析),$rankFusion会对结果集进行合并,并根据文本相似度与嵌入向量综合相关性对实体进行排序。

针对排名靠前的候选实体,可使用 $graphLookup 遍历其关系网络和交易网络。MongoDB 通过单一聚合管道返回网络上下文信息,包括实体关联关系、交易模式、共享标识符及风险指标等。此方法避免了跨多系统查询或执行高开销的连接操作。

将实体数据、搜索结果及网络分析结果输入至如 AWS Bedrock Claude 3 Sonnet 这类 LLM,以实现 AI 辅助的风险分类。该模型会评估合规标识、关系模式、行为指标及监控名单匹配情况,进而生成附带置信度评分与建议措施的风险评估报告。

使用 LLM 生成的调查摘要在 MongoDB 中自动创建案件文档。这减少了人工报告编写工作,提高了合规文件的一致性。

用途:通过图表遍历进行网络发现

调查人员常常需要追踪洗钱网络和实体间的隐秘联系。使用 MongoDB 的 $graphLookup 聚合阶段,可以直接在操作数据库中执行此网络分析,无需单独的图表存储。

  • 从可疑实体开始,递归遍历业务伙伴、共享地址、交易对手方或公司结构之间的关系。每次遍历都会返回完整的实体文档,其中包含嵌入式行为分析、风险评分和合规性标志。

  • 在遍历过程中根据置信度得分、关系类型或风险阈值过滤关系。

  • 在毫秒级时间内跨多跳发现关联网络,随后将图分析结果与标准聚合操作(如筛选、排序和分组)相结合。

// 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',
},
},
},
},
},
]);
金融犯罪缓解平台
点击放大

图 3. 使用 MongoDB Search 和 $graphLookup 进行实体解析,并使用 LLM 进行案例管理

该平台以三个 MongoDB 集合为中心,充分利用了 document model 的灵活性:

  • 实体集合:存储个人与组织数据,构建完整、统一的客户视图画像。每份文档整合身份信息、联系方式、客户尽职调查属性、风险评估结果、行为分析数据及向量嵌入向量。嵌套文档记录交易模式、设备指纹和位置轨迹,无需跨系统关联即可全面掌握客户全貌。支持在不修改数据结构的情况下新增风险因子或数据源。

  • 交易集合:记录金融交易信息,内嵌商户详情、位置数据(以 GeoJSON 点格式存储)、设备信息及风险评估结果。每笔交易文档独立承载完整上下文,支持无需关联查询即可直接进行地理空间检索与模式分析。

  • 风险模型集合:以文档形式存储带版本控制的风险评估模型。每个模型涵盖风险因子、权重、阈值及性能指标等要素。当模型激活或更新时,MongoDB 变更流会向相关服务发送通知,确保新风险逻辑能够即时部署。

该设计通过嵌入式引用和专用relationships集合相结合的方式来建立关系模型:

  • 实体文档可以在connected_entities数组中嵌入对相关实体的引用。

  • 链接到实体的交易文档存储customer_id字段。

  • entity_relationships集合存储显式关系,包含置信度得分、关系类型和 Atlas 审核路径。

这种模式使用 $graphLookup 实现高效的图表遍历,同时在新的关系类型出现时保持模式的灵活性。

使用 Atlas Search 索引来支持实体解析和调查工作流程:

  • name.full 上配置自动完成功能,使用边缘 n-grams (2-15 字符) 进行实时名称建议。

  • entityTypenationalityresidencyriskAssessment.overall.level 上配置 string 分面,以使用过滤搜索结果。

在嵌入字段上运用 Atlas Vector Search 索引,通过配置 1536 维向量的余弦相似度,实现实体和行为模式的语义相似度匹配。您可以针对标识符数据和行为模式分别创建独立的嵌入向量,以满足特定业务场景需求。

使用标准索引进行操作性工作负载:

  • entityIdcustomer_idtimestamp 上使用单字段索引进行查找和范围查询。

  • 对于基于半径的欺诈规则,位置坐标使用2dsphere索引。

  • 对常见的调查过滤器使用风险级别和实体类型的复合索引。

{
"_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, ...
]
}

有关详细的设置说明、环境变量和部署选项,请参阅GitHub 存储库中的自述文件。该存储库包括容器化部署的Docker配置和生产部署说明。

1
  1. 安装 Python 3.10+、Node.js 18+ 和 Poetry 用于依赖管理。

  2. 创建 MongoDB Atlas M10 集群 并配置网络访问权限。

  3. 申请获取 AWS Bedrock 访问权限以使用基于 LLM 的嵌入向量与风险分类服务,或配置其他替代性嵌入向量提供商。

  4. 从 GitHub 克隆 fsi-aml-fraud-detection 存储库

2

为集合创建 Atlas Search 和 Atlas Vector Search 索引。在 Atlas Search 标签页中:

  1. entities 集合上创建一个名为 entity_resolution_search 的索引。

  2. name.full上配置基于边缘 n-gram 且字符长度范围为 2-15 的autocomplete分词策略。

  3. entityTypenationalityresidencyriskAssessment.overall.level 配置 stringstringFacet 字段。

  4. 在相应的集合上创建名为 entity_vector_search_indextransaction_vector_index向量搜索索引。使用具有余弦相似度的 1536 维进行 语义相似度匹配。

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"
}
}
}
}
}
}
3
  1. 创建env文件,其中包含您的 MongoDB 连接字符串和配置值。

  2. 运行以下命令安装依赖项:

    poetry install
    npm install
  3. 启动服务,然后通过 http://localhost:3000 访问网络接口。

  4. 使用docs目录中的 Jupyter 笔记本生成综合测试数据,例如客户数据配置文件、ACID 事务、实体网络和支持嵌入。

六项关键功能使 MongoDB 在金融犯罪侦查方面脱颖而出:

  • 在威胁态势变化时无需修改数据结构:可直接在文档中添加风险因子、行为指标或合规标识,无需执行 ALTER TABLE 操作或中断服务。

  • 借助变更流实现实时交易处理:当风险模型或监控名单更新时即时接收通知,无需处理批量延迟或缓存失效即可将新规则应用于筛查引擎。

  • 利用向量检索识别复杂欺诈模式:通过行为嵌入间的语义相似性,检测与已知欺诈案例高度相似的交易,即使其绕过基于规则的检测机制。

  • 发现隐藏网络:遍历实体之间的多跳关系,追踪资金流,并使用原生聚合管道揭露可疑网络。

  • 结合模糊文本和语义搜索:使用 $rankFusion 将 Atlas Search 和 Atlas Vector Search 结果合并,并进行加权排名,以在入驻和调查过程中显示最相关的实体匹配。

  • 应用受管理的 LLM 和嵌入策略,实现合规自动化:选择适合领域的嵌入模型,将数字风险功能分离为可解释的规则,并实施LLM指南(提示模板、护栏和日志记录)。使用这些模式来生成风险分类、调查摘要和案例报告,同时将所有输入和输出存储在 MongoDB 中,以实现透明、可审计的 AI。

  • Luis Pazmino Diaz, MongoDB

  • Mehar Grewal,MongoDB

  • Andrea Alaman Calderon, MongoDB

后退

银行卡欺诈解决方案

在此页面上