2. 可解释性基础概念:全局解释与局部解释、内在可解释模型与事后解释方法
在构建企业级评分接口时,可解释性不是单一维度的属性,而是由解释范围和解释时机两个正交维度构成的矩阵。理解这两个维度,是设计可解释评分接口的前提。
2.1 解释范围:全局解释 vs 局部解释
根据解释覆盖的样本空间,可解释性分为全局解释(Global Explanation)和局部解释(Local Explanation)。前者回答“模型整体如何决策”,后者回答“针对某个具体样本,模型为何给出该结果”。
| 维度 | 全局解释 | 局部解释 |
|---|---|---|
| 目标 | 理解模型在整个特征空间上的行为规律 | 理解模型对单个样本的决策依据 |
| 输出形式 | 特征重要性排序、部分依赖图、决策树规则集 | 特征贡献值(如 SHAP/LIME)、反事实解释 |
| 适用场景 | 模型审计、合规审查、业务规则对齐 | 用户申诉、拒贷解释、异常样本诊断 |
| 计算开销 | 较高(需遍历全量数据或采样) | 较低(仅针对单个样本计算) |
| 企业级接口典型用途 | 模型监控报告、特征漂移分析 | 评分结果详情页、风控拒绝原因码 |
架构决策提示: 在评分接口设计中,局部解释通常作为实时响应的附加字段返回(如
reason_codes 数组),而全局解释更适合离线批处理或管理后台,避免在线推理链路过重。
2.2 解释时机:内在可解释模型 vs 事后解释方法
根据解释能力是模型自带的还是事后附加的,可解释性分为内在可解释模型(Intrinsically Interpretable Models)和事后解释方法(Post-hoc Explanation Methods)。
2.2.1 内在可解释模型
这类模型的结构本身具备可解释性,决策路径可以直接被人类理解。常见模型包括:
- 线性回归 / 逻辑回归:权重直接反映特征的正负影响方向和强度。
- 决策树:从根节点到叶节点的路径即为决策规则。
- 广义加性模型(GAM):每个特征通过独立的形状函数贡献,可单独可视化。
- 规则列表 / 规则集:如
IF-THEN规则,天然可读。
企业级选型建议: 在监管严格的金融、医疗场景,优先考虑内在可解释模型作为基线模型。如果业务精度要求必须使用复杂模型(如 GBDT、深度网络),则必须配套事后解释方法。
2.2.2 事后解释方法
事后解释方法不改变原模型结构,而是在模型推理后通过代理模型、梯度或扰动等技术生成解释。主流方法包括:
| 方法 | 原理 | 解释范围 | 典型工具 |
|---|---|---|---|
| LIME | 在样本局部拟合可解释代理模型 | 局部 | lime Python 包 |
| SHAP | 基于博弈论 Shapley 值分配特征贡献 | 全局 + 局部 | shap Python 包 |
| Partial Dependence Plot | 固定其他特征,观察目标特征与预测值的关系 | 全局 | sklearn.inspection |
| Permutation Importance | 打乱特征值后观察精度下降程度 | 全局 | sklearn.inspection |
| Grad-CAM | 利用梯度定位输入区域的重要性(主要用于图像) | 局部 | 深度学习框架内置 |
2.3 企业级评分接口中的选择策略
在实际的评分接口架构中,通常采用混合策略:
- 在线推理链路:使用内在可解释模型(如逻辑回归)或轻量级事后解释(如 SHAP 快速近似)返回局部解释。
- 离线分析链路:使用 SHAP 全局重要性、PDP 等事后方法生成模型行为报告,用于监控和审计。
- 异常检测链路:当局部解释出现异常贡献值时,触发全局解释重新计算,形成闭环反馈。
常见误区: 不要认为“复杂模型 + 事后解释”可以完全替代内在可解释模型。事后解释只是近似,存在解释不忠实(Infidelity)风险——即解释结果可能与模型真实决策逻辑不一致。在监管审计场景中,内在可解释模型仍是最安全的选项。
2.4 可解释性评估指标
选择解释方法时,需要从以下维度进行评估:
| 指标 | 定义 | 评估方式 |
|---|---|---|
| 忠实度(Fidelity) | 解释与模型真实决策的匹配程度 | 移除重要特征后预测变化量 |
| 可理解性(Comprehensibility) | 人类理解解释的难易程度 | 用户测试、解释长度、规则数量 |
| 稳定性(Stability) | 相似样本的解释是否相似 | 对输入添加微小扰动,观察解释变化 |
| 计算效率(Efficiency) | 生成解释所需的时间和资源 | 延迟 P99、CPU/GPU 消耗 |
接口设计映射: 在评分接口的
GET /v1/score/{id}/explain 响应中,建议同时返回 local_importance(局部特征贡献)和 confidence(解释置信度),让调用方可以评估解释的可靠性。