Large-scale Multi-granular Concept Extraction Based on Machine Reading Comprehension
Large-scale Concept Extraction Based on Machine Reading Comprehension for Knowledge Graph Completion本文为作者个人观点,仅供参考、交流、学习论文地址:https://link.springer.com/chapter/10.1007/978-3-030-88361-4_6代码和数据集地址:https
Large-scale Multi-granular Concept Extraction Based on Machine Reading Comprehension
本文仅供参考、交流、学习
论文地址:https://link.springer.com/chapter/10.1007/978-3-030-88361-4_6
代码和数据集地址:https://github.com/fcihraeipnusnacwh/MRC-CE
1. 主要目的
MRC-CE模型是基于BERT模型建立的机器阅读理解模型,该模型可以通过指针网络提取更细粒度的概念。此外,采用随机森林和基于规则的剪枝,同时提高了MRC-CE的查全率和查准率。
2. 细粒度概念低覆盖率的原因
首先,细粒度的概率主要作用是能极大程度地促进下游任务的发展。例如,如果实体谷歌的概念是 “ 技术公司 ” 和 “ 搜索引擎公司 ”,那么基于这种细粒度的概念,工作推荐系统就会向计算机科学系的毕业生推荐谷歌而不是沃尔玛。在现有的KGs中,细粒度概念覆盖率低的原因主要是由于它们生成方法的缺陷。现有的概念获取方法大多是基于文本的生成或抽取,由于它们倾向于生成高频单词,所以通常从自由文本中生成粗粒度的概念。
3. 本文方法
机器阅读理解(Machine reading comprehension, MRC)模型可以从语境文本中提取问题的答案。受MRC模型的启发,本文将CE问题作为一个MRC任务来处理,并提出了一种新的CE框架MRC-CE,用于从给定实体的描述文本中实现大规模的多粒度CE。MRC-CE可以比以往的概念提取模型提取更多的多粒度概念,原因如下。首先,利用基于BERT的MRC模型(BERT-MRC)建立MRC-CE模型,该模型可以发现大量的新概念,并利用指针网络很好地处理概念重叠问题。(概念重叠是指一个概念项是另一个概念项的子序列的现象。例如,在图1中,一旦序列标记模型将“公司”标记为概念1,它就不会将“跨国技术公司”标记为细粒度的概念,因为它不能用不同的标签标记令牌。)其次,采用随机森林和基于规则的剪枝对BERT-MRC输出的候选概念进行过滤,提高了MRC-CE的查全率和查准率。
4. 与现有方法比较
现在方法主要有三种类型的模型。
- 模式匹配方法:尝试基于手工制作的模式或规则从自由文本中提取概念。他们能够获得准确的概念,但由于泛化能力较差,回忆率较低。相比之下,我们的MRC-CE在MRC模型的基础上实现了CE任务,超越了手工模式的限制,从而获得了更多的概念。
- 基于学习的方法:分类模型将CE转换为Classification,以确定预定义集合中哪个概念与给定实体存在高同义关系,但不能获得新的概念。序列标记模型已被证明在提取任务中是有效的。鉴于提取特征,序列标记模型也可以从描述实体的文本中提取概念作为我们的MRC-CE。最近,训练前的上下文嵌入被广泛应用于序列标注模型中,以获得良好的性能,但不能处理概念重叠的问题。
- 基于知识的方法:这些方法主要利用来自KG的外部信息来完成提取任务,得到了较好的CE。但这些模型泛化能力较差,只关注某一特定领域
5. 方法详情
5.1 任务定义
我们的CE任务可以表述如下。给定一个实体e和它相关的描述性文本,表示为一个单词序列 X = { x 1 , x 2 , … , x n } X={\{x_1, x_2,…,x_n \} } X={x1,x2,…,xn}其中 x i ( 1 ≤ i ≤ n ) x_i(1≤i≤n) xi(1≤i≤n)是一个单词令牌,CE任务的目标是从X中找到一个或多个span作为e的概念s。
5.2 数据构造
高质量的描述性文本在基于文本的CE中扮演着重要的角色。由于我们的任务场景是跨度提取,输入文本应该包含给定实体的概念。我们考虑百科全书中给定实体的摘要,因为它结构良好,并且明确地提到了给定实体的概念。在下面的介绍中,输入文本总是指给定实体的摘要。
5.3 概要
为了对CE采用MRC模型,我们需要构造合适的问题来抽取文本中的spans。因为我们的目标是从给定实体的抽象中提取概念,所以我们将问题Q设置为 “ [实体]的概念是什么? ” 我们的MRC-CE流水线如图2所示,它可以分为三个模块,即概念提取器、概念选择器和概念修剪器。第一个模块是BERT-MRC,使用指针网络构建,它接收输入文本并从文本中提取候选的多粒度概念。第二个模块采用随机森林从BERT-MRC输出的候选概念中选择理想的概念。第三个模块根据一些剪枝规则从第二个模块的输出中删除不令人满意的概念。
5.4 基于MRC的概念提取器
我们的框架中的BERT-MRC是用一个BERT编码器和一个指针网络来生成候选span及其对应的概念置信分数的。我们从实体抽象文本中也存在的KG中提取每个实体的概念,作为一个训练样本的真实标签。
5.4.1 BERT编码
在这个模块中,BERT被用作编码器层,为每个输入令牌生成嵌入,在此基础上,随后的指针网络预测每个候选提取跨度的置信度得分。首先,将输入X的令牌与输入X的令牌与问题Q连接如下,构成BERT编码器的输入。 { ( C L S ) q 1 , q 2 , … , q m [ S E P ] x 1 , x 2 , … , x n } {\{(CLS) q_1,q_2,…,q_m[SEP]x_1, x_2,…,x_n\}} {(CLS)q1,q2,…,qm[SEP]x1,x2,…,xn},其中 [ C L S ] [CLS] [CLS]和 [ S E P ] [SEP] [SEP]是特殊的令牌, q i ( 1 ≤ i ≤ m ) q_i(1≤i≤m) qi(1≤i≤m)是q的令牌。那么BERT编码器输出的文本令牌嵌入矩阵 E ∈ R n × d E∈R^{n×d} E∈Rn×d,其中 d 为嵌入维数。
5.4.2 通过指针网络生成候选概念
通过在E中嵌入令牌,构建指针网络,通过BERT编码器后的全连接层预测令牌成为答案起始位置和结束位置的概率。然后,每个跨度的置信度得分可以计算为其起始令牌和结束令牌的概率之和。通过适当的选择阈值,可以将一个span重复输出为多个提取概念的相同子序列。这种策略可以提取多粒度概念。例如,在图3中,如果置信度阈值设置为0.85,则对三个不同粒度的概念分别提取多次 “ company ” 。
具体来说,我们使用
p
s
t
a
r
t
,
p
e
n
d
∈
R
n
p^{start}, p^{end}∈R^n
pstart,pend∈Rn来表示存储每个令牌分别为起始位置和结束位置的概率的向量。它们是以E为基础计算的
[
p
s
t
a
r
t
;
p
e
n
d
]
=
s
o
f
t
m
a
x
(
E
W
+
B
)
[p^{start}; p^{end}] = softmax(EW + B)
[pstart;pend]=softmax(EW+B)
其中
W
,
B
∈
R
n
×
2
W, B∈R^{n×2}
W,B∈Rn×2都是可训练参数。给定以
x
i
x_i
xi和
x
j
x_j
xj分别作为起始令牌和结束令牌的span,其置信分数
c
s
i
j
∈
R
cs_{ij}∈R
csij∈R可计算为
c
s
i
j
=
p
i
s
t
a
r
t
+
p
e
n
d
cs_{ij} = p^{start}_i + p^{end}
csij=pistart+pend
然后,BERT-MRC生成候选概念(跨度)的排名列表以及置信分数,并输出置信分数大于选择阈值的概念。
5.4.3 BERT-MRC Loss
我们采用交叉熵函数CrossEntropy(·)作为BERT-MRC的损失函数。具体地说,假设集合
Y
s
t
a
r
t
∈
R
n
Y_{start}∈R^n
Ystart∈Rn(或
Y
e
n
d
∈
R
n
Y_end∈R^n
Yend∈Rn)包含一个输入令牌
x
i
(
1
≤
i
≤
n
)
x_i(1≤i≤n)
xi(1≤i≤n)的实标号,作为一个概念的开始(或结束)位置。
Y
s
p
a
n
∈
R
C
n
2
Y_{span}∈R^{C^2_n}
Yspan∈RCn2包含span
x
i
x
j
x_ix_j
xixj的实标签,其中xi和xj分别是概念的起始位置和结束位置。那么,对于这三种情况的预测,我们有以下三种损失:
L
s
t
a
r
t
=
C
r
o
s
s
E
n
t
r
o
p
y
(
p
s
t
a
r
t
,
Y
s
t
a
r
t
)
L
e
n
d
=
C
r
o
s
s
E
n
t
r
o
p
y
(
p
e
n
d
,
Y
e
n
d
)
L
s
p
a
n
=
C
r
o
s
s
E
n
t
r
o
p
y
(
c
s
,
Y
s
p
a
n
)
L_{start} = CrossEntropy(p^{start}, Y_{start}) \\ L_{end} = CrossEntropy(p^{end}, Y_{end}) \\ L_{span} = CrossEntropy(cs, Y_{span})
Lstart=CrossEntropy(pstart,Ystart)Lend=CrossEntropy(pend,Yend)Lspan=CrossEntropy(cs,Yspan)
则BERT-MRC训练的综合损失为
L
=
α
L
s
t
a
r
t
+
β
L
e
n
d
+
(
1
−
α
−
β
)
L
s
p
a
n
L =αL_{start} +βL_{end} + (1−α−β)L_{span}
L=αLstart+βLend+(1−α−β)Lspan
其中
α
,
β
∈
(
0
,
1
)
α,β∈(0,1)
α,β∈(0,1)为控制参数。我们用Adam优化损失。
5.5 通过随机森林选择概念
第二个模块(概念选择器)用于从BERT-MRC提取的候选区间中选择理想的概念。我们认为通过选择一个特定的阈值来直接截断BERTMRC的输出排序列表来输出概念是不令人满意的。如果我们采用一个比较大的阈值,我们可以得到更准确的概念,但可能会失去一些正确的概念。如果更倾向于召回,那么精确度可能会受到影响。为了更好地兼顾准确率和查全率,我们采用分类器来预测BERT-MRC提取的候选对象是否值得保留。这种概念选择器根据重要特征而不是跨度置信度评分来过滤理想的概念,从而提高了概念过滤的性能。
具体来说,我们为分类器提供以下特征。首先,我们采用BERT-MRC方法得到的每个候选跨度的置信度分数(特征A)、起始位置概率(特征B)和结束位置概率(特征C);此外,我们还使用了另外两个特性。特征D是当前候选跨度是否为KG中已有的概念。此外,MRC-CE最重要的目标是处理细粒度CE的概念重叠问题。因此,我们考虑另一个特征E,当前span是否包含其他候选span(s)。
因为只有5个简单的特性,所以我们不需要选择深层次的模型。对于传统的分类模型,随机森林由于采用了集成学习的方法,具有比其他许多模型更好的精度。因此,我们采用随机森林作为分类器。
我们没有直接使用KG中存在的概念作为随机森林训练样本的真实标签,因为KG中不存在的许多正确概念可以通过BERT-MRC提取出来。因此,我们邀请一些志愿者对训练样本进行手工标注。具体来说,我们从BERT-MRC的输出中随机抽取了1000个结果,并要求志愿者标记出这些结果是否是对应实体的正确概念。然后,我们保存特征和结果的标签,构成训练样本。通过对中文语料库(CN-DBpedia)进行随机森林训练得到的5个特征的显著性值如表1所示。从表中我们发现,除了特征A外,特征D是选择理想概念最重要的特征。这意味着参考KGs中已有的概念是提取新概念的关键。
5.6 基于规则的概念修剪
经过以上概念的选择,仍有一些错误的概念有待保留。这些错误可以大致分为以下三类。
- 提取的概念在语义上是相互排斥的。例如,“ president ” 和 “ vice president ” 都可以被BERT-MRC提取出来,但是在概念化方面它们是相互排斥的。显然,总统不能同时兼任副总统。
- 一个概念的修饰语被错误地提取为另一个概念。例如,“ ailway ” 和 “ station ” 都是从span “ railway station ” 中提取的概念。
- 一个正确的概念被错误地与一个虚词混在一起。例如,“ is ancient costume drama ” 和 “in high school ” 都是错误的概念,“ is ” 和 “ in ” 是多余的符号。
在这一步中,基于显式规则执行一些剪枝策略,因为根据一些预定义的模式,可以很容易地识别出上述错误。例如,对于所提取的概念在语义上是互斥的类,我们会逐项设置修剪规则,而不是设置通用规则。
6. 实验
6.1 数据集
中文数据集:从CN-DBpedia公开网站中获取其最新数据,随机选取10万个实体及其概念和抽象文本作为样本库。然后,我们从样本库中随机抽取500个样本作为测试集,其余样本按照9:1划分为训练和验证集,学习模型。
英文数据集:从Probase中获取实体及其概念,然后从Wikipedia中抓取实体的抽象文本。总共抽样了5万个实体,以及它们的概念和抽象文本。然后,构建了与中文数据集相同的训练集、验证集和测试集。
6.2 实验结果
表3列出了中文数据集和英文数据集的所有模型的CE结果,其中EC #和NC #分别为实体的现有概念数和新概念数(instanceOf关系)。为了证明MRC-CE提取重叠概念的能力,我们进一步记录了重叠概念(一个是另一个的子序列)与所提取的所有概念的比例,表3中记为OC比。精确度(Prec.)是由志愿者评估的正确概念与提取的所有概念的比率
进一步深入研究了由MRC-CE提取的概念和基线。表6列出了模型提取的正确概念以及两个实体的现有概念。它表明MRC-CE从文本中提取的概念比基线更细粒度和重叠。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)