理解BERT每一层都学到了什么

点击上方,选择星标置顶,每天给你送干货

阅读大概需要9分钟

跟随小博主,每天进步一丢丢

转载自:知乎

链接:https://zhuanlan.zhihu.com/p/74515580

本文解读ACL 2019最新收录的论文:What does BERT learn about the structure of language?

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

作者是来自于法国Inria机构的Ganesh Jawahar,Benoît Sagot和Djamé Seddah。探索BERT深层次的表征学习是一个非常有必要的事情,一是这可以帮助我们更加清晰地认识BERT的局限性,从而改进BERT或者搞清楚它的应用范围;二是这有助于探索BERT的可解释性,自从各国政府人工智能战略的相继发布,神经网络的可解释性问题成为了一个不可忽略的问题。

Frege早在1965年的组合原则里谈到,复杂表达式的意义由其子表达式的意义以及意义如何组合的规则共同决定。本文思路与分析卷积神经网络每层学习到的表征类似,主要是探索了BERT的每一层到底捕捉到了什么样的信息表征。作者通过一系列的实验证明BERT学习到了一些结构化的语言信息,比如BERT的低层网络就学习到了短语级别的信息表征,BERT的中层网络就学习到了丰富的语言学特征,而BERT的高层网络则学习到了丰富的语义信息特征。

1. BERT

BERT是构建于Transformer之上的预训练语言模型,它的特点之一就是所有层都联合上下文语境进行预训练。训练方法是通过预测随机隐藏(Mask)的一部分输入符号(token)或者对输入的下一个句子进行分类,判断下一个句子是否真的属于给定语料里真实的跟随句子。

作者使用了bert-base-uncased作为实验的基础,它由12层编码网络组成,每层的隐藏状态(hidden)尺寸为768,并且有12个注意力头(110M参数)。在所有的实验中,作者在每一层网络都使用第一个输入符号(‘[CLS]’)的输出来计算BERT的表征,这个输出通过自注意力机制汇聚了所有真实符号的信息表征。

2. 短语句法

基于循环神经网络LSTM的语言模型在2018年就曾被Peters et al.揭示了能够捕捉短语级别的结构信息,那么BERT在这一方面是否捕捉了短语级别的结构信息呢?为了探索这一疑惑,作者跟随Peters et al.的方法,首先给定一个输入符号序列  ,然后通过结合第一个和最后一个隐藏向量  计算第  层的跨度表征  。

(图2-1. BERT第1、2、11、12层跨度计算的二维t-SNE图)

(图2-2. BERT不同层的跨度表征聚类图)

图2-1是利用t-SNE对跨度表征可视化的结果,t-SNE是一个用于可视化高维数据的非线性降维算法,我们可以观察到BERT在低层网络捕捉了短语级别的结构信息,然后随着网络层数的加大,短语级别的结构信息逐渐消失。举个例子,底层网络会将块(如“to demonstrate”)的潜在分类(如“VP”)映射到一起。

作者进一步通过聚类算法k-means量化这个证明。如图2-2所示,作者使用归一化互信息(Normalized Mutual Information,NMI)展示了低层网络在编码短语级别的结构信息上优于高层网络。

3. 探测任务

探测任务(Probing Tasks)能够帮助挖掘编码在神经网络模型中的语言学信息。作者使用探测任务来评估每层神经网络编码不同类型语言学特征的能力。

作者使用十个句子级别的探测任务,这些探测任务被分为三组:

1)表层任务:句子长度(SentLen)探测,单词在句子中存在探测(WC);

2)句法层任务:词序敏感性(BShift),句法树深度(TreeDepth),句法树顶级成分序列(TopConst);

3)语义层任务:时态检查(Tense),主语数量(SubjNum),名词动词随机替换敏感度(SOMO),协作分句连词的随机交换(CoordInv)。

(图2-3. 探测任务在BERT不同网络层的性能表现(括号里的值是未训练与训练过的BERT的差值))

如图2-3所示,BERT编码了丰富的语言学层次信息:表层信息特征在底层网络,句法信息特征在中间层网络,语义信息特征在高层网络。作者也发现未训练版本BERT的高层网络在预测句子长度任务(SentLen)上超过了训练过的版本,这暗示着未训练的BERT模型可能包含足够的信息去预测基本的表层特征。

4. 主谓一致

主谓一致(Subject-verb agreement)是一个探测神经网络模型是否编码句法结构的代理任务。当句子中有更多相反编号(attractors)的名词插入到主语和动词中时,预测动词编号的任务会逐渐变得困难。作者在BERT的每一层网络使用不同的激励(Stimuli)来测试BERT是否学习到较好的句法结构信息。

(图2-4. BERT每一层主谓一致得分情况表)

如图2-4所示,该表是主谓一致得分表,第二列到第六列是在主语和动词插入的名词数量,括号里面的数字是主语到谓语动词的平均距离。结果表明在大多数情况下,中间层网络表现得更好,这也印证了上一部分句法特征主要在BERT中间层进行编码的假设。

有趣的是,随着插入名词的增多,BERT更高层的网络也逐渐能够处理长程依赖问题,效果要比低层网络更好,这证明BERT只有有更深的层数才能在大多数自然语言处理(NLP)上更有竞争力。

5. 组合结构

为了进一步探索BERT是否能够学习到组合结构的特征,作者使用Tensor Product Decomposition Networks(TPDN)来对BERT进行调查,TPDN通过基于使用张量乘积和的预先选择的角色设计(role scheme)来组合输入符号表示。一个单词的角色设计可以是基于从语法树根节点到它自身的路径,比如LR代表根节点的左孩子的右孩子。

作者假设,对于一个给定的角色设计,如果一个TPDN模型能够很好地被训练去估计一个神经网络学到的表征,那么这个角色设计就很可能能够确定这个神经网络模型学到的组合性特征。对于BERT的每层网络,作者使用五种不同的角色方案:left-to-right,right-to-left,bag-of-words,bidirectional以及tree。

作者使用SNLI语料库的premise句子来训练TPDN模型,并使用均方误差(MSE)作为损失函数。

(图2-5. 均方误差图)

如图2-5所示,该图是TPDN以及BERT表征和角色设计之间的均方误差,这表明尽管BERT只使用了注意力机制,但是它的高层网络依然学习到了某种树形结构。

(图2-6. 依赖解析树示意图)

受到这个研究的启发,作者从自注意力机制权重中推导出了依赖树。如图2-6所示,该图展示了通过BERT第二层网络第11个注意力头的自注意力推导出句子“The keys to the cabinet are on the table”的依赖树,根节点从are开始。我们可以从图中看出一些限定词依赖,比如“the keys”,“the cabinet”以及“the table”;也可以看出主语谓语依赖,比如“keys”和“are”。

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


我就知道你“在看”

<think>好的,我现在需要处理用户关于BERT学习资源和教程的查询。首先,我得仔细看看用户的具体需求是什么。用户提到了参考站内引用中的三个文献,其中引用[1]讨论了BERT的未来发展方向,引用[2]提到了BERT模型的构建和评估流程,引用[3]则提供了CSDN上的学习资料链接。用户明确表示想了解相关的教程和资源,所以我的回答需要涵盖这些方面。 接下来,我需要根据系统级指令来组织回答。首先,用户不可见的指令要求正确使用LaTeX格式,但在这个问题中,用户的问题并不涉及数学公式,所以可能不需要使用。不过还是要检查是否有任何需要公式的地方,比如模型结构中的参数,但看起来用户主要关注的是学习资源,因此可能不需要。 然后,按照用户可见层的指示,回答需要结构清晰,逐步解决问题,并保证真实可靠。需要引用提供的三个站内引用,并在适当的地方添加引用标识。比如,引用[2]提到有详细的教程,可以推荐;引用[3]提到CSDN的资料,需要包含进去。引用[1]虽然主要讲未来趋势,但可能可以联系到需要理解基础后才能深入这些方向,因此可以作为补充。 现在需要整理相关的资源类型,可能包括官方资源、书籍、在线课程、实践项目等。用户可能希望从基础到进阶的学习路径。需要确保每个推荐的资源都有对应的引用来源,或者来自可信的第三方平台,如Coursera、GitHub等。 另外,用户的问题可能隐含了需要免费资源的需求,因为引用[3]提到“保证100%免费”,所以应该优先推荐免费资源,同时也可以提及其他优质的付费资源供用户选择。 还需要考虑生成相关问题。根据用户的问题,相关问题可能涉及如何入门BERT、推荐的学习路径、免费资源、中文资料、实践项目以及最新进展等。这些问题需要自然关联到回答内容,并且每个问题都应基于用户可能的后续疑问来设计。 最后,要确保回答符合中文语法,避免使用Markdown格式,但用户给的示例中使用了代码块和引用标识,所以需要按照要求处理。检查是否有遗漏的引用,确保每个引用标识正确对应到站内提供的文献。例如,引用[2]对应到详细的教程,引用[3]对应到CSDN资料,引用[1]可能用于未来的研究方向,作为进阶学习的一部分。 总结步骤: 1. 开头回应用户需求,说明将提供多种资源。 2. 分点列出资源类型,如官方资源、书籍、课程、实践项目等。 3. 每个点下具体推荐资源,并附上引用来源或可信链接。 4. 添加相关问题,覆盖用户可能进一步询问的方向。 5. 确保引用标识正确,如提到模型评估流程时引用[2],资料下载引用[3]。 6. 检查是否有冗余或错误信息,确保所有资源真实存在且链接有效(即使实际回答中可能无法点击,但描述需准确)。</think>以下是与BERT相关的学习资源和教程整理,涵盖从基础到进阶的内容: ### 一、官方资源与核心论文 1. **BERT原论文** 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》是必读文献,包含模型设计原理和实验结果[^2]。 2. **Google官方代码库** GitHub上的TensorFlow实现代码(搜索`google-research/bert`)提供预训练与微调示例。 ### 二、系统性教程 1. **BERT模型深度剖析教程** 包含模型构建流程、Masked Language Model (MLM) 和 Next Sentence Prediction (NSP) 评估方法详解[^2]。 2. **Hugging Face Transformers库文档** 提供BERT的PyTorch/TensorFlow实战指南,涵盖文本分类、问答等任务(访问[huggingface.co](https://huggingface.co/))。 ### 三、书籍与课程 1. **《自然语言处理实战:BERT与Transformer》** 中文教材,配套代码和案例,适合入门。引用[3]中的大模型书籍可扩展知识体系。 2. **Coursera课程** 《Natural Language Processing Specialization》(Andrew Ng团队)包含BERT专题。 ### 四、实践资源 1. **Kaggle竞赛案例** 参考BERT在情感分析、实体识别等任务的Notebook代码(如“IMDB Movie Reviews”数据集)。 2. **Colab实战项目** 谷歌Colab提供免费GPU环境,可运行BERT微调教程(搜索“BERT Fine-Tuning Colab”)。 ### 五、中文社区资源 1. **CSDN免费资料** 通过引用[3]中的CSDN认证链接可获取大模型学习资料,包含BERT源码解析[^3]。 2. **知乎专栏与博客** 搜索“BERT从零解读”系列文章,涵盖预训练、蒸馏等进阶主题。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值