SCIBERT论文阅读(预训练语言模型 - 科学文本)

【论文基本信息】
标题:SCIBERT: A Pretrained Language Model for Scientific Text
来源:EMNLP 2019(CCF推荐国际学术会议-人工智能-B类)
作者:Allen Institute for Artificial Intelligence, Seattle
原文:https://arxiv.org/abs/1903.10676

报告时间:2022年11月

0 摘要

为科学领域的自然语言处理任务获取大规模带标注的数据是一件具有挑战性且代价高昂的事情。我们发布了SCIBERT,这是一个基于BERT的预训练语言模型,以解决缺乏大规模、高质量、带标签的科学数据的问题。SCIBERT利用在大型多领域科学出版物上的无监督预训练来提高下游科学NLP任务的性能。我们评估了一系列任务,包括序列标记、句子分类和依赖分析,数据集来自多个科学领域。我们在统计上证明了BERT的显著改进,并在其中几个任务上取得了最先进的结果。代码和预训练模型地址:https://github.com/allenai/scibert/

1 介绍

随着NLP进入BERT时代,通过在大型语料库上对语言模型进行无监督预训练,NLP任务的性能得到显著提升。

虽然 BERT 发布了预训练模型,但它仍在接受一般领域语料库的训练,例如新闻文章和维基百科。

在本文中,作者发布了 SCIBERT。这是一种新资源,可以提高科学领域中一系列 NLP 任务的性能。 SCIBERT 是基于BERT的预训练语言模型,且在大量科学文本上进行了训练。

作者进行了广泛的实验,以研究在 固定嵌入(frozen embedding) 上微调以及使用任务特定架构的效果,以及拥有 领域内的(in-domain) 词汇表的效果。

固定嵌入:在本文中是一个与微调后的嵌入相对的的概念。作者以嵌入是否微调为变量进行了对比实验。

作者在科学领域的一组任务上评估 SCIBERT,并在其中的许多任务上取得了 最先进的(state of the art,SOTA) 结果。

2 方法

2.1 背景

SCIBERT 使用与 BERT 相同的架构,但在科学文本上进行了预训练。

2.2 词汇表

BERT 使用 WordPiece 进行输入文本的无监督标记化。

  • BERT发布的原始词汇表称为BaseVocab
  • 使用 SentencePiece 在科学语料库上构建了 SciVocab,这是一个新的 WordPiece 词汇表。
  • 同时生成大小写和非大小写词汇,并将词汇大小设置为 30K 以匹配 BaseVocab的大小。

结果显示: BaseVocab和SciVocab之间的标记重叠率为 42%。这说明:科学和一般领域文本之间的常用词存在显着差异

2.3 语料库

  • 在Semantic Scholar语料库的 114 万篇论文的随机样本上训练 SCIBERT。
  • 该语料库包含计算机科学领域的论文(占18%)和广泛生物医学领域的论文(占82%)。
  • 使用论文的全文,而不仅仅是摘要。
  • 平均论文长度为 154 个句子(2,769 个词元)。
  • 语料库大小为 3.17B 词元,这与训练 BERT 时的 3.3B 词元相近
  • 使用 ScispaCy 进行分句, 它针对科学文本进行了优化

3 实验设置

3.1 任务

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

  1. 命名实体识别(Named Entity Recognition,NER)
  2. PICO提取(PICO Extraction,PICO)
  3. 文本分类(Text Classification,CLS)
  4. 关系分类(Relation Classification,REL)
  5. 依赖解析(Dependency Parsing,DEP)

3.2 数据集

  • EBM-NLP 标注了临床试验摘要中的 PICO span。
  • SciERC 标注了来自计算机科学摘要的实体和关系。
  • ACL-ARCSciCite 为科学论文中引用了其他论文的句子分配意图标签。意图包括:比较、扩展等。
  • Paper Field 数据集基于 Microsoft Academic Graph 并将论文标题映射到 7 个研究领域之一。这七个研究领域是:地理、政治、经济学、商业、社会学、医学和心理学。每个研究领域都有大约 12,000 个训练样本。

3.3 预训练的 BERT 变体

BERT-Base

  • 使用随原始 BERT 代码一起发布的 BERT-Base 的预训练权重
  • 词汇表是BaseVocab。
  • 评估了这个模型的大小写敏感和不敏感版本。

SCIBERT

  • 使用原始的 BERT 代码在作者自己的语料库上训练 SCIBERT,其配置和大小与 BERT-Base 相同。
  • 根据2个条件的不同训练了 4个不同版本的 SCIBERT:(i) 大小写敏感或不敏感 (ii) BaseVocab或 SciVocab。
  • 使用 BaseVocab 的两个模型是从相应的 BERT-Base 模型中微调而来的。
  • 使用 SciVocab 的两个模型是从头开始训练的。
  • 使用长句预训练 BERT 可能会很慢。按照原始 BERT 代码,将最大句子长度设置为 128 个词元,并训练模型直到训练损失停止减少。然后,继续训练句子长度最多有512 个词元的模型。
  • 使用具有 8 个内核的单个 TPU v3。在作者自己的语料库上从头开始训练SciVocab 模型需要 1 周时间 (最大长度 128的用了5天,最大长度 512的用了2天)。 BaseVocab 模型的训练时间减少了 2 天,因为它们不是从头开始训练的。
  • 使用 pytorch-transformers 库将所有预训练的 BERT 模型转换为与 PyTorch 兼容。
  • 3.4 和 3.5 节的所有模型使用 AllenNLP 在 PyTorch 中实现。

大小写区分

  • 仿照前人,将大小写敏感模型用于NER,将大小写不敏感模型用于其他任务。
  • 此外,还使用大小写敏感模型进行解析

一些轻量级的实验表明,大小写不敏感模型的性能略好于大小写敏感模型(甚至有时对于 NER 也是如此)。

3.4 微调BERT

  • 大体上遵循前人[Devlin等人(2019)]使用的架构、优化和超参数选择。
  • 一个小的不同点:使用了额外的条件随机域(conditional random field),它通过保证实体格式良好,来使评估变得更为容易。
  • 对于 DEP,使用具有大小为 100 的依赖标记和弧嵌入。
  • 对于 BERT 向量,使用仿射(biaffine)矩阵注意力,而不是堆叠(stacked) BiLSTM
  • dropout:0.1
  • 使用 Adam。
  • batch size:32。
  • 学习率:5e-6、1e-5、2e-5 或 5e-5 。
  • 使用倾斜的三角形调度,这相当于先线性预热后线性衰减。
  • 对于每个数据集和 BERT 变体,选择开发集上的最佳学习率和 epoch 数并报告相应的测试结果。

作者发现,在大多数数据集和模型中效果最好的设置是: 2 或 4 个 epoch,2e-5 的学习率。

虽然最优超参数是与任务相关的(task-dependent),但每个任务的最佳超参数在 BERT 变体中通常是相同的

3.5 固定BERT嵌入

作者还探索了将 BERT 用作预训练的上下文化词嵌入,例如 ELMo,通过在固定的BERT 嵌入上训练简单的特定于任务的模型。

对于文本分类,作者将 BERT 向量的每个句子输入到大小为 200 的 2 层 BiLSTM 中,并在连接的第一个和最后一个 BiLSTM 向量上应用一个多层感知器(隐藏大小为 200)。对于序列标记,作者使用相同的 BiLSTM 层并使用条件随机域来保证格式良好的预测。对于 DEP,作者使用完整的模型,它具有大小为 100 的依赖标记和弧嵌入以及与其他任务相同的 BiLSTM 设置。作者没有发现改变 BiLSTM 的深度或大小会显著地影响结果。

作者使用 Adam 优化交叉熵损失,但保持 BERT 权重固定并应用 0.5 的 dropout。作者使用 32 的批大小和 0.001 的学习率在开发集上提前停止训练(耐心 10)。

作者没有执行广泛的超参数搜索,然而,虽然最佳超参数取决于任务,一些轻量级的实验表明,这些设置在大多数任务和 BERT 变体中都能很好地工作。

4 结果

在这里插入图片描述
如上图所示:

  • SCIBERT 在科学任务上的表现优于 BERT-Base(有微调时多了2.11 F1,没微调时多了2.43 F1) 。
  • SCIBERT 还在其中许多任务上取得了最先进的结果。

4.1 生物医学领域

  • SCIBERT 在生物医学任务上的表现优于 BERTBase(有微调时多了1.92 F1,有微调时多了3.59 F1)。
  • 此外,SCIBERT 在 BC5CDR、ChemProt和EBM-NLP 上也取得了最先进的结果。
  • SCIBERT 在 3 个数据集上的表现略逊于最先进的:JNLPBA 、NCBI 疾病、GENIA。

在下表中 ,作者将 SCIBERT 结果与 BIOBERT 比较。

在这里插入图片描述

  • SCIBERT 在BC5CDR和ChemProt上的表现优于 BIOBERT 的结果,在JNLPBA上的表现相似。

4.2 计算机科学领域

如下图所示:

  • SCIBERT 在计算机科学任务上的表现优于 BERTBase(有微调时多了3.55 F1,无微调时多了1.13 F1)。
  • 此外,SCIBERT 在 ACL-ARC 和SciERC的NER部分取得了最先进的结果。

在这里插入图片描述

4.3 多领域

如上图所示:

  • 在多域任务中,SCIBERT优于BERTBase(有微调的+0.49 F1和没有微调的+0.93 F1)。
  • 此外,SCIBERT在SciCite方面的表现优于最先进的结果。

5 讨论

5.1 微调的效果

在这里插入图片描述
如上图所示:

  • 在 BERT 微调上观察到了改进结果(SCIBERT 平均 +3.25 F1 和 BERT-Base +3.58),在固定嵌入之上的特定于任务的架构上没有观察到改进结果。

  • 对于每个科学领域,微调对计算机科学(SCIB-ERT +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 SciVocab的作用

  • 通过使用 BaseVocab 重复 SCIBERT 的微调实验来评估域内科学词汇的重要性。
  • 作者发现: SCIBERT-BaseVocab 的最佳超参数通常与 SCIBERT-SciVocab 的超参数一致。
  • 在使用 SciVocab 时观察到 +0.60 F1的平均值(在所有数据集上)。对于每一个科学领域,观察到生物医学任务为 +0.76 F1,计算机科学任务为 +0.61 F1,多域任务为 +0.11 F1。

鉴于词汇表的低相交度(第2节)以及对 BERT-Base 的改进幅度(第 4 节),作者怀疑:虽然领域内词汇很有帮助,但 SCIBERT 从科学语料库的预训练中获益最多

6 结论和未来工作

  • 发布了 SCIBERT,这是一种基于 BERT 的科学文本预训练语言模型
  • 在一组来自科学领域的任务和数据集上评估了 SCIBERT。
  • SCIBERT 明显优于 BERT-Base,并在其中几个任务上取得了最先进的结果,甚至在生物医学任务上与一些 BIOBERT 的结果相比也是如此。

在未来,作者将发布一个类似于 BERT-Large 的 SCIBERT 版本,并尝试使用来自每个领域的不同比例的论文。

因为这些语言模型的训练成本很高,所以作者的目标是构建一个跨多个领域有用的单一资源

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值