局部可理解的与模型无关的解释(LIME)技术介绍
一种解释任何机器学习分类器的预测的技术

机器学习是近来许多科学和技术进步的核心。随着计算机在诸如围棋比赛中战胜人类专业选手等案例里所展现出的进步,许多人开始思考机器能否成为更好的司机或更好的医生。

在机器学习的许多应用中,用户常常被要求信任那些帮助他们进行决策的模型。但医生肯定不能仅仅依据“模型就是这样说的”来给病人动手术。即使是在低风险的场景里,比如在 Netflix 上选择一部电影观看,我们也需要某种程度的信任来决定将几个小时时间交付给模型的决策。尽管许多机器学习模型都是黑箱,理解模型预测背后的基本原理将肯定有助于帮助用户决定什么时候可以信任模型的预测或是不信任。如图1所示,模型预测某个病人患有流感。然后该预测由一个解释器来解释,强调了对模型来说最重要的症状。基于这些模型背后的推理信息,医生现在就有能力选择是否信任这个模型了。

figure1-a9533a3fb9bb9ace6ee96b4cdc9b6bcb

图1:向人类决策者解释单个预测。图片来源:Marco Tulio Ribeiro

从某种意义上说,工程师每次将一个机器学习模型应用于生产系统时,他或她都隐含地表示信任模型将能够做出合理的预测。这样的信心通常是通过评估保留数据验证的准确性或其它一些聚合评测来获得的。但是,任何实践过机器学习应用的人都知道,这些指标有时是非常有误导性的。有时候,不应该使用的数据意外地混入了训练数据和验证数据中。有时候,模型会给出一些尴尬得难以接受的错误。这些和其它的问题说明,在决定一个模型是否值得信任时,能理解模型的预测可以成为一个有用的工具。这是因为人类通常有较好的直觉和商业智慧,而这些都难以在评估指标中获得。如果在机器学习过程中有一个“挑选步骤”,即可以选择某些典型的预测去解释给人来听,那么这个过程就会类似于图2。

figure2-802e0856e423b6bf8862843102243a8b

图2:向人类决策者解释一个模型。图片来源:Marco Tulio Ribeiro

在由Marco Tulio RibeiroSameer SinghCarlos Guestrin合作发表于 ACM 知识发现和数据挖掘年会(KDD2016)上的论文《“为什么我应该相信你?”解释任何分类器的预测》中,我们对信任和解释的问题进行了精细地探索。我们提出了局部可理解的与模型无关的解释技术(Local Interpretable Model-Agnostic Explanations: LIME),一种用于解释任何机器学习分类器的预测的技术,并在多种与信任相关的任务中评估了它的可用性。

LIME 背后的直觉

因为我们希望能做到与预测模型无关,所以为了能理解模型内部的行为,我们所能做的是去干涉输入,然后观察预测结果会怎样变化。实验表明这种做法在可解释性上是有用的,这是因为我们可以通过改变人类可以理解的组件(比如单词或图像的一部分)来改变输入,即使模型使用的是更加复杂的组件(比如词向量)作为输入的特征。

改变原有实例数据(比如移除部分单词或隐藏图像的一部分)去学到的一个可解读的模型(比如只带有少量非零系数的线性模型),并用它来近似原有的底层模型。通过这个方法我们就得到了一个对原有模型的解释。LIME 背后的关键直觉就是,通过一个简单的模型来局部地(在我们想要解释的预测的附近)逼近一个黑箱模型会比全局性地去逼近这个模型要容易得多。这个思想可以通过给改变后的输入图像设定权重的方式来实现,而权重的值是改变后的图形和我们想要解释的实例的相似度的值。上面流感预测的例子里,那三个强调的症状就可能是预测这种类型病人的黑箱模型的准确近似,但它们可能并不能代表该模型在所有病人上的行为方式。

图 3 所示的例子说明了LIME在图像分类上是如何工作的。假设我们想解释一个可以预测图片中是否包含树蛙的分类器,我们可以借助左边被分解成可解读的组件(连续超像素)的图像。

figure3-2cea505fe733a4713eeff3b90f696507

图3:将一张图片转换成可理解的多个组件。图片来源:Marco Tulio Ribeiro和Pixabay

如图 4 所示,我们通过“隐藏”一些可解读组件生成一个修改过的实例的数据集(在这个例子中是将隐藏的组件都设置成灰色)。对于每一个被修改过的实例,模型都会以一定概率判断图像实例是否包含树蛙。然后我们就在这个局部加权的数据集上得到了一个简单的(线性)回归模型,而我们更关心在更接近原始图像的修改过的实例上出现的错误。最后,我们给出带有最高正权重的超像素作为解释,将其它部分都改成灰色。

figure4-99d9ea184dd35876e0dbae81f6fce038

图4:用LIME解释一个预测。图片来源:Marco Tulio Ribeiro和Pixabay

例子

我们使用 LIME 解释了文本和图像领域内的大量分类器(比如随机森林支持向量机神经网络)。下面是一些由它所生成的解释的例子。

首先是一个本分类器的例子。20 newsgroups 数据集是此领域里一个有名的基准数据,多篇论文中描述了使用这个数据集的不同模型。从中我们选取两个比较难区分的分类,基督教(Christianity)和无神论(atheism),它们之间有很多相同的词汇。训练一个有 500 树的随机森林,我们在测试集上得到的准确率为 92.4%,高得惊人。如果准确率是我们能够取信的唯一标准,我们能完全信任这个模型。然而,让我们来看一下图 5 所示的对测试集中的一个例子的解释(使用开源软件包中的一句 Python 代码即可实现):

exp = explainer.explain_instance(test_example, classifier.predict_proba, num_features=6)

figure5-cd7d3c5128549df1e957bf8f9f93bb2b

图5:20 newsgroups数据集上预测的解释。图片来源:Marco Tulio Ribeiro

这是一个分类器因为错误的原因却准确地预测了样本的分类的例子。额外的解释显示出“posting(邮件标头的一部分)”一词出现在无神论分类的训练集中21.6% 的样本上,但在基督教分类中只出现了两次。测试数据集中的情况类似,该词在 20% 的无神论样本中出现,但在基督教分类中仅出现了两次。数据集中的这种情况使得(这个数据集上的)分类问题要比真实世界的问题简单得多,但在实际应用里我们并不期待会有类似的模式出现。一旦你理解了这些模型实际是如何工作的,获得这些洞察就变得很简单,相应的也会促进模型的泛化能力更好。

第二个例子是解释谷歌的Inception神经网络模型对图像做的分类。如图 6所示,分类器预测这个图像是“树蛙”类的概率最高,而“台球”和“气球”的概率低一些。我们的解释揭示该分类器主要专注于蛙的面部作为此预测分类的依据。它也说明了为什么“台球桌”有非零概率,因为青蛙的爪子和眼与台球非常地相似,特别是在绿色背景下。同样,红色的心脏也和红气球类似。

Figure-6-c8db425eefec7cff5a3cf035a40d8841

图6:解释Inception神经网络模型生成的预测。头三名预测结果是“树蛙”、“台球桌”和“气球”。图片来源:Marco Tulio Ribeiro和Pixabay提供的树蛙、台球和热气球图片。

我们论文所述的实验表明机器学习专家和普通人都能从类似于图5和图6 这样的解释中获益。能够选择哪个模型泛化的更好,能够通过改变模型对模型进行改进,以及获得模型行为的关键洞察。

结论

为了有好地与机器学习系统进行交互,信任是非常重要的。我们认为能解释每个预测是获取信任的一个有效方式。LIME是一个方便机器学习实践者获得这样的信任的有效工具,也是一个值得加入他们的工具包的好选择(说了我们已经提供了开源包了吗?)。但在更好地解释机器学习模型方面还有很多工作可以做。我们期待看到这个方向上有更多的研究成果出现。下面的视频里概况地介绍了LIME。在我们的论文里有更多的细节。

marco-riberio-square-e5ad66b2322e588a6793b190c4530c74

Marco Tulio Ribeiro是华盛顿大学的一名博士生,与Carlos Guestrin一起工作。他的主要研究方向是让人去理解模型和与机器学习模型的交互更加容易。

sameer-head-shot-e36736576dfc37d7beb26778ca5856fe

Sameer Singh博士是加州大学欧文分校的助理教授。他主要从事大规模、交互式机器学习和自然语言处理方面的研究。

carlos-guestrin-e886cca0946eaf1a83f9b22fa440e92f

Carlos Guestrin是Turi公司的CEO和华盛顿大学计算机科学与工程系的机器学习亚马逊教授。他是全球知名的机器学习领域的领导者。卡洛斯在2008年被《流行科学杂志》评为“最杰出的10人”之一。因为人工智能领域的杰出贡献,他在2009年获得年度IJCAI计算机与思维奖,和美国青年科学家与工程师总统奖。

Happy predictions. (source: Jared Hersch on Flickr).