我们信任模型结果的基础是该模型是有道理的,经典的模型比如线性回归、微分方程等都有很强的可解释性,但是随着机器学习越来越火热,很多模型比如神经网络,在数据上确实预测很准,但是总感觉它像个“黑箱”,面对成千上万个权重参数,不知如何解释它的机理。这就有些难受。同时,在实践过程中也会出现一些应用上的问题。我们简单来看几个银行相关的例子:
1)小杨是某银行的一名理财客户经理,年关将至,马上就要业绩考核了,但其业绩离既定的销售目标还有一定的距离,于是他决定使用一个机器学习模型,判断他所负责的客户名单中哪些人更有可能会购买基金产品。花了一周时间编写代码和做特征工程,小杨顺利地运行了一个XGBoost(Extreme Gradient Boosting,梯度提升)模型,模型的AUC(Area UnderCurve,ROC曲线下与坐标轴围成的面积)达到了0.86,结果非常理想,他便高兴地拿着模型预测的名单逐个进行电话营销。结果在几百通电话之后,最终只有一两个客户购买了基金产品,小杨落寞地对着自己的代码陷入了沉思。
2)小苏是某银行的风控专员,最近银行新开通的信用卡遇到了严重的逾期还款问题,银行决定对旧的评分模型进行调整优化,以防止发生更多的违约情况。于是他用新的训练数据对模型进行了更新,并对一些特征重新进行了分箱处理,最终将 新模型部署上线。然而没过多久,银行便开始接到不同的投诉电话:“为什么我已经提供了齐全的资料,征信也没问题,但 是我的信用卡审批就是通不过呢?”“我提交的资料信息与我同事的资料信息是相近的,为什么他的额度比我的高那么多?”……面对申请人接二连三的质疑,小苏一时半会儿也没法回答,面对这个黑盒模型运行所得的评分模型,他正绞尽脑 汁地对模型进行剖析。
3)小何是一位典型的“吃货”,尤其喜爱喝珍珠奶茶,几乎每餐之后都会到手机银行APP上浏览附近的奶茶店。最近她婚期将至,看着自己的体重还在持续增长,于是下定决心减肥,并办了一张健身房的年卡,并且每餐也以沙拉等轻食为主,杜绝珍珠奶茶等高糖分的摄入。令她烦恼的是,每次吃完饭用手机银行APp结账的时候,APP总会向她推荐附近的奶 茶店。为了避免因禁不住诱惑而导致减肥前功尽弃,小何毅然决定卸载该手机银行的APP。
由于黑盒模型内部结构的复杂性,模型使用者往往无法得知数据进入模型之后,是如何得到预测结果的,这就好像变魔术一样,魔术师从黑盒里变出不同的物品,观众却不明所以。
对于决策者,尤其是对于高风险领域(比如自动驾驶、金融领域、医疗行业等)的决策者,在不清楚黑盒模型运作原理的情况下,是不敢仅凭模型的预测结果就轻易做出决策的。虽然人工智能和机器学习技术大大提升了人类生活和工作的效率,在很多领域,人工智能都在发挥着巨大的作用。但不可忽视的是,人工智能、机器学习中的模型黑盒问题,也同样需要引起我们的重视,值得我们深入思考。
模型黑盒问题具体包括如下三点。
(1)无法挖掘因果关系问题或因果错判问题。我们在使用机器学习模型时,不仅希望模型能够给出正确的预测结果(尤其是在医学、金融、自动驾驶等高风险领城),还希望模型能够为我们提供判断依据。黑盒模型内部结构复杂,使用黑盒模型做预测时,我们会根据一些模型的评价指标(如AUC)去评估模型的好坏,但即使AUC很高,我们也依然不清楚黑盒模型的判断依据是否正确。如果模型无法给出合理的因果关系,那么模型的结果也将很难使人信服。
微软著名研究院的Caruana曾在论文中提到过一个医学上的例子:在一个关于肺炎风险的数据集中,我们想要预测不同肺炎病人的死亡概率,从而更好地治疗高风险的肺炎病人,最准确的模型是神经网络,AUC达到0.86,但是当我们使用基于规则的模型时,模型学习到了“如果病人带有哮喘,那么他属于低风险人群”。也就是说,带有哮喘的肺炎患者的死亡率比其他肺炎患者要低。这个结论看起来模棱两可,违背了我们的客观认知,但深入挖掘下去,我们便会发现其中的逻辑关系:有哮喘病史的肺炎患者,由于病情的严重性,会得到更进一步的治疗,治疗的效果通常也会很好,从而降低了这类患者的死亡率。如果我们直接使用属于黑盒模型的神经网络模型,那么模型由于无法推导出这样的因果关系,从而将带有哮喘的 肺炎病人判断为低死亡率(低风险)人群,这类人群便有可能错过最佳治疗时间,实际上他们需要得到更好的治疗。
(2)黑盒模型的不安全性问题。 黑盒模型的不安全性问题可以分为两大类,具体说明如下。一是对于建模人员来说,黑盒模型内部结构复杂,当模型受到外界攻击时,我们通常很难发现这些攻击。倘若黑客在原始模型的输人样本中添加了一些扰动(通常称为对抗样本),那么模型很有可能会产生错判,建模人员如果无法及时调整模型,就会导致非常严重的后果。
例如,将黑盒模型应用于自动驾驶时,如果黑客向轮胎的图像样本中加入一些扰动,则可能会导致轮胎的识别错误,从而造成严重的车祸问题。如果建模人员在建模时未发现模型存在这样的问题,那么在模型投入实际应用时,行车的安全系数将会大大降低。二是对于模型的使用者来说,他们并不了解模型的运作机制,只是利用模型的结果作出决策。当我们拿到一个新工具时,我们不仅需要知道如何正确地操作该工具,还需要了解使用该工具时的注意事项、存在哪些风险点,正如医生向病人提供治疗的药物时,除了用量和服用方式之外,药物说明书上还会写明不良反应、禁忌和注意事项等,病人了解这些信息后才能安心服药。
黑盒模型无法解释模型的结果,结果通常是以概率或评分的形式给出,使用者对模型结果的风险点却少有了解,这就好比病人不了解药物的不良反应一样。 如果有人使用欺诈或伪造的方式,提升自己在黑盒模型中的评分,使用者很难从黑盒模型的结果中发现异常,这就会造成模型结果在使用中存在不安全性的问题。
(3)黑盒模型可能存在偏见问题。偏见是指对某类人群带有主观意识情感,就人论事,如性别歧视、种族歧视等都是常见的偏见问题。黑盒模型存在偏见问题,表面上好像是在说黑盒模型能够反映人类的思想,实际上是指黑盒模型在做预测时,放大了数据收集过程中可能存在的数据不平衡性问题,导致模型最终得出具有偏见性的结果。
比如在美国广泛使用的COMPAS算法,该算法通过预测罪犯再次犯罪的可能性来指导判刑,根据美国新闻机构的报道,COMPAS算法存在明显的偏见,根据分析,该系统预测黑人被告再次犯罪的风险要远远高于白人,甚至达到了后者的两倍。从算法的结果来分析,黑人的预测风险要高于实际风险,黑人被误判的几率是白人的2倍多,也就是说,COMPAS算法对黑人是很不公平的,该算法的应用已经严重影响到了判决的公正和公平。有些模型的算法还会涉及性别歧视、年龄歧视等问题。由于黑盒模型缺乏内在解释性,进行模型训练时又难免会使用不均衡的样本数据,因此使用这样的模型,问题严重时可能会引发一系列的社会问题。
同样的道理,在金融领域,当我们做风险评估时,黑盒模型可能会对不同性别、地域、年龄等特征进行不同的处理。综上所述,如何避免模型做出带有偏见性的预测,是值得我们关注的问题。
为了解决模型的“黑盒”问题,科学家们提出了可解释机器学习。除了预测的精准性之外,可解释性也是机器学习模型是否值得信赖的重要衡量标准。
可解释机器学习(IML)的核心思想在于选择模型时,需要同时考虑模型的预测精度和可解释性,并尽量找到二者之间的最佳平衡,它不像传统黑盒模型仅考虑预测精度这一单项指标(如低MSE或高AUC);它不仅能给出模型的预测值,还能给出得到该预测值的理由,进而实现模型的安全、透明和公平等特性。
可解释机器学习的思想是在选择模型时,同时考虑模型的预测精度和可解释性,并尽量找到二者之间的最佳平衡。根据不同的使用场景和使用人员,我们大致可以将模型的可解释性作以下分类。
内在可解释(Intrinsic Interpretability)指的是模型自身结构比较简单,使用者可以清晰地看到模型的内部结构,模型的结果带有解释的效果,模型在设计的时候就已经具备了可解释性。如决策树模型,从决策树的输出结果中我们可以清楚地看到,特征在不同取值的情况下,预测值存在差异。常见的内在可解释模型有逻辑回归、深度较浅的决策树模型(最多不超过4层)等。通常只是给出预测值,这时候模型是不具备可解释性的。
事后可解释是指在模型训练完之后,通过不同的事后解析方法提升模型的可解释性。 例如利用事后解析的方法可以对不同的模型识别结果给出不同的理由:根据吉他的琴颈识别出电吉他,根据琴箱识别出木吉他,根据头部和腿部识别出拉布拉多。常用的事后解析方法有可视化、扰动测试、代理模型等。
对于模型使用者来说,不同场景对解释的需求也有所不同。对于整个数据集而言,我们需要了解整体的预测情况;对于个体而言,我们需要了解特定个体中预测的差异情况。
局部解释指的是当一个样本或一组样本的输入值发生变化时,解释其预测结果会发生怎样的变化。 例如,在银行风控系统中,我们需要找到违规的客户具备哪个或哪些特征,进而按图索骥,找到潜在的违规客户;当账户金额发生变化时,违规的概率会如何变化;在拒绝了客户的信用卡申请后,我们也可以根据模型的局部解释,向这些客户解释拒绝的理由。
全局解释指的是整个模型从输入到输出之间的解释,从全局解释中,我们可以得到普遍规律或统计推断,理解每个特征 对模型的影响。 例如,吸烟与肺癌相关,抽烟越多的人得肺癌的概率越高。全局解释可以帮助我们理解基于特征的目标分布,但一般很难获得。人类能刻画的空间不超过三维,一旦超过三维空间就会让人感觉难以理解,我们很难用直观的方式刻画三维以上的联合分布。因此一般的全局解释都停留在三维以下,比如,加性模型(Additive Model)需要在保持其他特征不变的情况下,观察单个特征与目标变量的关系;树模型则是将每个叶节点对应的路径解释为产生叶节点结果的规则。
以上的解释主要参考了《可解释机器学习:模型、方法与实践》一书,该书不仅解释了重要的可解释机器学习的方法(该领域的方法还在不断发展过程中),还配有相应的编程实现(Python)。另外一本书《可解释机器学习:黑盒模型可解释性理解指南》则侧重于介绍可解释机器学习的理论,没有具体的代码实现,但介绍了R语言和Python中哪些包(库)可以用,书中的图都是用R语言画的。
参考资料: