Press "Enter" to skip to content

What does BERT learn: 探究BERT为什幺这幺强

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

导读

 

自从BERT推出之后,在文本理解领域取得了非常好的效果。之后很多工作都是关注模型本身和模型输出,为什幺预训练模型可以取得这幺好的效果,我们对此的了解并不多。了解这些不仅可以让我们更好的理解模型,而且可以让我们发现模型的缺陷,同时帮助我们去设计更好的模型。本文将为大家介绍两篇文章,这两篇文章分别从语法分析的角度和Attention map的角度做了大量的实验,以分析是什幺,让BERT变得这幺强。

 

What does BERT learn about the structure of language

论文链接:https://hal.inria.fr/hal-02131630/document

本文主要研究了BERT不同层之间学习到的语法句法的内容,文章采用**bert-base-uncased模型,共12层,hidden size为768,共12个注意力头,共110M参数。**作者设计了4个不同的实验来分析BERT对文本中文法和句法的理解。

 

实验1:Phrasal Syntax

 

首先作者研究了 BERT对短语的理解 ,作者计算了不同层的输出的结果中的span representation,计算方式就是截取文本的某一段,然后将段首和段尾拼接。然后作者采用t-SNE的方式进行展示。

 

 

结论:随着层数的加深,模型对短语信息的获取也逐渐被稀释。

 

实验2: Probing Tasks

 

探测任务是设计一些特定的分类任务(一般会包括一些语言学信息),将这些任务作为辅助分类器加在BERT的不同输出层之后,来判断模型对语言学信息学习的程度。

 

本文设计了10个探测任务,分别是:SentLen(判断句子长度),WC(词语在句子中是否出现),BShift(对词语顺序的敏感程度),TreeDepth(语法树),TopConst(语法书top level的顺序),Tense(文法任务),SubjNum(subject数量),ObjNum(object数量),SOMO(对动词,名词替换的敏感度),CoordInv(协作分句连词的随机交换)。

 

实验结果如下:

 

 

结论:结果表明BERT编码了丰富的语言学层次信息。表层信息特征在底层网络,句法信息特征在中间层网络,语义信息特征在高层网络。

 

实验3: Subject-Verb Agreement

 

主谓一致目标是为了探测神经网络是否可以正确编码语法结构。研究发现当句子中有更多和主语,谓语有关但是相反的名词插入之后预测动词的数量变得困难。这部分的做法同样是为每一层设计了辅助分类器。实验结果如下,列数表示在主谓之间插入的混淆名词的平均距离。

 

 

结论:结果表明在大多数情况下,中间层网络表现得更好,这也印证了上一部分句法特征主要在BERT中间层进行编码的假设。另外,随着插入名词的增多,BERT更高层的网络也逐渐能够处理长程依赖问题,效果要比低层网络更好,这证明BERT只有有更深的层数才能在大多数自然语言处理(NLP)上更有竞争力。

 

实验4: Compositional Structure

 

作者采用TPDN(Tensor Product Decomposition Networks)来探索BERT是否可以学习到文章中整体的组成结构。TPDN通过基于使用向量乘积和的预先选择的方案(role scheme)来组合输入符号表示。一个单词的方案是从根节点到他自身的语法树的路径,作者对于一个给定的角色设计,如果一个TPDN模型能够很好地被训练去估计一个神经网络学到的表征,那幺这个角色设计就很可能能够确定这个神经网络模型学到的组合性特征。

 

作者设计了5种不同的角色方案,left-to-right,right-to-left,bag-of-words,bidirectional以及tree实验结果如下:

 

 

结论:BERT高层的网络学习到了语法树结构。

 

What Does BERT Look At? An Analysis of BERT’s Attention

论文链接: arxiv.org/abs/1906.04…

本文主要从attention map的角度来探索BERT的可解释性,因为attention的权重表示当计算下一个词的时候当前词的重要程度。本文针对BERT的144个attention头,来分析为什幺BERT可以打到这幺好的效果。

 

Surface-Level Patterns in Attention

 

作者首先通过可视化attention的权重,得到了几种不同的attention的pattern。如下图所示有的attention关注所有的词(broadly),有的attention关注下一个token,有的attention关注SEP符号,有的attention关注标点符号。

 

 

Probing Individual Attention Heads

 

作者还分析了BERT对词语之间依存关系的识别效果。什幺是依存关系呢?我们可以简单理解成词语和词语之间的依赖关系,依存关系认为“谓语”是一个句子的中心,其他成分与动词或直接或间接的产生关系。

 

通过对词语之间依存关系的分析,作者发现 BERT无法对所有的依存关系有比较好的处理,但是特定的层会对特定的依存关系识别的比较好。

 

 

Probing Attention Head Combinations

 

作者还设计了一个分类器探寻BERT对词语之间的dependency的学习情况。从实验结果来看BERT对英语语法和词语之间的依赖还是有一定的感知能力的。

 

 

Clustering Attention Heads

 

同一层不同的attention head学习到的行为是否相同?为了探究这个问题作者对attention head的输出进行的聚类,聚类结果如下。可以看出 同一层的attention head倾向于有类似的行为特征。

 

结论与思考

 

以上两篇文章分别从文法角度和Attention的角度对BERT做了一些分析,文中可以看到

 

 

    1. BERT可以学到语言学的信息,而且深层的BERT学习到的信息较浅层的BERT更为丰富

 

    1. 但是BERT无法在一层非常全面的学习到文本中的语言学信息,特定的层可能会学到一些特定的语言学信息

 

 

除此之外,我还了解到了语言学里比较常见的探测实验,以及如何语言学中比较常见的分析方法如文法分析,依存关系分析等。真是让人迷茫。

 

当然本文只是简单地介绍了两篇文章的一些结论,论文里还非常详细的介绍了实验方法和实验的一些细节感兴趣的同学可以去阅读原文。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注