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

©PaperWeekly 原创 · 作者|蔡杰

学校|北京大学硕士生

研究方向|问答系统

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

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

引言

在正式介绍论文之前,先给大家简单介绍一下目前比较主流的分析方法: 

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,对抗性攻击是一种新做法。对抗性攻击通过使用特定干扰信息创建的例子来验证模型的鲁棒性。具体例子请见之后的论文。

Pre-trained model Analysis 

1. Probing tasks Method

论文标题: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。 

Training 和 Development 集合是原有数据集。Generalization 集合是根据一些语法规则(加了一些从句,名词替换为复合名词或所有格名词等)在 Training 和 Development 基础上生成的。Generalization 集合才是最后实验的数据。 

之后实验获取 BERT 每一层的 embedding,每一层都训练一个简单的分类器,这样每个 token 都有一个结果(如下图)。label 是一个 one-hot 向量,使用交叉熵作为损失函数。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值