点击下面卡片关注我呀,每天给你送来AI技术干货!

来自:朴素人工智能

感谢清华大学自然语言处理实验室对预训练语言模型架构的梳理,我们将沿此脉络前行,探索预训练语言模型的前沿技术,红框中为已介绍的文章,绿框中为本期介绍的模型,欢迎大家留言讨论交流

SpanBERT: Improving Pre-training by Representing and Predicting Spans(2020)

spanBERT是专门设计来更好地表示和预测文本的区间的,顾名思义它是BERT的一种扩展。相对于BERT,SpanBERT做了如下的改动。

  1. 相比于BERT是对于随机的token进行masking,spanBERT会对连续的span进行masking。

  2. spanBERT通过训练span的边界的表示,来对整个被mask的span来进行预测,而非其中的单个token。具体的说,文章引入了span-boundary objective(SPO),来鼓励模型将span层面的信息存储在其边界的token表示上,以在finetune阶段获得更好的效果。

由于这两个机制,spanBERT在span选择的任务上明显地比BERT表现要好,包括问答匹配和指代消岐。同时在SQuAD和OntoNotes上都取得了state-of-the-art的效果。在SQuAD上,相比于BERT,SpanBERT降低了27%的误差,在各种抽取式问答benchmark(NewsQA, TriviaQA, SearchQA, HotpotQA, Natural Questions) 也观察到了类似的收益。

另外作者发现,在单个的片段上进行预训练,比两个一半长的片段预训练(带NSP)效果要好,所以,作者在预训练的时候选择在单个片段上进行,对比的BERT baseline也是在单个片段上预训练的BERT,效果是比原来的BERT baseline上是提高的。

相比于其他approach通过增加训练的数据和加大模型的尺寸来提升性能。SpanBERT通过优化预训练模型的训练目标来提升效果。比如下图中展现了一个实例,被mask的是“an American football game"。SBO目标,就是用蓝色的x4(was)和x9(to)作为边界表示来预测被mask的每个token。从式子中可以看出MLM与SPO loss的区别,MLM利用x7的编码表示来预测football这个token,而SBO会利用,这个span(x5-x8)的边界 -> x4,x9和p3(从x4开始第三个token的位置embedding) 来进行预测。

Span Masking

对一个序列X = (x1, x2, . . . , xn), 我们选取它的一个子集Y进行mask。通过不断地选取span,直到选够了X中15%的token。选取的方法是,首先通过几何分布选取span的长度L,会微倾向于选取较短的span,然后,半随机地选取span的起始位置。我们经常会去sample一个完整的单词或短语,所以开始的位置一般选在单词的开始。选取长度时,官方的设置是 L ∼Geo(0.2),同时裁剪L使Lmax=10,于是span长度的分布如下,平均值为3.8。span masking,指的式对span中的每一个token都替换成[MASK]。

Span Boundary Objective(SBO)

SBO引入了目标函数来预测span内被mask的每一个token,只通过在span边界上被观察到的token的表示和其在span内的位置来进行预测。如果span内的token为 (xs, . . . , xe),(s, e)是其起始的位置和结束的位置,那么我们就会使用其外部的边界表示 xs−1 和 xe+1,以及目标token的位置embedding即Pi−s+1来对其进行表示。一般会用两层的线性层加非线性激活来得到logits以计算其cross-entropy loss。

Single-Sequence Training

BERT的预训练方法是每个样本包含两个片段序列 (XA, XB),训练目标包括MLM(masked language model) 以及NSP (next sentence prediction)。训练中可以用NSP去预测XA,XB是否是连接的。作者发现,这种训练方法几乎总是比单纯只用MLM去训练单个片段序列样本更差。他认为有如下原因

  • 用单个片段序列时,片段序列会更长,模型可以从中收益。

  • 有时候,XA,XB来自不同文档,会将噪声加入到masked language model中

因此,在SpanBERT的训练中,只用了单个长512的序列片段。

总结一下这三点就是,SpanBERT通过

  1. 通过几何分布抽样span长度,均匀分布寻找span的起始位置,并将其中的token全部mask。

  2. 除了MLM目标外,新添了SPO目标进行优化,使抽取能力更强。

  3. 使用了单个片段序列进行训练和预测,稳定提升。

模型细节

大部分设置和BERT相同,不同点有如下

  • 相比于BERT对每个样本进行十种不同的mask,然后进行40个epoch的训练,SpanBERT会在每个epoch都对序列进行不同的masking。

  • 移除了BERT的短句训练的策略,原来BERT会以0.1的概率用短文本进行训练,同时前90%的训练会以长128的序列来训练。

  • 模型会跑2.4M步, AdamW的epsilon 使用 1e-8,因为这样收敛得更好。

  • SBOloss中使用的位置编码为200维,对应离span最左侧的距离。

  • 预训练使用了32张V100,花了15天完成。

接着作者在一些数据集上进行了一些比较。

结论

作者在17个任务上比较了SpanBERT和BERT,几乎所有任务上SpanBERT都更好。并且,SpanBERT由于其目标的机制,其更擅长抽取式问答。最后,使用单个片段序列的预测和训练好过,带有NSP的双片段样本进行训练,这让作者有点惊讶,因为BERT论文中的对比实验,显示NSP是有收益的。不过编者介绍的前篇推送中也讲到了,RoBERTa的研究中也认为NSP会降低模型的性能。

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

点击上面卡片,关注我呀,每天推送AI技术干货~

整理不易,还望给个在看!

SpanBERT: 抽取式问答的利器相关推荐

  1. nlp-问答任务-抽取式问答

    建议直接使用google colab notebook打开本教程,可以快速下载相关数据集和模型. 如果您正在google的colab中打开这个notebook,您可能需要安装Transformers和

  2. NLP-阅读理解:“阅读理解”综述(Machine Reading Comprehension, MRC)【完形填空、多项选择、抽取式(答案片段抽取)、生成式(自由作答)】《机器阅读理解数据集》

    <原始论文:Neural Machine Reading Comprehension: Methods and Trends> 一.阅读理解概述 所谓的机器阅读理解(Machine Rea ...

  3. 开源任务式问答机器人系列之rasa篇

    开源任务式问答机器人框架系列--Rasa Rasa data/nlu.md data/stories.md domain.yml config.yml 总结 Rasa rasa是一个开源的问答机器人框 ...

  4. 基于CNN的阅读理解式问答模型:DGCNN

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 早在年初的一文读懂「Attention is All You Need」| 附代码实现中就已经承诺 ...

  5. 基于TextRank的抽取式文本摘要(英文)

    基于TextRank的抽取式文本摘要(英文) 前言 备注 Talk is cheap, show me the code. 前言 在GitHub上写笔记要经常查看很麻烦,在此记录一些整合的各种代码.能 ...

  6. 中文检索式问答机器人模型

    检索式问答机器人最典型的一个例子就是FAQ客服机器人. 什么是FAQ呢? 简介:在智能客服的业务场景中,对于用户频繁会问到的业务知识类问题的自动解答(以下简称为FAQ)是一个非常关键的需求,可以说是智 ...

  7. NLP-生成模型-2017-PGNet:Seq2Seq+Attention+Coverage+Copy【Coverage解决解码端重复解码问题;Copy机制解决解码端OOV问题】【抽取式+生成式】

    PGNet模型训练注意事项: Coverage机制要在训练的最后阶段再加入(约占总训练时间的1%),如果从刚开始训练时就加入则反而影响训练效果: Copy机制在源文本的各个单词上的概率分布直接使用At ...

  8. NLP-生成模型-2016-生成式摘要模型:Seq2Seq+Attention+Copy【Pointer网络的Copy机制解决Decoder端的OOV问题】【抽取式+生成式】【第一个生成式摘要模型】

    <原始论文:Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond> Seq2Seq(BiGRU ...

  9. 一种基于抽取式的中文机器阅读理解数据集CMRC2018

    一种基于抽取式的中文机器阅读理解数据集CMRC2018 A Span-Extraction Dataset for Chinese Machine Reading Comprehension Lead ...

  10. 自然语言处理NLP——中文抽取式自动文摘(包括中文语料库处理、三种方法实现自动文摘、Rouge评价方法对自动文摘进行打分)

    利用三种方法实现抽取式自动摘要,并给摘要结果打分(一.textrank 二.word2vec+textrank 三.MMR 四.Rouge评测) 具体代码我上传到了Github上,其中有45篇小论文( ...

最新文章

  1. MPB:山东农大高峥、周波等-​​​尾菜堆肥微生物组样品取样方法
  2. 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021...
  3. ​NVIDIA针对数据不充分数据集进行生成改进,大幅提高CIFAR-10数据生成
  4. 迅雷启动不了,提示Atl71.dll文件丢失
  5. linux脚本多个条件比较大小,shell脚本-比较两个整数大小
  6. 修改yum的镜像服务器为阿里云
  7. js ajax java传参_js使用ajax传值给后台,后台返回字符串处理方法
  8. ef oracle 批量更新慢_详解Oracle中多表关联批量插入、批量更新与批量删除
  9. java web开发中会遇到的异步执行方案
  10. 关于图灵机的三个问题
  11. 读[SBO高层大变动]一文有感
  12. 快速指数(快速幂)/模指数运算代码模板
  13. BZOJ_1619_[Usaco2008_Nov]_Guarding_the_Farm_保卫牧场_(模拟+bfs)
  14. chrome视频无法播放的解决方法(Solve the problem of Google player cannot be played normally)
  15. The Design of Model (part 1)
  16. 物联网连接拼图:蜂窝与非蜂窝
  17. Revit二次开发——revit怎么给桥梁加钢筋
  18. ExecutorService,Executors 使用
  19. 【毕业设计推荐】基于Django大连房源分析系统
  20. 软件架构-Nosql之redis

热门文章

  1. BZOJ4552: [Tjoi2016Heoi2016]排序
  2. freemarker,自定义指令
  3. javascript中的正则表达式学习
  4. Android 微信分享信息
  5. 一个DataTable赋值给另一个DataTable的常用方法
  6. 【windows】win键失效
  7. c++冒泡排序的类模板的实现
  8. 电路板的信号完整性问题及原因
  9. JavaScript实现按字典排序进行md5加密, 以及个人在小程序也可以实现
  10. JAVA bean与XML互转的利器---XStream