今天给大家介绍阿里巴巴达摩院在ICLR2020的一篇论文,该研究针对预训练语言模型BERT在预训练任务中忽略了语言结构的问题,作者对BERT进行扩展,通过加入语言结构到预训练任务中,其核心思想是在预训练任务中加入两项基于语言结构的任务:word-level ordering和sentence-level ordering。

1

背景

预训练语言模型是NLU(Natural Language Understanding)的关键组成部分,为了获得可靠的语言表示,通过定义文本中单词序列的联合概率来设计神经语言模型。不同于传统的特定单词嵌入的方式,研究人员们从大型文本语料库上训练的语言模型获得具有上下文信息的词向量,这些模型在很多下游任务上都显示出了高效性。在上下文语言模型中,Google在2018年发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,提出一种预训练语言模型BERT(包括更具鲁棒性的优化版本RoBERTa),一经提出就暴风式地占据了NLP领域,这个模型在解决NLU问题上受到了许多关注,而且在许多NLU任务上都取得了最先进的性能,例如情感分类问题(Sentiment Classification)、自然语言推理(Natural Language Inference)、语义文本相似度(Semantic Textual Similarity)和问答问题(Question Answering),大幅度超过了之前的模型。BERT(Bidirectional Encoder Representation from Transformers)是利用多头注意力机制获得的注意力矩阵和注意力加权,使得序列中的每一个词都含有这个词的前面的信息和后面的信息得到双向表示和利用两种预训练任务(Mask and Next Sentence Prediction)进行预测,虽然取得了先进的性能,但是作者认为其并未充分利用句子的语言结构。

利用语言模型在一系列的词语和句子找到最佳排列是NLP任务的本质,例如机器翻译,基于此,作者提出了一种新型的上下文表示模型,StructBERT。StrucBERT分别利用在句子中和句子间增加结构信息,词序(word-level ordering)和句序(sentence-level ordering)来增强模型的预训练,这样在预训练上可以明确捕获语言方面的内容,可以在上下文表示中对句子和单词之间的依存关系进行编码表示,增强了模型的通用性和适用性。

2

模型

在Input Representation方面和模型架构上同BERT一样,即多层Transformer。改进在于保存了BERT现有的预训练任务Mask LM和NSP(Next Sentence Prediction)的情况下,新增了两个预训练目标:Word Structural Objective和Sentence Structural Objective。

(1)Word Structural Objective

BERT无法直接显式的对单词顺序和高阶依赖性建模。而将一句话中的单词打乱,一个好的语言模型应该能够通过重组单词顺序恢复句子的正确排列。为了能在StructBERT中实现,用Word Structural Objective使得打乱的句子重构成正确的句子顺序。做法是从一句话中未被mask的单词中选取一定长度的子序列,将子序列中的单词打乱,然后让模型恢复正确顺序,为了更好理解,下图2-1充分说明了做法。

图2-1 Word Structural Objective

在这里,作者选取长度为3(Trigram)的子序列(子序列的长度K也是超参数的一部分,即K=3)进行打乱,[需要特别说明的是,较大的K值能够使得模型重构更长的序列,同时注入更多受干扰的输入,相反,较小的K值,序列的干扰会降低,重构能力也会下降,所以作者选取K=3来平衡语言的重构性和模型的鲁棒性],从图中可以看出打乱的是t2,t3,t4,然后最后输出正确的顺序。在具体的实验中,作者从重新排列的子序列中选择5%,进行词序的打乱。

(2)Sentence Structural Objective

在原始的BERT模型任务中,BERT很容易预测下一句话,在StructBERT中,增加上一句话的预测,使得语言模型以双向方式知道句子顺序。具体做法是给定句子对(S1,S2),预测S1是S2的上一句话、S2是S1的上一句话还是S1,S2来自不同的文本(即毫无关联性)。实验中,对于一个句子S,1/3的概率采样S的下一句组成句子对,1/3的概率采样S的上一句组成句子对,1/3的概率随机采样一个其他文档的句子组成句子对。下图2-2可以更好的理解这种做法。

图2-2 Sentence Structural Objective

从图中可以看出,从BERT模型中S1和S2是否是上下文关系的二分类问题变成了这里的三分类问题。

其余的预训练细节和参数都和BERT保持一致。

3

实验

实验部分是StructBERT在各种下游任务上的结果,包括通用语言理解评估(GLUE benchmark),斯坦福自然语言推断(SNLI语料库)和提取性问答(SQuAD v1.1)。

(1) GLUE

GLUE涵盖了9个NLU任务,包括textual entailment (RTE、MNLI), question-answer entailment (QNLI), paraphrase(MRPC), question paraphrase (QQP), textual similarity (STS-B), sentiment (SST-2), linguistic acceptability (CoLA), and Winograd Schema (WNLI)。下表3-1显示出了StructBERT在9个NLU任务的表现结果。

表3-1 Results of published models on the GLUE test set

从表中可以看出,StructBERT在9个任务中在平均上超过现有的所有模型,而且在6个任务中表现最佳。在MNLI(-m/-mm)任务上,提升了0.3%/0.5%,但是只是对域内数据进行了微调,这里体现了模型的通用性。在CoLA任务中,可能是单词的排序任务和语法纠错任务存在着很强的相关性,使得该任务有显著的改进。在SST-2任务中,比BERT有进步,但是性能却不如MT-DNN,表明基于单句的情感分析从词序和句序中受益很少。

(2)SNLI

自然语言推理(NLI)是自然语言理解中的重要任务之一。该任务的目的是测试模型推理两个句子之间的语义关系的能力。为了在NLI任务上表现出色,模型需要捕获句子的语义,从而推断一对句子之间的关系:蕴涵,矛盾或中立。

表3-2 Accuracy (%) on the SNLI dataset.

表3-2显示了StructBERT与其他已发布模型在SNLI数据集上的结果。StructBERT的性能优于现有的模型,准确率达到91.7%,与之前的最新模型SJRC相比,绝对值提高0.4%,与BERT相比,绝对值提高0.9%。由于我们模型的网络架构与BERT,这种改进完全归功于新的预训练目标,这证明了单词预测和句子预测任务的有效性。

(3)EXTRACTIVE QA

SQuAD v1.1是一个机器阅读理解数据集,包含100000多个问题,这些问题是由工作者们在536条维基百科文章上提出的。任务的目的是从给定问题的相应段落中提取正确的答案范围。在SQuAD数据集跑了3个epoch,并将结果与官方排行榜上的性能最好的模型进行了比较,如表3-3所示。

表3-3 SQuAD results

我们可以看到,即使没有任何额外的数据增强(DA)技术, StructBERT模型优于除开发集上的XLNet + DA之外的所有模型。XLNet + DA优于StructBERT,可是后者没有使用数据增强或大型预训练语料库。它证明了所提出的预训练的StructBERT模型在为抽取式QA在段落关系方面的有效性。在QA任务中,将单词和句子结构合并在一起可以大大提高理解能力。

(4)EFFECT OF DIFFERENT STRUCTURAL OBJECTIVES

前文已经证明该模型在各种下游任务上的优秀结果。在StructBERT预训练中,两个新的结构预测任务是最重要的组成部分。因此,作者进行了一次消融研究,通过一次从训练中移除一个结构目标来检查这两个结构目标如何影响各种下游任务的性能。

表3-4 Ablation over the pre-training objectives using StructBERT

从表3-4可以看出,(1)这两个结构目标对于大多数下游任务都是至关重要的,但SNLI任务在Word Structural Objective存在与否都表现差不多。从预训练任务中删除任何一个结构任务都会导致下游任务的性能下降。持续进行结构预训练的StructBERT模型优于原始的BERT模型,该模型显示了所提出的结构目标的有效性。(2)对于MNLI,SNLI,QQP和SQuAD等句子对任务,结合Sentence Structural Objective可以显著提高性能。(3)对于单句任务(例如CoLA和SST-2),Word Structural Objective发挥了很重要的作用。特别是在与语法纠错有关的CoLA任务中,改进超过5%。

参考资料

原文

https://openreview.net/pdf?id=BJgQ4lSFPH

ICLR2020 | StructBERT : 融合语言结构的BERT模型相关推荐

  1. 用matlab语言写一个bert模型

    下面是一个示例代码,可以帮助您在 MATLAB 中实现 BERT 模型: % 导入必要的库 import transformers.*% 加载 BERT 预训练模型 model = transform ...

  2. StructBERT:将语言结构纳入深度语言理解的预训练中——中文翻译

    STRUCTBERT:将语言结构纳入深度语言理解的预训练中 Wei Wang, Bin Bi, Ming Yan, Chen Wu, Zuyi Bao, Jiangnan Xia, Liwei Pen ...

  3. 图解BERT模型:从零开始构建BERT

    转载:https://cloud.tencent.com/developer/article/1389555 本文首先介绍BERT模型要做什么,即:模型的输入.输出分别是什么,以及模型的预训练任务是什 ...

  4. BERT模型的结构,特点和实践

    BERT模型介绍,特点,资源 一.背景介绍 二.BERT与语言模型 1.feature-based 2.fine-tuning 3.BERT的语言模型 三.BERT整体概览 1. BERT框架 2. ...

  5. WWW 2021 | 融合先验知识的BERT注意力模型

    ©PaperWeekly 原创 · 作者|张琨 学校|中国科学技术大学博士生 研究方向|自然语言处理 Motivation BERT 等预训练模型使得自然语言处理等相关研究能够充分利用大规模的无标注语 ...

  6. 切分也重要:基于多粒度语言单元切分的BERT模型

    论文标题: AMBERT: A PRE-TRAINED LANGUAGE MODEL WITH MULTI-GRAINED TOKENIZATION 论文作者: Xinsong Zhang, Hang ...

  7. bert模型可以做文本主题识别吗_BERT如何融合主题模型-ACL2020

    首发公众号:[NLP从入门到放弃] 今天分享一个论文ACL2020-tBERT,论文主要融合主题模型和BERT去做语义相似度判定,在特定领域使用这个模型,效果更明显. 掌握以下几点: [CLS]向量拼 ...

  8. bert模型可以做文本主题识别吗_网民情绪识别TOP3分享----科技战疫·大数据公益挑战赛...

    摘要 针对赛题数据,本团队在数据处理部分采用数据去噪的方式保证了数据的整洁性:在模型构建部分使用了开源预训练模型,并通过预训练模型多层表示的动态权重融合方式对预训练模型进行修改,而后下接BILSTM和 ...

  9. 【NLP】从WE、ELMo、GPT到Bert模型—自然语言处理中的预训练技术发展史

    Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得.那为什么会有这么高的评价呢?是因为它有重大的理论或者模型创新吗?其实并没有,从模型创新角 ...

最新文章

  1. imgcook:各种图像一键自动生成代码的工具
  2. Thymeleaf页面级联属性
  3. 学会转变你的思维方式,一切都会变得不一样
  4. 网络编程--sockaddr 与 sockaddr_in
  5. 简单Hook SYSENTER
  6. flex平均分布换行后自动对齐
  7. xshell有大量打印时,显示信息不全
  8. IP分片和TCP分段的区别
  9. ThinkPHP(3.2)搭建简单留言板项目
  10. Java是否为回文_java语言判断一个数字是否为回文数字
  11. 计算机三级教材重点网络技术,2020年计算机三级网络技术知识点梳理:身份认证...
  12. 前端性能测试--启动时间监控数值获取方法
  13. 计算机无法识别读卡器怎么办,电脑无法识别读卡器怎么办
  14. 冲压模板自动标注LISP_自动标注.LSP
  15. Flink Watermark机制
  16. 伯克利校长全员邮件:上课先用 Zoom,还不行就发电报!
  17. 【3】Kubernetes资源管理
  18. 操作系统2015(四川大学软件学院)
  19. NetSpectre:通过网络读取任意内存
  20. 代码之外——醒世良言

热门文章

  1. Guava学习笔记:缘起
  2. 在线项目管理软件推荐
  3. 一文详解 API 设计最佳实践
  4. Java高并发编程基础之AQS
  5. 在一个执行力极差的团队工作是一种怎样的体验?
  6. SpringBoot内置tomcat启动原理
  7. 数据库锁机制为什么很重要?
  8. 一口气说出 OAuth2.0 的四种授权方式
  9. 98页PPT,看懂阿里、小米、京东、美团的组织架构和战略变迁!
  10. 愤怒!GitHub开始限制“受美国制裁”国家账号!