# 第二章 解释性

对可解释性没有是数学定义的。Miller（2017）[$ ^3 $](https://christophm.github.io/interpretable-ml-book/#fn3%20class=)对（非数学）的定义是：**可解释性是指人们能够理解决策原因的程度**。另一种说法是：**可解释性是指一个人能够一直预测模型结果的程度**[$^4$](https://christophm.github.io/interpretable-ml-book/#fn4%20class=)。机器学习模型的可解释性越高，就越容易理解为什么做出某些决定或预测。如果一个模型的决策比另一个模型的决策能让人更容易理解，那么它就比另一个模型有更高的解释性。我将在后文中同时使用可解释性(interpretable)和可说明性(explainable)这两个术语。像 Miller（2017）一样，我认为区分术语可解释性(interpretable)/可说明性(explainable)和说明性(explanation)是有意义的。我将使用“说明性”来代表对个别预测的说明。请参阅[有关解释的部分](https://christophm.github.io/interpretable-ml-book/explanation.html#explanation)，以了解什么是我们所认为的好的可说明性。

$ ^3 $ 米勒，蒂姆。“人工智能的解释：社会科学的洞察”，arxiv：1706.07269。（2017 年）。

$ ^4 $ Kim、Be、Rajiv Khanna 和 Oluwasanmi O.Koyejo。“例子不够，要学会批判！对可解释性的批评，《神经信息处理系统的进展》（2016 年）。

## 2.1 可解释性的重要性


如果一个机器学习模型运行良好，**为什么我们不相信这个模型**从而无视它**为什么**做出一个明确的决定呢？“问题在于，单一指标（如分类精度）对大多数现实任务是不完整的描述。”（Doshi Velez 和 Kim 2017 [$^5$](https://christophm.github.io/interpretable-ml-book/#fn5%20class=)）

让我们更深入地讨论解释性如此重要的原因。当涉及到预测建模时，你必须权衡一下：你只是想知道预测的结果**是什么**吗？例如，客户流失的概率或某些药物对患者的疗效。或者，你想知道**为什么**会做出这样预测，并且可能会为可解释性付出预测性能下降的代价吗？在某些情况下，你不关心做出决定的原因，只需知道测试数据集的预测性能不错就足够了。但在其他情况下，了解“为什么”可以帮助你了解更多关于问题、数据以及模型可能失败原因的信息。有些模型可能不需要可解释性，因为它们在低风险环境中使用，这意味着错误不会产生严重后果（例如电影推荐系统），或者该方法已经被广泛研究和评价（例如光学字符识别ocr）。对可解释性的需求来自问题形式化的不完整性（Doshi Velez 和 Kim 2017），这意味着对于某些问题或任务，获得预测结果是不够的（**是什么，what**）。模型还必须解释它是如何得出预测的（**为什么，why**），因为正确的预测只部分地解决了最初的问题。以下原因推动了对可解释性和可说明性的需求（Doshi Velez 和 Kim 2017 和 Miller 2017）。

**人类的好奇心和学习能力**：人类有一个对环境的心理学模型，当一些意想不到的事情发生时，这个模型就会被更新。通过为意外事件找到说明（explaination）来进行模型更新。例如，一个人突然感到不舒服，他问：“为什么我感到这么不舒服？“。他知道每次吃那些红色浆果他都会生病。他更新了他的心理模型，并决定浆果导致了疾病，因此应该避免。当研究中使用不透明的机器学习模型时，如果模型只给出没有解释的预测，那么科学发现将仍是完全不可知的。为了促进学习与满足好奇心，为什么某些预测或行为是由机器产生的，可解释性和可说明性是至关重要的。当然，人类不需要对所发生的一切进行解释。对于大多数人来说，他们可以不理解计算机是如何工作的的。意外事件使我们好奇。例如：为什么我的计算机意外关闭？

与学习密切相关的是人类在世界上**寻找意义的愿望**。我们希望协调我们知识结构要素之间的矛盾或不一致。“为什么我的狗会咬我，尽管它以前从来没有这样做过？”一个人可能会这样问。狗过去的行为与新发生的、令人不快的咬伤经历之间存在着矛盾。兽医的解释调和了狗主人的矛盾：“那只狗因为紧张而咬人。”机器的决策对人的生活影响越大，机器对它行为的解释就越重要。如果机器学习模型拒绝贷款申请，这对于申请者来说可能是完全意外的。他们只能用某种说法来调和期望和现实之间的这种不一致。这些说法实际上并不需要完全说清楚情况，但应该至少提供一个主因。另一个例子是算法产品推荐。就我个人而言，我总是想，为什么某些产品或电影在算法上被推荐给我。通常情况很清楚：网络上的广告跟踪着我，因为我最近买了一台洗衣机，我知道在接下来的几天里，洗衣机广告会推送给我。是的，如果我的购物车里已经有一顶冬帽，建议戴手套是合理的。算法推荐这部电影，因为我喜欢的其他电影的用户也喜欢这部电影。越来越多的互联网公司在他们的推荐中增加了解释。亚马逊产品推荐就是一个很好的例子，它基于经常购买的产品组合：

![img](https://christophm.github.io/interpretable-ml-book/images/amazon-freq-bought-together.png)

图 2.1：从亚马逊购买油漆时的推荐产品。

在许多科学学科中，从定性方法到定量方法都发生了变化（例如社会学、心理学），以及机器学习（生物学、基因组学）。**科学的目标**是获取知识，但是许多问题都是通过大数据集和黑盒机器学习模型来解决的。模型本身应该成为知识的来源，而不是数据。可解释性使得提取模型获得额外知识成为一种可能。

机器学习模型承担需要**安全措施**和测试的实际任务。想象一下，一辆自动驾驶的汽车根据深度学习系统自动检测骑自行车的人。希望 100%地确定系统所学的抽象是无错误的，因为汽车直接碾过骑车人是非常糟糕的。一种说明性可能会揭示，最重要的学习特征是识别自行车的两个轮子，这种说明性可以帮助您思考极端情况，例如自行车的侧袋部分挡住了车轮。

默认情况下，机器学习模型从训练数据中学习到了某种倾向。这可能把你的机器学习模式变成歧视受保护群体的种族主义者。可解释性是机器学习模型中一种有效**检测倾向**的调试工具。训练好的自动批准或拒绝信用申请的机器学习模型可能会歧视少数人。你的主要目标是只向最终会偿还贷款的人提供贷款。在这种情况下，问题表述的不完整性在于，不仅想要最小化贷款违约，而且也有义务不根据某些人口统计数据加以区分。这是问题公式（以低风险和合规的方式发放贷款）中的一个附加约束，而机器学习模型优化所针对的损失函数没有涵盖这一约束。

将机器和算法整合到日常生活中的过程需要可解释性，以增加**社会认可度**。人们把信仰、欲望、意图等归因于物体。在一个著名的实验中，海德和西梅尔（1944 年）[$^6$](https://christophm.github.io/interpretable-ml-book/#fn6%20class=)向参与者展示了一些形状的视频，其中一个圆圈打开一扇“门”进入一个“房间”（只是一个长方形）。参与者描述了形状的动作，就像他们描述人的行为一样，为形状分配了思想，甚至情感和个性特征。机器人就是一个很好的例子，就像我的吸尘器，我把它命名为“Doge”。如果Doge被卡住了，我想：“Doge 想继续打扫，但它因为卡住了而向我求助。”后来，当Doge打扫完并寻找插座重新充电时，我想：“Doge想重新充电，并打算找到插座。”我还给它赋予性格特征：“Doge有点笨，但很可爱。”这些是我的想法，尤其是当我发现Doge在尽职地打扫房子的时候撞倒了一棵植物时。能解释其预测机制的机器或算法会得到更多的认可。另见[解释章节](https://christophm.github.io/interpretable-ml-book/explanation.html#explanation)，它认为解释是一个社会化过程。

解释被用于**管理社会互动**中。通过创造某个事物的共同意义，解释者影响着接受解释者的行为、情感和信念。对于一个要与我们交互的机器，它可能需要塑造我们的情感和信念。机器必须“说服”我们，这样它们才能达到预期的目标。如果我的扫地机器人没有在某种程度上解释它的行为，我不会完全接受它。扫地机器人创造了一个共同的意义，例如，“事故”（再次被困在浴室地毯上……），解释说它被卡住了，而不是简单地停止工作而不发表评论。有趣的是，解释机器（创建信任）的目标和接收者的目标（理解预测或行为）之间可能存在偏差。也许对Doge被卡住的原因的完整解释可能是电池电量非常低，其中一个轮子工作不正常，还有一个bug让机器人即使有障碍物也一次又一次地走到同一个地方。这些原因（还有其他一些）导致机器人被卡住，但它只解释了有什么东西挡在路上，这足以让我相信它的行为，并得到事故的共同含义。顺便说一下，Doge又被困在浴室里了。我们每次都要把地毯拆下来，然后让Doge清理。

![img](https://christophm.github.io/interpretable-ml-book/images/doge-stuck.jpg)

图 2.2：我们的真空吸尘器Doge卡住了。作为事故的解释，Doge告诉我们，它需要在一个平面上。

机器学习模型只有在可以解释时才能进行**调试和审核**。即使在低风险环境中，例如电影推荐，在研究和开发阶段以及部署之后，解释能力也是很有价值的。之后，当一个模型用于一个产品时，事情可能会出错。对错误预测的解释有助于理解错误的原因。它为如何修复系统提供了方向。考虑一个哈士奇与狼分类器的例子，它将一些哈士奇误认为是狼。使用可解释的机器学习方法，您会发现错误分类是由于图像上的雪造成的。分类器学会了使用雪作为一个特征来将图像分类为“狼”，这对于在训练数据集中分离狼和哈士奇可能是有意义的，但在实际应用中却没有意义。

如果您能够确保机器学习模型能够解释决策，您还可以更容易地检查以下特征（Doshi Velez 和 Kim 2017）：

- 公平性：确保预测是公正的，不隐含或明确地歧视受保护的群体。可解释的模型可以告诉你为什么它决定了一个人不应该得到贷款，而且对于一个人来说，判断这个决定是否基于学习人口统计学（如种族）的偏见会变得更容易。
- 隐私：确保保护数据中的敏感信息。
- 可靠性或稳健性：确保输入的小变化不会导致预测发生剧烈变化。
- 因果关系：检查是否只找到因果关系。
- 信任：与黑匣子相比，人们更容易信任解释其决策的系统。

**当我们不需要解释的时候**

以下场景说明了我们何时不需要甚至不希望机器学习模型的可解释性。

如果模型**没有显著影响**，则不需要解释性。想象一下一个叫做迈克的人正在做一个机器学习方面的项目，根据 Facebook 的数据预测他的朋友们下一个假期会去哪里。迈克就是喜欢有依有据的推测朋友们会去哪里度假，从而让他的朋友们吃惊。如果模型是错误的也没有问题（最坏的情况是，迈克有点尴尬），如果迈克不能解释模型的输出，那也没有问题。在这种情况下，没有可解释性是完全可以的。如果迈克开始围绕这些度假目的地的预测建立业务，情况将会改变。如果模型是错误的，企业可能会赔钱，或者模型可能会因为种族偏见而对某些人更糟。一旦模型产生重大影响，无论是金融还是社会，可解释性就变得有关系了。

当问题**研究得很好**时，不需要解释性。一些应用已经得到了充分的研究，因此有足够的模型实践经验，随着时间的推移，模型的问题已经得到解决。一个很好的例子是光学字符识别的机器学习模型，它处理信封中的图像并提取位置。这些系统有多年的使用经验，很明显它们是有效的。此外，我们对获取有关这上面的任务的更多信息并不真正感兴趣。

可解释性可能使人或程序能够**操纵系统**。欺骗系统的用户问题是由模型的创建者和用户的目标不匹配造成的。信用评分就是这样一个系统，因为银行希望确保贷款只发放给可能归还贷款的申请人，而申请人的目标是获得贷款，即使银行不想提供给他们。这两个目标之间的不匹配鼓励申请者对系统进行博弈，以增加他们获得贷款的机会。如果申请人知道拥有两张以上的信用卡会对他的分数产生负面影响，他只需退掉第三张信用卡来提高分数，并在贷款获得批准后申请新的信用卡。虽然他的分数有所提高，但实际偿还贷款的可能性保持不变。只有当输入是因果特征的代理，而不是实际导致结果时，系统才能被欺骗。尽可能避免使用代理功能，因为它们使模型有可能被欺骗。例如，谷歌开发了一个名为“谷歌流感趋势”的系统来预测流感爆发。该系统将谷歌搜索与流感爆发相关联，但其表现不佳。搜索查询的分布发生了变化，谷歌流感趋势错过了许多次流感爆发。谷歌搜索不会引起流感。

当人们搜索“发烧”这样的症状时，这仅仅是与实际流感爆发的相关性。理想情况下，模型只使用因果特性，因为它们不可博弈。

 $^5$ Doshi Velez，终曲，曾是 Kim。“对可解释机器学习的严格科学研究”，编号：ML:1-13。（2017 年）。

 $^6$ 海德、弗里茨和玛丽安·西梅尔。“表观行为的实验研究”，《美国心理学杂志》57（2）。JSTOR:243–59。（1944 年）。

## 2.2 解释方法分类

机器学习的可解释性方法可以根据不同的标准进行分类。

**内在的还是事后的**?该标准通过限制机器学习模型（内在）的复杂性或在训练后分析模型的方法（事后）来区分是否实现了可解释性。内在可解释性是指由于结构简单而被认为是可解释的机器学习模型，如短决策树或稀疏线性模型。事后解释性是指模型训练后运用解释方法。例如，排列特征重要性是一种事后解释方法。事后处理方法也可以应用于本质上可解释的模型。例如，可以计算决策树的排列特征重要性。本书各章节的组织由[本质上可解释](https://christophm.github.io/interpretable-ml-book/simple.html#simple)和[事后（模式诊断）解释方法](https://christophm.github.io/interpretable-ml-book/agnostic.html#agnostic)之间的区别决定。

**解释方法的结果**可以根据不同的解释方法的结果进行粗略的区分。

- **特征摘要统计**：许多解释方法为每个特征提供摘要统计。有些方法为每个特征返回一个数字，例如特征重要性，或者更复杂的结果，例如成对特征交互强度，其中包含每个特征对的数字。
- **特征摘要可视化**：大多数特征摘要统计信息也可以可视化。有些特征摘要实际上只有在可视化的情况下才有意义，并且表格不能满足要求。特征的部分依赖就是这样一种情况。部分相关图是显示特征和平均预测结果的曲线。呈现部分依赖关系的最佳方法是实际绘制曲线，而不是打印坐标。

- **模型内部（例如学习的权重）**：对本质上可解释的模型的解释属于这一类。如线性模型中的权重或决策树的学习树结构（用于分割的特征和阈值）。例如，线性模型，因为权重同时是模型的内部部分和特性的汇总统计信息。输出模型内部结构的另一种方法是在卷积神经网络中学习的特征检测器的可视化。输出模型内部的可解释性方法是通过定义特定模型的方法（见下一个标准）。
- **数据点**：这个类别包括所有返回数据点(已经存在的或新创建的)以使模型可解释的方法。一种方法叫做反事实解释。为了解释对数据实例的预测，该方法通过用一些方式改变某些特征以改变预测结果（例如预测类中的翻转），找到类似的数据点。另一个例子是识别预测类的原型。为了发挥作用，输出新数据点的解释方法要求可以解释数据点本身。这对图像和文本很有效，但对于具有数百个特性的表格数据不太有用。
- **本质上可解释模型**：解释黑盒模型的一个解决方案是用可解释模型（全局或局部）对其进行近似。通过查看内部模型参数或特征摘要统计信息来解释可解释性模型本身。

**特定模型还是模型不可知**？特定于模型的解释工具仅限于特定的模型类。线性模型中回归权重的解释是特定于模型的解释，因为本质上可解释模型的解释通常是特定于模型的解释。仅用于解释如神经网络的工具是特定于模型的。与模型无关的工具可以用于任何机器学习模型，并在模型经过训练后应用(事后)。这些不可知论的方法通常通过分析特征输入和输出对来工作。根据定义，这些方法不能访问模型内部信息，如权重或结构信息。

**局部还是全局**？解释方法是否解释单个预测或整个模型行为？还是范围介于两者之间？在下一节中阅读关于范围标准的更多信息。

## 2.3 解释范围

算法训练产生预测模型。每个步骤都可以根据透明度或可解释性进行评估。

### 2.3.1 算法透明度

*算法是如何创建模型的？*

算法透明度是指算法如何从数据中学习模型，以及它可以学习到什么样的关系。如果使用卷积神经网络对图像进行分类，可以解释该算法在最底层学习边缘检测器和滤波器。这是对算法如何工作的理解，但既不是对最终学习的特定模型的理解，也不是对如何做出单个预测的理解。算法的透明性只需要对算法的了解，而不需要对数据或学习模型的了解。这本书的重点是模型的可解释性，而不是算法的透明度。对于线性模型的最小二乘法等算法已被深入地研究和理解。他们的特点是透明度高。深度学习方法（通过具有数百万权重的网络推动梯度）不太容易理解，对其内部工作机制的探究是正在进行的研究重点。它们被认为是低透明度的。

### 2.3.2  全局整体模型的可解释性

*训练好的模型如何进行预测？*

一旦你能理解整个模型，你可以将模型描述为可解释的（Lipton2016[$^7$](https://christophm.github.io/interpretable-ml-book/#fn7%20class=)）。要解释全局模型输出，你需要经过训练的模型、算法知识和数据。这种水平的可解释性是基于对模型特征和每个学习部分（如权重、其他参数和结构）的整体看法来理解模型是如何做出决策的。哪些特征很重要，它们之间有什么样的相互作用？全局模型的可解释性有助于理解基于特征的目标结果的分布。全局模型的可解释性在实践中很难实现。任何超过几个参数或权重的模型都不可能适合普通人的短期记忆。我认为你不能真正想象一个具有5个特征的线性模型，因为这意味着要在5维空间中想象绘制估计的超平面。任何超过3维的特征空间都是人类无法想象的。通常，当人们试图理解一个模型时，他们只考虑其中的一部分，例如线性模型中的权重。

### 2.3.3 模块化层面上的全局模型可解释性

*模型的某些部分如何影响预测？*

具有数百个特征的朴素贝叶斯模型对我和你来说都太大了，无法保存在我们的工作记忆中。即使我们能够记住所有的权重，我们也无法快速预测新的数据点。此外，你需要在头脑中对所有特征进行联合分布，以估计每个特征的重要性以及特征如何平均影响预测。这是一项不可能的任务。但是你能很容易理解一个权重。虽然全局模型的可解释性通常是无法达到的，但至少有机会在模块层面上理解某些模型。并非所有模型都可以在参数级别上解释。对于线性模型，可解释部分是权重，对于树来说，是分割（选定的特征加上截止点）和叶节点预测。例如，线性模型看起来似乎可以在模块化层面上完美地解释，但单个权重的解释与所有其他权重是相互关联的。对单个权重的解释总是伴随着脚注，即其他输入特征保持相同的值，这在许多实际应用中并不现实。一个预测房屋价值的线性模型，考虑到房屋的大小和房间的数量，可以对房间特征有负权重。这种情况可能发生，因为已经存在于价格高度相关的房屋大小这个特征。在一个人们更喜欢大房间的市场中，如果两个房间的大小相同的话，房间少的房子比房间多的房子更值钱。权重仅在模型中其他特征的上下文中有意义。但是，线性模型中的权重仍然可以比深层神经网络中的权重更好地解释。

### 2.3.4 单一预测的局部可解释性

*为什么模型会对一个实例做出某种预测？*

你可以着眼于一个实例，检查模型为这个输入预测了什么，并解释原因。如果你观察一个单独的预测，那么这个原本复杂的模型的行为可能表现得更为轻松。在局部，预测可能只依赖于线性或单调的某些特征，而不是对它们有复杂的依赖性。例如，房子的价值可能与它的大小成非线性关系。但是，如果您只查看一个特定的 100 平方米的房子，那么对于该数据子集，您的模型预测可能与大小成线性关系。你可以通过模拟当你增加或减少 10 平方米的尺寸时，预测的价格是如何变化的来发现这一点。因此，局部解释比全局解释更准确。本书介绍的方法，在[模型不可知方法章节](https://christophm.github.io/interpretable-ml-book/agnostic.html#agnostic)可以使个人的预测更容易解释。

### 2.3.5 一组预测的局部可解释性

*为什么模型对一组实例进行特定的预测？*

多个实例的模型预测可以用全局模型解释方法（模块级别）或单个实例的解释来解释。全局方法可以通过获取实例组、将其视为完整的数据集以及使用包含此子集的全局方法来应用。可以对每个实例使用单独的解释方法，然后为整个组列出其结果或对结果进行聚合。

$^7$ 《模型可解释性的神话》，arXiv preprint arXiv:1606.03490,（2016）。

## 2.4 可解释性评估

对于机器学习中的可解释性至今没有达成共识。如何衡量也不清楚。但有一些初步的研究，并试图制定一些评估方法，如下面的章节所述。

Doshi Velez 和 Kim（2017）提出了三个评价可解释性的主要水平：

**应用级评估（实际任务）**：将解释放入产品中，由最终用户进行测试。想象一下有机器学习组件的一个骨折检测软件，它可以定位和标记 X 光片中的骨折。在应用层面，放射科医生将直接测试骨折检测软件来评估模型。这需要一个良好的实验装置和对如何评估质量的理解。一个很好的基准是人类在解释同一个决定时的表现。

**人员级评估（简单任务）**是简化的应用程序级评估。不同的是，这些实验不是由领域专家进行的，而是由外行进行的。这使得实验更廉价（特别是如果领域专家是放射科医生的话），并且更容易找到更多的测试人员。一个例子是向用户展示不同的解释，用户会选择最好的解释。

**功能级别评估（代理任务）**不需要人工。当所使用的模型类已经由其他人在人类级别的评估中进行了评估时，这是最有效的。例如，可能知道最终用户了解决策树。在这种情况下，树的深度可能可以来表示解释质量的好坏。树越短，解释性得分越高。增加约束条件是有意义的，即与较大的树相比，树的预测性能保持良好且不会降低太多。

下一章着重于对功能级别上的单个预测的解释进行评估。我们将在评估中考虑解释的相关属性是什么？

## 2.5 解释的属性

我们要解释机器学习模型的预测。为了实现这一点，我们依赖于某些解释方法，这是一种生成解释的算法。解释通常以一种人类可理解的方式将实例的特征值与其模型预测联系起来。其他类型的解释包括一组数据实例（例如，对于 k-最近邻模型）。例如，我们可以使用支持向量机预测癌症风险并使用[局部代理方法](https://christophm.github.io/interpretable-ml-book/lime.html#lime)来解释预测结果，并使用生成决策树作为解释的局部代理方法解释预测。或者我们可以用线性回归模型代替支持向量机。线性回归模型已经配备了解释方法（权重解释）。

我们更详细地了解了解释方法和解释的属性（Robnik Sikonja 和 Bohanec，2018[$^8$](https://christophm.github.io/interpretable-ml-book/#fn8%20class=)）。这些属性可用于判断解释方法或解释的好坏。对于所有这些属性来说，如何正确地衡量它们还不清楚，因此其中一个挑战是如何正式确定它们的计算方式。

**解释方法的属性**

- **表达能力**是该方法能够产生的解释的“语言”或结构。解释方法可以生成 IF-THEN 规则、决策树、加权和、自然语言或其他东西。

- **半透明度**描述了解释方法依赖于查看机器学习模型（如其参数）的程度。例如，依赖于内在可解释模型（如线性回归模型（特定模型））的解释方法是高度透明的。方法仅依赖于操作输入和观察预测，其半透明度为零。根据具体情况，可能需要不同程度的半透明。高半透明度的优点是该方法可以依赖更多的信息来生成解释。低半透明度的优点是解释方法更易于移植。

- **可移植性**描述了机器学习模型可使用解释方法的范围。低半透明度的方法具有较高的可移植性，因为它们将机器学习模型视为黑盒。替代的模型可能是具有最高可移植性的解释方法。仅适用于递归神经网络的方法具有低可移植性。

- **算法复杂度**描述了生成解释的方法的计算复杂性。当计算时间成为生成解释的瓶颈时，必须考虑此属性。

**个别解释的性质**

- **准确度**：解释如何预测看不见的数据？如果将解释用于预测而不是机器学习模型，那么高精度尤为重要。如果机器学习模型的精度也很低，并且目标是解释黑盒模型的作用，那么低精度就很好了。在这种情况下，只有保真度才是重要的。

- **保真度**：解释与黑匣子模型的预测有多接近？高保真度是解释的重要属性之一，因为低保真度的解释对解释机器学习模型是无用的。准确度和逼真度密切相关。如果黑盒模型具有较高的精度并且解释的高保真度，说明也具有较高的精度。一些解释只提供局部保真度，这意味着解释仅与数据子集（例如[局部代理模型](https://christophm.github.io/interpretable-ml-book/lime.html#lime)）甚至只针对单个数据实例（例如[Shapley 值](https://christophm.github.io/interpretable-ml-book/shapley.html#shapley)）。

- **一致性**：在接受过相同任务训练的模型和产生类似预测的模型之间，解释有多大不同？例如，我在同一个任务上训练一个支持向量机和一个线性回归模型，两者都产生非常相似的预测。我用自己选择的方法计算解释，并分析解释有多不同。如果解释非常相似，说明是高度一致的。我发现这个属性有点棘手，因为这两个模型可以使用不同的特征，但得到相似的预测（也叫”[罗生门效应](https://en.wikipedia.org/wiki/Rashomon_effect)“。在这种情况下，高度一致性是不可取的，因为解释必须非常不同。如果模型确实依赖于相似的关系，则需要高一致性。

- **稳定性**：对类似情况的解释有多相似？虽然一致性比较模型之间的解释，但稳定性比较固定模型的类似实例之间的解释。高稳定性意味着实例特征的细微变化不会实质性改变解释（除非这些细微变化也会强烈改变预测）。缺乏稳定性可能是解释方法方差较大的结果。换句话说，解释方法受到要解释的实例的特征值的微小变化的强烈影响。缺乏稳定性也可能是由解释方法的不确定成分引起的，如数据采样步骤，就像[本地代理](https://christophm.github.io/interpretable-ml-book/lime.html#lime)方法一样。高稳定性总是可取的。

- **可理解性**：人类对解释的理解程度如何？这看起来像是许多房产中的一个，但它是房间里的大象。很难定义和衡量，但要正确处理非常重要。许多人都同意，可理解性取决于观众。衡量可理解性的想法包括测量解释的大小（线性模型中具有非零权重的特征的数量，决策规则的数量，…）或测试人们如何从解释中预测机器学习模型的行为。还应考虑解释中使用的特征的可理解性。特征的复杂转换可能比原始特征更难理解。

- **确定性**：解释是否反映了机器学习模型的确定性？许多机器学习模型只给出预测，而没有关于预测正确的模型置信度的描述。如果模型预测一个病人患癌症的概率为4%，那么另一个具有不同特征值的病人接受癌症的概率是否与4%一样确定？一个包含模型确定性的解释是非常有用的。

- **重要程度**：解释在多大程度上反映了解释的特征或部分的重要性？例如，如果生成决策规则作为对单个预测的解释，那么是否清楚该规则的哪些条件最重要？

- **新颖性**：解释是否反映了待解释的数据实例来自远离训练数据分布的“新”区域？在这种情况下，模型可能不准确，解释可能毫无用处。新颖性的概念与确定性的概念有关。新颖性越高，由于缺乏数据，模型的确定性就越低。

- **代表性**：一个解释包括多少个实例？解释可以覆盖整个模型（例如线性回归模型中的权重解释），也可以只表示单个预测（例如[Shapley 值](https://christophm.github.io/interpretable-ml-book/shapley.html#shapley)）。

$^8$  Robnik Sikonja、Marko 和 Marko Bohanec。“基于扰动的预测模型解释”，人类和机器学习。施普林格，查姆。159-175 页。（2018 年）。

## 2.6 人性化解释

让我们更深入地挖掘并发现我们人类所认为的“好的”解释以及对可解释机器学习的影响。人文科学研究可以帮助我们找到答案。Miller（2017）对有关解释的出版物进行了大量调查，本章以他的总结为基础。

在这一章中，我想让你相信以下几点：作为一个事件的解释，人类更喜欢简短的解释（只有1或2个原因），将当前的情况与事件不会发生的情况进行对比。特别是异常原因提供了很好的解释。解释是解释者与被解释者（接受解释者）之间的社会互动，因此社会语境对解释的实际内容有很大的影响。

当你需要一个特定的预测或行为的所有因素的解释时，你不需要一个人类友好的解释，而是一个完全的因果归因。如果法律要求您指定所有影响功能或调试机器学习模型，则可能需要因果属性。在这种情况下，忽略以下几点。在所有其他情况下，当外行或时间很少的人是解释的接受者时，下面的部分对您来说应该很有趣。

### 2.6.1 什么是解释？

解释是为什么问题的答案（Miller，2017 年）。

•  为什么治疗不起作用？

•  为什么我的贷款被拒绝了？

•  为什么外星人还没有联系我们？

前两个问题可以用“日常”的解释来回答，而第三个问题则来自“更普遍的科学现象和哲学问题”。我们关注“日常”类型的解释，因为这些解释与可解释机器学习相关。以“如何”开头的问题通常可以改为“为什么”问题：“我的贷款是如何被拒绝的？“可以变成”为什么我的贷款被拒绝了？“。

在下文中，“解释”一词是指解释的社会和认知过程，也指这些过程的产物。解释者可以是人或机器。

### 2.6.2 什么是好的解释？

本节进一步浓缩了米勒关于“好”解释的总结，并为可解释机器学习添加了具体含义。

**解释具有对比性**（Lipton，1990 年）。人类通常不会问为什么会做出某种预测，但会问为什么会做出这种预测而不是另一种预测。我们倾向于在反事实的情况下思考，即“如果输入 x 不同，预测会是怎样的？”。对于房价预测，业主可能会感兴趣，为什么预测价格比他们预期的低价格高。如果我的贷款申请被拒绝，我不想听到所有的支持或反对的因素。我对申请中需要更改才能获得贷款的因素感兴趣。我想知道我的申请和我的能被接受的申请版本之间的对比。认识到对比解释的重要性是可解释机器学习的一个重要发现。从大多数可解释的模型中，你可以提取一个解释，它隐式地将实例的预测与人工数据实例的预测或实例的平均值进行对比。医生可能会问：“为什么这种药对我的病人不起作用？”。他们可能需要一种解释，将他们的患者与药物作用的患者以及与药物不作用的患者进行对比。对比解释比完整解释更容易理解。医生对药物为什么不起作用的问题的一个完整解释可能包括：病人已经有10年的疾病，11个基因过度表达，病人身体很快将药物分解成无效的化学物质，…一个对比的解释可能是更简单：与有反应的患者相比，无反应的患者具有一定的基因组合，使药物的疗效降低。最好的解释是强调感兴趣的对象和参考对象之间最大的差异。

**这对于可解释机器学习意味着什么**：人类不希望对预测有一个完整的解释，而是希望将不同之处与另一个实例的预测（可以是人工的）进行比较。创建对比解释依赖于应用程序，因为它需要一个参考点来进行比较。这可能取决于要解释的数据点，也取决于接收解释的用户。一个房价预测网站的用户可能想得到一个与他们自己的房子或网站上的另一个房子或附近的一个普通房子的房价预测对比的解释。自动创建对比解释的解决方案还可能涉及在数据中查找原型或原型。

**选择解释**。人们不希望对事件的实际原因和完整原因进行解释。我们习惯于从各种可能的原因中选择一个或两个原因作为解释。作为证据，打开电视新闻：“股票价格的下跌被归咎于由于最新软件更新的问题而对该公司产品越来越强烈的反弹。”

“朱巴萨和他的球队因为防守薄弱而输掉了比赛：他们给对手太多的空间来发挥他们的战略。”

“对既定机构和政府越来越不信任是降低选民投票率的主要因素。”

一个事件可以由各种原因解释的事实被称为罗生门效应（Rashomon Effect）。罗生门是一部日本电影，讲述了一个武士死亡的另类、矛盾的故事（解释）。对于机器学习模型，如果能从不同的特性做出一个好的预测是有利的。将多个模型与不同的特性（不同的解释）结合在一起的集成方法通常表现良好，因为对这些“故事”进行平均可以使预测更加可靠和准确。但这也意味着有不止一个选择性的解释为什么做出了某种预测。

**它对可解释机器学习意味着什么**：解释要简短，只给出1到3个原因，即使世界更复杂。这个做得很好。

**解释是社会性的**。它们是解释者和解释接受者之间对话或互动的一部分。社会语境决定了解释的内容和性质。如果我想向技术人员解释为什么数字加密货币价值如此之高，我会这样说：“分散的、分布式的、基于区块链的账本，不能由一个中央实体控制，与那些想确保财富安全的人产生共鸣，这就解释了。但对我的祖母，我会说：“看，奶奶：加密货币有点像电脑黄金。人们喜欢并花很多钱买黄金，年轻人喜欢并花很多钱买电脑黄金。”

**它对可解释机器学习意味着什么**：注意机器学习应用程序的社会环境和目标受众。正确使用机器学习模型的社会部分完全取决于您的具体应用。找人文学科的专家（如心理学家和社会学家）来帮助你。

**解释的重点是异常**。人们更关注异常原因来解释事件（Kahnemann 和 Tversky，1981 年）。这些都是发生概率很小但仍然发生的原因。消除这些异常原因将大大改变结果（反事实解释）。人类认为这些“异常”原因是很好的解释。Trumbelj 和 Kononenko（2011）的一个例子是：假设我们有教师和学生之间的测试情况数据集。学生们参加一门课程，并在成功做一个演示后直接通过该课程。老师可以额外选择通过问学生问题的方式来测试学生的知识。回答不上这些问题的学生将不及格。学生有不同程度的考前复习，这转化为正确回答老师问题的概率（如果老师决定这样测试学生）。我们要预测一个学生是否会通过这门课，并解释我们的预测。如果老师没有提出任何额外的问题，通过的概率是100%，否则通过的概率取决于学生的准备水平和正确回答问题的概率。

情景 1：教师通常会向学生提出额外的问题（例如，100次中有95次）。一个没有学习的学生（10%的机会通过问题部分）他不幸得到了额外的问题，但他没有正确回答。学生为什么不及格？我想说不学习是学生的错。

情景 2：教师很少问其他问题（例如，100次中有2次）。对于一个没有为这些问题学习过的学生来说，我们预测通过课程的可能性很高，因为提额外问题不太可能。当然，其中一个学生没有准备好这些问题，这给了他10%的机会通过这些问题。他很不走运，老师又问了一些学生不能回答的问题，结果他没能通过这门课。失败的原因是什么？我认为现在更好的解释是“因为老师测试了学生”。老师不太可能考试，所以老师表现异常。

**这对于可解释机器学习意味着什么**：如果一个预测的输入特征在任何意义上都是异常的（比如分类特征的一个罕见类别），并且该特征影响了预测，那么应该将其包括在解释中，即使其他“正常”特征具有对预测的影响与异常预测相同。在我们的房价预测例子中，一个不正常的特征可能是一个相当昂贵的房子有两个阳台。即使某些归因方法发现，这两个阳台的价格差异与上述平均住房面积、良好的邻里环境或最近的装修一样大，但“两个阳台”的异常特征可能是解释为什么房子如此昂贵的最好解释。

**解释是真实的**。事实证明，好的解释是真实的（即在其他情况下）。但令人不安的是，这并不是“好”解释的最重要因素。例如，选择性似乎比真实性更重要。仅选择一个或两个可能原因的解释很少涵盖相关原因的完整列表。选择性忽略了部分事实。例如，只有一个或两个因素导致了股市崩溃，这是不正确的，但事实是，有数百万个原因影响了数百万人的行为，最终导致了股市崩溃。

**它对可解释机器学习意味着什么**：解释应该尽可能真实地预测事件，在机器学习中有时被称为**逼真度**。所以如果我们说第二个阳台增加了一套房子的价格，那么这也应该适用于其他的房子（或者至少是类似的房子）。对人类来说，解释的逼真度不如它的选择性、对比度和社会方面重要。

**好的解释与被解释者先前的信仰是一致的**。人类往往忽视与他们先前信仰不一致的信息。这种效应被称为确认偏差（Nickerson，1998 年）。这种偏袒并不能免除解释的责任。人们往往会贬低或忽视与他们的信仰不一致的解释。这套信仰因人而异，但也有基于群体的先验信仰，如政治世界观。

**它对可解释机器学习意味着什么**：良好的解释与先前的信念是一致的。这很难整合到机器学习中，可能会大大降低预测性能。我们先前认为房屋大小对预测价格的影响是，房屋越大，价格越高。假设一个模型也显示了房屋大小对一些房屋的预测价格的负面影响。模型之所以了解这一点，是因为它提高了预测性能（由于一些复杂的交互作用），但这种行为与我们先前的信念强烈矛盾。您可以强制执行单调性约束（一个特征只能影响一个方向的预测），或者使用类似具有此属性的线性模型的东西。

**好的解释是普遍性的和可能的**。一个可以解释许多事件的原因是非常普遍的，可以被认为是一个很好的解释。请注意，这与异常原因能够做出良好解释的说法相矛盾。正如我所见，不正常的原因胜过一般的原因。根据定义，在给定的情况下，异常原因是罕见的。在没有异常事件的情况下，一般的解释被认为是一个很好的解释。还请记住，人们往往会误判联合事件的概率。（乔是图书管理员。他更可能是一个害羞的人还是一个喜欢读书的害羞的人？一个很好的例子是“房子之所以昂贵是因为它很大”，这是一个非常普遍的，很好的解释为什么房子昂贵或便宜。

**它对可解释机器学习意味着什么**：普遍性可以很容易地通过特征的支持来衡量，即解释应用到的实例数除以实例总数。



\1.    彼得·利普顿。“对比解释”，《皇家哲学研究所补编》27（1990）：247-266。

\2.    卡尼曼、丹尼尔和阿莫斯·特沃斯基。“模拟启发式”，斯坦福大学 CA 心理学系。（1981 年）。

\3.    _Trumbelj、Erik 和 Igor Kononenko。“一种可视化和解释黑盒回归模型的一般方法”，在国际自适应和自然计算算法会议上，21-30。斯普林格。（2011 年）。

\4.    确认偏差：在许多方面普遍存在的现象〉，《普通心理学评论》2（2）。教育出版基金会：175。（1998 年）。