机器学习模型可解释的重要及必要性
由iquant创建,最终由iquant 被浏览 390 用户
导语
不管你是管理自己的资金还是客户资金,只要你在做资产管理,每一步的投资决策都意义重大,做技术分析或基本面分析的朋友很清楚地知道每一个决策的细节,但是通过机器学习、深度学习建模的朋友可能就会很苦恼,因为直接产出决策信号的模型可能是个黑盒子,很难明白为什么模型会产出某一个信号,甚至很多保守的私募基金把模型的可解释性放入了事前风控。其实,模型的可解释性是很容易做到的,难点在于研究员是否对模型有深入的思考和理解。
介绍
机器学习领域在过去十年中发生了显著的变化。从一个纯粹的学术和研究领域方向开始,我们已经看到了机器学习在各个领域都有着广泛的应用,如零售,技术,医疗保健,科学等等。在21世纪,数据科学和机器学习的重要目标已经转变为解决现实问题,自动完成复杂任务,让我们的生活变得更加轻松,而不仅仅是在实验室做实验发表论文。机器学习,统计学或深度学习模型工具已基本成型。像Capsule Networks这样的新模型在不断地被提出,但这些新模型被工业采用却需要几年时间。因此,在工业界中,数据科学或机器学习的主要焦点更多在于应用,而不是理论。这些模型可以在正确数据上有效应用来解决现实问题是至关重要的。
机器学习模型本质上就是一种算法,该算法试图从数据中学习潜在模式和关系,而不是通过代码构建一成不变的规则。所以,解释一个模型是如何在商业中起作用总会遇到一系列挑战。在某些领域,特别是在金融领域,比如保险、银行等,数据科学家们通常最终不得不使用更传统更简单的机器学习模型(线性模型或决策树)。原因是模型的可解释性对于企业解释模型的每一个决策至关重要。然而,这常常导致在性能上有所牺牲。复杂模型像如集成学习和神经网络通常表现出更好更精准的性能(因为真实的关系在本质上很少可以通过线性划分的),然而,我们最终无法对模型决策做出合适的解释。为了解决和探讨这些差距,本文中,我会重点解释模型可解释性的重要及必要性。
动机
作为一名在企业工作的数据科学家并时常指导他人,我发现数据科学仍然常常被视为一个黑盒,它能用“魔法”或“炼金术”提供人们想要的东西。然而,严酷的现实是,如果不对模型进行合理足够的解释,现实世界的项目很少成功。如今,数据科学家通过构建模型并为业务提供解决方案。企业可能不知道模型实现的复杂细节,却要依靠这些模型做出决策,他们确实有权提出这样的问题:“我怎样才能相信你的模型?”或“你的模型是如何决策的”?”回答这些问题是数据科学实践者和研究人员数年来一直在尝试的事情。
数据科学家知道,模型解释性与模型性能之前有一个权衡。在这里,模型性能不是运行时间或执行性能,而是模型在做出预测时的准确度。有几种模型(包括简单的线性模型甚至基于树的模型),他们的预测的原理很好直观理解,但是需要牺牲模型性能,因为它们的产生的结果偏差或者方差很高(欠拟合:线性模型),或者容易过拟合(基于树的模型)。更复杂的模型,如集成模型和近期快速发展的深度学习通常会产生更好的预测性能,但被视为黑盒模型,因为要解释这些模型是如何真正做出决策是一件非常困难的事情。 虽然有些人说,知道模型性能好就行了,为什么还要知道它背后的原理呢? 然而,作为人类,大多数决策基于逻辑和推理。 因此,人工智能(AI)作出决策的模式无疑会受到怀疑。 在很多现实情况下,有偏差的模型可能会产生真正的负面影响。 这包括预测潜在的犯罪、司法量刑、信用评分、欺诈发现、健康评估、贷款借款、自动驾驶等,其中模型的理解和解释是最重要的。 数据科学家、作家Cathy O’ Neil在她的著名著作《Weapons of Math Destruction》中也强调了这一点。
著名学者和作家凯特克劳福德在NIPS 2017主题演讲《The Trouble with Bias》中谈到了偏差在机器学习中的影响以及它对社会的影响。
有兴趣的读者也可以看看她在纽约时报的著名文章《 Artificial Intelligence’s White Guy Problem》,向我们展示了机器学习应用的案例,包括图像分类、犯罪风险预测、交付服务可用性等等,这些应用对黑人极不亲善。 如果我们想利用机器学习来解决这些问题,所有这些真实世界的场景都在告诉我们模型解释是多么的重要。
在过去的一年里,我在解决行业问题的同时也看到了对模型解释的需求,同时我也在写我的新书《Practical Machine Learning with Python》。在这段时间里,我有机会与DataScience.com的优秀员工进行互动,他们非常清楚在机器学习模型中人类可解释性的必要性和重要性。他们也一直在积极研究解决方案,并开发了流行的python框架Skater。后续我们将深入研究Skater,并在本系列文章中做一些实际的模型解释。
理解模型解释
机器学习(尤其是深度学习)仅在最近几年才得到广泛的行业采用。因此,模型解释作为一个概念仍然主要是理论和主观的。
任何机器学习模型都有一个响应函数,试图映射和解释自(输入)变量和因(目标或响应)变量之间的关系和模式。
模型解释试图理解和解释响应函数做出的这些决定。模型解释的关键在于透明度以及人们理解模型决策的容易程度。模型解释的三个最重要的方面解释如下。
- 什么主导了模型预测? 我们应该找出特征的相互作用,以了解在模型的决策策略中哪些特征可能是重要的。这确保了模型的公平性。
- 为什么模型做出某个特定决策? 我们还应该能够验证为什么某些关键特征在预测期间推动某个模型所做出的某些决定。这确保了模型的可靠性。
- 我们如何相信模型预测? 我们应该能够评估和验证任何数据点以及模型如何作出决策。对于模型按预期运行的直接利益相关者来说,这应该是可证明的,并且易于理解。这确保了模型的透明度。
可解释性是指人(包括机器学习中的非专家)能够理解模型在其决策过程中所做出的选择(怎么决策,为什么决策和决策了什么)。
在模型比较时,除了模型的性能,如果一个模型的决策比另一个模型的决策更容易被人类理解,则说该模型比另一个模型具有更好的可解释性。
模型解释的重要性
在解决机器学习问题时,数据科学家通常倾向于注意模型性能指标,如准确性、精确度和召回率等(毫无疑问,这很重要!)。但是,度量标准只能说明模型预测性决策的一部分内容。随着时间的推移,由于环境中各种因素造成的模型概念漂移,性能可能会发生变化。因此,了解什么促使模型作出某些决定是极为重要的。
我们中的一些人可能会认为模型已经工作得很好了,为什么还要深入挖掘呢?一定要记住,当解决现实世界中的数据科学问题时,为了让企业相信你的模型预测和决策,他们会不断提问“我为什么要信任你的模型?”,这非常合理。如果一个人患有癌症或糖尿病,如果一个人可能对社会构成风险,或者即使客户流失,您是否会满意于只是预测和做出决定(如何)的模型?也许另外一种会更好,如果我们可以更多地了解模型的决策过程(为什么以及如何),我们可能更喜欢它。这为我们提供了更多的透明度,说明为什么模型会做出某些决定,在某些情况下可能会出错,并且随着时间的推移它可以帮助我们在这些机器学习模型上建立一定的信任度。
这一部分关键的一点是,现在是时候停止将机器学习模型视为黑盒子,不仅尝试和分析数据,而且还要分析模型如何做出决策。实际上,走向这条道路的一些关键步骤是由著名论文《Why Should I Trust You?》(解释了任意分类器的预测)”开始的,由MT Ribeiro,S. Singh和C. Guestrin在SIGKDD 2016上介绍了LIME(Local Interpretable Model-Agnostic Explanations)(局部可解释模型 - 不可知论解释)的概念。
他们在论文中提到了一些值得记住的关键点。
然而,理解预测背后的原因在评估信任方面非常重要,如果计划基于预测采取行动,或者选择是否部署新模型,则对模型的信任是至关重要的。 无论人类是直接使用机器学习分类器作为工具还是在其他产品中部署模型,仍然存在一个至关重要的问题:如果用户不信任模型或预测,他们将不会使用它。
这是我们在本文中多次讨论的内容,也是决定数据科学项目在业界成功与否的关键因素之一。这就推动了模型解释的必要性和重要性。
模型解释方法的标准
对于模型解释方法的分类有特定的标准。在Christoph Molnar的“Interpretable Machine Learning,Making Guide for Making Black Box Models Explainable”中提到了一个很好的指导标准:
- 内在或事后? 内在解释性是关于利用机器学习模型的,它本质上是解释性的(像线性模型、参数模型或基于树的模型)。事后解释性意味着选择和训练一个黑盒模型(集成方法或神经网络)并在训练后应用可解释性方法(特征重要性,部分依赖关系图)。我们将在我们的系列文章中更多地关注事后模型可解释的方法。
- 是针对某个模型的还是通用的? 特定于模型的解释工具对固有模型解释方法非常具体,这些解释方法完全取决于每个模型的能力和特征。这可以是系数,p值,与回归模型相关的AIC分数,决策树的规则等等。通用的模型解释方法还是依赖于事后对模型的分析,可用于任何机器学习模型。通常通过分析特征输入和输出对来运行。根据定义,这些方法无法访问任何模型内部,如权重,约束或假设。
- 本地还是全局? 这种解释的分类会谈到解释方法是解释单个预测还是整个模型行为?或者如果范围介于两者之间?我们将尽快讨论更多关于局部和全局的解释。
这并不是对可解释方法进行分类的一套完整的标准,因为这仍然是一个新兴的领域,但这可以是一个很好的标准,可以在多种方法之间进行比较和对比。
模型解释的范围
我们如何界定解释的范围和界限?一些有用的方面可以是模型的透明度,公平性和可靠性。本地还是全局模型解释是定义模型解释范围的明确方法。
全局解释性
这就是要试图理解“模型如何做出预测?”和“模型的子集如何影响模型决策?”。为了一次理解和解释整个模型,我们需要全局解释。全局可解释性是指能够基于完整数据集上的依赖(响应)变量和独立(预测)特征之间的条件相互作用来解释和理解模型决策。试图理解特征的相互作用和重要性,往往是理解全局解释的好的一步。当然,在尝试分析交互时,在超过两个或三个维度后对特征进行可视化变得非常困难。因此,经常查看可能会影响全局知识模型预测的模块化部分和特征子集,对全局解释是有所帮助的。完整的模型结构知识,假设和约束是全局解释所必需的。
局部解释性
这就是要了解“为什么模型会为单个实例做出特定决策?”以及“为什么模型会为一组实例做出特定决策?”。对于局部的可解释性,我们不关心模型的内在结构或假设,我们把它当作一个黑箱子。为了理解单个数据点的预测决策,我们专门关注该数据点,并在该点附近的特征空间中查看局部子区域,并尝试根据此局部区域了解该点的模型决策。局部数据分布和特征空间可能表现完全不同,并提供更准确的解释而不是全局解释。局部可解释模型 - 不可知论解释(LIME)框架是一种很好的方法,可用于模型不可知的局部解释。我们可以结合使用全局解释和局部解释来解释一组实例的模型决策。
模型透明度
这就是要了解“从算法和特征中创建模型的过程如何?”。我们知道,典型的机器学习模型都是关于利用一个算法在数据特征之上构建一个表示,将输入映射到潜在的输出(响应)。模型的透明性可以尝试理解模型如何构建的更多技术细节,以及影响其决策的因素。这可以是神经网络的权值,CNN滤波器的权值,线性模型系数,节点和决策树的分割。然而,由于企业对这些技术细节可能并不十分熟悉,试图用不可知的局部和全局解释方法来解释模型决策有助于展示模型的透明度。
结论
模型可解释是一个对现实世界机器学习项目非常重要的一件事情。让我们试着去研究人类可解释的机器学习,让每个人都打开机器学习模型的黑箱,并帮助人们增加对模型决策的信任。
写在最后:模型解释性很重要,这能够加深我们对模型的信心,尤其是在金融市场中,当模型持续回撤时,信心比黄金还重要。之前有一个私募团队使用了StockRanker策略,但是迟迟不肯上实盘,后来在弄清楚模型的理论原理和每一步细节、处理流程后,终于有信心上实盘,实盘前期遇到回撤也能明白是正常情况,并非模型预测失效,扛住前期的回撤后策略净值开始上升。因此,机器学习模型可解释很重要,模型也是可以解释的,只是需要研究员付出更多的心血。
参考资料
- 《Human Interpretable Machine Learning (Part 1) — The Need and Importance of Model Interpretation》
- 一文深入理解机器学习模型的可解释性的必要性和重要性
\