9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

告别 AI 模型黑盒:可解释机器学习研究报告

  • 2020-07-08
  • 本文字数:18822 字

    阅读完需:约 62 分钟

告别AI模型黑盒:可解释机器学习研究报告

摘要

随着金融数据规模的日益增长与 AI 技术的发展,机器学习模型在金融银行业被广泛使用。高性能的机器学习模型虽然在预测能力上表现突出,但是因为模型过于复杂的结构而引发的黑盒问题,却不利于机器学习模型的大规模使用。无法解释的黑盒模型在使用过程中暴露出来的安全风险和不公正问题,使人们对黑盒模型的使用变得越来越谨慎。为了应对黑盒模型的不可解释的问题,科学家们提出了可解释机器学习的研究。可解释机器学习分为内在可解释模型的研究和模型的事后解析方法两大方向。本文将分别介绍一些内在可解释模型算法以及模型事后解析方法,并将他们应用到信用卡违约评分的银行业务场景中。我们发现,以 GAMxNN 模型为代表的内在可解释机器学习模型可以在保持一定预测精度的优势下,同时给出模型的整体解释和局部解释;同样,模型事后解析方法也可以对复杂模型的预测结果给出特征重要性解释或针对单个样本的局部解释。这些解释无论是否合理都可以给模型的应用带来好处,一方面,如果解释符合业务认知,使用者对模型的信任度会大大增强,另一方面,如果事后解释跟专家经验和客观实际相违背,那么这个解释还可以反向来指导模型的调优。

目录

  1. 可解释机器学习的重要性

  2. 1.1 金融行业中的机器学习现状

  3. 1.2 可解释机器学习

  4. 1.3 本文研究目的

  5. 可解释机器学习模型与方法

  6. 2.1 内在可解释机器学习模型

  7. 2.1.1 GAMxNN 模型

  8. 2.1.2 GAMINET 模型

  9. 2.1.3 EBM 模型

  10. 2.2 复杂模型的事后解析方法

  11. 2.2.1 LIME

  12. 2.2.2 SHAP

  13. 可解释机器学习应用案例

  14. 3.1 案例背景——信用卡违约预测

  15. 3.2 数据集探索

  16. 3.3 数据预处理

  17. 3.4 特征工程

  18. 3.5 内在可解释机器学习模型应用

  19. 3.5.1 GAMxNN 模型应用

  20. 3.5.2 GAMINET 模型应用

  21. 3.5.3 EBM 模型应用

  22. 3.6 复杂模型的事后解析方法应用

  23. 3.6.1 LIME 方法应用

  24. 3.6.2 SHAP 方法应用

  25. 总结与未来展望

  26. 附录参考文献


【点击图片可下载 PDF 版报告全文】


1 可解释机器学习的重要性

1.1 金融行业中的机器学习现状

在当今的大数据时代,人工智能技术的应用正全面渗透到金融行业当中。金融科技(FinTech)通过利用大数据与人工智能的结合,为传统金融、银行业带来了创新的产品和服务,提供高效率、低成本的运营策略,基于大数据的机器学习模型在金融、银行业中已得到不少应用:在信用风险方面,利用机器学习模型构造评分卡、压力测试;在资本市场,利用强化学习模型为金融衍生品定价、计算风险价值;在金融犯罪方面,通过深度学习等复杂模型识别欺诈与反洗钱[1]。


与传统的统计模型相比,机器学习模型有更好的预测表现能力。然而,随着需要处理的数据规模越来越大,机器学习模型的内部结构也变得越来越复杂,如从简单的决策树发展到随机森林,再到现在工业界经常使用的 XGBoost 模型,复杂模型输入到输出之间的函数关系很难被理解,模型存在“黑盒”属性。在一些高风险的决策中,如反洗钱、反欺诈等应用领域,模型的“黑盒”属性可能会让模型存在不可预知的风险或做出带有偏见的决策,且模型遭到攻击时并不是很容易被察觉。针对这些潜在风险,各地区已制定了与 AI 应用相关的法律法规[2],如欧盟的法规《GDPR》,美国对于模型风险管理提出的监督指引《SR Letter 11-7》,而我国央行于 2019 年 8 月印发了《金融科技(FinTech)发展规划(2019-2021 年)》,该《规划》第三章的第 4 节、第 5 节分别着重讲了风控技术和监管技术,提出了相应的重点工作任务,要求金融科技技术必须符合“安全可控原则”[3]。


目前,在行业监管的要求下,我们需要可解释的机器学习模型:我们可以清楚了解模型的运作原理,对模型的预测结果能够提供合理的解释,满足合规需求,避免决策风险。

1.2 可解释机器学习

为了解决模型的“黑盒”问题,科学家们提出了可解释机器学习。所谓模型的可解释性,即预测过程可以转化成具备逻辑关系的规则[4] 。除了高精度预测表现之外,可解释性也是机器学习模型是否值得信赖的重要考核标准。可解释机器学习(Intepretable Machine Learning,缩写为 IML)的核心思想在于选择模型时,同时考虑模型的预测精度和可解释性,并尽量找到二者之间的最佳平衡,它不像传统机器学习仅考虑预测精度单一指标(如低 MSE 或高 AUC);它不仅能给出模型的预测值,还能给出得到该预测值的理由,进而实现模型的安全、透明、公平。


可解释机器学习的研究路径主要有两大方向,一是内在可解释机器学习(Intrinsic Interpretability),二是事后解析方法(Post-hoc Interpretability)[5]。从图 1.1 可以看到,横轴表示模型的可解释性,纵轴表示模型的精度,一般来说,蓝色框的机器学习模型(如随机森林、支持向量机等)通常精度比较高,红色框的传统统计学模型(如决策树、逻辑回归等)通常可解释性比较高。


  • 内在可解释机器学习:对于可解释性高的模型,我们希望模型往纵轴方向走,即通过改良模型结构,在保证内在可解释属性的前提下,通过增强模型灵活表征能力,提高他们的精度,如我们在后续介绍的 GAMxNN、GAMINET、EBM 模型,都属于内在可解释机器学习模型;

  • 事后解析方法:对于预测精度较高的模型,我们希望使用事后解析的方法去提升他们的可解释性,让模型往横轴方向走,事后解析方法就是对类似黑盒的复杂机器学习算法,在模型训练完成后,通过事后解析方法来提升可解释性,利用事后辅助的归因解析及可视化工具来获得模型的可解释性,如 LIME、SHAP 等方法都属于事后解析方法。



图 1.1 可解释机器学习:预测精度和模型可解释性(图片来源:香港大学张爱军教授)


1.3 本文研究目的

在银行业中,可解释机器学习的概念尚未普及。业内使用较多的还是传统的统计学模型,其预测表现与机器学习模型相比不太理想,而如果使用复杂的机器学习模型,又会担心由不可解释性引发的风险,所以机器学习模型在银行业内没有得到广泛使用。


索信达数据技术有限公司金融 AI 实验室结合自身的技术背景与银行的业务场景,在可解释机器学习领域进行了一定的探索,写作本报告的目的是希望能将可解释机器学习领域的研究所得分享给大家,让更多数据从业者了解可解释机器学习的基本概念,领域概貌,同时结合银行信用风险评分场景,展示了可解释机器学习的一些创新算法与具体实施效果,冀希推动可解释机器学习在银行业更多场景的应用落地。

2 可解释机器学习模型与方法

本章我们将详细介绍以下内在可解释模型和模型的事后解析方法。



表 2.1 可解释机器学习模型与方法总结


2.1 内在可解释机器学习模型

内在可解释机器学习模型是一类模型本身具有可解释性的机器学习模型。内在可解释机器学习模型可以直接输出解释结果,使用者可以直观的看到模型输入与输出之间的关系,同时他们的预测精度与复杂的机器学习模型相当。本节我们将介绍 GAMxNN、GAMINET、EBM 三个模型的原理。

2.1.1 GAMxNN 模型

GAMxNN 模型全称为广义加性可解释神经网络模型(Explainable Neural Network based on Generalized Additive Model),由 Joel Vaughan[6]在 2018 年 6 月的论文中提出,该模型属于内在可解释机器学习模型。本文提到的 GAMxNN[7]模型是经过索信达 AI 实验室和香港大学张爱军教授研究团队对底层算法进行一定改良后的模型,并在银行的业务场景中成功实践。针对金融数据信噪比中等或偏低的实际情况,GAMxNN 模型能够提供清晰明了的整体解释和局部解释性,并能通过数据可视化方法呈现出来,从而帮助业务人员提高决策的可靠性。


在数学上,GAMxNN 模型可表示为:



其中为岭函数(任意光滑的函数), 表示关联函数, 表示截距项。相比于线性模型,广义加性模型由于引入非线性函数 从而增强了模型的表征能力,使得对 Y 预测的更加准确。而因为其加性效应,线性模型的假设检验的方法仍然可以使用。


GAMxNN 模型结构如图 2.1 所示。GAMxNN 将原始 d 维特征分别输入一个子神经网络 进行训练,将每个子神经网络的输出结果在最后一层线性相加,从而得到模型最后结果的输出。


GAMxNN 模型最终能够输出模型的全局解释,包括特征重要性及得分趋势图、特征取值分布图;同时 GAMxNN 也能够输出局部解释图,显示出每一个样本在不同特征上的得分情况。全局解释与局部解释相结合,极大地提升了模型的解释性,能够帮助业务人员去判断模型结果的正确性。



图 2.1 GAMxNN 可解释神经网络模型结构


2.1.2 GAMINET 模型

GAMINET 模型由香港大学张爱军教授研究团队在 2020 年 3 月发布的论文中提出[8],它在 GAMxNN 模型基础上,增加了特征交互项的探索,对 GAMxNN 模型做了进一步优化和改良。在可解释性方面,模型考虑了三种可解释约束,包括:(1)稀疏性约束(Sparsity):只保留最重要的特征与交互项,使得模型更简约;(2)遗传性约束(Heredity):模型衍生出来的交互项是基于模型保留的特征,不会“无中生有”,使得模型结构性可解释;(3)边际清晰度约束(Marginal Clarity):更易区分主效应的影响与交互效应的影响。GAMINET 模型在保持高精度的同时,能够得到更好的可解释性。该模型还有助于业务人员开展单变量分析与交叉分析,为决策提供更优的支持。


GAMINET 模型的数学表达式为:


其中, 表示截距项, 为主效应的集合, 为交互效应的集合。表达式右边第二项为单个特征拟合岭函数的加总,右边第三项为交互特征拟合函数的加总。


模型在训练时首先拟合主效应(即单个特征),拟合完之后对现有残差拟合交互效应(即交互特征),直至训练结束。图 2.2 显示的是 GAMINET 模型结构图。其中,左侧网络图表示对主效应进行训练——将每一个特征输入一个子神经网络进行训练,主效应训练完成后,将残差(residual)放到右侧作为响应变量继续开展子神经网络的训练。模型训练时,需要满足上述提到的三个约束。最后,将左右两部分模型训练结果加总,得到 GAMINET 模型的完整形式。



图 2.2 GAMINET 模型结构图


2.1.3 EBM 模型

EBM 模型由 Rich Caruana[9]于 2015 年提出并在卫生领域进行了测试和应用,全称为 Explainable Boosting Machine,是由 Boosting Machine 改良而来,精度可与随机森林、提升树模型相媲美。EBM 是一个可解释性高的加性模型,也会自动搜索特征的交互项,因此能直接从模型中反映出单个特征与交互特征对模型结果的影响。与 GAMINET 模型的不同之处是,EBM 模型在抓取特征的函数关系时,用的是提升方法(boosting),而 GAMINET 用的是神经网络。


EBM 模型的数学表达式为:


其中 表示连接函数, 表示基函数, 表示交互项。EBM 的每一个基函数由单个特征训练而成,交互项函数由双特征训练而成。与 GAMINET 类似,模型先拟合单一特征,找出最优的 ,从中挑选出最好的 k 个交互项(k 由通过交叉验证得到)。


对于回归问题,EBM 使用回归样条(Regression Splines)作为基函数,其表达式为 。在基函数拟合过程中,通过使用正则化的最小二乘方法来确定模型相关参数,其表达式如下:


其中为平滑参数,防止出现模型过拟合的问题。当越大时,拟合出的函数越光滑,反之,拟合出的函数越粗糙。


对分类问题,EBM 使用二叉树或集成二叉树作基函数。针对集成二叉树,以 Bagging 或 Backfitting 作为集成方法,对若干梯度提升树进行集成,从而得到基函数。

2.2 复杂模型的事后解析方法

事后解析方法是一种与训练的模型无关的解释方法。无论用什么算法训练模型,我们都能用事后解析方法对模型的预测结果进行解释。即使预测结果是通过“黑盒”模型得到的,利用事后辅助的归因解析及可视化工具也能获得模型的可解释性。本节我们将介绍 LIME 和 SHAP 两种事后解析方法,其他事后解析方法,如 PDP、ICE、ALE 由于篇幅的原因,在此就不作过多的介绍。

2.2.1 LIME

LIME 全称 Local Interpretable Model-Agnostic Explanations,由 Marco Ribeiro, Sameer Singh 和 Carlos Guestrin 三个人在 2016 年《“Why Should I Trust You?” Explaining the Predictions of Any Classififier》[10]这一文中提出来的,是一种事后解析方法,即在建立模型之后所做的解释。如图 2.3,LIME 在训练完模型后给出模型的解释,解释结果可以用于判断模型是否出错。如果出错,我们将结果反馈到模型当中,重新训练模型;如果无误,则将结果用于落地实施。LIME 的名称很好的反映了它的特点:


  • Local: 基于想要解释的预测值及其附近的样本,构建局部的线性模型或其他代理模型;

  • Interpretable: LIME 做出的解释易被人类理解。利用局部可解释的模型对黑盒模型的预测结果进行解释,构造局部样本特征和预测结果之间的关系;

  • Model-Agnostic: LIME 解释的算法与模型无关,无论是用 Random Forest、SVM 还是 XGBoost 等各种复杂的模型,得到的预测结果都能使用 LIME 方法来解释;

  • Explanations: LIME 是一种事后解析方法



图 2.3 LIME 应用流程


LIME 可处理不同类型的输入数据,如表格数据(Tabular Data)、图像数据(Image Data)或文本数据(Text Data)。对于表格数据,如银行理财产品潜在购买客户的识别,一个复杂模型被训练完成后,可以用 LIME 方法找出对模型结果影响最重要的特征变量是哪些;图像数据,如识别图片中的动物是否为猫,训练完复杂模型后可以用 LIME 得到图片中的动物被识别为猫是因为哪一个或几个像素块;文本数据,如识别短信是否为垃圾短信,训练完复杂模型后可以用 LIME 得到一条信息被判断为垃圾短信是因为哪一个或几个关键词。


LIME 的算法需要输入想要解释的预测样本和已经训练好的复杂模型,基于表格数据,算法步骤如下:


1) 预测样本附近随机采样:


对于连续型(continuous)特征,LIME 在预测样本点附近用一个标准正态分布 N(0,1)来产生指定个数的样本;而对于类别型(categorical)特征,则根据训练集的分布进行采样,当新生成样本的类别型特征与预测样本相同时,该类别型特征取值为 1,否则取值为 0;假设,想要解释的预测点为 ,有 p 个特征,其中第 i 个特征为连续型特征,取值为为该特征在训练集中的标准差;生成的 N 个样本为 ,通过标准正态分布 N(0,1)对应生成一个随机数 (对应第 k 个新生成样本的第 i 个特征),则新生成的第 k 个样本的第 i 个特征的取值为


2) 对新生成的样本打标签:


将新生成的样本放入已经训练好的复杂模型中训练,得到对应的预测结果;设训练好的复杂模型为 ,则新生成的的样本预测结果为


3) 计算新生成的样本与想要解释的预测点的距离并得到权重:


新生成的样本距离想要解释的预测点越近,我们认为这些样本能够更好的解释预测点,因此需要赋予更高的权重。我们用指数核函数(exponential kernel)去定义新生成样本的权重,设为 ,此处为某个新生成的样本到的距离函数, 则为超参数。从公式中可以看到,距离越近, 的值越大。


4) 筛选用来解释的特征,拟合线性模型:


设想要用来解释的特征有个,则用来解释的特征为 ,此处 不一定相等,只是用来表示从 p 个特征中选取个作为解释;设用来解释的线性模型为 ,为了求出线性模型的系数,我们用一个加权平方损失构造损失函数: , 找出使得损失最小的 ,而即为我们用来解释的特征的线性组合;而对于个特征的选择,代码中提供 forward selection、highest weights、lasso 等方法。

2.2.2 SHAP

SHAP 全称是 SHapley Additive exPlanation, 是另一种模型事后解析方法[11],可以对每一个样本中的每一个特征变量,计算出其重要性值,达到解释的效果。


  • SHapley:代表对每个样本中的每一个特征变量,都计算出它的 Shapley Value。

  • Additive: 代表对每一个样本而言,特征变量对应的 shapley value 是可加的。

  • exPlanation:代表对单个样本的解释,即每个特征变量是如何影响模型的预测值。


特征的重要性值在 SHAP 中称为 Shapley Value,它是 SHAP 方法的核心所在,理解好该值背后的含义将大大有助于我们理解 SHAP 的思想。Shapley Value 最早由加州大学洛杉矶分校(UCLA)的教授 Lloyd Shapley 提出, 主要是用来解决合作博弈论中的分配均衡问题。Lloyd Shapley 是 2012 年的诺贝尔经济学奖获得者,也是博弈论领域的无冕之王。


数据集中通常会包含很多特征变量,从博弈论的角度,可以把每一个特征变量当成一个玩家。用数据集的特征去训练模型得到的预测结果,可以看成完成众多玩家合作完成一个项目的收益。Shapley Value 通过考虑各个玩家做出的贡献,来公平地分配合作的收益。在进行局部解释时,SHAP 的核心是计算其中每个特征变量的 Shapley Value。


当我们进行模型的 SHAP 事后解释时,我们需要明确标记。已知数据集(设有 M 个特征变量,n 个样本),原始模型 ,以及原始模型在数据集上的所有预测值。 是 SHAP 中用来解释的模型。先用 对数据集进行预测,得到模型预测值的平均值 。单个样本表示为为在原始模型下的预测值。 是事后解释模型的预测值,满足 。其中代表第 i 个特征变量的 Shapley Value,是 SHAP 中的核心要计算的值,需要满足唯一性。同时上述模型需要满足如下局部保真性,缺失性和连续性。可以理论证明求出唯一的 ,即对应的模型也是独一无二的。具体证明可参考 Shapley’s paper (1953).。 的表达式为:



其中代表数据集中特征变量下标,1 代表第一个特征变量,以此类推,i 表示第 i 个特征变量,M 是特征变量的总个数。S 是集合的子集,有种可能。 是 S 中的元素的总个数。 代表当样本中只有中的特征变量值时,模型的预测值。 代表当样本中只有 S 中的特征变量值时,模型的预测值。二者相减,可当成第 i 个特征变量在子集 S 下的边际贡献。 是权重,根据排列组合的公式得到,代表有相同元素个数的 S 存在的概率。

3 可解释机器学习应用案例

由于近年来银行加强零售业务,并降低持卡人的标准来抢占市场份额,使得各银行信用卡的发行量大幅增加。与此同时,信用卡违约率的上升也是不可避免的,因此本章以信用卡违约风险数据集为例,来演示不同可解释机器学习模型的应用,向大家介绍不同模型的原理和其可解释性,告别模型黑盒属性。

3.1 案例背景——信用卡违约预测

近期安永发布的《中国上市银行 2019 年回顾及展望》[12]显示,2019 年中国 51 家上市银行中,大型商业银行和全国性股份制银行不良贷款率和逾期率均有所下降,城商行、农商行不良贷款额和不良贷款率却出现升,资产质量压力较大。特别是近年来随着银行零售业务的不断发展,信用卡用户激增,银行所面临的潜在信用违约风险也不断上升。因此,信用卡违约情况的预测对银行进行风险管理与决策显得尤为重要。本案例将基于银行信用卡相关数据开展违约风险的预测和解释。


本次案例数据来源于 UCI credit card 数据集,是德意志银行在台湾客户的信用卡数据,共有 3 万个样本,有 23 个特征变量。数据内容包括用户信息和 2005 年 4 月到 9 月的信用卡使用情况,预测的目标是信用卡用户在 2005 年 10 月是否违约。在 2005 年末,台湾发生了信用卡危机,其原因是银行的过度竞争,因此该数据对于其他种类的信用卡来说是相似的,可用作其他信用卡风险控制的参考。

3.2 数据集探索

数据集主要涉及用户的基本信息、还款状态、贷款情况、还款金额等特征。其中,性别、教育水平、婚姻情况、还款情况为离散型变量,剩余特征为连续型特征。具体含义如下表 3.1:



表 3.1 信用卡数据含义


再对数据作简单的分析,查看具体每个特征的分布情况,包括每个特征的取值个数,平均值,标准差,最小值,25%分位数,中位数,75%分位数,最大值以及极值,具体如表 3.2。


通过数据可视化探究用户的可透支金额,文化程度,婚姻状况,性别,年龄,还款时间,账单金额和还款金额等单变量对用户逾期行为的影响,总结出一些比较明显的导致逾期行为发生的特征变量和规则,为后续的建模流程做参考。



表 3.2 数据集基本描述


对于离散特征,我们会通过卡方检验计算每个特征的 p 值,p 值小于 0.05,代表该特征与响应变量不独立,存在相关关系;反之,则不存在相关关系。由表 3.3 可以看出,除婚姻以外,其他离散特征的 p 值均小于 0.05,说明这些特征与响应变量存在相关关系。



表 3.3 卡方检验结果


对于连续特征,我们根据响应变量的两种取值 0 和 1,将其分为两组,对其做检验,若 p 值小于 0.05,代表响应变量在不同取值下,该特征的分布有明显差异,即该特征与响应变量存在一定的相关性。由表 3.4 可以看出,除了 BILL_AMT6 之外,其他特征的 p 值都比较小的,说明这些特征与响应变量有一定的关系。



表 3.4 t 检验结果


同时,我们还对特征进行了相关性分析,计算皮尔森相关系数矩阵。从图 3.1 可以看到,以 BILL_AMT 为首的 6 个之间有非常强的相关性,相关系数全都达到 0.8 以上。其次以 PAY 开头的 6 个特征也有相对较强的相关性,相关系数在 0.5 到 0.8 之间。余下的变量之间的相关性则没有那么强。



图 3.1 皮尔森相关系数矩阵


3.3 数据预处理

数据预处理是进行数据分析的第一步。由于原始数据普遍会存在一些问题,必须进行处理才能加以利用与分析。数据预处理一方面能够提升数据的质量,另一方面能够更好地适应后续模型的搭建要求。数据预处理有多种形式,包括数据完备性检查、缺失值及异常值探索、数据融合等多种方式。在进行数据预处理时,应根据数据的实际情况选择合适的处理方法。


本案例使用的数据集完整性较好,不存在缺失值,但是在教育水平、婚姻状况和还款情况这些字段上存在异常值,如出现负数等不合理的数字。因此,针对这一部分异常值进行了处理:


  • 针对“教育水平”这个特征,数据字典中定义的取值范围为 1-4, 但数据中出现了 0、5、6 的取值,其含义不明,因此将其统一替换成 4,即归入“其他”这一类。

  • 针对“婚姻状况”这一特征,数据字典中定义的取值范围是 1、2、3。但数据集中出现了 0 这一取值,统一替换为 3,即“其他”这一类。

  • 针对涉及还款状态的 6 个特征,均存在取-2、-1、0 的异常取值,根据数据字典的相关规则可以推测,取上述三个值代表不存在逾期还款的情况,因此统一替换归类为 0。

3.4 特征工程

特征工程能够最大限度地从数据中提取有用特征以供算法和模型使用。特征工程能够决定机器学习模型的上限,而模型和算法只能逼近这个上限。因此,特征工程在实际数据分析中占有举足轻重的地位。常用特征工程方法包括采样、单一特征归一化标准化处理、多特征降维、特征衍生和选择等等。应根据每次项目目标的不同,选择不同的处理方法。


针对本案例中已完成预处理的数据集,首先对分类特征如性别(SEX)、学历(EDUCATION)等做独热编码处理。其次检查所有连续型特征的分布情况,绘制其概率分布函数。针对长尾分布的特征,如可透支金额、账单金额等特征,取对数削弱长尾影响。最后对连续特征做标准化处理,以减少特征值域对模型的影响。

3.5 内在可解释机器学习模型应用

我们将分别使用 GAMxNN、GAMINET、EBM 模型对信用卡违约数据集进行预测,展示模型结果和结果的解释。

3.5.1 GAMxNN 模型应用

本案例建模目标是预测银行信用卡客户是否会发生违约行为,从而区分高风险客户,进一步降低违约风险并提升银行收益。在对信用卡违约风险数据集进行预处理后,按 8:2 比例进行训练集和测试集的划分。将训练集输入 GAMxNN 模型中训练,测试集结果显示,模型精度 AUC 达到 0.7691,同时输出模型的全局解释图——特征重要性及得分趋势图、特征取值分布图,以便于业务人员对模型结果进行解释和分析。


图 3.2 所示为 GAMxNN 全局解释图,所有特征按特征重要性降序排列。该图能够显示出每个特征与输出值之间的非线性关系,从而极大地提高了模型的精度和解释性。每幅曲线图反应的是单个特征的得分趋势,即 ,该图上方括号内显示的是每个特征的重要程度。每幅曲线图下方对应的是该特征的取值分布直方图。



图 3.2 GAMxNN 全局解释图


以第一幅图客户 2005 年 9 月还款情况(PAY_0)为例,当逾期在 0-3 个月时,随着逾期月份数增长,该特征得分呈现一个显著上升趋势;当逾期超过 3 个月时,得分呈现略微下降的趋势,趋于水平,但得分都很高,主要原因是逾期超过 3 个月的客户违约概率较高,但由于样本量较少,拟合的关系存在一定误差。特征得分趋势图下方为该特征的取值分布直方图,从中可看出该特征取 0 的频数最大,取其他正整数的频数逐渐降低。


除了获取模型特征整体表现情况,对每位客户提供个性化的解释同样重要。GAMxNN 模型能够为每位客户绘制个性化的特征得分图,清晰反映出该客户的每一项数据在模型的预测中起到的作用。对于单一客户,如果其某个特征值的得分大于零,说明该特征值会增加个体的得分;反之,如果特征值的得分小于零,则会减小个体的得分。


如图 3.3 所示为某一特定客户的特征得分图。从图中可看出尽管在婚姻(MARRIAGE)这个特征上得分为负,但该客户在 8 月、9 月还款情况(PAY_0、PAY_2)较差,这两个特征对违约概率有较大的正向影响,使得最终预测该客户违约概率达到 0.8979。若以 0.5 为概率阈值区分是否会发生违约行为,则可预测该客户会违约,而现实情况与预测相符——该客户确实发生了违约行为。



图 3.3 GAMxNN 局部解释图


针对本案例,将 GAMxNN 模型与传统逻辑回归、复杂机器学习模型效果进行对比。结果显示,与具有高透明性的逻辑回归模型相比,GAMxNN 模型精度略高于逻辑回归的模型精度 0.7623,而在可解释方面,GAMxNN 的解释性能够与逻辑回归相媲美。与目前机器学习领域高精度的模型 XGBoost 相比,GAMxNN 的精度略低于 XGBoost 的 0.7894。然而,XGBoost 等复杂的机器学习模型是完全的黑箱模型,人们无法知道其内部决策的任何原因和规则,而 GAMxNN 模型解释性非常强。因此,GAMxNN 在传统的逻辑回归和复杂机器学习模型之间找到了最优平衡点,能够将预测精度和可解释性两者相统一。


综上,GAMxNN 模型能够捕捉单一变量对模型结果的影响,从全局和局部两方面对模型结果进行解释。在精度方面,GAMxNN 精度超过逻辑回归精度,略低于 XGBoost 精度。

3.5.2 GAMINET 模型应用

为了较好地预测客户未来是否会发生违约行为,在对信用卡违约风险数据集进行预处理后,按 8:2 比例进行训练集和测试集的划分。将训练集输入 GAMINET 模型中训练,测试集结果显示,模型精度 AUC 达到 0.7761,比 GAMxNN 模型略高一些。和 GAMxNN 模型类似,我们也可以得到模型的全局解释图和局部解释图。图 3.4 显示的是 GAMINET 模型的全局解释结果。按照特征变量重要性排序得到单个特征与输出值之间的关系图,下方是特征分布直方图,交互项的热力图在单个特征结果之后。单个特征的解释方法与 GAMxNN 一致,对比图 3.2 与 3.4,其结果也与 GAMxNN 相似。最后一排的热力图是 GAMINET 所特有的抓取交互项的结果。以第一张热力图为例,该图显示的是客户 5 月账单金额和 6 月账单金额对模型结果的共同影响,从图中可以看出,当其中一个月突然出现了很高的账单金额,而另一个月账单金额较小时,模型会给出较高的违约概率,这种情况涉及到客户异常行为,因此违约可能性较高。 最后一幅图显示的是客户 7 月还款情况和 5 月账单金额对模型结果的共同影响。从图中可看出,两者对结果呈现正向影响,即当 5 月账单金额较高且 7 月还款情况较差(取值较大)时,客户的违约概率很高,此结果与业务逻辑相符。



图 3.4 GAMINET 模型全局解释图


图 3.5 显示的是 GAMINET 模型对某一客户得分情况的解释图。从图中可以看出单个特征以及交互特征对客户最终得分的贡献程度。模型显示该客户在 4 月客户还款情况(PAY_6)、年龄(AGE)和客户 5 月×6 月账单金额(BILL_AMT4×BILL_AMT5)三个特征得分为负,即对客户违约概率是负向影响,然而在 9 月客户还款情况(PAY_0)、教育程度(EDUCATION)、可透支金额(LIMIT_BAL)、以及 7 月还款情况×客户 5 月账单金额交互影响(PAY_3×BILL_AMT5)得到较高的分数,导致客户违约概率变高,最终预测概率为 0.8101,超过 0.5 的阈值,预测该客户会违约,与实际情况相符。



图 3.5 GAMINET 模型局部解释图


综上,GAMINET 模型能够实现对模型的全局和局部解释,并且达到一个较高的模型精度。相较于前述 GAMxNN 模型,增加了探索交互项对模型结果影响的步骤,从而能够抓取更多数据信息,因此 GAMINET 模型精度与 GAMxNN 模型精度相当。但对前期数据处理有一定限制和要求,因此可以根据实际情况决定是否选择 GAMINET 模型。

3.5.3 EBM 模型应用

EBM 模型曾被应用于医学领域[13],得到良好的效果,目前我们将这模型使用到银行业当中。将梳理后的信用卡违约数据放入 EBM 模型中训练。测试集结果显示模型精度 AUC 达到 0.7804,模型精度较 GAMxNN 模型、GAMINET 模型有进一步的上升。


EBM 的全局解释图主要包括两个方面,一方面能够显示出不同特征变量对模型结果的贡献程度,即特征重要性。图 3.6 显示的是特征重要性,此处使用绝对平均数来作为特征重要性的刻画。从图中可知 PAY_0,即 2005 年 9 月客户还款情况对模型结果的影响最大,最为重要。这个解释的合理性在于,相比其他月份,2005 年 9 月的数据最新,最能反映客户当前情况,因此对预测后一个月客户是否会违约有很大影响。其次是变量 PAY_2 和 LIMIT_BAL,即 2005 年 8 月还款状态和可透支金额。近期还款状态以及可透支金额往往是客户征信情况的总体反应,因此其对判断客户后一个月是否会违约也起到较为重要的作用。



图 3.6 EBM 全局解释图


通过对比 GAMxNN、GAMINET 以及 EBM 三个模型的结果,会发现三个模型的特征重要性有所不同,这主要是因为不同模型的特征重要性计算方法不同。此时可加入专家意见或进行进一步深入分析,结合业务选择最适合的模型及其解释与结果。


另一方面,EBM 的全局解释也体现在能够反映每个特征与模型结果之间的输入输出关系。以 2005 年 9 月客户还款情况(PAY_0)为例,如图 3.7 所示。从图中可看出当逾期时长小于等于零时(即不发生逾期时),模型评分维持在 0 左右。随着逾期时间的增加,特别在逾期两个月之后,模型评分会有一个较大的上升,说明超过两个月的逾期会导致客户发生违约的概率显著上升。折线图下方显示的时该特征的取值分布情况。



图 3.7 EBM 模型单个特征解释


EBM 模型的局部解释主要体现在对具体某一个体预测结果的解释方面。随机选取一名客户,预测其违约的概率。图 3.8 反映的是该客户在每一个特征上的评分,将其加总并进行


logit 变换即可得到该客户违约的预测概率。从图中可看出,由于该客户曾在 2005 年 9 月发生过两个月的逾期(PAY_0),且其在 2005 年 8 月、2005 年 4 月均发生过两个月逾期(PAY_2=2,PAY_6=2),导致模型对其评分较大,最终预测其为违约风险高的客户。


综上,基于树模型的 EBM 同样能够给出模型的全局和局部解释。相较于 GAMxNN、GAMINET 模型,EBM 在本案例中实现了更高的精度,但是在解释性方面,只能给出分段函数,不能给出平滑曲线,从而对一些截断点(跳跃点)缺少解释,解释性有所下降。



图 3.8 EBM 局部解释图


3.6 复杂模型的事后解析方法应用

我们首先使用 XGBoost 模型对信用卡违约数据集进行预测,再用 LIME 和 SHAP 两种事后解析方法对预测结果进行解释。

3.6.1 LIME 方法应用

以信用卡违约风险数据集为例,对数据做完预处理之后,按 8:2 比例进行训练集和测试集的划分,使用 XGBoost 模型进行训练,再用 LIME 做事后解析。测试集结果显示模型精度 AUC 为 0.7744,与之前内在可解释模型精度相当。接下来我们用 LIME 对某一样本进行解释。首先指定哪些变量是类别型变量,然后构造一个 LIME 解释器,根据图 3.9 中的代码,我们需要输入的参数包括模型的训练集,特征名称,类别型变量,响应变量的名称,模型的类型(回归还是分类),特征选择的方法等等。



图 3.9 LIME 解释器


任意挑选一个样本,此处设置用 5 个特征来进行解释。根据 LIME 的解释,我们可以从图 3.10 看到,该客户判断为不会违约的概率是 93%,会违约的概率是 7%,而得到这个结果的主要原因是:1、9 月份按时还款(PAY_0=0),;2、额度(LIMIT_BAL=31000);3、8 月份还款金额(PAY_AMT2=6000);4、上个月的账单金额(BILL_AMT1=172772);5、9 月份还款金额(PAY_AMT1=8295)。我们可以分析出,该客户在 10 月份不会违约是因为他 9 月份按时还款了,并且额度和 8 月、9 月的还款金额都足够高,虽然 9 月份的账单金额较高,有可能导致该客户违约,但总体来说该客户不违约的概率较大。



图 3.10 LIME 结果


同时,我们也可以通过 LIME 中的次模挑选方法(submodular pick),选出对模型的整体影响最大的特征,看看这些特征在整个样本集中,是怎么影响预测结果的。图 3.11 展示的是解释的结果。结果表示,客户判断为 10 月份不违约的最重要原因是他们 9 月按时还款了(PAY_0=0),其次重要的原因是 8 月份按时还款(PAY_2=0),额度(LIMIT-BAL)则是第三重要的原因,是一个正向的影响,即额度越高,10 月份不违约的可能性越大,而 9 月份的账单金额(BILL_AMT1)是负向的影响,金额越大,10 月份不违约的可能性越小。


综上,我们看到 LIME 可以实现模型局部解释和整体解释的目的,通过事后解释,我们对模型的预测结果进行分析,而这些解释也是符合银行业务逻辑的。如果结果的解释不正确,还可以对模型进行调优,调整特征,从而提高精度,避免安全风险。



图 3.11 submodular pick 结果


3.6.2 SHAP 方法应用

在信用卡违约风险数据集上用 Tree SHAP 来解释复杂树模型 XGBoost。Tree Explainer 是专门解释树模型的 SHAP 解释器[14]。用 XGBoost 训练完模型后,选用任意一个样本来进行解释,计算出它的 Shapley Value,画出 force plot。对于整个数据集,计算每一个样本的 shapley value, 求平均值可得到 SHAP 的全局解释,画出 summary plot。


以图 3.12 为例,该样本在 XGBoost 中判定为不会违约,因此在 SHAP 中其 output value 会低于 base value。红色部分为正向影响,即特征取值使得违约概率变高,蓝色部分为负向影响,即特征取值使得违约率变低。我们可以看到,9 月份还款金额(PAY_1=23080)、额度(LIMIT_BAL=300000)是该客户判定为不违约的最重要的两个原因,虽然该客户在 9 月份的还款逾期了一个月(PAY_0=1),4 月份还款金额为 0(PAY_AMT6=0),但这两个因素的正向影响不足以让模型判断他会违约,从图中也可以看出,负向影响是大于正向影响的,从而导致该样本的 output value 会低于 base value,因此总体来说该客户违约的可能性较小。



图 3.12 SHAP 单个样本解释图


图 3.13 是 SHAP 的 summary plot,展示的是模型中的特征重要性,属于全局解释。根据 SHAP Value 的绝对值从大到小排序,可以看到 9 月份客户还款情况(PAY_0)最重要,额度次之(LIMIT_BAL)。


SHAP 方法的理论基础完备,算法多种多样,解释结果直观。既能从局部解释,也可以提供全局解释。同时对于不同种类的模型有特定的提升算法,如 TreeSHAP(如只对树模型解释), DeepSHAP(对神经网络模型解释)等,定制化的 SHAP 解释更准确更高效。不足之处在于 SHAP value 的计算比较复杂,可能会导致计算速度较慢,同时 SHAP 的解释运用了所有的特征,可能会导致结果的解释不容易被理解。



图 3.13 SHAP 全局解释图


4 总结与未来展望

本文先从可解释机器学习背景出发,针对机器学习模型的黑盒属性,提出模型可解释性的必要性,进而从两方面介绍可解释机器学习:内在可解释机器学习模型与事后解析方法。结合信用卡违约风险数据集案例,对不同的内在可解释机器学习模型与事后解析方法进行了详细的介绍,并给出相应的可解释结果,使读者对可解释机器学习有了初步的认识。


人与人之间能很好的合作是因为他们能互相理解对方的工作,人与机器学习模型能有效的合作也需要人们理解模型的工作原理,可解释机器学习便是人与模型沟通的桥梁,合理的解释是有效合作的核心。随着科技的发展,深度学习等更多复杂的模型将不断应用到银行金融业中,对深度学习的可解释性是一大挑战,研究者也提出了更多新的解释算法,旨在提高解释的质量和准确度。索信达金融 AI 实验室将继续在可解释机器学习领域做探究,结合业务经验,学习、优化和研发不同的算法,推动银行业技术的创新发展。

附录 参考文献

[1] Jie Chen, Wells Fargo.Deep insights into interpretability of machine learning algorithms and applications to risk management, Mar 27, 2019.


[2] Lael Brainard (2018). What are we learning about artificial intelligence in financial services?


https://www.federalreserve.gov/newsevents/speech/brainard20181113a.htm.


[3] 《金融科技(FinTech)发展规划(2019-2021 年)》


[4] Finale Doshi-Velez and Been Kim(2017). Towards A Rigorous Science of Interpretable Machine Learning.


[5] Christoph Molnar. Interpretable Machine Learning[M]. February 28, 2020.


[6] Joel Vaughan and Agus Sudjianto and Erind Brahimi and Jie Chen and Vijayan N. Nair(2018). Explainable Neural Networks based on Additive Index Models


[7] Zebin Yang, Aijun Zhang, Agus Sudjianto(2019). Enhancing Explainability of Neural Networks through Architecture Constraints.


[8] Zebin Yang, Aijun Zhang, Agus Sudjianto(2020). GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions.


[9] Yin Lou,Rich Caruana,Johannes Gehrke(2012). Intelligible Models for Classification and Regression.


[10] Ribeiro, Marco Tulio, Sameer Singh, and Carlos Guestrin. “Why Should I Trust You?: Explaining the predictions of any classifier.” Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2016.


[11] Scott M. Lundberg, Su-in Lee. A Unified Approach to Interpreting Model Predictions, 2016.


[12] EY 安永(2019),《中国上市银行 2019 年回顾及未来展望》


[13] R. Caruana, Y. Lou, J. Gehrke, P. Koch, M. Sturm, and N. Elhadad (2015). Intelligible Models for HealthCare: Predicting Pneumonia Risk and Hospital 30-day Readmission


[14] Scott M. Lundberg, Su-in Lee. From local explanations to global understanding with explainable AI for trees.2020.


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2020-07-08 10:305441

评论 1 条评论

发布
用户头像
对于金融行业,可解释性确实很重要。张教授学生(Zebin Yang)论文中还提供了示例源码: https://github.com/ZebinYang/gaminet
2020-07-09 14:14
回复
没有更多了
发现更多内容

软件测试 | 测试开发 | GraphQl:让你的接口所得即所要

测吧(北京)科技有限公司

测试

8万字208道Java经典面试题总结(附答案)

Geek_0c76c3

Java 数据库 开源 程序员 开发

开发者有话说|谢谢当年那个埋下对科技热爱的种子那个少年

宇宙之一粟

个人成长 人生故事 9月月更

软件测试 | 测试开发 | Vue3.0 如何写自定义指令

测吧(北京)科技有限公司

测试

系统集成行业如何进行降本增效

Onegun

小程序 小程序容器

IPQ5018, 802.11ax,wifi 6e,QCN9074//IPQ8072A IPQ8072 IPQ8074 IPQ8074A 4x4/8x8 2.4G & 5G 802.11ax //Wallys

wallys-wifi6

IPQ8072 ipq5018 IPQ8074

不会还有程序员不知道跳槽季靠这1700道java面试题就能平淌大厂吧

Geek_0c76c3

Java 数据库 程序员 架构 面试

Ribbon

想要飞的猪

Ribbon

OBCP实验全面升级|官方为你送上备考攻略+福利

OceanBase 数据库

阿里面试官内部题库!阿里发布2022年Java社招岗(正式版)面试题

Geek_0c76c3

Java 数据库 开源 程序员 架构

阿里云云通信作为CPaaS全球代表服务商,上榜Gartner报告

阿里云视频云

阿里云 云通信 通信云 Gartner

105道Java面试题,认真思考对你面试很有价值

Geek_0c76c3

Java 数据库 开源 程序员 面试

hystrix

想要飞的猪

Hystrix hystrix名词概念

OptaPlanner 开源项目

成长兔🐇

设备健康管理“悬丝诊脉”之【石化行业往复式压缩机】

PreMaint

设备健康管理 设备预测性维护 往复式压缩机

低代码实现探索(五十)后台复杂业务构建扩展

零道云-混合式低代码平台

探究MYSQL之索引

C++后台开发

MySQL 中间件 后端开发 C++开发 数据库索引

软件测试 | 测试开发 | TorchServe搭建codeBERT分类模型服务

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Pandas数据分析及可视化应用实践

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 分布式锁的实现方案

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何用 docker 搭建虚拟环境

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 分布式自增ID算法Snowflake简介

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Golang协程池的使用

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何提高站内SEO

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 基于NSQ搭建高可用分布式消息队列

测吧(北京)科技有限公司

测试

KaiwuDB 正式加入中国信通院数据库应用创新实验室

KaiwuDB

基于EMR的新一代数据湖存储加速技术详解

阿里云大数据AI技术

大数据 企业号九月金秋榜

如何保障物联网平台的安全性与健壮性

EMQ映云科技

物联网 IoT emqx SSL/TLS 9月月更

软件测试 | 测试开发 | kafka 从入门到了解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | code2vec 代码的连续分布式矢量表示

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | UI遍历中页面定义和动作事件筛选方法

测吧(北京)科技有限公司

测试

  • 扫码添加小助手
    领取最新资料包
告别AI模型黑盒:可解释机器学习研究报告_AI_索信达控股_InfoQ精选文章