学术预训练模型—基础的学术领域Bert预训练模型,原文理解与阅读:SciBert: A Pretrained Language Model for Scientific Text

SciBert: A Pretrained Language Model for Scientific Text

SciBert:科学文本的预训练语言模型

paper: https://arxiv.org/abs/1903.10676

github: https://github.com/allenai/scibert/

本文是经典的学术bert预训练模型,仅供补充基础知识

1.Model

1.SciBert使用的框架:

Bert 是在两个任务上进行训练的:预测随机屏蔽的标记和预测两个句子是否彼此相接。SciBert 采用与 Bert 相同的架构,但在科学文本上进行了预训练。

2.Vocabulary,词汇表:

Bert 使用 WordPiece对输入文本进行无监督标记化。建立的词汇包含最常用的单词或子单词单元。本文将 Bert 原始词汇表称为 BaseVocab。

使用 SentencePiece库在科学语料库上构建了一个新的 WordPiece 词库 SciVocab。生成了带词缀和不带词缀的词汇表,并将词汇大小设置为 30K,以匹配 BaseVocab 的大小。结果发现科学领域文本和普通领域文本之间的常用词存在很大差异。

3.预训练语料库:

我们在Semantic Scholar 114万篇论文的随机样本上训练SciBert。该语料库中有 18% 的论文来自计算机科学领域,82% 来自广泛的生物医学领域。我们使用的是论文全文。论文的平均长度为 154 个句子(2,769 个词块),因此语料库的规模为 31.7 亿个词块,与 Bert 所训练的 33 亿个词块类似。使用 ScispaCy对句子进行了拆分,它针对科学文本进行了优化。

4.下游微调训练任务:

对以下核心 NLP 任务进行了实验:

  1. 命名实体识别(NER)
  2. PICO 提取 (PICO)
  3. 文本分类 (CLS)
  4. 关系分类 (REL)
  5. 依赖解析 (DEP)

5.微调数据集:

EBM-NLP注释临床试验摘要中的 PICO 跨度。SciERC注释计算机科学摘要中的实体和关系。ACL-ARC和 SciCite为引用其他论文的科学论文中的句子分配意图标签(如比较、扩展等)。论文领域数据集由微软学术图谱构建,将论文标题映射到 7 个研究领域之一。每个研究领域(即地理、政治、经济、商业、社会学、医学和心理学)都有大约 12K 个训练示例。

6.scibert预训练配置:

SciBert:使用 Bert 的原始代码在语料库上训练 SciBert,语料库的配置和大小与 Bert-Base 相同。训练了 4 个不同版本的 SciBert:(i) cased and uncased,(ii) BaseVocab 或 SciVocab。使用 BaseVocab 的两个模型是在相应的 Bert-Base 模型基础上进行微调的。另外两个使用新的 SciVocab 的模型是从头开始训练的。

对长句进行 Bert 预训练可能会比较慢。按照最初的 Bert 代码,将最大句子长度设定为 128 个词组,并对模型进行训练,直到训练损失停止下降。然后,继续训练模型,允许句子长度达到 512 个字节。

7.下游微调配置:

沿用 Devlin所使用的相同架构、优化和超参数选择。对于文本分类,将 [CLS] 标记的最终 Bert 向量送入线性分类层。对于序列标注,我们将每个标记的最终 Bert 向量送入具有 softmax 输出的线性分类层。对于 DEP,使用了 Dozat 和 Manning的模型,其依赖性标记和弧嵌入的大小为 100,并对 Bert 向量进行双亲矩阵关注。

在所有设置中,都采用 0.1 的辍学率,并使用 Adam Kingma 和 Ba优化交叉熵损失。使用 32 的batch大小和 5e-6、1e-5、2e-5 或 5e-5 的学习率对 2 到 5 个 epoch 进行微调,

训练发现,在大多数数据集和模型中,效果最好的设置是 2 或 4 个epoch和 2e-5 的学习率。虽然超参数与任务有关,但在不同的 Bert 变体中,每个任务的最佳超参数往往是相同的。

2.原文阅读

Abstract

为科学领域的 NLP 任务获取大规模标注数据具有挑战性且成本高昂。我们发布了基于 BertDevlin 等人(2019)的预训练语言模型 SciBert,以解决缺乏高质量、大规模标注科学数据的问题。SciBert 利用在大型多领域科学出版物语料库上进行的无监督预训练,提高了下游科学 NLP 任务的性能。我们利用各种科学领域的数据集对一系列任务进行了评估,包括序列标记、句子分类和依赖关系解析。与伯特相比,我们在统计上取得了显著的改进,并在其中几项任务上取得了新的先进成果。代码和预训练模型可从 https://github.com/allenai/scibert/获取。

1 Introduction

过去几十年来,科学出版物的数量呈指数级增长,这使得 NLP 成为大规模知识提取和机器阅读这些文档的重要工具。深度神经模型的采用推动了 NLP 的最新进展,但训练此类模型往往需要大量标注数据。在一般领域,大规模训练数据通常可以通过众包获得,但在科学领域,由于高质量标注需要专业知识,标注数据的收集既困难又昂贵。

ElmoPeters 等人(2018 年)、GPTRadford 等人(2018 年)和 BertDevlin 等人(2019 年)的研究表明,在大型语料库上对语言模型进行无监督预训练,可以显著提高许多 NLP 任务的性能。这些模型会返回每个标记的上下文化嵌入,而这些嵌入可以传递到最小任务特定的神经架构中。利用无监督预训练的成功变得尤为重要,尤其是在难以获得特定任务注释的情况下,比如在科学 NLP 中。然而,虽然 Bert 和 Elmo 都发布了预训练模型,但它们仍然是在新闻文章和维基百科等通用领域语料库上进行训练的。

在这项工作中,我们做出了以下贡献:

(i) 我们发布了 SciBert,这是一种新资源,经证明可提高科学领域一系列 NLP 任务的性能。SciBert 是一个基于 Bert 的预训练语言模型,但在大量科学文本语料库中进行了训练。

(ii) 我们进行了广泛的实验,以研究在冻结嵌入顶端的微调架构与特定任务架构的性能,以及拥有域内词汇的效果。

(iii) 我们在科学领域的一系列任务上对 SciBert 进行了评估,并在其中许多任务上取得了新的一流(SOTA)结果。

2 Methods

背景:Bert模型架构Devlin等人(2019)基于多层双向transformer。与传统的从左到右的语言建模目标不同,Bert 是在两个任务上进行训练的:预测随机屏蔽的标记和预测两个句子是否彼此相接。SciBert 采用与 Bert 相同的架构,但在科学文本上进行了预训练。

Vocabulary:Bert 使用 WordPiece Wu 等人(2016 年)对输入文本进行无监督标记化。建立的词汇包含最常用的单词或子单词单元。我们将随 Bert 发布的原始词汇表称为 BaseVocab。

我们使用 SentencePiece库在科学语料库上构建了一个新的 WordPiece 词库 SciVocab。我们生成了带词缀和不带词缀的词汇表,并将词汇大小设置为 30K,以匹配 BaseVocab 的大小。结果发现,BaseVocab 和 SciVocab 之间的标记重叠率为 42%,这说明科学领域文本和普通领域文本之间的常用词存在很大差异。

语料库:我们在Semantic Scholar(Ammar等人,2018年)114万篇论文的随机样本上训练SciBert。该语料库中有 18% 的论文来自计算机科学领域,82% 来自广泛的生物医学领域。我们使用的是论文全文,而不仅仅是摘要。论文的平均长度为 154 个句子(2,769 个词块),因此语料库的规模为 31.7 亿个词块,与 Bert 所训练的 33 亿个词块类似。我们使用 ScispaCy对句子进行了拆分,它针对科学文本进行了优化。

3 Experimental Setup

3.1.Tasks

我们对以下核心 NLP 任务进行了实验:

  1. 命名实体识别(NER)
  2. PICO 提取 (PICO)
  3. 文本分类 (CLS)
  4. 关系分类 (REL)
  5. 依赖解析 (DEP)

PICO 与 NER 一样,也是一种序列标注任务,模型会提取临床试验论文中描述参与者、干预、比较和结果的跨度(Kim 等人,2011 年)。REL 是文本分类的一种特例,模型预测两个实体之间的关系类型,这些关系通过插入的特殊标记被封装在句子中。

3.2.Datasets

为简洁起见,我们在此仅介绍较新的数据集,较旧的数据集请读者参阅表 1 中的参考文献。EBM-NLP(Nye 等人,2018 年)注释临床试验摘要中的 PICO 跨度。SciERC(Luan 等人,2018 年)注释计算机科学摘要中的实体和关系。ACL-ARC(Jurgens 等人,2018 年)和 SciCite(Cohan 等人,2019 年)为引用其他论文的科学论文中的句子分配意图标签(如比较、扩展等)。论文领域数据集由微软学术图谱(Sinha 等人,2015 年)4 构建,将论文标题映射到 7 个研究领域之一。每个研究领域(即地理、政治、经济、商业、社会学、医学和心理学)都有大约 12K 个训练示例。

3.3.Pretrained Bert Variants

Bert-Base:我们使用与 Bert 原始代码一起发布的 Bert-Base 的预训练权重。我们同时评估了该模型的cased and uncased版本。

SciBert:我们使用 Bert 的原始代码在语料库上训练 SciBert,语料库的配置和大小与 Bert-Base 相同。我们训练了 4 个不同版本的 SciBert:(i) cased and uncased,(ii) BaseVocab 或 SciVocab。使用 BaseVocab 的两个模型是在相应的 Bert-Base 模型基础上进行微调的。另外两个使用新的 SciVocab 的模型是从头开始训练的。

对长句进行 Bert 预训练可能会比较慢。按照最初的 Bert 代码,我们将最大句子长度设定为 128 个词组,并对模型进行训练,直到训练损失停止下降。然后,我们继续训练模型,允许句子长度达到 512 个字节。

我们使用的是具有 8 个内核的 TPU v3。在我们的语料库上从头开始训练 SciVocab 模型需要 1 周时间6(最大长度为 128 时需要 5 天,最大长度为 512 时需要 2 天)。BaseVocab 模型的训练时间要少 2 天,因为它们不是从头开始训练的。

我们的所有模型(第 3.4 节和第 3.5 节)都是在 PyTorch 中使用 AllenNLP(Gardner 等,2017 年)实现的。

Casing:我们效仿 Devlin 等人(2019)的做法,在 NER 中使用cased模型,而在所有其他任务中使用uncased模型。我们还使用带标点模型进行解析。一些简单的实验表明,无标注模型的性能(甚至有时在 NER 中)略好于有标注模型。

3.4.Finetuning Bert

我们主要沿用 Devlin 等人(2019 年)所使用的相同架构、优化和超参数选择。对于文本分类(即 CLS 和 REL),我们将 [CLS] 标记的最终 Bert 向量送入线性分类层。对于序列标注(即 NER 和 PICO),我们将每个标记的最终 Bert 向量送入具有 softmax 输出的线性分类层。我们在使用额外的条件随机场方面略有不同,该条件随机场通过保证实体的良好格式而使评估变得更容易。对于 DEP,我们使用了 Dozat 和 Manning(2017 年)的模型,其依赖性标记和弧嵌入的大小为 100,并对 Bert 向量进行双亲矩阵关注,而不是堆叠 BiLSTM。

在所有设置中,我们都采用 0.1 的辍学率,并使用 Adam Kingma 和 Ba(2015 年)优化交叉熵损失。我们使用 32 的批次大小和 5e-6、1e-5、2e-5 或 5e-5 的学习率对 2 到 5 个 epoch 进行微调,并使用斜三角形计划 Howard 和 Ruder(2018 年),这相当于线性热身后的线性衰减 Devlin 等人(2019 年)。对于每个数据集和 Bert 变体,我们都会在开发集上选取最佳学习率和历时数,并报告相应的测试结果。

我们发现,在大多数数据集和模型中,效果最好的设置是 2 或 4 个历元和 2e-5 的学习率。虽然超参数与任务有关,但在不同的 Bert 变体中,每个任务的最佳超参数往往是相同的。

3.5.Frozen Bert Embeddings

我们还通过在冻结的 Bert 嵌入上训练简单的特定任务模型,探索了 Bert 作为预训练的上下文化单词嵌入的用法,就像 ELMo Peters 等人(2018)所做的那样。

在文本分类方面,我们将每句话的 Bert 向量送入大小为 200 的双层 BiLSTM,并在第一个和最后一个 BiLSTM 向量的连接上应用多层感知器(隐藏大小为 200)。在序列标注方面,我们使用相同的 BiLSTM 层,并使用条件随机场来保证预测的准确性。对于 DEP,我们使用了 Dozat 和 Manning(2017 年)的完整模型,依赖关系标记和弧嵌入的大小为 100,BiLSTM 设置与其他任务相同。我们没有发现改变 BiLSTM 的深度或大小会对结果产生重大影响。

我们使用亚当优化交叉熵损失,但保持贝特权重冻结,并应用 0.5 的 dropout。我们在开发集(耐心值为 10)上进行早期停止训练,批量大小为 32,学习率为 0.001。

我们没有进行广泛的超参数搜索,但虽然最佳超参数将取决于任务,但一些简单的实验表明,这些设置在大多数任务和伯特变体中都相当有效。

4 Results

表 1 总结了实验结果。我们发现,SciBert 在科学任务上的表现优于 Bert-Base(微调后 F1 为 +2.11,未微调时 F1 为 +2.43)8。我们还利用 SciBert 在其中许多任务上取得了新的 SOTA 结果。

在这里插入图片描述

4.1.Biomedical Domain

我们发现,SciBert 在生物医学任务上的表现优于 BertBase(微调后 F1 为 +1.92,未微调时 F1 为 +3.59)。此外,SciBert 在 BC5CDR 和 ChemProt Lee 等人(2019 年)以及 EBMNLP Nye 等人(2018 年)上取得了新的 SOTA 结果。

在 3 个数据集上,SciBert 的表现略逊于 SOTA。JNLPBA 的 SOTA 模型是在多个 NER 数据集上训练的 BiLSTM-CRF 集合,而不仅仅是 JNLPBA Yoon 等人(2018)。NCBI-disease的SOTA模型是BioBert Lee等人(2019),它是在生物医学论文的18B词库基础上经过微调的BertBase。GENIA 的 SOTA 结果见 Nguyen 和 Verspoor (2019),该结果使用了 Dozat 和 Manning (2017) 的模型,并带有语音部分(POS)特征,我们没有使用该特征。

在表 2 中,我们比较了 SciBert 与 BioBert 在 Lee 等人(2019)所列数据集子集上的结果。有趣的是,SciBert 在 BC5CDR 和 ChemProt 上的结果优于 BioBert,而在 JNLPBA 上的表现与 BioBert 相似,尽管它是在一个小得多的生物医学语料库上训练的。
在这里插入图片描述

4.2.Computer Science Domain

我们发现,在计算机科学任务上,SciBert 的表现优于 BertBase(微调后为 +3.55 F1,未微调为 +1.13F1)。此外,SciBert 还在 ACL-ARC Cohan 等人(2019 年)和 SciERC Luan 等人(2018 年)的 NER 部分取得了新的 SOTA 结果。对于 SciERC 中的关系,我们的结果无法与 Luan 等人(2018)的结果相提并论,因为我们是根据金实体进行关系分类,而他们是联合实体和关系提取。

4.3.Multiple Domains

我们发现,SciBert 在多域任务上的表现优于 BertBase(有微调时 F1 为 +0.49,无微调时 F1 为 +0.93)。此外,SciBert 在 SciCite Cohan 等人(2019 年)上的表现也优于 SOTA。在 Paper Field 数据集上,SOTA 之前没有发表过任何结果。

5 Discussion

5.1.Effect of Finetuning

我们观察到,在冷冻嵌入的基础上,通过 Bert 微调而非特定任务架构,结果有所改善(SciBert 的平均 F1 为 +3.25,Bert-Base 的平均 F1 为 +3.58)。在每个科学领域,我们观察到微调对计算机科学(使用 SciBert 时 +5.59 F1,使用 Bert-Base 时 +3.17 F1)和生物医学任务(使用 SciBert 时 +2.94 F1,使用 Bert-Base 时 +4.61 F1)的影响最大,而对多领域任务的影响最小(使用 SciBert 时 +0.7 F1,使用 Bert-Base 时 +1.14 F1)。在除 BC5CDR 和 SciCite 之外的所有数据集上,经过微调的 Bert-Base 都优于(或类似于)使用冻结 SciBert 嵌入的模型。

5.2.Effect of SciVocab

我们通过重复 SciBert 与 BaseVocab 的微调实验来评估域内科学词汇的重要性。我们发现 SciBertBaseVocab 的最佳超参数往往与 SciBert-SciVocab 的超参数相吻合。

6 Related Work

最近关于 BERT 领域适应性的工作包括 BioBert Lee 等人(2019 年)和 ClinicalBert Alsentzer 等人(2019 年);Huang 等人(2019 年)。BioBert 以 PubMed 摘要和 PMC 全文为训练对象,ClinicalBert 则以 MIMIC-III 数据库中的临床文本为训练对象 Johnson 等人(2016)。相比之下,SciBert 是根据 Semantic Scholar 语料库中 114 万篇生物医学和计算机科学论文的全文进行训练的 Ammar 等人(2018)。此外,SciBert 使用的是领域内词汇(SciVocab),而上述其他模型使用的是原始 Bert 词汇(BaseVocab)。

7 Conclusion and Future Work

我们发布了基于 Bert 的科学文本预训练语言模型 SciBert。我们在科学领域的一系列任务和数据集上对 SciBert 进行了评估。SciBert 的表现明显优于 Bert-Base,并在其中几项任务上取得了新的 SOTA 结果,甚至与报告的 BioBert Lee 等人(2019)在生物医学任务上取得的结果相比也不遑多让。

在未来的工作中,我们将发布与 Bert-Large 类似的 SciBert 版本,并尝试使用不同比例的各领域论文。由于这些语言模型的训练成本很高,因此我们的目标是建立一个适用于多个领域的单一资源。

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值