深度学习的可解释性 github_深度学习预训练模型可解释性概览

0a26168c3132accae8aa313eb5adb411.gif

©PaperWeekly 原创 · 作者|蔡杰

学校|北京大学硕士生

研究方向|问答系统

近年来预训练模型(ELMo, GPT, BERT, XLNet, ALBERT 等)给许多 NLP 任务带来了显著的改进,但是有一个问题一直困扰着大家:被当做黑盒的神经网络到底是如何做的以及为什么会这样做?

最近,人们对解决这个谜团越来越感兴趣,就此,我将最近看的一些相关论文进行总结,希望可以和大家一起探讨学习。

b4a1ff4a7ed5232b28bae123cdaa8595.png

引言

在正式介绍论文之前,先给大家简单介绍一下目前比较主流的分析方法:  Analyse Pre-trained Model  我们都知道预训练(pre-train)方法因为数据量巨大需要消耗大量的计算资源,那这么多计算资源最后都变成了啥?或者说在整个pre-train的过程中,模型到底学到了什么能力?以下的 pre-train model 以 BERT 为例。
  • Probing tasks:一般做法是设计一些简单的分类任务(一种任务包含一种特定的语言学信息),将 BERT 每一层的输出作为 embedding,在得到 embedding 后通过简单的分类器(例如一层的 FFN,为了不过多干扰模型本身的能力),来验证模型的不同层在不同 probing task 上的能力。 
  • Visualization:我们都知道 BERT 是由多层 Transformer 构成的,每一层 Transformer 都有一个 multi-head self-attention 模块。在这个模块中,每个 word 和其他所有 word 都会有交互,从而得到一个注意力(attention)分数,通过可视化这个分数,可以知道在不同层,甚至不同 head 中,不同的 word 关注的部分。还有的做法是将不同层的特定词 embedding 做聚类,同样也可以了解模型不同层的能力。 
Analyse Fine-tuned Model  目前 NLP 许多任务的 SOTA 都是通过微调(fine-tune)预训练(pre-train)的模型达到的。那么问题来了,在 Fine-tune 的过程中,模型又学到了什么能力? 在这一部分同样有 Probing tasks 和 Visualization 两种做法,而且做法同上述方法类似,只是将 pre-train 的 model 作为对比对象。  Adversarial attacks: 对于fine-tuned model,对抗性攻击是一种新做法。对抗性攻击通过使用特定干扰信息创建的例子来验证模型的鲁棒性。具体例子请见之后的论文。 3b143503c44fa3df75f9f3d10fbee1ba.png Pre-trained model Analysis  1. Probing tasks Method

02e7871b3290ce5ce2dd7c846d39e9db.png

论文标题: Open Sesame: Getting Inside BERT’s Linguistic Knowledge  论文来源: ACL 2019  论文链接: https://arxiv.org/abs/1906.01698 引言   本文在尝试解释 BERT 上主要做了两件事:
  • 通过设计 probing tasks 来证明 BERT 在 pre-train 之后得到的 word embeddings 包含语法信息; 
  • 提出了基于 attention 的对主谓一致和共指消解问题的评价分数,根据 self-attention 来确定 BERT 对语言相关元素的关注程度。 
实验1 设计了三个 probing tasks 分别是识别一句话中的助动词、主语名词以及第 n 个 token。 

57960836d54471c7f1020a7912e9455a.png

Training 和 Development 集合是原有数据集。Generalization 集合是根据一些语法规则(加了一些从句,名词替换为复合名词或所有格名词等)在 Training 和 Development 基础上生成的。Generalization 集合才是最后实验的数据。  之后实验获取 BERT 每一层的 embedding,每一层都训练一个简单的分类器,这样每个 token 都有一个结果(如下图)。label 是一个 one-hot 向量,使用交叉熵作为损失函数。

5bb47b04193acfdd6aad4ac1a7aeaea4.png

结果1

6a0cb93e3a0970a0b8b3cb81d761c735.png

Figure 1 在第 4 层突然准确率变得很高,作者认为是因为浅层特征是一个高度 localized 的特征,包含的句子上下文信息不足以确定 main auxiliary。随着 self-attention 的作用,层数加深,信息变得越来越抽象,到 4-6 层左右正好能足够表示 main auxiliary,之后层数再加深,信息变得更抽象,导致 acc 有所下降。  在复合名词的分类任务(Figure 2 是复合名词的结果)中,large 的效果就要差很多了。base 上的效果很好,作者认为是由于主语名词特征的显著性。至于为什么 large 效果很差,作者也没有给出很好的解释。  在所有格问题(Figure 3 是所有格名词的结果)上,base 和 large 的表现都很差,作者认为是是所有格的歧义性导致的(she's sleeping 中的 's 可能表示的是所有格关系,也有可能表示的是 is 的缩写)。  N_th token(Figure 4 是 N_th token 的结果)对比了两个 baseline,一个是 pre-embedding,另一个是 pre-embedding 去掉 position-encoding,可以看到 1-3 层判断 2-9 位置的准确率都还是挺高的,其余的准确率随层数增加而降低。没有 position-encoding 的在第一层就很低,表明 BERT 的 position 信息主要来源于 position-encoding。 之所以在 4 层之后会下降有可能是因为舍弃了位置信息,转而获得一些抽象的层次信息。而 position 1-3 的准确率随着层数增加一直没有下降,作者认为这有可能是因为自然语言分布的特性造成的,句子开头的词性可能是固定的,但是随着句子长度的增加,词性的类别就不固定了。 实验2

16e718b84f2cfbb71b51c6d5213bbcc7.png

主谓一致和共指消解都具有一个先行词(trigger)元素,比如判断谓词(target)的时候需要先知道主语,共指消解的时候也得先知道后面的词指代的是什么。但是如果这个先行词有多个,就可能导致模型不知道那个先行词才是正确的。因此作者提出了一个叫“confusion score”的概念,定量地表示一句话给模型带来的混淆程度。  由 Table 2 可知,上半部分是主谓一致的 example,下半部分是共指消解的 example。  A1 和 A2 是带有介词短语的 example,A3 和 A4 是带有关系从句的 example,有论文指出带有介词短语的句子要比带有关系从句的句子更难处理,因此 A1 和 A2 的 score 要更高,而 A1 和 A3 中的“dog”和“the cat”一样都是可以接“does”的,而 A2 和 A4 的“dogs”是不能接“does”的,所以 A2 和 A4 的 score 要比 A1 和 A3 低。  对于共指消解问题,作者同样在插入了一些 distractor,比如 R1,“the lord”是先行词,但是“the wizard”的语法同样正确,但是 R2 中的语法就不对了,所以 R2 的 score 比 R1 低。R3 和 R4 在关系从句中插入了 distractor,因为如果“himself”共指了关系从句中的 distractor 的话语法是不正确的,所以分数要比 R1 和 R2 低。R5-R8 包括相对修饰语,宾语名词短语,分数普遍要高很多。  接下来就讲讲这个 confusion score 是怎么计算的:作者根据两种语法现象(主谓一致和反身回指)设计了通过 self-attention 来确定 BERT 对语言相关元素的关注程度。

c31d01b7d408888c6ab54417685e9ede.png

首先先计算一个 attention_score,token 可能包含多个 word(比如 Table 2 里的 the lord),相当于让每个 word 都和 Y 计算 attention,这里的 attn 函数就是 self-attention 计算的值。求和之后再在 head 层面上求和取平均,得到每个 token 对 target 的 attention。

5099cb52a74391e81a2a833c14fdeddc.png

之后根据上式得到“confusion score”。 结果2 

330d755e478fc3a9d82bc1d4eb2bfe93.png

Figure 5 和 Table 3 显示了共指消解的混淆程度与层深度的负相关。主谓一致性的混淆分数呈现出相似的趋势。作者推测 BERT 随着层数的加深,包含的信息也更抽象。还有就是作者观察到的 BERT 的自我注意值对语法扭曲的敏感性表明,BERT 的句法知识实际上被编码在其注意力矩阵中。 最后,值得注意的是,对于共指消解和主语动词一致的混淆在第 4 层增加,而在 N_th token 的实验中,正好也是第 4 层之后结果开始下降。作者为未来留下了一个对这两者之间联系的伏笔。 2. Visualization Method

c99e8b4c65bb98b7ccf4f314c743bce2.png

论文标题: What does BERT look at? An Analysis of BERT’s Attention 论文来源: ACL 2019  论文链接: https://arxiv.org/abs/1906.04341 引言 本文主要通过可视化 BERT 的 attention 层,以了解 BERT 的 attention 层都在关注什么地方,发现有很多 attention 集中在 [CLS] 和 [SEP] 符号上。文章还通过实验得出不同的 multi-head 中不同的 head 关注的是不同的语法现象。此外文章也实验了融合多个 head,得出模型关于语法整体的建模程度。 实验   Surface-Level Patterns in Attention

0c34458492db2de04864334a8a340474.png

作者通过可视化 attention 的权重,得到了几种不同的 attention 的 pattern。如 Figure 1 所示,有的 attention 是 broadly 形式(关注所有的词),有的 attention 是关注的是其下一个 token,有的 attention 则集中关注 [SEP] 符号上,还有的 attention 则关注标点符号。 Attending to Separator Tokens

2c3e03b57542087ed845e2b2be44e8a2.png

作者在分析 attention 的过程中发现一个很有趣的现象。在 6-10 层,有超过一半的 attention 关注的是 [SEP](Figure 2 的上图),一开始作者的想法是 [SEP] 用于聚合段与段之间的信息,方便后面的 head 去获取信息。 如果假设成立的话,那 [SEP] 关注的信息应该是整句话,但是 Figure 2 的下图表明,90% 以上的 [SEP] 关注的是他们自身,所以作者又推测,指向 [SEP] 很可能是一种“no-op”(无作用)的操作。  为了进一步验证以上的假设,作者又采用了一种基于梯度的可以衡量特征重要性的方法(Sundararajan et al., 2017) 简单地说,这个值的大小意味着将注意力转移到 token 上会多大程度改变 BERT 的输出。Figure 3 中可以看到,在 5 层之后,[SEP] 的梯度就基本下降到 0,说明这个时候给 [SEP] 或多或少的 attention 都改变不了模型的输出,进一步验证了作者“no-op”的结论。  Figure 4 是作者计算每一层的 attention 的熵值,可以看到低层的熵值比较大,说明在低层模型更偏向于 broadly 的 attention 方式,基本上每个单词在其余每个单词上的 attention 只有 10%,对 [CLS] attention 的熵值分布也和 Figure 4 类似,最后一层有较高的熵值,因为这层的 [CLS] 聚合了之前的所有信息,之后用于 next-sentence prediction 任务中。 看看每个attention head都学到了什么

eba477cff9b7ddb57403a178006792fc.png

上图是直接宾语,名词修饰语的例子。除此之外,作者还例举了好几种例子,在这里就不一一列举了,感兴趣的读者可以去看论文。 

249fc956ae17f1816fff8394be2d61d5.png

接下来作者在 Penn Tree bank 的数据集上做了统计,每个词都有一个 dependency。为了测试 BERT 中对词与词的 dependency 的建模程度,作者直接把 attention map 拿了出来,把每个词给了最多 attention 的词作为 dependency,baseline 的话就是把括号内的数字(正数表示右边第几个词,负数则表示左边第几个词)对应的 word 作为 baseline,可以看到 BERT 还是学到了很多 dependency 的信息的。 

3a3a5a6ae29e011dec05ef35ac3649e0.png

作者还做了一个共指消解的任务,在句子中找出给定词之前的 antecedent。发现某一个 head 的正确率在 65% (neural supervised model 是 83%)。

3b143503c44fa3df75f9f3d10fbee1ba.png

Fine-tuned Model Analysis

1. Adversarial attacks

fd122044473e1d8b5c2a2e9d53e58e93.png

论文标题: What does BERT Learn from Multiple-Choice Reading Comprehension Datasets? 论文链接: https://arxiv.org/abs/1910.12391

引言 

目前最新模型已经在多个 MCRC 数据集上实现了 SOTA。然而,作者认为这样的表现可能并不能反映模型真正的语言理解和推理能力。在这项工作中,作者采用了两种方法来研究 BERT 从 MCRC 数据集中学到了什么: 

  • 不可读的数据攻击:添加一些不可读数据来混淆 BERT,误导其作出错误的判断; 

  • 不可回答的训练数据:增加不可回答的训练数据或者洗牌 examples 来训练 BERT。

实验

不可读的数据攻击

ea09ef18894a61ecee9cc097dac176aa.png

Un-Readable Data Attack(不可读数据攻击)例子,在原始的文章结尾加上一句乱序的话(这句话由原始问题和错误选项拼接而成),该方法就是 Figure 2 中的 (a)。

d8d0eee83ab57f1d716af9bff41a4320.png

作者探索了三种对抗攻击方法(Figure 2 (a),(b),(c),详细的例子请见论文),通过在文章或原始干扰源(错误的选项)中添加额外的干扰信息来测试模型的鲁棒性。对抗性攻击的目标是操纵输入,误导模型做出错误的预测,而人类在这些攻击下仍然能够选择正确的答案。 

不可回答的训练数据

通过用不可回答的数据来训练 BERT(Un-Answerable Data Training),从这些数据中,人类可以学到一些关于如何回答问题的知识。

6d4d9b278dc0e00f99a4c07d762cd980.png

Figure 4 中文章(passage)的次顺序被打乱了(P-Shuffle),变成了不可读的数据。作者还尝试了另外两种方法: 

  • 打乱 question 中的词序(Q-Shuffle) 

  • 既打乱 passage 的词序,也打乱 question 的词序(PQ-Shuffle) 

作者同样尝试了删除整个 passage (P-Remove),删除整个 question (Q-Remove) 以及删除 passage 和 question (PQ-Remove)。

结果

不可读的数据攻击

53b06bddd4191d52946fd016d244bd51.png

顶端的两行分别是随机猜测的结果和正常训练 BERT 的结果。 我们可以看到几乎所有的数据集上 BERT 的性能都 显著下降,而且对于某些数据集,BERT 的性能甚至低于随机猜测。这意味着 BERT 无法检测出正确的词序和语法,严重依赖于关键词匹配。 不可回答的训练数据  

1a61d8d6389fbc80c85c9be5a4923a78.png

我们可以看到在所有这些设置上训练的 BERT 比“Random Guess”和“Longest Baseline”要好得多,“Longest Baseline”总是选择最长的答案作为预测。 而且 BERT 在“P-Shuffle”设置下进行训练,随机地对训练集中的所有段落单词进行洗牌,甚至可以获得与原始完全训练设置非常接近的性能,特别是在 MCScript 和 MCScript2.0 数据集上。  进一步比较“P-Shuffle”和“P-Remove”,我们会发现,尽管被洗牌的段落没有遵循正确的语法,不再是可解释的,但它仍然比删除整个段落要好。通过比较“Q-Shuffle”和“Q-Remove”、“PQ Shuffle”和“PQ Remove”,也可以发现类似的结论。  那么说明 BERT 仍然可以从无序输入中学习,这表明它对词序或句法信息不敏感。 20848342774726a3ef080e27c83403bb.png小结 以上论文解读更多的是希望给大家了解该领域的进展,以及在该领域中大家的普遍做法,涉及到结论性的内容还得具体细看论文,欢迎大家共同学习交流。

00921ce27449718219353e9e47e65e96.png

相关论文推荐

Pre-trained model Analysis

论文标题: What do you learn from context? Probing for sentence structure in contextualized word representations 论文来源: ICLR 2019  论文链接: https://arxiv.org/abs/1905.06316 论文标题: BERT Rediscovers the Classical NLP Pipeline 论文来源: ACL 2019  论文链接: https://arxiv.org/abs/1905.05950

Fine-tuned Model Analysis

论文标题: How Does BERT Answer Questions? A Layer-Wise Analysis of Transformer Representations 论文来源: CIKM 2019  论文链接: https://arxiv.org/abs/1909.04925

aca10e79bdfaf6eff4697b67fa700369.png

点击以下标题查看更多往期内容: 

  • 抛开约束,增强模型:一行代码提升ALBERT表现

  • 浅谈Knowledge-Injected BERTs

  • 从 Word2Vec 到 BERT

  • 后 BERT 时代的那些 NLP 预训练模型

  • 从三大顶会论文看百变Self-Attention

  • 自然语言处理中的语言模型预训练方法

132cfb89764bf9f80f2b988cc90116f6.gif#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

f4bd9197faa6a3c9ccea49654568a176.gif

▽ 点击 | 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值