引用本文: 夏渊, 刘东峰, 张津馗, 李科. 基于 BERT 的自动化偏倚风险评价方法的研究. 中国循证医学杂志, 2021, 21(2): 204-209. doi: 10.7507/1672-2531.202006177 复制
“证据”及其质量评价是循证医学(evidence based medicine,EBM)的思想核心,也是实践 EBM 的关键所在。高质量系统评价和随机对照试验(randomized controlled trial,RCT)的结论,属于干预性措施的最高证据级别,通常作为权威临床实践指南的重要参考依据[1]。系统评价形成过程中要求对纳入研究进行偏倚风险评价,但该评价过程既复杂又繁重,且需要 2 名研究者独立完成[2]。有研究表明, 1 篇 RCT 偏倚风险评价需要花费专业人士 60 分钟左右的时间才能完成,且评价结果往往还不太完善[3]。也有研究表明,人为错过文章中的关键信息,不同研究者针对同一 RCT,会给出不同的评价结果[4, 5]。
近年来生物医学文献的发表速度呈指数级增长,偏倚风险评价任务显得更加困难。因此,利用机器学习方法实现偏倚风险评价的自动化,将极大减轻研究人员的工作量[6, 7]。2014 年,Marshall 等提出了一种基于 Linear SVM 的文本分类方法,用于预测 RCT 的 6 类偏倚风险,获得了 57%~75% 的 F1 值及 52%~67% 的准确率[8, 9]。2016 年,Millard 等提出采用 Logistic 回归分类算法来构建两种自动化偏倚风险评价模型,结果表明,两种模型在受试者操作特征曲线下的面积(area under curve,AUC)分别为 0.72 和 0.98[10]。
但是,以上方法在基于词袋模型或词频统计的特征表示方法对文本进行向量表示时,均无法表征文本所包含的上下文语义信息,可能导致最终结果不准确。因此本文提出一种基于 BERT 预训练模型的自动化偏倚风险评价方法并与传统机器学习方法进行比较,以期为系统评价研究者提供一种更准确的自动化偏倚风险评价方法。
1 资料和方法
1.1 数据来源
本文采用远程监督[11, 12]和网络爬虫的方式从 Cochrane 图书馆[13]中获取结构化的偏倚风险评价数据,同时获取纳入 RCT 的详细信息,并以此链接到 PubMed 等数据库获取对应的 PDF 全文。
1.2 数据集构建
经过一系列的格式处理和数据清洗后,最终分别构建出两类模型,即文档分类和句子分类模型所需的数据集,数据集构建流程见图 1。

Cochrane 系统评价手册中定义的 RCT 偏倚风险有 7 种:随机序列生成(random sequence generation,RSG)、分配隐藏(allocation concealment,AC)、对试验受试者及试验人员实施盲法(blinding of participants and personnel,BOP)、对结局评价员实施盲法(blinding of outcome assessment,BOA)、试验结果数据的完整性(incomplete outcome data,IOD)、选择性报告(selective reporting,SR)和其他偏倚(other sources of bias,O)。构建文档分类模型数据集时,将结构化数据中“评价者的判断”(author’s judgement)对应值为“低风险”的数据视为目标类别(正样本,1),其余的“高风险”和“未知风险”视为非目标类别(负样本,0)。
构建句子分类模型数据集时,将每篇 RCT 的每种偏倚风险的“评价依据”(support for judgement)作为目标句,然后与对应的 txt 文档的每一个句子进行相似度计算[14][本文采用的相似度计算方法为:doc2vec(gensim)+TF-IDF+余弦相似度]。最后将相似度最高的 1 至 3 个句子视为“相关句”,其它的句子视为“非相关”句。
1.3 基于 Google BERT 的文本分类模型构建
1.3.1 BERT 预训练模型
BERT 是 Google 团队于 2018 年 11 月提出的一种基于 Transformers 的预训练 NLP 模型[15]。该模型具有复杂的网络结构,同时它还对海量文本进行了预训练,因此能高效抽取特定领域的文本信息,并应用于下游的各种 NLP 任务,此外 Google 团队还凭借着 BERT 模型刷新了 NLP 领域 11 项任务的当前最佳记录。
BERT 模型在思想上采用和 OpenAI GPT 完全相同的两阶段,一是使用大规模的预料完成语言模型预训练;二是使用 FineTuning(微调)模式来解决下游具体的 NLP 任务。BERT 在网络结构上还采用了类似于 ELMO 的双向语言模型结构,其网络结构见图 2。

1.3.2 基于 BERT 的文本分类模型构建
本文针对偏倚风险评价中文档分类任务和句子分类任务分别构建两类文本分类模型,并针对每一种偏倚分别构建一个二分类模型。两类模型的网络结构仅在输入序列的处理上有所不同,其余各部分均相同,网络结构见图 3。

图 3(a)为文档分类模型的网络结构图,(b)为句子分类模型的网络结构图。图(a)中输入文档的不同句子之间采用[SEP]标签进行分隔,其中 transformer 层数为 12 层,图(b)中 transformer 层数同样为 12 层。
原始数据集首先经过词嵌入层的相关操作之后,输入到 transformer 层,首先经过包含 6 个结构完全相同的编码模块组成的编码端进行编码,然后输入到对应由 6 个结构相同的解码模块组成的解码端进行解码,再将经过 12 层 transformer 的反复编码、解码之后得到的向量直接输入 softmax 层进行计算,最后输出预测的文本标签类别。transformer 层的每个编码模块都包含一个由 8 层自注意力机制(self-attention)组成的“多头注意力机制”网络,以及一个前馈神经网络和两个残差/归一化网络。每一个解码模块中除了一个与编码端类似的“多头注意力机制”网络以及一个前馈神经网络以外,还包括一个由自注意力机制组成的“多头掩码注意力机制”结构。
该模型的词嵌入层,不再是传统的词嵌入操作,而是结合“位置嵌入”(position-embedding)和“分层嵌入”(segment-embedding)的嵌入操作,具体过程见图 4。

首先是“令牌嵌入”阶段,通过查询词表,将输入文本的每个单词转换成一维的词向量,这里采用 Google 开源的 Bert-Base Uncased 词表。接下是“分层嵌入”阶段,该过程用于记录当前词是属于句子 A 还是属于句子 B。然后在“位置嵌入”阶段加入单词的位置信息,主要目的是为了记录单词在句子中的位置信息,从而学习文本的词义信息。最后将三者相加所得的结果作为 BERT 模型的输入。
该模型的核心是一个 12 层的 transformer 层,其中的每个神经元都采用 Google 论文中提到的 transformer 结构。模型最后通过一个 softmax 网络层进行计算并分类,softmax 层接收最后一个 transformer 层的输出,然后经过回归计算之后,输出模型预测的类别标签的概率。
1.4 模型训练参数和评价指标
在两种分类模型的训练中,本文均设置训练轮数(train_epochs)为 100,学习率(learning_rate)为 1e-5,训练批次大小(batch_size)为 64,丢失率(dropout_rate)为 0.5。同时还设置了“早停”(early_stop)策略,并设置相应的阈值为 20,即当模型连续 20 次的下降梯度为负数时,停止训练。最后根据输入序列长度以及分类任务的不同,本文分别设置最大输入序列长度为 512 和 128。模型训练停止后,在占总数据 10% 的测试集上进行测试,并记录模型的准确率(P 值)、召回率(R 值)和 F1 值。
2 结果
2.1 文档分类模型试验结果
采用经典机器学习方法以 n-gram 和 TF-IDF 为特征工程,LinearSVM 为分类器作为对比模型,比较 BERT 模型在文档分类任务中的不同偏倚风险种类上的表现,结果见表 1 和图 5。本研究结果显示,BERT 模型在所有种类的偏倚风险评价上的表现均明显优于对比模型。


RSG:随机序列生成;AC:分配隐藏;BOP:对试验受试者及试验人员实施盲法;BOA:对结局评估员实施盲法;IOD:试验结果数据不完整;SR:选择性报告;O:其他偏倚。
2.2 句子分类模型试验结果
同样采用传统机器学习方法模型作为对比模型,比较 BERT 模型在句子分类任务中的不同风险种类上的表现,统计结果见表 2 和图 6。本研究结果显示,BERT 模型在句子分类任务上的效果优于对比模型。


RSG:随机序列生成;AC:分配隐藏;BOP:对试验受试者及试验人员实施盲法;BOA:对结局评估员实施盲法;IOD:试验结果数据不完整;SR:选择性报告。
3 讨论
本研究建立了一种基于 BERT 的自动化偏倚风险评价模型方法,其结果发现:① 在文档分类任务上,本模型在 RSG、IOD、SR 和 O 四类偏倚风险评价上的表现要明显优于其在其他几类偏倚风险上的表现。结合数据集中正负样本的分布情况加以分析,结果发现在模型表现效果更好的 4 种偏倚风险类别上,它们的数据集中正样本的数量明显多于负样本,而其余类别的数据集中正、负样本的比率恰好相反。因此,本模型在 RSG、IOD、SR 和 O 四类偏倚风险评价上的召回率(recall)明显要高于准确率(precision),而在其余三类偏倚风险上的表现则刚好相反。此外,本研究中只统计了正样本的评价结果,这是因为在偏倚风险评价任务中,通常只关注于能准确识别为低风险的研究。② 在句子提取任务中,本模型在所有偏倚风险类别上的准确率(precision)都要远高于召回率(recall)。结合数据的分布情况来看,所有偏倚风险类别的正样本(偏倚风险描述相关句)量均远小于负样本量。句子提取任务的目的在于希望模型预测结果中发现尽可能多的句子跟偏倚风险描述确实相关,即希望模型表现出尽可能高的准确率。从本研究结果来看,无论在哪种风险类别上,BERT 模型都取得了较好的准确率,符合任务的目标需求。
此外,如果将本模型所得结果与结合 n-gram、TF-IDF 特征工程和 LinearSVM 分类器的对比模型的测试结果进行比较,不难发现,无论是在偏倚风险评价的文档分类任务上,还是在偏倚风险描述的句子提取任务上,基于 BERT 的偏倚风险评价模型都要明显优于基于 n-gram 和 TF-IDF 的传统方法。同时,本模型在文档分类任务上优化效果远没有它在句子提取任务上的优化效果好。这是因为文本的长度要远大于句子的长度,而 BERT 模型对输入序列的长度有严格限制,最大长度不能超过 512,因此在进行文档分类训练时存在信息丢失的情况。此外,从数据集的规模上来讲,文档分类任务的数据集规模要远小于句子提取任务的数据集规模,所以 BERT 模型在句子提取任务上的效果,要明显优于文档分类任务上的效果。
本研究的局限性:在构建基于 BERT 的自动化偏倚风险评估模型时,本文采用 Google 开源的 BERT-Base 预训练模型,而该预训练模型基于英文维基百科和英文 Books Cropus 等语料进行训练,这些语料大多是通用语境下的文本。故当未来试验环境成熟时,可尝试使用 PubMed 等生物医学文本数据库的数据来训练一个基于专业生物医学文本的预训练模型,并进一步探讨基于专业语料的预训练模型是否能表现出更优异的性能。
综上所述,本研究表明,基于 BERT 的偏倚风险评价模型在自动化偏倚风险评价的两个重要分类任务上均取得了较高的准确率,可以实现偏倚风险评价过程的自动化。
“证据”及其质量评价是循证医学(evidence based medicine,EBM)的思想核心,也是实践 EBM 的关键所在。高质量系统评价和随机对照试验(randomized controlled trial,RCT)的结论,属于干预性措施的最高证据级别,通常作为权威临床实践指南的重要参考依据[1]。系统评价形成过程中要求对纳入研究进行偏倚风险评价,但该评价过程既复杂又繁重,且需要 2 名研究者独立完成[2]。有研究表明, 1 篇 RCT 偏倚风险评价需要花费专业人士 60 分钟左右的时间才能完成,且评价结果往往还不太完善[3]。也有研究表明,人为错过文章中的关键信息,不同研究者针对同一 RCT,会给出不同的评价结果[4, 5]。
近年来生物医学文献的发表速度呈指数级增长,偏倚风险评价任务显得更加困难。因此,利用机器学习方法实现偏倚风险评价的自动化,将极大减轻研究人员的工作量[6, 7]。2014 年,Marshall 等提出了一种基于 Linear SVM 的文本分类方法,用于预测 RCT 的 6 类偏倚风险,获得了 57%~75% 的 F1 值及 52%~67% 的准确率[8, 9]。2016 年,Millard 等提出采用 Logistic 回归分类算法来构建两种自动化偏倚风险评价模型,结果表明,两种模型在受试者操作特征曲线下的面积(area under curve,AUC)分别为 0.72 和 0.98[10]。
但是,以上方法在基于词袋模型或词频统计的特征表示方法对文本进行向量表示时,均无法表征文本所包含的上下文语义信息,可能导致最终结果不准确。因此本文提出一种基于 BERT 预训练模型的自动化偏倚风险评价方法并与传统机器学习方法进行比较,以期为系统评价研究者提供一种更准确的自动化偏倚风险评价方法。
1 资料和方法
1.1 数据来源
本文采用远程监督[11, 12]和网络爬虫的方式从 Cochrane 图书馆[13]中获取结构化的偏倚风险评价数据,同时获取纳入 RCT 的详细信息,并以此链接到 PubMed 等数据库获取对应的 PDF 全文。
1.2 数据集构建
经过一系列的格式处理和数据清洗后,最终分别构建出两类模型,即文档分类和句子分类模型所需的数据集,数据集构建流程见图 1。

Cochrane 系统评价手册中定义的 RCT 偏倚风险有 7 种:随机序列生成(random sequence generation,RSG)、分配隐藏(allocation concealment,AC)、对试验受试者及试验人员实施盲法(blinding of participants and personnel,BOP)、对结局评价员实施盲法(blinding of outcome assessment,BOA)、试验结果数据的完整性(incomplete outcome data,IOD)、选择性报告(selective reporting,SR)和其他偏倚(other sources of bias,O)。构建文档分类模型数据集时,将结构化数据中“评价者的判断”(author’s judgement)对应值为“低风险”的数据视为目标类别(正样本,1),其余的“高风险”和“未知风险”视为非目标类别(负样本,0)。
构建句子分类模型数据集时,将每篇 RCT 的每种偏倚风险的“评价依据”(support for judgement)作为目标句,然后与对应的 txt 文档的每一个句子进行相似度计算[14][本文采用的相似度计算方法为:doc2vec(gensim)+TF-IDF+余弦相似度]。最后将相似度最高的 1 至 3 个句子视为“相关句”,其它的句子视为“非相关”句。
1.3 基于 Google BERT 的文本分类模型构建
1.3.1 BERT 预训练模型
BERT 是 Google 团队于 2018 年 11 月提出的一种基于 Transformers 的预训练 NLP 模型[15]。该模型具有复杂的网络结构,同时它还对海量文本进行了预训练,因此能高效抽取特定领域的文本信息,并应用于下游的各种 NLP 任务,此外 Google 团队还凭借着 BERT 模型刷新了 NLP 领域 11 项任务的当前最佳记录。
BERT 模型在思想上采用和 OpenAI GPT 完全相同的两阶段,一是使用大规模的预料完成语言模型预训练;二是使用 FineTuning(微调)模式来解决下游具体的 NLP 任务。BERT 在网络结构上还采用了类似于 ELMO 的双向语言模型结构,其网络结构见图 2。

1.3.2 基于 BERT 的文本分类模型构建
本文针对偏倚风险评价中文档分类任务和句子分类任务分别构建两类文本分类模型,并针对每一种偏倚分别构建一个二分类模型。两类模型的网络结构仅在输入序列的处理上有所不同,其余各部分均相同,网络结构见图 3。

图 3(a)为文档分类模型的网络结构图,(b)为句子分类模型的网络结构图。图(a)中输入文档的不同句子之间采用[SEP]标签进行分隔,其中 transformer 层数为 12 层,图(b)中 transformer 层数同样为 12 层。
原始数据集首先经过词嵌入层的相关操作之后,输入到 transformer 层,首先经过包含 6 个结构完全相同的编码模块组成的编码端进行编码,然后输入到对应由 6 个结构相同的解码模块组成的解码端进行解码,再将经过 12 层 transformer 的反复编码、解码之后得到的向量直接输入 softmax 层进行计算,最后输出预测的文本标签类别。transformer 层的每个编码模块都包含一个由 8 层自注意力机制(self-attention)组成的“多头注意力机制”网络,以及一个前馈神经网络和两个残差/归一化网络。每一个解码模块中除了一个与编码端类似的“多头注意力机制”网络以及一个前馈神经网络以外,还包括一个由自注意力机制组成的“多头掩码注意力机制”结构。
该模型的词嵌入层,不再是传统的词嵌入操作,而是结合“位置嵌入”(position-embedding)和“分层嵌入”(segment-embedding)的嵌入操作,具体过程见图 4。

首先是“令牌嵌入”阶段,通过查询词表,将输入文本的每个单词转换成一维的词向量,这里采用 Google 开源的 Bert-Base Uncased 词表。接下是“分层嵌入”阶段,该过程用于记录当前词是属于句子 A 还是属于句子 B。然后在“位置嵌入”阶段加入单词的位置信息,主要目的是为了记录单词在句子中的位置信息,从而学习文本的词义信息。最后将三者相加所得的结果作为 BERT 模型的输入。
该模型的核心是一个 12 层的 transformer 层,其中的每个神经元都采用 Google 论文中提到的 transformer 结构。模型最后通过一个 softmax 网络层进行计算并分类,softmax 层接收最后一个 transformer 层的输出,然后经过回归计算之后,输出模型预测的类别标签的概率。
1.4 模型训练参数和评价指标
在两种分类模型的训练中,本文均设置训练轮数(train_epochs)为 100,学习率(learning_rate)为 1e-5,训练批次大小(batch_size)为 64,丢失率(dropout_rate)为 0.5。同时还设置了“早停”(early_stop)策略,并设置相应的阈值为 20,即当模型连续 20 次的下降梯度为负数时,停止训练。最后根据输入序列长度以及分类任务的不同,本文分别设置最大输入序列长度为 512 和 128。模型训练停止后,在占总数据 10% 的测试集上进行测试,并记录模型的准确率(P 值)、召回率(R 值)和 F1 值。
2 结果
2.1 文档分类模型试验结果
采用经典机器学习方法以 n-gram 和 TF-IDF 为特征工程,LinearSVM 为分类器作为对比模型,比较 BERT 模型在文档分类任务中的不同偏倚风险种类上的表现,结果见表 1 和图 5。本研究结果显示,BERT 模型在所有种类的偏倚风险评价上的表现均明显优于对比模型。


RSG:随机序列生成;AC:分配隐藏;BOP:对试验受试者及试验人员实施盲法;BOA:对结局评估员实施盲法;IOD:试验结果数据不完整;SR:选择性报告;O:其他偏倚。
2.2 句子分类模型试验结果
同样采用传统机器学习方法模型作为对比模型,比较 BERT 模型在句子分类任务中的不同风险种类上的表现,统计结果见表 2 和图 6。本研究结果显示,BERT 模型在句子分类任务上的效果优于对比模型。


RSG:随机序列生成;AC:分配隐藏;BOP:对试验受试者及试验人员实施盲法;BOA:对结局评估员实施盲法;IOD:试验结果数据不完整;SR:选择性报告。
3 讨论
本研究建立了一种基于 BERT 的自动化偏倚风险评价模型方法,其结果发现:① 在文档分类任务上,本模型在 RSG、IOD、SR 和 O 四类偏倚风险评价上的表现要明显优于其在其他几类偏倚风险上的表现。结合数据集中正负样本的分布情况加以分析,结果发现在模型表现效果更好的 4 种偏倚风险类别上,它们的数据集中正样本的数量明显多于负样本,而其余类别的数据集中正、负样本的比率恰好相反。因此,本模型在 RSG、IOD、SR 和 O 四类偏倚风险评价上的召回率(recall)明显要高于准确率(precision),而在其余三类偏倚风险上的表现则刚好相反。此外,本研究中只统计了正样本的评价结果,这是因为在偏倚风险评价任务中,通常只关注于能准确识别为低风险的研究。② 在句子提取任务中,本模型在所有偏倚风险类别上的准确率(precision)都要远高于召回率(recall)。结合数据的分布情况来看,所有偏倚风险类别的正样本(偏倚风险描述相关句)量均远小于负样本量。句子提取任务的目的在于希望模型预测结果中发现尽可能多的句子跟偏倚风险描述确实相关,即希望模型表现出尽可能高的准确率。从本研究结果来看,无论在哪种风险类别上,BERT 模型都取得了较好的准确率,符合任务的目标需求。
此外,如果将本模型所得结果与结合 n-gram、TF-IDF 特征工程和 LinearSVM 分类器的对比模型的测试结果进行比较,不难发现,无论是在偏倚风险评价的文档分类任务上,还是在偏倚风险描述的句子提取任务上,基于 BERT 的偏倚风险评价模型都要明显优于基于 n-gram 和 TF-IDF 的传统方法。同时,本模型在文档分类任务上优化效果远没有它在句子提取任务上的优化效果好。这是因为文本的长度要远大于句子的长度,而 BERT 模型对输入序列的长度有严格限制,最大长度不能超过 512,因此在进行文档分类训练时存在信息丢失的情况。此外,从数据集的规模上来讲,文档分类任务的数据集规模要远小于句子提取任务的数据集规模,所以 BERT 模型在句子提取任务上的效果,要明显优于文档分类任务上的效果。
本研究的局限性:在构建基于 BERT 的自动化偏倚风险评估模型时,本文采用 Google 开源的 BERT-Base 预训练模型,而该预训练模型基于英文维基百科和英文 Books Cropus 等语料进行训练,这些语料大多是通用语境下的文本。故当未来试验环境成熟时,可尝试使用 PubMed 等生物医学文本数据库的数据来训练一个基于专业生物医学文本的预训练模型,并进一步探讨基于专业语料的预训练模型是否能表现出更优异的性能。
综上所述,本研究表明,基于 BERT 的偏倚风险评价模型在自动化偏倚风险评价的两个重要分类任务上均取得了较高的准确率,可以实现偏倚风险评价过程的自动化。