想象你是“安宁社区”新上任的保安队长。这个社区住了三千户人家,绝大多数是日出而作、日落而息的守法居民。可总有那么几个团伙,专挑深夜作案、结伙出动,甚至换了马甲继续骗人。你的手上有摄像头、门禁记录、邻居的闲谈……信息一抓一大把,唯一的问题是:怎么从几万条日常动静里,精准认出那一小撮坏人,还不冤枉好人? 这就是反欺诈模型的日常。银行每天都在经历同样的考验:一笔深夜的转账、一次换设备的登录、一个刚注册就疯狂下单的账号……绝大多数是正常行为,但混在其中的欺诈交易一旦放行,轻则损失钱财,重则触发系统性风险。反欺诈模型,就是给金融机构装上的“火眼金睛”:它从关系网络、行为时序、异常模式三个视角反复扫描,把可疑分子一点点圈出来。 接下来,我们跟随保安队长的视角,把一套完整的反欺诈技术栈走一遍:从识别需求、特征工程到建模方法,再到可解释性、样本不平衡和上线运维。你会发现,“抓骗子”这件事,其实离每个 AI 从业者都不远。

岗位关联

学完这篇文章,你将理解反欺诈模型从特征构造到工程部署的完整链路,能看懂金融风控岗位的真问题,也为自己进入 AI + 金融领域打下第一块地基。

目录
  1. 可视化演示
  2. 欺诈识别需求
  3. 图特征工程
  4. 时序行为建模
  5. 异常检测方法
  6. 模型可解释性
  7. 样本不平衡
  8. 对抗演化应对
  9. 工程化部署
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

欺诈识别需求

刚上任的社区保安队长,第一件事不是装更多摄像头,而是先问问自己:这片社区最常发生的案子是哪几种?是半夜翻墙、电话诈骗,还是团伙撬门?不同案子,盯防的重点完全不同。要是连“敌人是谁”都说不清,摄像头装一百个也白搭。

反欺诈模型也一样,开工之前必须先做“业务画像”。金融机构常见的欺诈类型包括:身份冒用——拿别人的身份证件注册新账户;账户盗用——盗取密码后直接转账;洗钱分账——大额资金进来后迅速拆成多笔小额转走;团伙套现——多人配合做虚假交易,把额度套出来。每一种欺诈的“长相”不同,前置规则和模型特征也不同。这就是欺诈识别需求阶段的“识贼先画像”。

把识别目标翻译成数学语言,最常用的表达是代价函数。模型有两个错误方向:该拦的没拦住(漏报,FN),叫 false negative;不该拦的拦了(误报,FP),叫 false positive。漏报意味着钱已经被转走,追回成本极高;误报则会让真实客户交易受限、体验受损。二者都需要付出代价,只是在金融场景里,通常漏报的代价系数比误报更大。

想清楚了“什么案子最值钱、什么动静最该盯”,你才知道巡逻的重点分配在哪条街、哪个时段。下一层,我们再看看怎么把“谁和谁是一伙的”这张关系网画出来。

Cost=cFN×FN+cFP×FP\displaystyle \text{Cost} = c_{\text{FN}} \times \text{FN} + c_{\text{FP}} \times \text{FP}
这个代价函数把“漏掉骗子的损失”和“误伤好人的损失”统一成一个数字。谁大谁小,决定模型往哪个方向倾斜。
  1. FN 项$c_{\text{FN}} \times \text{FN}$ 表示漏报的总代价,即放走的欺诈交易所造成的金额损失。
  2. FP 项$c_{\text{FP}} \times \text{FP}$ 表示误报的总代价,包括客户投诉、体验下降与人工复核成本。
  3. 代价系数$c_{\text{FN}}$ 与 $c_{\text{FP}}$ 由业务方设定,通常前者远大于后者,模型因此会更保守。

图特征工程

保安队长的笔记本上记着:张三和李四总在凌晨碰头,李四又常去王五的店里,王五和赵六共用一把钥匙……把这些线索画成连线图,你会发现一个清晰的“小圈子”。骗子很少单独行动,他们像一张网一样彼此关联。

图特征工程做的正是这件事。交易数据里有大量隐藏关系:两个账户之间互相转账、同一个手机号绑定了多张卡、同一个收货地址出现在多个订单里。把这些关系抽出来,就构成一张用户关系图。每个用户是节点,每一条共现关系是边。图特征工程要回答的核心问题是:这个节点在整张图里处于什么位置?它身边围着什么样的人?

最直观的两个指标是度和聚集系数。度(degree)表示这个用户连接了多少其他用户;聚集系数(clustering coefficient)衡量“我的朋友之间是不是也是朋友”。如果 A 和 B、C、D 都有交易,而 B、C、D 之间也互相交易,聚集系数就很高——这有点像警察看到一个小团伙里每个人都认识彼此。近年来,图神经网络(GNN)更进一步:它让每个节点的表示等于自身特征加上邻居特征的聚合。多跳之后,一个隐藏很深的成员也能通过间接关系被发现。

画完这张关系网,队长可以一眼指出“谁是圈子里的人”。但光有静态关系还不够——一个人在凌晨三点突然活跃起来,这种时间上的怪象,还得靠下一层的时序建模来捕捉。

C(v)=2×Evkv×(kv−1)\displaystyle C(v) = \frac{2 \times E_v}{k_v \times (k_v - 1)}
聚集系数衡量一个节点周围的小圈子有多“抱团”。骗子团伙内部往往互相都认识,这个值会异常高。
  1. 邻居数$k_v$ 是节点 v 的邻居数量,也叫度。
  2. 实际连接数$E_v$ 是 v 的邻居之间实际存在的边数。
  3. 比值计算$\frac{2 \times E_v}{k_v \times (k_v - 1)}$ 把实际连接数与“如果邻居两两都认识”的理论最大值作比,结果越接近 1,团伙特征越明显。

时序行为建模

老王一直是个早睡早起的人,每天七点出门买菜。可这周连续三天,全家都在凌晨两点出门、天亮才回来。这种“变化”本身比“绝对值”更值得警惕。时序行为建模盯的就是这种反常的节奏。

每个用户的交易行为都有个人规律:几点登录、多久转一次账、单笔金额多大。把行为按时间顺序串起来就成了行为序列。反欺诈系统通常维护两种参照系:用户自己的历史规律,和同类人群的普遍规律。一旦当前行为同时偏离这两种参照,风险评分立刻上调。

最基础也最实用的时序特征包括:滑动窗口内的统计量——比如近 5 分钟和近 30 天的平均交易金额;两笔交易之间的间隔——盗号之后骗子往往迫不及待地转钱;以及历史对比的 z-score。z-score 衡量“当前值相对历史均值偏离了几个标准差”,超过 3 通常意味着极端异常。更复杂的模型如 LSTM 或 Transformer 也能直接学习序列中的模式,适合欺诈手法更隐晦的场景。

时序模型像替每位居民写了一份“作息档案”,一旦作息突变,系统就亮黄灯。接下来,我们去看看怎么发现那些没有档案、也没有案底的“全新陌生人”。

zt=xt−xˉhistoryσhistory\displaystyle z_t = \frac{x_t - \bar{x}_{\text{history}}}{\sigma_{\text{history}}}
z-score 把“当前行为”与“历史习惯”作对比,数值越大,说明这次行为偏离用户常态越远。
  1. 当前值$x_t$ 表示当前时刻的行为指标,比如一笔转账的金额。
  2. 历史均值$\bar{x}_{\text{history}}$ 是该用户过去一段时间内同指标的均值,代表“平时的样子”。
  3. 历史标准差$\sigma_{\text{history}}$ 描述行为的正常波动幅度。
  4. 偏离判断$z_t$ 超过 3,说明当前行为偏离历史常态超过 3 个标准差,属于小概率事件,触发预警。

异常检测方法

有些骗子刚搬来,没有前科档案,也没有同伙关系。但整个小区都是晚上九点熄灯,只有他家凌晨三点还在院子亮着灯、来回踱步。你不需要认识他,光是“和所有人都不一样”这一点,就足够引起警惕。

这正是异常检测的价值:不依赖标签,只依赖“大多数人的样子”。常见的异常检测方法分几类:统计检测假设正常数据服从某个分布,落在尾部的小概率样本就是异常;无监督方法如孤立森林(Isolation Forest)在特征空间里反复做随机切分,那些“很容易被单拎出来”的点异常分最高;自编码器则是先压缩再还原,还原误差大的样本往往有蹊跷。

孤立森林的核心思想很朴素:正常样本聚成一团,需要用很多刀才能切出来;异常样本孤零零待在角落,一两刀就能切出来。算法对每个样本记录“从根到叶子”的路径长度,然后换算成异常分。

异常分像是保安的“直觉探测器”,专抓不合群的新面孔。但从模型得到的“可疑”,到底能不能拿出去见人?这就是下一节要解决的解释性问题。

s(x,n)=2−E(h(x))c(n)\displaystyle s(x, n) = 2^{-\frac{E(h(x))}{c(n)}}
异常分数越接近 1,样本越像“不合群的异类”。路径越短,说明它越容易被单独切出来,也就越可疑。
  1. 路径长度$h(x)$ 是随机切分时,孤立样本 $x$ 所需的切分次数。
  2. 归一化因子$c(n)$ 是样本量为 $n$ 时平均路径长度的期望,用来消除样本量差异。
  3. 指数变换$2^{-\frac{E(h(x))}{c(n)}}$ 把路径长度映射到 0~1 区间,便于设定统一阈值。

模型可解释性

镇长突然找你问话:“你凭什么把老王家门禁停了?”你不能只说“模型判断的”。你得拿出证据:“老王这周换了三个手机号,每天凌晨登录,还往两个已知骗子账上转了钱。”这套证据链,就是反欺诈模型的可解释性。

金融业受到强监管,拒绝一笔交易必须给出理由,客户可以申诉,监管要定期审查。因此反欺诈模型不能是纯黑盒。可解释性分两个层面:全局层面回答“哪些因素总体上最重要”,局部层面回答“为什么这个具体用户被判为欺诈”。

SHAP 是目前最主流的局部解释方法。它的思想来自博弈论里的 Shapley 值:把特征看成一个个“玩家”,模型的预测是“总收益”,每个特征分得的贡献应该是在所有可能的特征组合里,加入它带来的平均边际收益。这样算出的贡献值满足加和性——所有特征的贡献加起来,正好等于预测分和基线分的差。

有了这套证据链,保安队长不仅能说服镇长,还能顺着证据找出自己漏掉的线索。解释不是装饰,而是下一步防守的情报来源。

ϕi=∑S⊆N∖{i}∣S∣! (∣N∣−∣S∣−1)!∣N∣![f(S∪{i})−f(S)]\displaystyle \phi_i = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|! \,(|N|-|S|-1)!}{|N|!} \left[ f(S \cup \{i\}) - f(S) \right]
SHAP 值回答“这笔交易为什么被判为欺诈”:它把每个特征的贡献公平地拆开,让你看到到底是“深夜交易”贡献大,还是“换绑手机”贡献大。
  1. 边际贡献$f(S \cup \{i\}) - f(S)$ 表示在特征集合 $S$ 中加入特征 $i$ 后预测值的变化。
  2. 子集遍历$S \subseteq N \setminus \{i\}$ 遍历所有不含特征 $i$ 的特征子集,确保每种组合都被考虑。
  3. 权重系数$\frac{|S|!\,(|N|-|S|-1)!}{|N|!}$ 保证每个特征获得公平的贡献分配,不多不少。

样本不平衡

整个社区三千户,骗子可能只有三户。如果你写一份“所有人都正常”的报告,正确率有 99.9%,可这三个骗子依然在作案。社区保安要的不是“大面上对”,而是把极少数坏人真的揪出来。

反欺诈场景里,欺诈样本往往不足 1%,这就是类别不平衡。模型天然偏向多数类,因为只要把所有人预测成“好人”,训练损失就已经很小。要解决这个问题,可以从数据和评估两头下手。

数据层面,过采样(如 SMOTE)合成新的欺诈样本,欠采样则随机丢弃一部分正常样本;模型层面,可以给欺诈类分配更高的错误代价(class_weight);评估层面,不能再只看准确率,而是看精确率(预测为欺诈的人里真欺诈的比例)和召回率(真欺诈里被抓住的比例)。F1 分数把两者调和起来,是反欺诈模型的标配指标。

查案不能只靠“运气好”,得专门为“万里挑一”设计战术。抓到了嫌疑人,骗子也不会坐以待毙,他们会改头换面重新作案,这就引出了对抗演化的攻防战。

F1=2×Precision×RecallPrecision+Recall\displaystyle F1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
F1 是精确率和召回率的调和平均。只有两个指标都高,F1 才会高;只追求其中一个而牺牲另一个,F1 会立刻掉下来。
  1. 精确率$\text{Precision}$ 表示模型预测为欺诈的样本中真正欺诈的比例。
  2. 召回率$\text{Recall}$ 表示真实欺诈样本中被模型抓住的比例。
  3. 调和平均$\frac{2 \times P \times R}{P + R}$ 对两个指标同等重视,防止模型走极端。

对抗演化应对

你摸清了骗子“凌晨作案”的规律,他们隔天就改成中午;你盯住“频繁换手机号”的信号,他们就一机一号。防守策略在公开场合用得越久,就越容易被针对。反欺诈是一场没有终点的猫鼠游戏。

欺诈行为具有对抗演化特性:一个风控策略上线后,黑产会不断试探、绕过,模型效果随时间衰减。因此,反欺诈系统必须是一套持续进化的系统,而不是一次性交付的代码。

工程上常见的做法有三个:一是监控模型输入分布是否漂移,常用 PSI(群体稳定性指数)比较训练时和当前的特征分布;二是定期重训练,用最新的欺诈样本更新模型权重;三是实时监控线上指标——拦截率、误报率、申诉率的异常波动,都是风向标。更先进的团队会设置“红队”,专门模拟黑产攻击来暴露模型弱点。

防守策略写进巡逻手册还不够,还要每周演练、每月修订。等到整套系统能持续迭代,才算真正立住了脚跟。

PSI=∑i(pi−qi)×ln⁡(piqi)\displaystyle \text{PSI} = \sum_i \left( p_i - q_i \right) \times \ln\left( \frac{p_i}{q_i} \right)
PSI 用来量化“模型训练时的数据分布”和“当前线上数据分布”的差异。超过 0.25 就说明分布已经明显漂移,需要马上排查。
  1. 分箱比例$p_i$ 和 $q_i$ 分别是训练时和当前线上第 $i$ 个分箱的样本占比。
  2. 每箱漂移$(p_i - q_i) \times \ln(p_i / q_i)$ 刻画每个分箱内比例的变化幅度。
  3. 求和把所有分箱的漂移量加总得到 PSI,数值越大代表分布偏移越严重。

工程化部署

前面所有方法,最终要落成“夜间自动巡逻机器人”:每笔交易一进来,几十毫秒内给出“放行/复核/拦截”的决策。这个机器人必须二十四小时不睡觉,稍有闪失,钱就没了。

工程化部署是反欺诈模型从实验室走向业务的关键一环。典型的在线推理链路是:实时特征平台(毫秒级计算用户行为特征)→ 模型服务(加载训练好的模型做评分)→ 决策引擎(结合规则输出拦截动作)。

部署中要重点关注三件事:一是特征存储——离线训练用的特征和在线推理用的特征必须完全一致,否则模型行为会失控;二是模型服务——训练好的模型要序列化(PMML、ONNX 或容器化)后上线,并保证高可用;三是性能监控——反欺诈是线上关键链路,常用 p99 延迟来衡量:99% 的请求必须在几十毫秒内完成,任何抖动都可能被骗子抓住。

巡逻机器人每天晚上在社区里跑圈,有的跑得快、有的跑得准,但真正的考验是:它能不能每天稳定地跑、不出故障、不被骗子摸透路线。能落地、能抗压、能持续迭代,这才是完整的反欺诈工程能力。

p99=percentile({d1,d2,…,dn},0.99)\displaystyle \text{p99} = \text{percentile}\left(\{d_1, d_2, \dots, d_n\}, 0.99\right)
p99 延迟表示 99% 的请求耗时不高于该值。如果 p99 突然飙升,说明系统可能在某个环节出现拥堵,骗子会趁虚而入。
  1. 请求延迟$d_i$ 是系统处理第 $i$ 笔请求的耗时。
  2. 百分位数$\text{percentile}(\cdot, 0.99)$ 把所有延迟从小到大排序,取第 99 百分位的值。
  3. 业务含义p99 从尾部视角反映系统稳定性,比平均值更能暴露偶发抖动。

AI 应用场景

银行线上交易反欺诈

阶段:交易风控与实时决策

解决的问题:传统规则引擎只有“单笔金额超限”“异地登录”等固定规则,骗子很容易绕过;AI 模型在同一毫秒内综合图关系、行为时序、异常分值,判断精度高一个量级。

具体案例:某股份制银行手机银行上线反欺诈模型后,把夜间大额转账的审核自动化,欺诈拦截率提升 60%,误报率下降 35%。

信贷申请反欺诈

阶段:贷前准入风控

解决的问题:黑中介批量进件,单笔看起来都是“优质客户”,但共用设备、共用联系人、批量申请等关系特征暴露了团伙痕迹。

具体案例:某互联网小贷平台用图神经网络提取“申请关系网”,识别出 7 个专业骗贷团伙,减少损失超千万元。

电商活动营销风控

阶段:营销补贴反作弊

解决的问题:羊毛党用脚本秒杀优惠券,时序特征(几毫秒内连续点击、批量注册)和聚集特征(同一 IP 段)可用 AI 识别。

具体案例:某电商大促期间,系统用行为序列模型拦截了 82% 的机器请求,让补贴真正落到真人用户手里。

Python 演示

python29 行
import numpy as npfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.metrics import precision_score, recall_score, f1_score rng = np.random.RandomState(42)n_samples = 20000fraud_count = int(n_samples * 0.01) graph_deg = rng.poisson(lam=3, size=n_samples)time_diff = rng.exponential(scale=30, size=n_samples)amount = rng.lognormal(mean=4, sigma=0.8, size=n_samples) y = np.zeros(n_samples)fraud_idx = rng.choice(n_samples, size=fraud_count, replace=False)y[fraud_idx] = 1graph_deg[fraud_idx] += rng.poisson(lam=6, size=fraud_count)time_diff[fraud_idx] = rng.exponential(scale=2, size=fraud_count)amount[fraud_idx] *= rng.uniform(3, 10, size=fraud_count) X = np.column_stack([graph_deg, time_diff, amount])X_train, X_test, y_train, y_test = X[:15000], X[15000:], y[:15000], y[15000:] clf = RandomForestClassifier(n_estimators=100, random_state=42, class_weight='balanced')clf.fit(X_train, y_train)y_pred = clf.predict(X_test) print(f"Precision: {precision_score(y_test, y_pred):.3f}")print(f"Recall:    {recall_score(y_test, y_pred):.3f}")print(f"F1:        {f1_score(y_test, y_pred):.3f}")
目的:生成一个含 1% 欺诈样本的模拟数据集,构造图特征、时序特征、交易金额三类信号,用随机森林完成欺诈分类,并输出精确率、召回率和 F1。
  1. fraud_idx = rng.choice(n_samples, size=fraud_count, replace=False)随机选出 1% 样本当作欺诈,模拟真实业务中的类别不平衡。
  2. graph_deg[fraud_idx] += rng.poisson(lam=6, size=fraud_count)让欺诈者拥有更多关联关系,模拟“团伙节点度高”的图特征。
  3. time_diff[fraud_idx] = rng.exponential(scale=2, size=fraud_count)欺诈者的转账间隔极短,模拟时序行为异常。
  4. amount[fraud_idx] *= rng.uniform(3, 10, size=fraud_count)欺诈者交易金额明显偏高,给模型提供区分信号。
  5. class_weight='balanced'自动放大少数类(欺诈)的错分代价,是处理样本不平衡最轻量的做法。

常见误区

误区“我的模型准确率 99%,肯定很好了!”

正解欺诈只占 1% 时,模型把所有人判为好人,准确率就是 99%,但一个骗子都抓不到。准确率在类别极度不平衡时没有参考价值。应该看精确率——抓的人里真坏人的比例,和召回率——真坏人里被抓到的比例。F1 则是两者的综合。

为何常见:准确率是最常见的分类指标,新手最容易直接照搬,忽略了反欺诈场景中正负样本比例的极端失衡。

误区“我恨不得把所有字段都喂给模型,让它自己学。”

正解特征过多会引入噪音和过拟合,尤其欺诈数据非常稀缺时,高维特征还会拖慢线上推理速度、降低可解释性。按社区保安的逻辑,真正有用的是“关系特征 + 时序特征 + 关键业务字段”这几个维度,而不是把身份证号、星座都塞进去。

为何常见:对 AI 的直觉是“数据越多越智能”,却忽略了数据质量与业务含义的重要性。

误区“训练完部署上线,项目就算大功告成。”

正解骗子会针对模型改变手法,模型性能会随概念漂移而衰减。需要用 PSI 监控数据分布变化,定期用最新样本重训练,并持续观察拦截率、误报率、申诉率等线上指标。上线不是终点,而是持续运营的起点。

为何常见:传统软件工程“上线即交付”的思维惯性,让人忽略了对抗场景中模型天然会“过期”。

误区“没有欺诈标签,用孤立森林直接搞定,不用人工标数据。”

正解孤立森林只能发现“离群”,不具备业务判断力,误报率很高。它更适合做“初筛”,把最奇怪的少量样本挑出来给风控专家人工核查,再把确认结果作为标注,进入监督模型训练。把无监督结果直接当结论,会让普通用户被大量误伤。

为何常见:无监督方法“不需要标注”的宣传让人期待过高,忽略了欺诈判定对业务语义的强依赖。

误区“SHAP 值就是给监管看的,实际没啥用。”

正解可解释性对风控团队有真实价值:可以定位误报原因、寻找漏报模式、与业务方沟通规则,甚至发现骗子绕过了哪个特征。解释不是装饰,而是调试模型和迭代防守策略的情报来源。

为何常见:把“解释”误解成“背书”,没意识到黑盒在对抗场景里既难维护也难以取得信任。

面试题

Q1. 反欺诈模型面临的最核心挑战是什么?

单选题 · easy

  • A.样本数据量规模不够大
  • B.诈骗样本极度稀少不平衡← 正确答案
  • C.模型训练速度过于缓慢
  • D.生产环境缺少GPU算力

答案:B。欺诈率往往低于 1%,模型几乎看不到坏人,容易把所有样本都判成好人。数据量、训练速度、GPU 都不是反欺诈专项的瓶颈,类别极度不平衡才是。

Q2. 图特征工程中聚集系数高,最可能说明什么?

单选题 · mid

  • A.该节点在图里是孤立状态
  • B.节点邻居间关系十分稀疏
  • C.节点朋友间也相互认识,可能有团伙← 正确答案
  • D.该节点在任何方向上无连边

答案:C。聚集系数衡量“我的朋友们之间是否也互相认识”。系数高说明节点周围形成了紧密的小团体,在反欺诈中这种抱团结构往往是团伙的典型信号。

Q3. 时序行为建模中 z-score 超过 3 表示什么?

单选题 · mid

  • A.当前样本数据存在缺失
  • B.用户行为偏离历史规律← 正确答案
  • C.模型训练出现过拟合
  • D.用户是全新注册账户

答案:B。z-score 是当前行为与历史均值的差除以历史波动幅度。超过 3 个标准差,说明这次行为在用户自己的历史上属于极小概率事件,需要升级风险等级。

Q4. 孤立森林的异常分数越接近 1,说明什么?

单选题 · mid

  • A.样本越正常和无异常
  • B.样本在树中路径长度很长
  • C.越容易被孤立因而越异常← 正确答案
  • D.特征维度就变得更加高

答案:C。孤立森林通过随机切分特征空间来孤立样本。越异常的样本越容易在少数几次切分后被单独拎出来,路径越短,异常分数越接近 1。

Q5. 下列哪些是处理样本不平衡的常用方法?

多选题 · mid

  • A.过采样合成欺诈样本← 正确答案
  • B.欠采样丢弃正常样本← 正确答案
  • C.用准确率来评估模型
  • D.提高欺诈类错分代价← 正确答案

答案:ABD。过采样和欠采样分别从增加少数类、减少多数类两个方向平衡数据;提高错分代价让模型重视欺诈类。而准确率在类别不平衡时没有判别力,不能用它评估。

Q6. SHAP 值主要用于什么?

单选题 · easy

  • A.加速模型训练的收敛
  • B.对单个样本做特征归因← 正确答案
  • C.自动完成特征筛选
  • D.扩充欺诈样本的数量

答案:B。SHAP 基于博弈论 Shapley 值,把每个特征对某一次预测的贡献拆解出来。它解决的是“为什么这个用户被判为欺诈”的局部可解释性问题。

Q7. 对抗演化场景下,模型需要哪些持续运营手段?

多选题 · hard

  • A.使用PSI检测分布漂移← 正确答案
  • B.线上定期触发重训练← 正确答案
  • C.取消人工复核的通道
  • D.实时监控拦截率与误报率← 正确答案

答案:ABD。PSI 监控训练分布与线上分布的漂移,定期重训练吸收最新欺诈手法,实时监控业务指标能第一时间发现异常。人工复核是风控闭环的重要环节,不能取消。

Q8. 为什么欺诈场景常同时使用监督与无监督方法?

单选题 · extreme

  • A.监督依赖标注无监督不依赖← 正确答案
  • B.监督模型训练速度过于缓慢
  • C.无监督效果保证优于监督
  • D.两者结合会降低系统准确性

答案:A。监督模型准确但依赖高质量标注,无监督不需要标注但误报率高。两者结合可以用无监督做初筛、人工确认后为监督模型提供新鲜标注,也可用无监督发现新欺诈模式,再进入监督训练。

Q9. p99 延迟的含义是什么?

单选题 · mid

  • A.99%请求延迟小于该值← 正确答案
  • B.只有1%请求延迟小于该值
  • C.是平均延迟数的99倍
  • D.表示每秒处理99笔请求

答案:A。p99 是百分位数指标,把所有请求的延迟排序后取第 99 百分位的值,即 99% 的请求都不慢于该值。它比平均延迟更能暴露系统偶发抖动。

Q10. 关于反欺诈模型可解释性的说法,正确的是?

多选题 · hard

  • A.满足监管审查的合规要求← 正确答案
  • B.帮助风控定位异常的原因← 正确答案
  • C.让模型在任意场景更精准
  • D.提升与业务协作方的信任← 正确答案

答案:ABD。可解释性既满足金融监管对决策理由的要求,也能帮助风控人员追溯误报、漏报的根源,并让业务方信服模型判断。但解释本身不会直接提升模型精度,二者是平行目标。