相关博客
【自然语言处理】【可解释性】NKB:用于预训练Transformers的神经知识银行
【自然语言处理】【可解释性】自注意力归因:解释Transformer内部的信息交互
【深度学习】【积分梯度】深度网络的公理归因(Axiomatic Attribution for Deep Networks)
【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
【机器学习】【可解释性】LIME
【自然语言处理】【聚类】TELL:可解释神经聚类
【自然语言处理】【Prompt】语言模型即知识库(Language Models as Knowledge Bases)
【自然语言处理】【Prompt】P-tuning
一、简介
机器学习已经被广泛使用,但仍然是黑盒模型。但是,如果人类无法相信某个模型,那么很难在产品中部署这个模型。这里区分两个概念:
trustingaprediction\text{trusting a prediction}trustingaprediction:用户是否充分信任一个预测,并基于该预测采取行动;trustingamodel\text{trusting a model}trustingamodel:用户是否相信模型在部署后能够以合理的方式运行;
trustingaprediction\text{trusting a prediction}trustingaprediction非常重要,例如在使用机器学习进行医疗诊断或者恐怖蛀牙检测,预测不能只给出结果,还必须给出原因。trustingamodel\text{trusting a model}trustingamodel同样非常重要,值得信赖的模型才更可能被部署。
接下来的部分主要包括:
一种称为LIME\text{LIME}LIME的解释方法,其能够为任何的单个预测提供faithful的解释,从而解决trustingaprediction\text{trusting a prediction}trustingaprediction;一种称为SP-LIME\text{SP-LIME}SP-LIME的解释方法,通过挑选具有代表性的实例进行解释,从而解决trustingamodel\text{trusting a model}trustingamodel的问题;
论文作者提出了一种称为LIME\text{LIME}LIME的模型不可知解释方法,其能够以faithful的方式来解释任意的预测
二、为什么需要解释
解释模型的预测是获取人类信任和应用机器学习都十分重要。
”解释单个预测“的过程如图1所示。
显然,如果能够为医生提供人类可理解的模型解释,那么医生就能依赖先验知识决定接受或者拒绝预测。
此外,先前评估机器学习模型的方法,是通过评估模型在测试集上的指标来确定的。但是,这种方式并不能完全测试出模型在真实世界中的表现。因此,通过解释一些具有代表性样本的模型预测,能够提供一种对模型的全局理解。特别是,数据泄露(data leakage)的错误很难被已有的方法评估,但是通过对模型的预测提供解释可以很方便的发现这样的错误。
三、解释方法该具有的性质
1. 易于理解性
解释方法提供的解释必须是易于理解,而易于理解是与受众相关的。
此外,模型的易于理解性也是一个相对的概念。举例来说,通常线性模型被认为具有良好的可解释性,但是在一些情况下也会难以理解。例如,若成百上千个特征均对线性模型预测有贡献,并且这些特征对应的权重也完全已知,人类仍然很难理解这样的模型。
2. 局部保真度
解释方法必须具有局部保真度(local fidelity)。除非一个解释是对模型本身的完整描述,否则不可能是完全faithful的解释。显然,在深度学习模型中,根本不可能给出一个完全faithful的解释。但是,一个解释必须具有局部保真度,即一个解释能够展示出模型在被解释实例附近的行为。
此外,局部保真度并不意味着全局保真度,即特征是局部重要但并不全局重要。
3. 模型不可知
虽然有有些模型本身是可解释的,但是理想的解释方法应该能解释任何模型,因此需要解释方法是模型不可知。
4. 解释整个模型
除了能够解释单个预测外,能够为模型提供一个全局视角的解释也很重要。
四、LIME
LIME(LocalInterpretableModel-agnosticExplanations)\text{LIME(Local Interpretable Model-agnostic Explanations)}LIME(LocalInterpretableModel-agnosticExplanations)是一种为分类器提供局部保真的可解释方法。
1. 数据表示形式
正如前面提及的,解释是需要易于理解的。
因此,对于文本来说,其解释可以表示为一个二进制向量,其中0表示单词的缺失,1表示单词存在。直观上来看,就是从文本中抽取一些片段来解释单个预测。对于图像分类器,也可以使用一个二进制向量来表示相邻图像块的存在还是缺失。
令x∈Rdx\in\mathbb{R}^dx∈Rd为被解释实体的原始表示,使用x′∈{0,1}d′x'\in\{0,1\}^{d'}x′∈{0,1}d′表示用于解释的二进制向量。
2. LIME提出的框架
LIME其实提出了一种解释框架,该框架对保真度和可解释性进行了权衡。
2.1 原理概述
LIME希望通过一个可解释的简单模型ggg来模拟复杂模型fff的局部行为,从而为单个样本提供解释。
2.2 基本框架
可解释模型ggg
模型g∈Gg\in Gg∈G是一个本身可以解释的模型,例如决策树、线性模型等。其中GGG表示一类可解释模型。
模型复杂度Ω(g)\Omega(g)Ω(g)
虽然ggg为可解释模型,但是如果复杂度过高则仍然难以解释,因此定义Ω(g)\Omega(g)Ω(g)来衡量解释模型g∈Gg\in Gg∈G的复杂度。例如,若ggg为决策树,则Ω(g)\Omega(g)Ω(g)可以为树的深度;若ggg为线性模型,则Ω(g)\Omega(g)Ω(g)可以是非零权重的数量。
被解释模型fff
被解释的模型表示为f:Rd→Rf:\mathbb{R}^d\rightarrow\mathbb{R}f:Rd→R,例如在分类任务中,f(x)f(x)f(x)是样本xxx属性某个类别的概率。
样本领域πx\pi_xπx
令πx(z)\pi_x(z)πx(z)表示样本xxx和zzz的接近程度,πx\pi_xπx表示样本xxx的领域。
模型近似度L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)
令L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)表示在领域πx\pi_xπx内模型ggg近似fff的unfaithful程度。即L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)越小,ggg对fff的近似越好。
最终框架
为了确保易于解释和局部保真度,必须要最小化L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)的同时也保证Ω(g)\Omega(g)Ω(g)足够低,便于人类理解。因此,最终的框架为
ξ(x)=argming∈GL(f,g,πx)+Ω(g)\xi(x)=\mathop{\text{argmin}}_{g\in G}\mathcal{L}(f,g,\pi_x)+\Omega(g) ξ(x)=argming∈GL(f,g,πx)+Ω(g)
其中,上面的框架可以适应于任何类型的GGG、L\mathcal{L}L和Ω\OmegaΩ,ξ(x)\xi(x)ξ(x)为样本xxx的解释。
2.3 如果计算L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)
由于希望使用ggg来近似fff的局部行为,那么就需要通过数据来模拟fff的局部行为,并使用ggg进行学习。具体来说,
给定一个待解释样本x∈Rnx\in\mathbb{R}^nx∈Rn,二进制向量x′∈{0,1}d′x'\in\{0,1\}^{d'}x′∈{0,1}d′则是xxx的易于解释性表示;通过对x′x'x′进制扰动生成z′∈{0,1}d′z'\in\{0,1\}^{d'}z′∈{0,1}d′,其包含了x′x'x′中的一部分非零值;基于z′z'z′和xxx,生成z′z'z′的原始表示zzz;使用原始模型进行预测f(z)f(z)f(z);衡量样本xxx和zzz的接近程度πx(z)\pi_x(z)πx(z);生成一个领域样本(z′,f(z),πx(z))(z',f(z),\pi_x(z))(z′,f(z),πx(z));
按照上面的方法生成一个新的数据集,其代表fff在样本xxx领域的行为。然后,使用新的数据集训练模型ggg,那么就认为ggg学习到了fff的局部行为。ggg的解释也就是fff的解释。
3. LIME框架的具体例子----稀疏线性解释器
3.1 L(f,g,πx)\mathcal{L}(f,g,\pi_x )L(f,g,πx)的具体选择
令GGG表示一类线性模型,则g(z′)=wg⋅z′g(z')=w_g\cdot z'g(z′)=wg⋅z′。
定义具体的L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx)
L(f,g,πx)=∑z,z′∈Zπx(z)(f(z)−g(z′))2\mathcal{L}(f,g,\pi_x)=\sum_{z,z'\in\mathcal{Z}}\pi_x(z)(f(z)-g(z'))^2 L(f,g,πx)=z,z′∈Z∑πx(z)(f(z)−g(z′))2
其中,样本接近程度评估函数为πx(z)=exp(−D(x,z)2/σ2)\pi_x(z)=exp(-D(x,z)^2/\sigma^2)πx(z)=exp(−D(x,z)2/σ2),DDD是距离衡量函数,σ\sigmaσ是标准化系数。值得注意的是,g(z′)g(z')g(z′)是在二进制向量上训练的,f(z)f(z)f(z)则相反。
3.2 Ω(g)\Omega(g)Ω(g)的具体选择
对于文本分类任务,可以使用词袋的方法来确定解释的易于理解性。通过对词袋中单词数设定一个界限KKK来控制解释的复杂度,例如Ω(g)=∞1[∥wg∥0>K]\Omega(g)=\infty 1[\Vert w_g\Vert_0>K]Ω(g)=∞1[∥wg∥0>K]。其中,KKK可以设置为用户能够理解的最大值。
对于图像分类,可以使用相同的Ω\OmegaΩ,只不过使用"super-pixels"来替代单词即可。
由于直接优化目标函数中的Ω\OmegaΩ十分困难,因此ggg可以选择具有KKK个特征的Lasso模型。
3.3 完整的算法
输入:分类器fff和采样数量NNN;
输入:实例xxx和其可解释版本x′x'x′;
输入:相似度核πx\pi_xπx,解释的长度KKK;
Z←{}\mathcal{Z}\leftarrow\{\}Z←{}
fori∈1,2,...,Ni\in {1,2,...,N}i∈1,2,...,Ndo
zi′←sample_aroud(x′)z_i'\leftarrow sample\_aroud(x')zi′←sample_aroud(x′)
Z←Z∪⟨zi′,f(zi),πx(zi)⟩\mathcal{Z}\leftarrow\mathcal{Z}\cup\langle z_i',f(z_i),\pi_x(z_i)\rangleZ←Z∪⟨zi′,f(zi),πx(zi)⟩
end for
使用zi′z_i'zi′作为特征,f(z)f(z)f(z)作为标签,训练模型K-Lasso(Z,K)\text{K-Lasso}(\mathcal{Z},K)K-Lasso(Z,K);
获取权重w←K-Lasso(Z,L)w\leftarrow \text{K-Lasso}(\mathcal{Z},L)w←K-Lasso(Z,L)
returnw
上面的算法会为单个实例生成一个解释,其计算复杂度主要依赖于f(x)f(x)f(x)的时间和采样数量NNN。
4. 缺陷
二进制向量的方式可能无法提供有效的解释。例如,在一个预测图像是否为“复古”风格的模型中,无法通过像素的存在或者缺失来提供人类易于理解的解释。若GGG选择未稀疏线性模型,那么也就意味着fff的局部是线性的。如果fff的局部是高度非线性的,那么LIME也无法提供一个faithful的解释。五、应用LIME的案例
1. 文本分类
存在一个文本分类模型,其被用于将文本分类为A和B两种标签。若模型准确了能够达到95%以上,那么通常人类会选择该模型并部署。但是,如果所有A类别的文本均包含单词"Posting",而B类别文本几乎不包含。那么模型将会依据单词"Posting"进行判断。显著,这样的模型是有问题的,需要修改训练数据。
2. 图像分类
上图(a)是输入至图像分类模型进行分类的原始图像。(b)、©、(d)分别是模型将原始图像预测为“电吉他”、“木吉他”和"拉布拉多"的原因。特别是,(b)提供了模型为什么将木吉他判断为电吉他的原因----指板。