ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

向量数据库与大模型在实时风控中的融合实践:从行为序列到毫秒级决策

向量数据库与大模型在实时风控中的融合实践:从行为序列到毫秒级决策 1. 项目概述当大模型遇见实时风控最近几年大模型的热度居高不下但很多讨论都集中在内容生成、对话交互这些“前台”应用上。作为一个在风控领域摸爬滚打了十来年的老兵我更关心的是这些“聪明”的模型能不能真正解决我们业务里那些“硬骨头”问题。比如实时反欺诈。传统风控系统尤其是处理交易欺诈很大程度上依赖于规则引擎。我们写下一堆“如果交易金额大于X”、“如果IP地址在Y地”、“如果设备指纹在Z小时内出现N次”这样的规则。这套方法有效但天花板也很明显规则是静态的黑产是动态的规则是有限的欺诈模式是无限的。更头疼的是为了追求低延迟我们往往需要在特征工程上做大量妥协很多复杂的用户行为序列、关系网络特征因为计算耗时太长根本进不了实时决策的流程。“大模型应用从交易行为到实时反欺诈”这个标题精准地戳中了这个痛点。它暗示了一种可能性利用大模型的强大理解与推理能力去处理那些非结构化、高维度的行为数据并最终在毫秒级的时间内做出判断。而“向量数据库驱动的智能风控实践”则点出了实现这一可能性的关键技术路径。这不仅仅是把大模型当做一个分类器来用而是构建一个以向量化思维为核心、数据实时流动、模型持续演化的新一代风控系统。接下来我就结合自己的实战经验拆解一下这套体系是如何从构想落地的。2. 核心思路为什么是“向量数据库大模型”要理解这个组合的威力我们得先跳出“数据库就是存数据”的固有思维。在实时风控场景下尤其是面对海量、高频的交易行为数据时核心矛盾是“特征实时计算与检索的效率”问题。2.1 传统风控的特征困境在旧架构里一次实时风控决策大概是这样交易事件过来风控引擎触发去查询用户的历史交易明细、设备信息、地址库等然后调用一系列特征计算服务。这些服务可能要去扫描用户过去30天的所有订单计算交易频次、金额分布、常用收货地址等等。这个过程即使经过高度优化也往往需要几十到几百毫秒而且随着特征复杂度提升耗时呈指数级增长。更关键的是很多有价值的“模式”难以用结构化特征描述。比如“本次交易的鼠标移动轨迹和点击节奏与用户历史正常行为模式的相似度”或者“本次填写的收货地址与用户社交关系中其他地址的关联强度”。这些模糊的、高维的相似性计算是传统数据库和规则引擎的盲区。2.2 向量化将行为转化为“数学印象”大模型特别是经过精调的行为序列模型为我们提供了一种强大的“编码器”。它可以将一段用户行为例如登录-浏览商品A 10秒-搜索关键词B-加入购物车-停留2分钟-支付转换成一个固定长度的、高维的向量比如一个768维的浮点数数组。这个向量就是这个行为序列的“数学印象”或“语义指纹”。它的妙处在于语义或模式相似的行为其对应的向量在数学空间里的距离通常用余弦相似度或欧氏距离衡量也会很近。这样一来我们就把一个复杂的模式识别问题转化成了一个高效的向量相似度搜索问题。而向量数据库正是为这种搜索而生的专用数据库。它使用诸如HNSWHierarchical Navigable Small World、IVFInverted File Index等近似最近邻搜索算法能在亿级甚至十亿级的向量数据中在毫秒内找到与目标向量最相似的Top K个结果。2.3 技术组合的价值闭环所以整个技术链条的价值就清晰了实时编码当一笔新交易发生时实时流处理系统如Flink将与之相关的行为序列过去几分钟内的操作快速拼接送入一个轻量化的大模型编码器可以是蒸馏后的模型生成一个“实时行为向量”。向量检索将这个实时向量作为查询条件送入向量数据库。数据库里存的是什么是海量的“历史行为向量”每个向量都关联着当时的交易ID、最终的风控标签欺诈/正常。我们检索出与当前行为最相似的N个历史行为。决策融合根据检索结果我们可以得到一些极其有价值的实时特征“当前行为与最近10次欺诈行为的平均相似度”、“与最近100次正常行为的平均相似度差值”、“最相似的前5个历史行为的标签分布”。这些特征结合一些传统的结构化特征如金额、IP再输入到一个轻量级的快速决策模型如XGBoost、LightGBM中做出最终的风险评分。这个闭环完美解决了传统方案的痛点特征计算从复杂的聚合扫描变成了高效的向量检索引入了以前无法实时利用的行为模式信息并且整个流程可以在极低的延迟内完成。注意这里的大模型并非指需要数秒甚至数十秒生成一段文字的千亿参数对话模型。在实时风控场景下我们通常使用经过特定任务如下游行为序列分类精调的、参数量在百兆到数亿的编码模型其单次推理耗时需严格控制在10毫秒以内。3. 系统架构设计与核心组件选型纸上谈兵终觉浅我们来具体看看这套系统该怎么搭。一个典型的向量数据库驱动的实时智能风控架构可以分为离线、近线和在线三个部分核心是保证数据流的实时性与一致性。3.1 整体架构分层离线层任务负责“历史行为向量库”的构建与定期更新。流程每天/每小时从数据仓库中提取全量或增量的历史用户行为序列数据如点击流日志、交易日志通过离线的大模型编码器进行批量向量化。同时会进行向量数据的清洗、去噪和标注对齐关联最终的风控判定结果。输出生成新的向量数据文件准备导入向量数据库。近线层任务处理分钟/秒级延迟的特征计算和模型更新。流程实时消费用户的行为事件流维护一个滑动时间窗口内的用户行为序列例如最近30分钟。当触发条件满足如用户发起支付将此刻的序列快照送入一个在线编码模型生成实时向量。同时近线层也负责定期如每5分钟将新产生的、已被标记的欺诈/正常行为向量增量更新到向量数据库中实现向量库的“温更新”。核心组件Apache Flink或Spark Streaming。Flink在状态管理和低延迟方面更具优势是我们的首选。在线层任务承接实时请求完成毫秒级的风控决策。流程风控引擎接收到交易请求后一方面从传统特征库获取基础特征另一方面向近线层发起请求获取该交易的“实时行为向量”。随后引擎以该向量查询向量数据库获取相似历史行为及其标签衍生出相似度特征。最后将所有特征拼接输入在线决策模型计算出风险分数并执行相应的处置策略通过、挑战、拦截。核心组件高性能风控引擎如自研Java服务、向量数据库、在线机器学习模型服务。3.2 核心组件选型解析1. 向量数据库选型这是系统的基石。选型需重点考虑查询性能QPS与延迟、数据规模支持、稳定性、社区生态和运维成本。Milvus开源首选功能全面生态活跃支持多种索引HNSW, IVF系列具备集群化能力。适合中大规模、需要高度自定义的场景。但运维相对复杂。Zilliz Cloud基于Milvus如果团队运维人力有限云托管服务是很好的选择省去了集群部署、调优、升级的麻烦。PgvectorPostgreSQL插件如果你的业务已经重度使用PostgreSQL且向量数据规模在千万级以内Pgvector是一个极其简洁优雅的方案。它无需引入新的数据库技术栈利用PG的成熟生态开发运维成本最低。但对于十亿级以上的向量规模其性能可能遇到瓶颈。Weaviate / Qdrant新兴的专用向量数据库在设计上更“云原生”通常提供内置的向量化模块可集成OpenAI等模型API开箱即用体验好。我们的选择在初期验证和千万级数据量阶段我们使用了Pgvector因为它与现有技术栈无缝集成快速验证了想法的可行性。当数据量增长至亿级并对延迟有极致要求10ms P99时我们迁移到了自托管的Milvus集群并针对我们的查询模式高QPS每次查询Top 10对HNSW索引参数进行了深度调优。2. 行为编码模型选型与优化目标是找到一个在“表达能力”和“推理速度”间取得最佳平衡点的模型。基础模型BERT、RoBERTa等Transformer架构的变体是很好的起点。它们能很好地理解序列中元素的顺序和上下文关系。领域适应千万不要直接用通用的预训练模型。必须使用大量业务场景下的行为序列数据如点击、浏览、加购、支付等事件进行领域自适应预训练或精调。例如我们可以将用户行为序列视为一种特殊的“文本”事件类型是“词”事件属性是“词性”进行Masked Language Model训练。模型轻量化为了满足实时性我们需要对模型进行压缩。知识蒸馏用一个大的“教师模型”训练一个小的“学生模型”让学生模型模仿教师模型的输出包括中间层的特征表示这是我们采用的主要方法效果损失很小。剪枝与量化移除网络中不重要的参数并将浮点数权重转换为低精度整数如INT8能大幅减少模型体积和加速推理。TensorRT、OpenVINO等工具链对此支持很好。最终形态我们最终部署的编码模型是一个基于RoBERTa架构经过业务数据精调和知识蒸馏后的4层Transformer模型参数量约30M单次序列编码在GPU上耗时约5ms在CPU使用ONNX Runtime优化后上约15ms完全满足实时要求。4. 实操要点从数据准备到模型上线理论架构清晰后真正的挑战在于落地细节。下面我以“电商交易反欺诈”为例拆解关键实操步骤。4.1 行为序列的定义与构建这是所有工作的基础定义错了后面全错。单元定义一个“行为单元”至少应包含用户ID时间戳毫秒级事件类型如page_view,item_click,add_to_cart,submit_order,payment事件属性如item_id,category,page_url,payment_amount。序列构建通常以一次“会话”或一个“风险决策周期”为单位。对于交易风控我们关注的是支付前一段时间内的行为。例如定义一个“支付前行为序列”以payment事件为终点向前回溯最长30分钟内的所有用户行为作为一个序列样本。序列对齐与填充序列长度可变但模型输入需要固定长度。我们设定一个最大长度如128过长的截断过短的用特殊[PAD]事件填充。关键在于截断应从序列尾部最接近支付的事件开始保留因为近期行为通常更具判别力。4.2 向量数据库的索引构建与调优向量数据库的性能和召回率极度依赖索引构建参数。索引算法选择对于实时风控这种高QPS、低延迟、高召回率要求的场景HNSWHierarchical Navigable Small World通常是首选。它基于图算法构建成本高但查询速度极快且召回率高。IVF类索引构建快但需要额外训练在数据分布变化时可能需要重建。关键参数调优M建造时每个点的邻居数控制图的连通性。值越大图越稠密召回率越高但构建时间和内存占用也越大。通常从16、32、64开始尝试。我们最终设为32。efConstruction建造时的搜索范围值越大建造的图质量越高召回率越高构建越慢。我们设为200。efSearch查询时的搜索范围这是在线查询参数直接影响查询速度和召回率。值越大召回率越高但查询越慢。这是一个需要在线上动态调整权衡的参数。我们通过A/B测试发现在我们的场景下efSearch100能在P99延迟10ms的情况下达到满意的召回率。分区策略如果数据量极大百亿级需考虑按用户ID哈希或时间范围进行分区将查询路由到特定分区减少搜索空间。4.3 实时特征工程与决策模型训练向量检索产出的是“相似度”信息我们需要将其转化为可供决策模型使用的特征。相似度特征衍生检索用实时向量查询向量库返回Top K个最相似的历史向量及其元数据标签、时间、分数。特征计算fraud_similarity_avg与标签为欺诈的Top N个历史向量的平均相似度。normal_similarity_avg与标签为正常的Top N个历史向量的平均相似度。similarity_gapnormal_similarity_avg-fraud_similarity_avg。这个特征非常有效正值越大说明越像正常行为。topk_fraud_ratioTop K个结果中欺诈样本所占的比例。most_similar_label最相似的那个历史样本的标签。决策模型训练将上述衍生出的相似度特征与传统的风控特征交易金额、设备风险分、IP风险分、用户等级等拼接组成新的训练样本。使用历史数据需确保时间窗口划分防止数据泄露训练一个LightGBM模型。LightGBM非常适合这种表格型数据训练快可解释性相对较好且在线预测效率极高毫秒级。4.4 线上部署与AB测试新模型上线必须谨慎。影子模式初期让新的向量风控系统以“影子”方式运行。即实时请求同时走新旧两套系统新系统做出决策但不执行只将决策结果和旧系统的结果一起落盘。运行一段时间后对比分析新系统在历史欺诈案件上的识别率、误杀率以及特征稳定性。AB测试影子模式验证稳定后进行正式的AB测试。将一小部分流量如5%切到新模型大部分流量95%仍用旧模型。严格监控核心指标业务指标实验组的欺诈率是否下降、误拒率是否上升、订单成交率GMV影响。系统指标P99/P95延迟、向量数据库和编码服务的CPU/内存使用率、错误率。逐步放量AB测试数据证明新模型在核心指标上显著优于或持平旧模型后开始逐步放大流量比例如10% - 30% - 50% - 100%。每一步都需观察至少一个完整的业务周期如24小时。5. 常见问题与实战避坑指南这套体系在实践中会遇到不少坑下面分享几个我们踩过并填平的大坑。5.1 向量检索的“冷启动”与“概念漂移”问题问题描述对于新用户或新设备其历史行为向量很少或没有导致检索结果不稳定或无结果。另外业务模式、用户习惯或黑产手法会随时间变化概念漂移导致基于历史数据训练的编码模型和向量库的判别力下降。解决方案冷启动处理为“冷启动”样本设计降级方案。例如当检索到的有效历史向量数少于阈值时放弃使用相似度特征仅依赖传统特征进行决策并在日志中打标后续重点分析这些case。概念漂移应对建立向量库和模型的持续更新机制。向量库动态更新近线层持续将已确认标签尤其是新发现的欺诈模式的行为向量以较低权重增量插入向量数据库。同时可以考虑设置TTL自动淘汰过于陈旧的向量。模型在线学习对于决策模型LightGBM可以探索在线学习框架用小批量新数据持续微调模型。对于编码模型定期如每周用近期数据做增量训练或领域适应。5.2 系统性能与稳定性挑战问题描述向量数据库在高QPS下延迟飙升编码模型服务在流量洪峰时响应变慢整个链路依赖服务多任一环节故障都会导致风控失败。解决方案分级降级与熔断为整个向量风控链路设计多级降级策略。一级降级当向量数据库查询P99延迟超过50ms自动切换到更简单的索引或减少efSearch值。二级降级当编码服务或向量数据库完全不可用风控引擎自动绕过本套系统仅使用传统规则和特征确保业务不中断。使用Hystrix或Resilience4j实现熔断机制。缓存策略对于高频用户其“实时行为向量”在短时间如1分钟内可能变化不大。可以在风控引擎侧增加一层本地缓存如Caffeine缓存用户ID到其最新行为向量的映射对于短时间内连续发生的交易如快速重试支付直接使用缓存向量避免重复编码大幅降低下游压力。容量规划与压测必须对向量数据库和编码服务进行全链路压测。明确单实例的极限QPS并基于业务峰值流量预留足够的冗余建议3-5倍。对于Milvus要合理规划数据节点和查询节点的资源配置。5.3 效果评估与归因分析问题描述模型上线后如何科学评估其贡献当发生误判时如何快速定位是哪个相似度特征出了问题解决方案贡献度隔离评估在AB测试阶段除了全量新模型可以再开一个实验组该组使用“传统特征 人工规则”但不加入向量相似度特征。通过对比“全模型组”和“无向量特征组”的效果差异可以清晰量化出向量特征带来的单独增益。可解释性工具对于LightGBM模型充分利用其内置的特征重要性feature_importance输出。对于单个预测样本可以使用SHAP或LIME等工具进行解释。例如当一个交易被误判为高风险时通过SHAP值可以看到是similarity_gap特征贡献了最大的负分进而我们可以去回溯到底是哪些历史相似样本导致了这个问题是向量库污染了还是编码模型对这个新模式理解有偏差案例复盘机制定期如每周抽取模型判定为高风险但最终放行后未发生欺诈的案例可能误杀以及模型判定为低风险但最终发生欺诈的案例漏杀。组织风控策略、算法、数据分析同学一起进行人工复盘分析行为序列的异同不断将新的洞见反馈给特征工程和模型训练环节。这套“大模型向量数据库”的实时风控体系其价值远不止于提升了几个百分点的欺诈识别率。它真正将风控从“规则驱动”的静态防御转向了“数据算法驱动”的动态智能感知。它让系统能够“理解”用户行为背后的意图而不仅仅是匹配规则。当然这条路对数据质量、算法工程能力和系统架构提出了更高的要求但在我看来这是风控技术进化的必然方向。我们团队在落地过程中最大的体会是不要追求一步到位的大而全从一个核心场景如特定高风险的支付环节切入跑通最小闭环用数据证明价值再逐步迭代和扩展是成功率最高的实践路径。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进