Paper速读-[Domain-Specific Language Model Pretraining for Biomedical NLP]-MS Research-2020.8.31

Paper速读-[Domain-Specific Language Model Pretraining for Biomedical NLP]-MS Research-2020.8.31


原文链接:Domain-specific language model pretraining for biomedical natural language processing
论文链接:Domain-Specific Language Model Pretraining for Biomedical Natural Language Processing

1. 简介

 这是一篇微软在2020年发布的关于特定领域(生物医学)的预训练语言模型的文章,简单来说呢,就是作者们认为,虽然我们现在普遍认为对于BERT的预训练一般是使用大量的general的语料库,但是针对一些特定的领域来说,这样做的效果也许并不如在预训练的过程中使用特定领域的语料库。
简单来说,就是本文提出了一种在特定领域应用中,新的预训练BERT的思路,并且取得了很好的效果
在这里插入图片描述

2. 关于具体的思路

 在目前主流的观点看来,预训练的语言模型是现在很多SOTA的基础,在这个阶段,每当我们拿到一个句子,我们盖住句子中的一些单词,并且训练我们的语言模型来预测被盖住的单词,这就是我们的预训练。接下来,我们可以通过使用特定任务的数据集来微调这个语言模型,之后将其应用在对应的任务。

对于主流的NLP任务来讲,普遍的思路是在预训练的阶段尽可能获得更大的数据集(往往是来自于网络上的新闻),这是因为对于普适领域的应用来说,我们往往没有一些有效的先验知识。

 然而,本文的作者认为,在特定的领域中,这样做并不合适,这是因为对于特定领域,比如生物医学来讲,领域内的数据集(诊断报告之类的东西)往往和我们在网络上搜索到的普适数据集有着很大的差距,所以上面说到的思路也许并不是这种场景下的最优解。

 也就是说,本文的作者认为针对特定领域内的NLP任务,存在以下两个先决条件:

  1. 特定领域内的语言数据集有时候会和网络上大量存在的数据集有着较大的差异
  2. 一些特定领域也存在着领域内的大量数据,举例来说,针对COVID-19的论文数量可以说是在飞速增长
    在这里插入图片描述

3. 关于效果

3.1 直观

 首先,咱们来看一个很直观的结果
在这里插入图片描述
这个图片里面的叉叉有一点点让人迷惑,但其实这并不是叉叉,或者说,是叉叉,但是它只是作为一个标记,而没有表达否定的意思。换句话说,对于在general-domain语料库上训练的BERT来说,它用到的词汇只有最前面的六个,也就是打上叉叉的这六个。而对于作者们提出的在医学语料库上训练的PubMedBERT来说,上述的所有词语都出现在了它的词汇当中

 那么,这代表了什么呢?简单来说就是,BERT只覆盖到了最基础的医学名词,而其它比较少见的名词比如lymphoma(B细胞淋巴瘤) 则被拆分成了l, ##ym, ##ph, 和 ##oma,但是PubMedBERT则不一样,因为其是在专门的医学语料库上训练的,也就是说它会增大医学专有名词的权重,结果就是这些在general-domain语料库中比较少见的单词也可以很好的被收集在PubMedBERT的词汇中。

3.2 Benchmark-BLURB

 那么,在本文中作者提到,类似GLUE这样的评分标准在NLP任务中是十分有效的,但是在生物医学的邻域内,其实是缺少专门的评分标准的。于是作者创建了一个新的数据集,BLURB,具体可以点击链接前往官网查看。简单来说就是,这个benchmark包括了十三个开源数据集,适用于计算语句相似度,关系抽取,文档分类等六个任务。为了避免BLURB着重强调一些包含许多公开数据集的任务(例如命名实体识别),作者使用了宏观的平均分数。
在这里插入图片描述
在这里插入图片描述

 此外,作者还在社区创建了一个计分榜,来跟踪这一领域内的最新进展,实际上,这个benchmark是不受限于模型的。任何可以使用对应数据集产生预测输出的模型都是可以参与进来的,据作者说,这主要是为了降低大家进入这一领域NLP任务的门槛。

3.3 模型表现

 关于预训练的细节,可参照如下表格:
在这里插入图片描述
 在这个训练中,要点如下:

  • 在生物医学文本上对PubMedBERT模型进行从零开始的预训练。训练前语料库包括1400万篇PubMed摘要,在过滤空摘要或短摘要后,包含30亿个单词(21 GB)
  • 为了进行公平的比较,我们使用了与以前生物医学预训练相同的计算量 (其实说实话,这句话我没有很看懂,我猜是和以前在这个领域内发表过的BERT相同的计算量?)
  • 通过添加来自PubMed Central的全文文章来预训练另一个版本的PubMedBERT,预训练语料库大幅增加到168亿单词(107 GB)。

 结果如下:
在这里插入图片描述
 实际上,作者在这里的原话是outperforming all prior language models and attaining state-of-the-art biomedical NLP results,从表格里我们可以观察到如下结果:

  • 在生物医学NLP应用程序中,PubMedBERT的性能始终优于所有以前的语言模型,而且通常有显著的优势。与一般域模型相比,这种增益是最显著的。
  • 虽然RoBERTa使用了最大的预训练语料库,但它在生物医学NLP任务上的表现是最差的,与原始的BERT模型相似。
  • 在预训练阶段使用生物医学文本的模型通常表现更好。然而,在此阶段混合其它文本通常会导致较差的性能。特别是,尽管临床记录与生物医学领域比通用领域文本更相关,但添加它们并不会带来任何好处,这一点从ClinicalBERT和BlueBERT的结果中可以明显看出。
  • 毫无疑问,BioBERT是与PubMedBERT最接近的,因为它也使用PubMed文本进行预训练。然而,通过从头开始进行特定领域的前预训练,PubMedBERT的表现能够在大多数任务中相比BioBERT获得一定的增益。

4. 分析训练策略

4.1 关于使用摘要或是全文的对比

通过比较对比发现,与只使用摘要的预训练相比,使用全文的预训练会导致性能的轻微下降。对于这一结果,作者分析认为存在着两个原因:

  • 全文通常比摘要更嘈杂。由于现有的生物医学NLP任务大多基于摘要,与摘要相比,全文甚至可能稍微超出领域。(简单来说,就是摘要往往就能包含足够的信息了,而全文甚至可能还会引入新的噪声)
  • 即使全文是有帮助的,它们需要额外的预训练周期来利用额外的信息。实际上,通过将预训练延长60%,总体结果略好于仅使用摘要的标准PubMedBERT。
    在这里插入图片描述

4.2 关于对抗训练

在这里插入图片描述
对抗预训练已被证明在提高一般领域应用的性能方面是非常有效的。令人惊讶的是,它通常会导致PubMedBERT性能的轻微下降。我们假设,原因可能与我们在全文预训练观察到的情况类似。也就是说,与应用任务相比,如果训练前语料库更多样化、相对general-domain,对抗式训练更有用。

4.3 命名实体识别和关系提取可能不再需要使用神经语言模型

这一点我认为还是比较神奇的,感兴趣的小伙伴可以去仔细看一下原文,作者提出随着自注意机制的使用,使用显式顺序建模这种方法变得值得怀疑。在消融研究中,我们发现线性层比顺序建模方法(如双向lstm)具有相当或更好的性能。对于命名实体识别,仅区分实体提到的内部和外部的标记方案就足够了。
在这里插入图片描述

OK,那么以上就是本篇文章的全部内容了,感兴趣的小伙伴可以点击开头的链接阅读原文哦

关于更多的文章,请看这里哦文章分享专栏 Paper sharing Blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值