前言
小白读论文 文献阅读汇总
Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing, pages 1427–1438,
November 16–20, 2020.
c 2020 Association for Computational Linguistics
论文
摘要
机器阅读理解(MRC)近年来在开放阅读平台上取得了显著的进展,这主要得益于大规模的预训练语言模型。但是,在医疗领域等特定领域,由于缺乏广泛的训练数据和专业结构知识的忽视,这类模型表现得更为糟糕。作为一项努力,我们首先收集了一个大规模的医学多选择问题数据集(超过21000个实例),这些问题被用于国家执业药师考试。这是一项具有挑战性的医学测试, 2018年的通过率不到14.2%。然后,我们提出了一种新的阅读理解模型KMQA,该模型能够充分利用结构化的医学知识(即医学知识图)和参考的医学纯文本(即从参考书中检索的文本片段)。实验结果表明,KMQA在测试集上以61.8%的正确率通过了测试,并有较大的优势优于已经之前的竞争模型。
1 引言
随着大尺度数据集的出现,如开放领域有SQuAD (Rajpurkar et al., 2016, 2018)、RACE (Lai et al., 2017)和Natural Questions (Kwiatkowski et al., 2019,机器阅读理解(MRC)已经成为自然语言处理领域的热门话题。在过去的几年里,MRC取得了实质性的进展,最近许多模型在几个通用数据集上超过了人类的表现。这些模型的优势主要归功于两个重要方面:1)大型预训练语言模型(PLMs)强大的表示能力,可以隐式地覆盖或再现大部分语言变体。
例如,在SQuAD 2.0的前10个任务中,有9个模型是基于ALBERT (Lan et al., 2020)。最流行的MRC数据集属于开放领域,它们是由新闻、fiction和维基百科文本等构建的。大多数问题的答案都可以直接从给定的纯文本中得到。相对于开放领域的MRC,医学MRC具有更大的挑战性,同时具有巨大的潜力为临床提供有益的决策支持。现在仍然缺乏流行的基准医学MRC数据集。最近的一些工作正在尝试构建医学MRC数据集,如PubMedQA (Jin et al., 2019)、emrQA (Pampari et al., 2018)和HEAD-QA (Vilares和Gomez-´Rodr ıguez, 2019)等。然而,要么这些数据集是有噪声的(例如,由于半自动或启发式规则生成),要么注释的数据规模太小(Yoon et al., 2019;Yue et al., 2020)。相反,我们从中国执业药师考试收集了21.7k多个带有人工注释答案的多选择问题,借以构建了一个大规模的医学MRC数据集。这个入学考试对人类来说是一项具有挑战性的任务,它用来评估人类候选者的专业医学知识和技能。据统计数据显示,2018年考生通过率低于14.2%。参考书的正文被用作问题的纯文本。表1给出了一个例子。
虽然已经为特定领域的MRC引入了一些预先训练过的语言模型,但基于BERT的模型并不像在开放领域的MRC任务中那样具有一致性(Zhong et al., 2020;Yue et al., 2020)。另一个挑战是,医学问题往往更困难;没有标签段落包含给定问题的答案。通常需要从可能大规模的文本如整个参考书中搜索多个相关片段。在许多情况下,无法从相关片段中明确找到答案,需要医学背景知识从相关片段中得出正确答案。因此,与开放领域不同,仅仅使用强大的预先训练好的语言模型和纯文本并不能高效完成医学MRC的任务。例如,在表1中,相关的片段(第3行)只能推断出Ribavirin和Entecavir是对给定问题(第1行)可能的答案。如果使用医学知识图谱中的三元组(entecavir、indication、chronic hepatitis B),我们可以迅速得到正确的答案为Entecavir。
在此,我们提出了一种新的医学MRC模型KMQA,它利用了参考医学文本和外部医学知识。 首先,KMQA使用共同注意机制对问题、选项和从参考文献检索到的片段之间的交互表示进行建模。 其次,将本文提出的知识获取算法应用于医学知识图,获得与问题和选项强相关的三元组。 最后,将知识和问题的融合表示插入预测层,以确定答案。此外,KMQA通过从一个中间关系分类任务学习获得事实知识,并通过使用问题到选项路径构建子图来增强实体表示。 实验表明,我们独特的框架在这个任务中产生了实质性的改进。 进一步的消融研究和病例研究证明了注入知识的有效性。 我们还提供了一个在线主页http://112.74.48.115:8157。
2 相关工作
医疗相关问答
医学领域对现有的方法提出了挑战,因为这些问题可能更难回答。 BioASQ (Tsatsaronis et al., 2012, 2015)是推动生物医学问答(QA)系统的最重要的社区努力之一。 SeaReader (Zhang et al., 2018)提出使用从医学领域的出版物中提取的文档来回答医学中的问题。Yue等人(2020)对emrQA数据集进行了彻底的分析(Pampari等人,2018),并探索了QA系统利用临床领域知识和概括未见问题的能力。 Jin等人(2019)介绍了PubMedQA,其中问题是基于文章标题导出的,可以用其各自的摘要来回答。 最近,预培训模型已被引入医疗领域(Lee et al., 2020; Beltagy等人,2019; Huang et al., 2019a)。 他们接受未经注释的生物医学文本的训练,如PubMed摘要,并已被证明在生物医学问题回答方面很有用。 在本文中,我们关注的是医学考试中更加困难和多样化的多项选择问题,这让我们可以直接探索QA模型对领域知识进行编码的能力。
知识增强方法
KagNet (Lin et al., 2019)将外部知识表示为图,然后使用图卷积和LSTM进行推理。Ma等人(2019)采用基于BERT 的选项比较网络(OCN)进行答案预测,并提出了一个注意机制,使用相关的三元组进行知识集成。Lv等(2020)提出了一种基于GNN的概念网络关系和Wikipedia词条异构图推理模型。BERT-MK (He et al., 2019)在KG中集成了事实三元组,而REALM (Guu et al., 2020)使用学习的文本知识检索器增强语言模型预训练算法。与之前的工作不同,我们隐式和显示地结合了外部知识。在预先训练过的模型基础上,我们的工作结合了文本和医学知识表示的优势。
3 方法
本文的医学MRC任务是一个多重选择题,有5个候选答案。它可以形式化如下:给定问题
Q
Q
Q 和答案候选
{
O
i
}
\{O_i\}
{Oi},目标是从候选人中选择最正确合理的答案
O
^
\hat{O}
O^。KMQA利用文本证据跨度和合并知识图事实进行医学多选题问答。如图1所示,它由几个模块组成:(a)多层次共同注意阅读器,为问题、选项和检索片段提供上下文感知的表示,并在它们的表示之间支持丰富的交互。
(b)知识获取,根据给定的问题和选项从知识图谱中提取知识事实。©注入层,进一步将知识事实纳入到阅读器中;(d)预测层,输出最终答案。同时,我们利用问题到选项路径的关系结构进一步增强了KMQA的性能。
3.1 多层次合注意力阅读器
给出一个实例,首先利用文本检索系统为每个问题-答案对选择证据范围。我们将问题与候选答案的串接作为输入,保留前n个相关段落。这些段落被合并成新的证据。在这里,我们使用基于bm25的搜索索引器(Robertson和Zaragoza, 2009)和医学书籍作为文本源。多层次合注意力阅读器用来表示证据范围 E E E, 问题 Q Q Q 和选项 O O O。我们将输入证据范围表示为 E ∈ R m E \in R^m E∈Rm, 问题 Q ∈ R n Q \in R^n Q∈Rn, 候选答案 O ∈ R l O \in R^l O∈Rl, 其中 m , n , l m, n, l m,n,l分别代表证据范围,问题和候选答案的最大长度。类似于(Devlin et al ., 2019),给定输入 E, Q和O,我们使用WordPiece分词和连接所有tokens作为一种新的句子( [ C L S ] , E , [ S E P ] , Q , # , O , [ S E P ] [CLS], E, [SEP], Q, \#, O,[SEP] [CLS],E,[SEP],Q,#,O,[SEP]), 其中“[CLS]”是一个特殊的标记用于分类和“[SEP]”是一个分隔符。通过对对应的token、分段和位置嵌入进行求和后的向量给每个token初始化,然后通过基于BERT的预训练语言模型编码到一个隐藏状态。
说实话,原文这一句有点看不太懂…
Each token is initialized with a vector by summing the corresponding token, segment and position embedding, …
~~~~~~~ 一般情况下,预训练模型是在大规模的开放领域纯文本上进行预训练的,这使得它们缺乏医学领域的知识。最近的一些研究表明,在中间任务上进一步训练的预训练模型可以显著提高目标任务的性能(Wang et al., 2019;Clark et al., 2019;Pruksachatkun等人,2020年)。根据这一观察,我们通过中间任务训练,吸收来自中国医学知识图谱(CMeKG) (Byambasuren et al., 2019)3的知识。CMeKG是基于大规模医学文本数据,利用自然语言处理和文本挖掘技术,采用人在环的方法开发的中文医学知识图谱。目前,它包含11,076种疾病、18,471种药物、14,794种症状、3,546种诊断和治疗技术的结构化知识描述、1,566,494种医学概念链接示例,以及描述医学知识的属性知识。CMeKG中的三元组由四个部分组成:头实体、尾实体、关系以及属性描述。为了获得事实知识,我们采用关系分类任务对该数据集上的预训练模型进行进一步的预训练。此任务需要一个基于上下文对给定实体对的关系标签进行分类的模型. 具体地,我们从CMeKG中选择了163个不同关系的子集,只包括考试中与药物和疾病类型相关的三元组。然后,我们丢弃所有少于5000个实体对的关系,保留40个关系和1,179,780个事实。然后,我们将两个实体连接起来,在两者之间插入“[SEP]”作为输入,然后对PLM最后一个隐藏特征的“[CLS]”向量应用线性层进行关系分类。接下来,我们丢弃分类层,用其他参数初始化PLM的相应部分,参数被记为 β \beta β。最后我们通过 β \beta β 分别得到编码表示 H c l s ∈ R h , H E ∈ R m × h , H Q ∈ R n × h , H O ∈ R l × h , H Q E ∈ R ( n + m ) × h H_{cls} \in R^h, H_E \in R^{m\times h}, H_Q \in R^{n \times h}, H_O \in R^{l \times h}, H_{QE} \in R^{(n+m)\times h} Hcls∈Rh,HE∈Rm×h,HQ∈Rn×h,HO∈Rl×h,HQE∈R(n+m)×h, 其中h是隐藏层的大小。
为了加强从问题到证据区间以及从证据区间到问题的信息融合,我们采用了多层次共注意机制,该机制在之前的模型中已经被证明是有效的(Xiong et al., 2017;Seo et al., 2017;黄等人,2019b)。将候选答案表征 O O O作为输入,我们计算了三种类型的注意权重,以捕获其与问题、证据以及证据和问题的相关性,并得到问题-注意、证据-注意和问题-证据-注意表征:
其中 W t W_t Wt 和 b t b_t bt 是可学习的参数。然后我们将几个表征进行如下融合:
其中 [ ; ] [;] [;]表示连接操作, 最后, 我们对 T O T_O TO 应用列的最大和平均池化并将它和 H c l s H_{cls} Hcls 连接, 它包含了新的可选表征 T ~ O ∈ R 3 h \tilde{T}_O \in R^{3h} T~O∈R3h。
3.2 知识获取
在本节中,我们详细描述了从知识图中提取知识事实的方法。一旦确定了知识,我们可以选择合适的集成机制进行进一步的知识注入,如注意机制(Sun et al., 2018;Yang et al., 2019;Ma et al., 2019)、预训练任务(He et al., 2019)和多任务训练(Xia et al., 2019)。
给一个问题Q和一个候选答案O,我们首先通过实体链接识别文本中的实体和它的类型。被识别的实体与知识图谱中的概念完全匹配。我们还对词性规则进行软匹配,过滤掉停止词,并根据类别描述获取Q的关键实体,如被记为 ε Q \varepsilon_Q εQ “西药”、“症状”、“中草药”等。之后,我们检索头部或尾部包含O实体的所有三元组 S O S_O SO作为该选项的知识事实。对于这些知识事实,我们首先通过模板函数g将头-关系-尾符号转换为正则词,生成伪句子。例如,将“(chronic hepatitis B,Site of disease,Liver)”改为“The site of disease of chronic hepatitis B is liver”。然后我们可以使用算法1中所示的方法对每个问题回答的选项事实进行重新排序,该算法使用word mover’s distance (Kusner et al., 2015)作为相似性函数。我们应用它的原因是能够找到与当前选项更相关的高质量的知识事实,并将它们输入到模型中。这里的嵌入函数F是句子单词向量的平均池化。词嵌入使用200维预训练的中文单词短语嵌入(Song et al., 2018)。虽然不完美,但算法1找到的三重文本确实提供了一些有用的信息,可以帮助模型找到正确的答案。
3.3 知识注入和答案预测
我们首先将返回的选项事实文本连接为 F F F,然后使用 β \beta β生成这个伪句子的嵌入:
让 H F ∈ R s × h H_F \in R^{s\times h} HF∈Rs×h 成为最后隐藏层的连接, 其中 s 是最大长度, 然后我们利用注意力机制对 H F H_F HF 和 预训练模型编码问题 H Q H_Q HQ的输出的交互进行建模:
其中相应元素相乘乘法被表示为
∘
\circ
∘。特别地,
H
F
H_F
HF是用
W
f
q
∈
R
s
×
h
W_fq \in R^{s\times h}
Wfq∈Rs×h 的线性变换。
然后,相似矩阵
M
F
Q
∈
R
s
×
n
M_{FQ} \in R^{s\times n}
MFQ∈Rs×n 通过标准记忆力来计算。 然后我们用
M
F
Q
M_{FQ}
MFQ 去计算问题-知识注意力
A
Q
F
∈
R
s
×
h
A^F_Q \in R^{s\times h}
AQF∈Rs×h和 知识-问题注意力
A
F
Q
∈
R
s
×
h
A_F^Q \in R^{s\times h}
AFQ∈Rs×h。
最后,通过计算得到问题知识文本表征
T
F
∈
R
s
×
h
T_F \in R^{s\times h}
TF∈Rs×h, 其中
W
p
r
o
j
∈
R
4
h
×
h
W_{proj} \in R^{4h \times h}
Wproj∈R4h×h。
最后,在
T
F
T_F
TF 上使用最大池化和平均池化以便生成最后的知识表征
T
~
F
∈
R
2
h
\tilde{T}_F \in R^{2h}
T~F∈R2h。 在输出层,我们结合了文本表征
T
~
O
\tilde{T}_O
T~O 和知识表征
T
~
F
\tilde{T}_F
T~F。对于每个候选的答案
O
i
O_i
Oi, 我们计算损失如下:
其中 W o u t ∈ R 1 × 5 h W_{out} \in R^{1\times 5h} Wout∈R1×5h。我们增加了一个简单的前向分类器作为输出层,它以上下文表征 T c T_c Tc作为输出并且输出答案分数 S c o r e ( O i ∣ E , Q , F ) Score(O_i|E,Q,F) Score(Oi∣E,Q,F)。 最后,最高分的候选选项将会被选中作为答案。最终损失函数为:
其中C是训练样本的数目, O ~ i \tilde{O}_i O~i 是第 i i i 个样本的真实值, θ \theta θ 表示所有可训练的参数。
3.4 增加路径信息
对于有问题的概念和选项(删除不是疾病、药物和症状的实体),我们将它们成对组合,并检索它们之间3跳内的所有路径,以形成关于选项的子图。例如, (chronic hepatitis B → \rightarrow → related diseases → \rightarrow → cirrhosis → \rightarrow → medical treatment → \rightarrow → entecavir) 是 (chronic hepatitis B, entecavir)的一条路径。
然后,我们应用L层图卷积网络(Kipf和Welling, 2017)更新节点的表征,类似于(Lin et al., 2019;杨等人,2019)。这里我们设置L为2。子图 g g g 中的概念 c i c_i ci 的向量 h i ( 0 ) ∈ R h h^{(0)}_i \in R^h hi(0)∈Rh用类似3.2提到的token的平均嵌入进行初始化。然后我们用以下式子更新第 l + 1 l+1 l+1层的参数。
这里 N i N_i Ni 是邻居结点, σ \sigma σ 代表Relu激活函数, W g c n W_{gcn} Wgcn 是权重向量。然后,我们利用相关的实体向量更新第 i i i 个token表征 t i ∈ T 0 t_i \in T_0 ti∈T0 ,通过一个sigmoid门得到新的token表征 t i ′ t'_i ti′:
4 数据集
我们使用中国的国家执业药师考试作为问题的来源。考试是对考生专业技能的综合评估。执业医师必须通过考试才能获得执业药师资格。要通过考试,至少要取得总分的60%。该考试的药学综合知识和技能部分包括四类600道多项选择题。为了检验MRC模型的通用性,我们使用这一部分的前五年(2015-2019)的例子作为测试集,并排除多答案类型的问题。除此之外,我们还从网络和练习本上收集了超过24,000道题。在删除重复和不完整的问题(如无答案)后,我们按照一定的比例将其随机分为训练集、开发集,并按照编辑距离小于0.1的条件删除与测试集相似的问题。最后的问题集(命名为NLPEC)的详细统计数据如表2所示。
我们使用国家执业药师考试官方考试指南作为文本来源(NMPA, 2018)。它有20个章节,包括药学实践与用药,自我治疗常见病用药,器官系统疾病用药。这本书涵盖了考试的大部分必要内容。为了保证检索质量,我们首先通过OCR工具将文本转换成结构化的电子文本,然后手工校对并将所有文本转换成段落。同时,我们还从其他文献中提取了一些段落并添加到文本来源中,包括各种药物的药理作用和临床评价,药物监测的阐述和基本药物的描述。
5 实验
5.1 实验设置
我们使用谷歌发布的bert基础模型作为预训练模型(Devlin et al., 2019)。我们还比较了KMQA的性能,该模型使用了预先训练的RoBERTa大模型(Liu et al., 2019)。我们采用的预训练权重是中文文本中全词掩蔽的版本(Cui et al.,2019)。我们的模型也与预先训练的语言模型的选择正交。我们使用AdamW优化器(Loshchilov和Hutter, 2019),批量大小为32个对模型进行训练。初始学习率、最大序列长度、学习率预热比例、梯度模拟步骤、训练历期、隐藏大小 h h h、 λ \lambda λ、证据跨度N和超参数 K 分别被设置为 3 × 1 0 − 5 , 512 , 0.1 , 810 , 768 , 1 × 1 0 − 6 , 1 3\times 10^{-5}, 512, 0.1, 810, 768, 1\times10^{-6}, 1 3×10−5,512,0.1,810,768,1×10−6,1 和 3 3 3。学习参数是根据开发集上的最佳性能来选择的。我们的模型用4块NVIDIA Tesla V100显卡大约需要22小时来训练。为了减少内存使用,在我们的实现中,我们将知识文本和检索到的证据范围连接起来,然后获得单独的编码表示。对于其他模型,单词嵌入的维数为200,隐藏大小为256,优化器为Adam优化器(Kingma and Ba, 2015)。我们还预训练了词嵌入大规模的中国医学文本。
5.2 主要结果
在我们的数据集上,我们的方法与前人在多选题回答任务上的工作进行了比较,如表3所示。IR 基线指的是根据检索系统的评分排名选择答案,随机猜测指的是根据随机分布选择答案。第三至第五行显示了之前SOTA的模型结果。这些模型均采用了协同匹配模型,且性能优于上述两个基线。他们使用注意机制来捕捉检索到的证据、问题和考生答案之间的相关性,并倾向于选择最接近证据语义的答案。预先训练的语言模型微调实现与基线模型相比超过18%性能优化。通过在BERT-base上融合知识来源和文本,进一步提高了性能,这证明了我们的假设,即结合来自结构源的知识可以进一步增强对BERT-base的文本理解。此外,我们的KMQA-RoBERTa large单模型, 它是采用全字掩码预训练RoBERTa large模型,并在开发集和测试集上都取得了更好的性能,并且性能由于RoBERTa large模型。这一结果也略高于人类的及格分数。这些结果证明了该方法的有效性。
考试题目分为三种类型,A类(陈述最佳选择),B类(最佳兼容选择),C类(案例总结最好选择)。评价结果如表4所示。我们观察到最佳相容选择类型的问题所占比例最高,且模型性能低于其他两种类型。根据回答问题所需的不同方法,我们进一步将其分为三种类型:概念知识、情景分析和逻辑推理。在概念知识问题上,它们占很大比重,通常与具体的概念知识有关。这意味着我们还需要改进检索模块。根据问题正向或反向推导的需要,我们将问题分为两类:正向问题和反向问题。我们发现他们的表现是相似的,但积极的部分占了更大的比例。
5.3 消融研究
为了研究KMQA各成分的影响,我们还进行了消融实验。结果如表5所示。从实验结果来看,在没有外部信息,只有问题和选项的情况下,模型仅比检索基线高2.5%。将文本检索模型和知识图检索的信息加入后,模型分别改进了26.3%和6.4%,表明了外部信息的有效性。此外,我们发现关系分类的预先训练也可以提高下游QA任务的性能。当进一步添加从问题到选项的路径信息时,模型的准确率提高了0.8%。如果只使用具有共同注意机制的参考书中检索到的代码片段,则模型的性能会下降更多。我们还改变了超参数K,结果表明设置K = 3效果最好。由于BERT模型的最大长度,较大的K并不会带来更多的改进。
5.4 案例学习
如表6所示,我们选择了一个示例,使用KG和检索文本实现联合推理。在表6例1,我们发现受限制的检索的过程中,一些描述适应症的选择不是完全与问题茎相关, 并且段落包含描述的这种药物的化学成分,这一部分给回答产生了噪声。相比之下,我们的模型能够通过使用KG和文本证据,在回答问题时一定程度上缓解了噪声问题。由于我们数据集中的许多问题都是关于疾病和药物的,需要对其潜在含义进行描述,因此使用医疗KG对我们的研究来说可能是最方便的。
此外,我们从测试集中随机选取50个错误,并将其分为4组:
信息丢失
在44%的错误中,检索到的证据和提取的知识不能提供有用的信息来区分不同的候选答案,这是我们模型中的主要错误类型。以这个案例为例:“What does the abbreviation - p.c. - stand for in prescription?”例如,要正确预测答案,我们需要知道”pc“是“饭后”的缩写(源自拉丁语“post cibum”)。
有噪声的证据
在32%的错误中,模型被其他错误答案的嘈杂知识所误导。原因可能是上下文太长,并且与问题描述重叠。例如,在表6的例子2中,通过检索证据可能选择正确的答案和错误的预测。但是,我们可以通过对KG和检索文本中必要信息的相互验证,直观地得到答案。
弱推理能力
14%的错误是由于模型的推理能力较弱,例如对操作中的符号单元的理解。例如,在表6的例3中,模型需要先用常识理解选项的联合意义,然后通过知识和文本反事实推理排除错误答案。
数值分析
10%的误差来自于数学计算和分析问题。模型不能正确地处理“To prepare 1000ml 70% ethanol with 95% ethanol and distilled water, what is the volume of 95% ethanol needed?” 的问题,因为不能从给定的段落中直接获得。相反,它需要模型的数学计算和推理能力。
6 结论
本文针对执业药师的考试问题,探讨了如何解决医学领域的多选题阅读理解问题,并提出了一种新的模型KMQA。它明确地将知识和预先训练的模型结合到一个统一的框架中。此外,KMQA通过从中间任务学习隐式地利用事实信息,并转移结构知识来增强实体表示。在真实世界的测试集上,KMQA是唯一一个性能优于人类及格线的模型。在未来,我们将探索如何将我们的模型应用到更多的领域,增强模型回答问题时推理路径的可解释性。