Paper:https://arxiv.org/abs/1901.08746
Code: https://github.com/naver/biobert-pretrained, https://github.com/dmis-lab/biobert
随着生物医学文档数量的快速增长,生物医学文本挖掘变得越来越重要。随着自然语言处理 (NLP) 的进步,从生物医学文献中提取有价值的信息已受到研究人员的欢迎,而深度学习促进了有效的生物医学文本挖掘模型的发展。然而,由于词分布从一般领域语料库到生物医学语料库的转变,直接将 NLP 的进步应用于生物医学文本挖掘通常会产生不令人满意的结果。在本文中,我们研究了最近引入的预训练语言模型 BERT 如何适用于生物医学语料库。
我们介绍了 BioBERT(来自 Transformers 的用于生物医学文本挖掘的双向编码器表示),它是一种在大规模生物医学语料库上预训练的特定领域语言表示模型。BioBERT 具有几乎相同的跨任务架构,在对生物医学语料库进行预训练时,在各种生物医学文本挖掘任务中的性能大大优于 BERT 和以前的最先进模型。虽然 BERT 获得了与之前最先进模型相当的性能,但 BioBERT 在以下三个具有代表性的生物医学文本挖掘任务上明显优于它们:生物医学命名实体识别(F1 分数提高 0.62%)、生物医学关系提取(2.80% F1 分数提高)和生物医学问答(MRR 提高 12.24%)。
生物医学文献的数量继续迅速增加。平均每天在同行评审期刊上发表新文章 3000 多篇,不包括预印本和技术报告,如各种档案中的临床试验报告。截至 2019 年 1 月,仅 PubMed 就有 2900 万篇文章。包含有关新发现和新见解的有价值信息的报告不断添加到已经压倒性的大量文献中。因此,越来越需要准确的生物医学文本挖掘工具来从文献中提取信息。
自然语言处理 (NLP) 中使用的深度学习技术的进步使生物医学文本挖掘模型的最新进展成为可能。例如,长短期记忆 (LSTM) 和条件随机场 (CRF) 在过去几年中极大地提高了生物医学命名实体识别 (NER) 的性能。其他基于深度学习的模型在关系提取 (RE) 等生物医学文本挖掘任务中取得了改进和问答 (QA) 。
然而,直接将最先进的 NLP 方法应用于生物医学文本挖掘具有局限性。首先,最近的单词表示模型,如 Word2Vec 、ELMo和 BERT 主要在包含一般领域文本的数据集上进行训练和测试(例如维基百科),很难估计它们在包含生物医学文本的数据集上的表现。此外,通用语料库和生物医学语料库的词分布有很大不同,这通常是生物医学文本挖掘模型的问题。因此,最近的生物医学文本挖掘模型很大程度上依赖于词表示的改编版本。
在这项研究中,我们假设当前最先进的单词表示模型(例如 BERT)需要在生物医学语料库上进行训练,才能在生物医学文本挖掘任务中发挥作用。以前,Word2Vec 是最广为人知的与上下文无关的词表示模型之一,它在生物医学语料库上进行训练,其中包含通常不包含在一般领域语料库中的术语和表达。虽然 ELMo 和 BERT 已经证明了上下文化词表示的有效性,但它们无法在生物医学语料库上获得高性能,因为它们仅在一般领域语料库上进行了预训练。由于 BERT 在各种 NLP 任务上取得了非常好的结果,同时在所有任务中使用几乎相同的结构,因此将 BERT 应用于生物医学领域可能会使众多生物医学 NLP 研究受益。
在本文中,我们介绍了 BioBERT,它是一种针对生物医学领域的预训练语言表示模型。预训练和微调 BioBERT 的整个过程如图 1 所示. 首先,我们使用来自 BERT 的权重初始化 BioBERT,BERT 在通用领域语料库(英语维基百科和 BooksCorpus)上进行了预训练。然后,BioBERT 在生物医学领域语料库(PubMed 摘要和 PMC 全文文章)上进行预训练。为了展示我们的方法在生物医学文本挖掘中的有效性,BioBERT 对三个流行的生物医学文本挖掘任务(NER、RE 和 QA)进行了微调和评估。我们测试了不同组合和大小的通用域语料库和生物医学语料库的各种预训练策略,并分析了每个语料库对预训练的影响。我们还提供了对 BERT 和 BioBERT 的深入分析,以展示我们预训练策略的必要性。
BioBERT的预训练和微调概述
我们论文的贡献如下:
BioBERT 与 BERT 的结构基本相同。我们简要讨论最近提出的 BERT,然后详细描述 BioBERT 的预训练和微调过程。
从大量未注释的文本中学习单词表示是一种历史悠久的方法。虽然之前的模型(例如 Word2Vec 、GloVe )专注于学习与上下文无关的词表示,但最近的工作集中在学习上下文相关的词表示。例如,ELMo ( Peters et al. , 2018 ) 使用双向语言模型,而 CoVe 使用机器翻译将上下文信息嵌入到单词表示中。
BERT 是一种上下文化的词表示模型,它基于掩码语言模型并使用双向转换器进行预训练。由于无法看到未来单词的语言建模的性质,以前的语言模型仅限于两种单向语言模型的组合(即从左到右和从右到左)。BERT 使用掩码语言模型来预测序列中随机掩码的单词,因此可用于学习双向表示。此外,它在大多数 NLP 任务上都获得了最先进的性能,同时需要最少的特定于任务的架构修改。根据 BERT 的作者的说法,结合来自双向表示的信息,而不是单向表示,对于用自然语言表示单词至关重要。
作为通用语言表示模型,BERT 在英语维基百科和 BooksCorpus 上进行了预训练。然而,生物医学领域文本包含大量特定领域的专有名词(例如 BRCA1、c.248T>C)和术语(例如转录、抗菌),这些都是生物医学研究人员主要理解的。因此,为通用语言理解设计的 NLP 模型在生物医学文本挖掘任务中往往表现不佳。在这项工作中,我们在 PubMed 摘要 (PubMed) 和 PubMed Central 全文文章 (PMC) 上对 BioBERT 进行了预训练。BioBERT预训练使用的文本语料如表1所示,测试的文本语料组合如表2所示. 为了计算效率,每当使用 Wiki + Books 语料库进行预训练时,我们都会使用Devlin等人提供的预训练 BERT 模型初始化 BioBERT 。我们将 BioBERT 定义为一种语言表示模型,其预训练语料库包括生物医学语料库(例如 BioBERT (+ PubMed))。
Table 2. 以下文本语料库的不同组合的预先训练Biobert:英语维基百科(Wiki),Bookscorpus(书籍),PubMed摘要(PubMed)和PMC全文文章(PMC)
对于标记化,BioBERT 使用 WordPiece 标记化,这可以缓解词汇表外的问题。使用 WordPiece 标记化,任何新词都可以用频繁的子词表示(例如Immunoglobulin => I ##mm ##uno ##g ##lo ##bul ##in)。我们发现使用大小写词汇(不是小写)在下游任务中的性能稍好一些。虽然我们可以基于生物医学语料库构建新的 WordPiece 词汇,但我们使用了 B E R T B A S E BERT_{BASE} BERTBASE的原始词汇原因如下:(i) BioBERT 与 BERT 的兼容性,这允许重新使用在通用领域语料库上预训练的 BERT,并更容易互换使用基于 BERT 和 BioBERT 的现有模型,以及 (ii) 任何新的仍然可以使用 BERT 的原始 WordPiece 词汇表来表示和微调生物医学领域的单词。
通过最少的架构修改,BioBERT 可以应用于各种下游文本挖掘任务。我们在以下三个具有代表性的生物医学文本挖掘任务上微调 BioBERT:NER、RE 和 QA。
命名 实体识别是最基本的生物医学文本挖掘任务之一,它涉及识别生物医学 语料库中众多特定领域的专有名词。虽然以前的大多数工作都是建立在 LSTM 和 CRF 的不同组合之上,但 BERT 具有基于双向变压器的简单架构。BERT 使用基于其最后一层的表示的单个输出层来仅计算令牌级别的 BIO2 概率。请注意,虽然以前在生物医学 NER 中的工作经常使用在 PubMed 或 PMC 语料库,BioBERT 在预训练和微调期间直接学习 WordPiece 嵌入。对于 NER 的评估指标,我们使用实体级精度、召回率和 F1 分数。
关系 提取是对生物医学语料库中命名实体的关系进行分类的任务。我们使用了 BERT 原始版本的句子分类器,它使用 [CLS] 标记进行关系分类。句子分类是使用基于来自 BERT 的 [CLS] 令牌表示的单个输出层执行的。我们使用预定义的标签(如@GENE 或@DISEASE )对句子中的目标命名实体进行匿名化。例如,具有两个目标实体(在本例中为基因和疾病)的句子表示为“ @GENE 位置 986 处的丝氨酸可能是血管造影@DISEASE 的独立遗传预测因子。” 报告了 RE 任务的准确率、召回率和 F1 分数。
问答 是在给定相关段落的情况下回答以自然语言提出的问题的任务。为了为 QA 微调 BioBERT,我们使用了与 SQuAD 相同的 BERT 架构。我们使用 BioASQ factoid 数据集,因为它们的格式类似于 SQuAD。答案短语的开始/结束位置的标记级别概率是使用单个输出层计算的。然而,我们观察到大约 30% 的 BioASQ 事实性问题在提取的 QA 环境中无法回答,因为给定的段落中没有出现确切的答案。我们从训练集中排除了无法回答的问题的样本。此外,我们使用了与Wiese相同的预训练过程,它使用了 SQuAD,它大大提高了 BERT 和 BioBERT 的性能。我们使用来自 BioASQ 的以下评估指标:严格准确度、宽松准确度和平均倒数排名。
table 3. 列出了生物医学 NER 数据集的统计数据。我们使用了Wang提供的所有 NER 数据集的预处理版本。除了 2010 i2b2/VA、JNLPBA 和 Species-800 数据集。我们使用CoNLL 格式来预处理 2010 i2b2/VA 和 JNLPBA 数据集。Species-800 数据集基于Pyysalo 数据集进行了预处理和拆分。我们没有为 BC2GM 数据集使用替代注释,所有 NER 评估都基于实体级别的精确匹配。请注意,尽管最近引入了其他几个高质量的生物医学 NER 数据集,但我们使用了许多生物医学 NLP 研究人员经常使用的数据集,这使得将我们的工作与他们的工作进行比较变得更加容易。RE 数据集包含基因-疾病关系和蛋白质-化学关系(table 4)。预处理的 GAD 和 EU-ADR 数据集可通过我们提供的代码获得。对于 CHEMPROT 数据集,我们使用了Lim 和 Kang 描述的相同预处理程序。我们使用了 BioASQ factoid 数据集,可以将其转换为与 SQuAD 数据集相同的格式(table 5)。我们使用了 BioASQ 组织者提供的完整摘要 (PMID) 和相关问题和答案。我们已经公开了预处理的 BioASQ 数据集。对于所有数据集,我们使用了与以前的作品相同的数据集拆分进行公平评估;然而,从Giorgi 和 Bader中无法找到 LINAAEUS 和 Species-800 的分裂,并且可能有所不同。与之前的工作一样,我们报告了在没有单独测试集的数据集(例如 GAD、EU-ADR)上进行 10 倍交叉验证的性能。
table 3. 生物医学命名实体识别数据集的统计
Table 4.生物医学关系提取数据集的统计
Table 5. 生物医学问题回答数据集的统计
我们将 BERT 和 BioBERT 与当前最先进的模型进行比较并报告它们的分数。请注意,最先进的模型每个都有不同的架构和训练过程。例如Yoon等人最先进模型在 JNLPBA 数据集上训练的模型基于多个具有字符级 CNN 的 Bi-LSTM CRF 模型,而Giorgi 和 Bade在 LINNAEUS 数据集上训练的最先进模型使用 Bi-LSTM CRF具有字符级 LSTM 的模型,并在银标准数据集上进行了额外的训练。另一方面,BERT 和 BioBERT 具有完全相同的结构,并且仅使用黄金标准数据集,而不使用任何其他数据集。
我们使用在英语维基百科和 BooksCorpus 上预训练的 BERT_{BASE}模型进行了 1M 步。BioBERT v1.0 (+ PubMed + PMC) 是经过 470 K 步训练的 BioBERT (+ PubMed + PMC) 版本。当同时使用 PubMed 和 PMC 语料库时,我们发现 200K 和 270K 的预训练步骤分别对于 PubMed 和 PMC 是最佳的。我们还使用了 BioBERT v1.0 的消融版本,它们仅在 PubMed 上进行了 200K 步(BioBERT v1.0(+ PubMed))和 PMC 上 270K 步(BioBERT v1.0(+ PMC))的预训练。在首次发布 BioBERT v1.0 之后,我们在 PubMed 上对 BioBERT 进行了 1M 步的预训练,我们将此版本称为 BioBERT v1.1(+ PubMed)。除非另有说明,否则预训练 BioBERT 的其他超参数(例如批量大小和学习率调度)与预训练 BERT 的超参数相同。
我们使用 Naver 智能机器学习 (NSML) 对 BioBERT 进行了预训练,用于需要在多个 GPU 上运行的大规模实验。我们使用 8 个 NVIDIA V100 (32GB) GPU 进行预训练。最大序列长度固定为 512,小批量大小设置为 192,每次迭代产生 98 304 个单词。BioBERT v1.1 (+ PubMed) 在此设置中预训练 BioBERT v1.0 (+ PubMed + PMC) 需要 10 多天,将近 23 天。尽管我们尽最大努力使用 B E R T L A R G E BERT_{LARGE} BERTLARGE ,但由于 B E R T L A R G E BERT_{LARGE} BERTLARGE的计算复杂性,我们只使用了 B E R T B A S E BERT_BASE BERTBASE。
我们使用单个 NVIDIA Titan Xp (12GB) GPU 对每个任务的 BioBERT 进行微调。请注意,微调过程比预训练 BioBERT 的计算效率更高。对于微调,选择了 10、16、32 或 64 的批大小,并选择了 5e-5、3e-5 或 1e-5 的学习率。由于训练数据的大小远小于Devlin等人使用的训练数据,因此在 QA 和 RE 任务上微调 BioBERT 花费了不到一个小时。另一方面,BioBERT 需要 20 多个 epoch 才能在 NER 数据集上达到最高性能。
NER的结果如表table 6所示。首先,我们观察到仅在一般领域语料库上进行预训练的 BERT 非常有效,但 BERT 的微平均 F1 分数低于(低 2.01)最先进模型的分数。另一方面,BioBERT 在所有数据集上的得分都高于 BERT。BioBERT 在 9 个数据集中的 6 个数据集上优于最先进的模型,BioBERT v1.1 (+ PubMed) 在微平均 F1 得分方面优于最先进的模型 0.62。LINNAEUS 数据集上相对较低的分数可归因于以下原因:(i)缺乏silver标准的数据集来训练以前SOAT模型(ii)先前使用的不同训练/测试集拆分工作,这是不可用的。
Table 6. 生物医学命名实体识别测试结果
注:报告了每个数据集的精度 §、召回率 ® 和 F1 (F) 分数。最好成绩用粗体表示,次优成绩用下划线表示。我们列出了不同数据集上最先进 (SOTA) 模型的得分。
各模型的RE结果如table 7所示。在CHEMPROT数据集上,BERT模型比最先进的模型取得了更好的性能,这证明了它在正则化方面的有效性。平均(微观),BioBERT v1.0 (+ PubMed)获得了比最先进的模型更高的F1得分(高2.80)。此外,BioBERT在3个生物医学数据集中的2个获得了最高的F1分数。
Table 7 生物医学关系提取试验结果
注:在每个数据集上报告Precision §, Recall ®和F1 (F)得分。最好的成绩用粗体表示,第二好的成绩用下划线表示。
QA结果如table 8所示。我们对每批最先进模型的最佳分数进行微平均。与最先进的模型相比,BERT 获得了更高的微平均 MRR 分数(高出 7.0)。所有版本的 BioBERT 都显着优于 BERT 和最先进的模型,特别是 BioBERT v1.1 (+ PubMed) 获得了 38.77 的严格准确度、53.81 的宽松准确度和 44.77 的平均倒数排名得分, 所有这些都是微平均的。在所有生物医学 QA 数据集上,BioBERT 在 MRR 方面取得了新的最先进的性能。
注:报告了每个数据集的严格准确度 (S)、宽松准确度 (L) 和平均倒数排名 (M) 分数。最好成绩用粗体表示,次优成绩用下划线表示。
我们使用额外的不同大小的语料库进行预训练,并研究了它们对性能的影响。对于 BioBERT v1.0 (+ PubMed),我们将预训练步骤数设置为 200K,并改变 PubMed 语料库的大小。Figure 2(a)显示 BioBERT v1.0(+ PubMed)在三个 NER 数据集(NCBI 疾病、BC2GM、BC4CHEMD)上的性能随 PubMed 语料库的大小而变化。对 10 亿字进行预训练是相当有效的,每个数据集的性能大多提高到 45 亿字。我们还在不同的预训练步骤中保存了来自 BioBERT v1.0(+ PubMed)的预训练权重,以测量预训练步骤的数量如何影响其在微调任务中的性能。Figure 2(b)显示了 BioBERT v1.0 (+ PubMed) 在相同的三个 NER 数据集上与预训练步骤数相关的性能变化。结果清楚地表明,随着预训练步骤数量的增加,每个数据集的性能都会提高。最后,Figure 2©显示了 BioBERT v1.0 (+ PubMed + PMC) 在所有 15 个数据集上相对于 BERT 的绝对性能改进。F1 分数用于 NER/RE,MRR 分数用于 QA。BioBERT 显着提高了大多数数据集的性能。
Figure 2
( a ) 改变 PubMed 语料库大小对预训练的影响。( b ) BioBERT 在不同检查点的 NER 性能。( c ) BioBERT v1.0 (+ PubMed + PMC) 对 BERT 的性能改进
如Table 9所示,我们从 BERT 和 BioBERT v1.1 (+PubMed) 中抽取了预测样本,以查看预训练对下游任务的影响。BioBERT 可以识别 BERT 无法识别的生物医学命名实体,并且可以找到命名实体的确切边界。虽然 BERT 经常对简单的生物医学问题给出错误的答案,但 BioBERT 对这些问题提供了正确的答案。此外,BioBERT 可以提供更长的命名实体作为答案。
Table 9. BERT 和 BioBERT 在 NER 和 QA 数据集上的预测样本
在本文中,我们介绍了 BioBERT,它是一种用于生物医学文本挖掘的预训练语言表示模型。我们表明,在生物医学语料库上预训练 BERT 对于将其应用于生物医学领域至关重要。BioBERT 需要最少的特定于任务的架构修改,在 NER、RE 和 QA 等生物医学文本挖掘任务上优于以前的模型。
BioBERT 的预发布版本(2019 年 1 月)已被证明在许多生物医学文本挖掘任务中非常有效,例如临床笔记的 NER、人类表型基因 RE和临床颞叶 RE。BioBERT 的以下更新版本将提供给 bioNLP 社区:(i) BioBERT BASE和 BioBERT LARGE仅在 PubMed 摘要上进行训练,无需从现有 BERT 模型进行初始化;(ii) BioBERT BASE和 BioBERT LARGE在基于特定领域词汇的基础上进行训练在 WordPiece 上。