博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
预训练语言模型 | (5) StructBert和RoBerta
阅读量:4037 次
发布时间:2019-05-24

本文共 1379 字,大约阅读时间需要 4 分钟。

目录


1. StructBert

structbert的创新点主要在loss上,除了MLM的loss外,还有一个重构token顺序的loss和一个判断2个segment关系的loss。重构token顺序的loss是以一定的概率挑选segment中的token三元组,然后随机打乱顺序,最后经过encoder之后能够纠正被打乱顺序的token三元组的顺序。判断2个segment关系的loss是1/3的概率是segment B是segment A的下一句,有1/3的概率是segment A是segment B的下一句,有1/3的概率是segment A和segment B来自2篇不同的文本,通过“[CLS]”对应的最后一层的编码向量(+全连接层)预测样本属于这3种的哪一种。

2. RoBerta

在xlnet使用126G的数据登顶GLUE之后不久,roberta使用160G的数据又打败了xlnet。roberta的创新点主要有4点:第1点是动态mask,之前bert使用的是静态mask,就是数据预处理的时候完成mask操作,之后训练的时候同一个样本都是相同的mask结果,动态mask就是在训练的时候每输入一个样本都要重新mask,动态mask相比静态mask有更多不同mask结果的数据用于训练,效果很好。第2点是样本的构造方式,roberta放弃了NSP的loss,修改了样本的构造方式,将输入2个segment修改为从一个文本中连续sample句子直到塞满512的长度。当到达文本的末尾且未塞满512的长度时,先增加一个“[SEP]”,再从另一个文本接着sample,直到塞满512的长度。第3点是增大了batch size,在训练相同数据量的前提之下,增大batch size能够提高模型的推理能力。第4点是使用了subword的分词方法,类比于中文的字,相比于full word的分词方法,subword的分词方法使得词表的大小从30k变成了50k,虽然实验效果上subword的分词方法比full word差,但是作者坚信subword具备了理论优越性,今后肯定会比full word好。

3. Bert系列预训练语言模型总结

nlp和cv的不同点在于nlp是认识学习,而cv是感知学习,nlp在cv的基础之上多了一个符号映射的过程,正因如此,nlp领域发展得比cv慢很多,cv领域有很多比较成功的创业公司,有很多能够达到商用程度的子领域,而nlp领域就比较少。不过nlp领域在17年的transformer发布之后开始进入快速迭代的时期,bert的发表使得nlp领域的benchmark提高了一大截,产生了不少可以达到商用程度的子领域。到了19年,nlp领域的发展可以说是越来越快了,前几天谷歌又发表了一篇T5,又把albert打败了。T5的论文据说有50页,是nlp预训练模型的一个综述,值得花时间一看。

至此,前几篇博客介绍的都是Bert(Auto-Encoder)系列预训练语言模型(包括bert<structbert<roberta<albert).今后有时间还会整理一下XLNet(结合Auto-Encoder和Auto-Regressive)系列预训练语言模型以及GPT(Auto-Regressive)系列预训练语言模型。

 

转载地址:http://rusdi.baihongyu.com/

你可能感兴趣的文章
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发基础之objective-c学习
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
Ubuntu 13.10使用fcitx输入法
查看>>
pidgin-lwqq 安装
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>