基于查询路径排序的知识库问答系统

2021-12-27 01:19宋鹏程单丽莉孙承杰
中文信息学报 2021年11期
关键词:三元组知识库排序

宋鹏程,单丽莉,孙承杰,林 磊

(1. 人民网 传播内容认知国家重点实验室,北京100733;2. 哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)

0 介绍

知识库是一种用于存储知识的数据库,其将从现实世界中抽取出来的概念作为实体,以结构化或半结构化的数据形式进行存储。知识库存在多种表现形式,其中使用最广泛的一种形式被称为知识图谱,它是以相互关联的实体及其属性为核心的图结构数据。知识图谱用图上的顶点代表实体的集合E,用边代表实体属性的集合P,用三元组集合K代表知识库,即以三元组(s,p,o)∈E×P×E的形式对知识库系统进行资源描述与存储。本文后续章节中的“知识库”专指“知识图谱类型的知识库”。为了更加便捷地从知识库中获取信息,基于知识库的问答系统应运而生。如图1所示,系统以用户提出的自然语言问题q作为输入,通过对问题进行语义分析,从给定的知识库Κ中找到与问题相关的三元组组合query={(si,pi,oi)|(si,pi,oi)∈Κ},进而根据三元组组合的结构从特定位置抽取实体或属性值作为答案返回给用户。由于相互关联的三元组在图上表现为一条路径,因此我们也将与问题相关的三元组组合称为查询路径。由一个三元组构成的查询路径称为单跳路径,由多个三元组构成的查询路径称为多跳路径。可以说,系统查找答案的过程,本质上就是将问题映射为知识库中查询路径的过程。同样,我们还可以根据问题所对应的查询路径中三元组的数量将问题划分为两种类型,分别为简单问题和复杂问题。

图1 基于知识库的问答系统的工作流程

简单问题即结构简单的问题,通过知识库中的一个三元组即可获得答案。例如,图2中问题“莫妮卡·贝鲁奇的代表作?”,可以通过三元组(莫妮卡·贝鲁奇,代表作品,西西里的美丽传说)获取答案。

复杂问题也称为多约束问题,即需要知识库中多个三元组进行推理,并根据约束条件不断地进行筛选才能够获取答案。例如,图2中问题“李清照的丈夫有哪些代表作?”,先找到与问题相关的三元组(李清照_宋代女词人,配偶,赵明诚),确定与“李清照的丈夫”对应的实体“赵明诚”后,再进一步地识别出与“赵明诚”相关的三元组(赵明诚,代表作品,《金石录》)从而获取答案“《金石录》”。

图2 简单问题与复杂问题实例及各自对应的查询路径

相比于简单问题,复杂问题需要确定的三元组更多,涉及的查询路径集合规模更大,因此计算复杂度更高,更难求解。

为了将简单问题映射为知识库上的三元组,目前大多数方法所采用的流程主要包括两个步骤:①通过实体识别获取问题中包含的知识库实体s作为查询的主题; ②通过属性映射从实体s的属性集中选取与问题相关度最高的属性p,从而确定唯一的三元组(s,p,o)。利用这一方法,Zhou[1]等基于LSTM构建的问答系统与Liu[2]等基于BERT构建的问答系统,在只包含简单问题的NLPCC2016 KBQA数据集上均取得了较好的效果。由于每执行一次上述操作只能获取一个三元组,因此在将方法应用于同时包含简单问题与复杂问题的数据集时,还需要提前确定问题的类型,以决定操作的次数。比较常见的方法为借助分类模型来对问题的类型进行判断。但是,这种方法没有充分考虑知识库的特点,由于知识库可能缺失某些实体,或缺失实体的某些属性,一些看似属于简单类型的问题,可能会因为缺少直接对应的三元组而需要借助推理的方式,通过多个三元组才能获取答案。例如,对于问题“黑曼巴的妻子是谁?”,传统方法会将这一问题判别为简单问题,并解析为三元组<黑曼巴,妻子,?x>。而实际在知识库中,“黑曼巴”这一实体并不具有“妻子”这一属性,这将导致系统无法找到问题的正确答案。

为了避免这一问题,Yih等人[3]提出了一种新的流程,在通过实体识别获取问题中的主题实体后,采用动态扩展的方式获取候选查询路径集合,使用逻辑回归模型对候选查询路径与问题进行相关度打分,并选择得分最高的查询路径以获取答案。这一方法省略了问题类型判断与属性映射的环节,避免了因误分类造成的误差。在这种情况下,即使知识库存在实体或属性缺失,系统也能够通过其他属性间接地找到答案。例如,对于问题“黑曼巴的妻子是谁?”,该方法可以在主题实体“黑曼巴”关联的全部三元组中找到正确的三元组组合〈科比·布莱恩特,别名,黑曼巴〉〈科比·莱恩特,妻子,瓦妮莎·布莱恩特〉,进而找到问题对应的答案。

受这一方法的启发,本文提出了一种基于查询路径排序方法的问答系统,相比于其他问答系统,本文的贡献如下:

(1) 构建了一个完整的知识库问答系统,基于查询路径排序的方法,实现了对简单问题与复杂问题的统一处理,克服了因为知识库缺失而导致的匹配不到三元组的问题;

(2) 通过LambdaRank排序算法构建排序打分模型,对候选查询路径与问题进行相关度打分,提高了系统计算查询路径与问题间相关度的能力,从而提升了系统整体的效果;

(3) 提出了一种基于融合方法的实体识别方式,借助知识库对模型识别到的实体结果进行修正,解决了模型标注出的某些结果无法与知识库中的实体对应的问题,提高了系统识别问题中主题实体的能力;

(4) 通过使用预训练模型BERT以及BERT的变体,提高了用于排序的语义特征的质量,从而实现了用较少的特征筛选路径,降低了系统的复杂度。

本文将在第1节重点介绍所使用的排序算法与基于排序算法构建的排序打分模型,并于第2节具体介绍问答系统的搭建过程。

1 基于LambdaRank算法构建排序模型

对于一个查询query,以及信息检索系统针对query返回的多个文档,可以使用排序模型对各个文档进行打分,以反映文档与查询之间相关度的大小。基于这一思想,本文使用排序模型计算问题与查询路径之间的相关度,进而选取相关度最高的路径用于抽取答案。相比于Yih等人[3]使用的逻辑回归模型,本文使用基于LambdaRank算法构建的排序模型,模型以对应于同一问题的两条查询路径作为输入,在训练过程中侧重考虑对应于同一问题的查询路径间相对顺序的准确性,并克服了逻辑回归模型在进行二分类时无法有效区分相似路径的缺点,进而提升了排序模型的准确性。

模型如图3所示,它是由两个前馈神经网络模型构成的孪生网络模型。其中,前馈神经网络模型为输入的查询路径计算相关度打分。我们采用LambdaRank算法训练好孪生网络后,可以使用其中的前馈神经网络作为打分模型计算测试数据中问题与查询路径间的相关度得分。下面将重点介绍模型的训练过程。我们用xi,xj来表示查询路径pathi和pathj的特征向量,作为孪生网络模型的输入。设s=f(x;w)表示前馈神经网络模型输出的相关度得分。那么pathi和pathj与问题q的相关度得分如式(1)、式(2)所示。

图3 本文所构建的用于排序的孪生网络模型

LambdaRank算法关注的是两个查询路径间相对顺序的准确性,我们可以用获得正确排序结果的概率作为孪生网络的输出。因此可以借助sigmoid函数来定义pathi比pathj更接近q的预测概率,如式(3)所示。

本文以sij∈{-1,+1,0}来表示实际情况中pathi与pathj按照与问题相关度大小进行比较的结果,如式(4)所示。

那么,pathi比pathj更接近q的真实概率可以表示为式(5):

模型使用交叉熵作为损失函数以保证两条查询路径相对顺序出错的概率最小,那么为一对查询路径pathi与pathj进行排序操作的损失可以表示为式(6):

(6)将式(3)~式(5)代入到式(6)中整理可以得到式(7):

使用Cij对任一参数w求偏导,如式(8)所示。

通过计算可以证明式(9):

因此,定义Lambda梯度如式(10)所示。

根据式(8)~式(10)可以得到基于梯度下降法的参数更新公式,其中,η是学习率,如式(11)所示。

(11)

在任务中应该更关注排名靠前的查询路径,因此,为了进一步提升top-k个排序结果的准确性,LambdaRank算法在Lambda梯度上增加了归一化折损累计增益变量,用以影响每次参数更新的方向和强度。折损累计增益表达式如式(12)所示。

(12)

其中,reli表示pathi与问题q之间的相关度。通过在相关度上除以一个关于位置i的折损值,增大了排名靠前的查询路径对指标的影响程度。对式(12)进行归一化,即得到式(13)所示的归一化折损累计增益。

(13)

其中,IDCGp为理想情况下最大的DCGp值。我们在Lambda梯度上乘以归一化折损累计增益变量,以使排名靠前的查询路径位置提升得更快,从而提升top-k个排序结果的准确性,如式(14)所示。

(14)

用于计算实体与问题间相关度的排序模型也使用同样的方法进行训练。

2 基于查询路径排序的知识库问答系统构建

本文所构建的系统主要包括四个功能模块: 实体识别模块,实体链接模块,候选查询路径生成模块以及查询路径排序模块,系统架构如图4所示。

图4 本文所构建的知识库问答系统框架

用户输入自然语言问题,系统首先通过实体识别模块识别出问题中的实体指称,然后通过实体链接模块从实体指称对应的全部实体中找到问题的查询主题,进而利用候选查询路径生成模块,找到所有与问题相关的查询路径。最后,通过查询路径排序模块选出与问题相关度最高的路径,用以抽取答案。

2.1 实体识别模块

知识库实体以实体指称的形式出现在自然语言问题中,其中,实体指称是实体的简称或者代称,例如,实体“马云_阿里巴巴董事局主席”的指称为“马云”。进行实体识别的主要目的是为了在问题q中找到可以作为查询主题的知识库实体指称。常用的实体识别方法包括基于模型的方法与基于字符串匹配的方法,由于两种方法均存在一定的局限性,因此在本文中对这两种方法进行了融合处理,进而提高了结果的准确率及召回率。

2.1.1 基于模型的实体识别方法

常用的实体识别模型为序列标注模型,通常由神经网络模型与CRF模型组合而成,用于将句子中的每个词映射为相应的标签。其中,神经网络模型用于预测词属于各类标签的概率,CRF模型用于学习标签间的转移规则,以保证输出序列的合理性。在工作时,将句子序列对应的向量q={q1,q2,…,qn}输入神经网络模型,经过计算输出标签概率矩阵H作为CRF模型的输入,CRF将矩阵H映射为标注序列y={y1,y2,…yn},其中,yi∈{"B", "I", "O"}。通过识别句子序列q中各个词qi对应的标注结果yi,即可获得指称识别的答案集合Smodel,如式(15)所示。

Smodel={[yi,yi+1,…,yi+l]|yi="B",yi+1=yi+2=…yi+l="I"}

(15)

序列标注模型中较为常用的神经网络为Bi-LSTM模型,近年来,随着BERT[4]的提出,人们开始使用BERT来代替Bi-LSTM进行指称识别工作并取得了良好的效果。

SpanBERT[5]模型是BERT的变体之一,相比于BERT模型,SpanBERT模型在预训练过程中随机掩盖一段连续的字符序列,通过无监督学习的方式对掩盖内容进行预测。这一改动使得SpanBERT更适用于序列预测任务。本文尝试利用SpanBERT模型对问题中实体指称的起点位置及终点位置进行预测,这一方法能够很好地发挥SpanBERT模型的优势并解决嵌套实体的问题。通过实验,证明了这种改进在数据集上可以取得更好的实体识别效果。

2.1.2 基于字符串匹配的实体识别方法

基于字符串匹配的实体识别方法从问题的全部子串中挑选能够作为知识库实体指称的子串作为答案。假设知识库中所有实体指称与所有的属性值构成知识库实体指称集合Mention,问题序列q的全部子串构成集合Sub,基于字符串匹配的方法以Mention与Sub的交集作为指称识别结果集合Smatch,如式(16)所示。

(16)

这种操作,可以获取一个问题中全部可能的指称。

2.1.3 基于模型与字符串匹配相融合的实体识别方法

上述两种方法均具有局限性。基于模型的方法无法保证识别的结果是可以在知识库中找到的实体;而基于字符串匹配的方法虽然可以保证这一点,但在识别出正确实体的同时,也识别出了大量无关的实体,影响了结果的精度,会给后面实体链接环节带来大量噪声。为了同时保证准确率与召回率,本文对两种方法的结果进行了融合处理。

通过对识别结果进行分析可以发现,基于模型的方法主要存在两种错误形式:

(1) 正确的指称是由多个词构成的词组,而模型只标注了指称中的一部分;

(2) 模型将与正确指称相连的修饰词也识别成了指称的内容。

这两种情况虽然没有识别出正确结果,但限定了正确指称在问题中的大致范围。因此,我们只需要在所有可能与问题相关的指称(即基于字符串匹配的指称识别结果)中保留那些与模型标注结果编辑距离最小的即可。具体融合方法见算法1。

2.2 实体链接模块

实体链接一般是指将从问题中识别出来的实体指称映射为知识库实体的过程。而在知识库问答任务中,为了覆盖复杂问题中涉及的多个实体,以及提高实体链接模块的容错能力,实体链接环节应该尽可能地保留那些与问题相关度较高的实体。本文中实体链接环节的工作过程可以形式化地定义为如下形式: 假设实体识别模块的结果集合为Smerge={m1,m2,…,mn},对于集合中的指称项mi,可以根据实体别名词典从知识库中找到与mi对应的候选实体集合Ei={e1,e2,…,eT},那么与问题q对应的全部候选实体集合可以表示为E=E1∪E2∪,…,∪En。对于E中的候选实体e,本文通过提取e与问题q之间的相似度特征,及e自身的特征构建特征向量X=(x1,x2,…,xk),然后利用第2节构建的打分模型计算e与问题q的相关度得分s=f(X;W)。对所有候选实体按照相关度得分进行排序,保留top-3的实体作为实体链接模块的结果集合Etopic。在实体链接过程中使用的特征主要包括以下三类。

(1)实体与问题的相关度特征本文主要提取了实体与问题的字面相似度与语义相似度。其中,字面相似度包括Jaccard相似度与编辑距离。语义相似度则是基于BERT对实体和问题进行二分类,以预测为同类的概率作为得分。

(2)实体上下文与问题的相关度特征同一指称下的实体,其在知识库中的主要区别为具有不同的谓词和属性值。因此,通过比较实体相关的三元组与指称在问题中的上下文之间的相关程度,可以对实体起到筛选作用。本文选取候选实体两跳范围内的三元组同问题计算字面相似度,取其中最大值作为实体上下文与问题的相关度特征。

(3)实体自身的特征主要提取了实体在知识图谱中的出度与入度。直观上,出度与入度越大的实体,说明在知识库中与其他的实体关联越密切,包含的信息越多,更有可能是我们在日常提问中经常会涉及的实体。

2.3 候选查询路径生成模块

对于主题实体集合Etopic中的实体e,我们采用动态扩展的方式获取候选查询路径集合Q,同时为了缩小候选查询路径集合Q的规模,提高系统的准确性,本文在扩展的过程中设置了相应的剪枝策略,以确保生成的候选查询路径与问题具有较高的相关性。具体的扩展方式如图5所示。

图5 本文生成候选查询路径集合的方式

(1) 对于etopic∈Etopic,从知识库中获取包含etopic的全部三元组(etopic,r1,x),构成单跳查询路径{etopicr1x}的集合Qonehop,其中,x是单跳路径对应的答案。

(2) 对于{etopicr1x}∈Qonehop,基于实体x对查询路径进行扩展,得到三元组组合(etopic,r1,x),(x,r2,e2),之后根据剪枝策略1生成多跳路径 {etopicr1x,xr2e2},并以实体x作为查询路径对应的答案;根据剪枝策略2生成多跳路径{etopicr1x,xr2y},并以实体y作为查询路径对应的答案,从而构成两跳查询路径的集合Qtwohop。

(3) 对于{etopicr1x,xr2e2}∈Qtwohop,以实体x对查询路径进行扩展,得到三元组组合(etopic,r1,x),(x,r2,e2)(x,r3,e3),之后根据剪枝策略1生成多跳路径 {etopicr1x,xr2e2,xr3e3},并以x作为查询路径对应的答案;根据剪枝策略2生成多跳路径{etopicr1x,xr2e2,xr3y},并以y作为查询路径对应的答案,从而构成多跳查询路径的集合Qthreehop。

(4)Qonehop、Qtwohop以及Qthreehop合并生成问题的候选查询路径集合Q:Q=Qonehop∪Qtwohop∪Qthreehop。

剪枝策略1由于在实体链接环节,我们保留了top-3的实体,并且通过实验可以验证保留的三个实体可以覆盖问题中90%以上的主题实体。因此,如果查询路径上的实体都出现在实体链接结果集合中,查询路径与问题的相关度更高,值得保留。以扩展两跳路径为例: 对于两跳路径{etopicr1x,xr2e2},如果e2∈Etopic,则将路径加入集合Qtwohop;否则对这条路径进行剪枝。

剪枝策略2对于单实体多跳路径,只有当多跳属性与问题在字面上存在交集时才保留。例如,路径{etopicr1x,xr2y}来说,如果问题q与属性r2存在相同的字符,即{q}∩{r2}≠∅,才将路径加入集合Qtwohop;否则对这条路径进行剪枝。这种策略可以过滤掉大量与问题无关的多跳路径。

2.4 查询路径排序模块

直观上,我们对一个与问题相关的三元组进行扩展时,如果新扩展出来的部分涵盖了问题中的相关内容,那么扩展得到的查询路径与之前相比将会包含更多有用信息,其与问题的相关度也会相应提高;相反,如果新扩展出来的部分与问题无关,那么相当于在原来的查询路径中引入了噪声,其与问题的相关度非但不会增加,反而会有所下降。在扩展查询路径的过程中,路径的某些特征具有同样的变化规律,因此我们可以借助这些特征来反映查询路径与问题间的相关度。本文提取了如下四类特征,并借助第2.1节中构建的打分模型计算查询路径与问题间的相关度,选择相关度最高的路径作为问题在知识库中的映射,进而根据查询路径的结构从特定位置抽取实体或属性值作为问题的答案。

路径中实体与问题相关度的平均值本文以实体链接模型输出的分数作为实体与问题的相关度。假设对于问题q,我们找到一条相关的单跳路径q1={E1R1M},其中,实体E1与问题q的相关度打分为f1;通过对q1进行扩展,进一步得到一条多实体多跳路径q2={E1R1M,MR2E2},其中,实体E2与问题q的相关度打分为f2。可以做如下分析:

(1) 如果实体E2与问题q相关,那么有:f2≈f1,(f1+f2)/2≈f1;

(2) 如果实体E2与问题q无关,那么有:f2≪f1,(f1+f2)/2

由上可见,在查询路径上扩展出与问题无关的实体,造成扩展路径与问题间相关度降低的同时,路径中实体与问题相关度的平均值也会下降。因此,可以使用路径中实体与问题相关度的平均值来反映查询路径与问题之间相关度的大小。

路径中实体属性与问题相关度的平均值本文使用BERT模型对路径中的实体属性与问题进行分类,以标记为同类的概率作为两者之间的相关度。采用与实体相关度平均值特征相同的分析方法,可以证明路径中实体属性与问题的相关度平均值能够反映出查询路径与问题间的相关度大小。

路径与问题的语义相似度特征Sentence-BERT[6]是一种基于BERT的孪生网络,模型相比于BERT可以产生质量更高的句向量。本文使用SentenceBERT模型来获取查询路径与问题的句向量表示,再根据Cosine相似度计算两者之间的语义特征。路径与问题越接近,句向量的相似度越大。

路径与问题的字面相似度特征本文使用Jaccard相似度作为查询路径与问题的字面相似度特征。路径与问题越接近,重叠的字符也越多。

3 实验

本文系统使用的知识库为北京大学所构建的大规模中文知识图谱PKU-base,知识库中包含41 009 141条三元组,共涉及13 930 117条实体。在构建系统的过程中,本文以CCKS2019 KBQA任务的数据集作为实验数据,数据集中的问题涉及文化、体育、历史、金融、医疗等多个领域,具有较强的开放性。其中,训练集包含2 298条数据,验证集包含766条数据,测试集包含766条数据。训练数据与验证数据以“问题-SPARQL查询语句-答案”的形式给出,例如:

Question莫妮卡·贝鲁奇的代表作?SPARQLselect ?x where { <莫妮卡· 贝鲁奇> <代表作品> ?x. }Answer<西西里的美丽传说>

此外,数据集中还同时包含简单问题与复杂问题,在测试集中,简单问题共476条,复杂问题共300条。

本文在对相关方法进行实验验证时,采用的评价指标包括宏观准确率P(Macro Precision)、宏观召回率R(Macro Recall),AveragedF1值。

3.1 实验设置

本文所构建的排序模型是由两个前馈神经网络构成的孪生网络模型。前馈神经网络由两层全连接层构成,维度分别为128与64,并以ReLU函数作为激活函数,以Adam优化算法进行参数更新,共训练10个epoch。 本文实体识别模块中的序列标注模型以SpanBERT的Base形式作为计算标签概率的神经网络。在训练过程中,batch大小为32,神经网络模型的学习率为3e-5,共训练4个epoch。 本文用于计算句向量语义相似度的Sentence-BERT模型是一个孪生网络,由两个Base形式的BERT模型构成。本文直接使用作者提供的中文预训练模型,未进行微调。

3.2 指称识别效果评估

本文针对不同的实体识别模型进行实验,实验结果如表1所示,可以看出,BERT模型在进行序列标注时的效果要优于Bi-LSTM模型,而利用SpanBERT通过预测位置的方式进行实体识别的效果,要进一步优于序列标注模型的效果。

表1 使用不同实体识别模型时在测试集上的效果

表2则反映了基于模型的方法,基于字符串匹配的方法以及融合方法在测试集上的指称识别效果。表2中尽管模型标注方法得到的实体识别结果同时具有较高的准确率与召回率,但相对于理想情况,召回率仍存在接近13%的差距。融合方法借助字符串匹配方法的结果对模型标注方法的结果进行修正,以使指称识别结果都可以在知识库中找到,从而将与理想状况间的差距缩小到4%,并且与另外两种方法相比,也取得了最高的准确率。

表2 使用不同实体识别方法时在测试集上的效果

3.3 实体链接模块效果评估

表3展示了本文所采用的实体链接策略在保留top-3个实体时实验结果的召回率指标。可以看出,基于排序的实体链接方法在保留前三个实体的情况下,可以覆盖问题中91%的实体。同时,本文还设计了关于实体自身特征的对比实验,当去掉实体上下文特征后,实验结果衰减了近4%,而当去掉实体的出度、入度特征后,实验结果衰减了近9%。根据实验结果可以看出,实体自身的特征对于实体链接的结果具有较大影响。实体在知识库中的上下文与问题的相关度越高,说明实体产生与问题相关的查询路径的概率越大,即实体作为查询主题的概率越大;实体的出度、入度特征则能够帮助系统选择那些在日常场景中使用频率更高的实体,提高链接结果作为查询主题的概率。

表3 本文实体链接方法在测试集上的效果

3.4 候选路径排序模块效果评估

在CCKS2019 KBQA数据集上,本文所构建的系统平均为每个问题生成15 400条候选查询路径;在应用相应的剪枝策略后,这一数值降低为115条。可以看出,本文设计的剪枝策略极大地缩小了候选查询路径集合的规模,提高了最终排序的准确度。

如表4所示,本文所构建的系统在CCKS2019 KBQA任务测试集上的宏平均F1值达到了0.731 3,与参与CCKS2019 KBQA任务的前四名相比,接近第一名的 0.735 4和第二名的0.730 7。其中第一名也是基于查询路径排序的方法构建系统,但他们为查询路径选取的特征数目高达39个,且大多数特征更关注路径与问题在字、词层面的相似度与路径自身的属性特征。本文系统则更关注语义层面的特征,并通过合理构建训练数据来学习在扩展查询路径过程中路径与问题相关度的变化规律,从而将用于排序的特征减少到4个,极大地降低了系统复杂性,且取得了相近的效果。第二名则是通过构建多个子系统,对答案进行融合来回答问题,系统复杂度也相对较高。

表4 不同问答系统在CCKS2019 KBQA任务上的效果

此外,本文还比较了基于LambdaRank算法的排序模型与逻辑回归模型在对候选查询路径进行排序时的效果,结果如表5所示。

表5 基于LambdaRank算法的排序模型与逻辑回归模型的比较

同时,我们还在CCKS2020 KBQA任务的数据集上进行了实验,结果如表6所示,在任务中排名第四。CCKS2020 KBQA任务的数据集中包含大量的医疗问题,本文系统仍然取得了较好的效果,验证了系统具有较强的泛化能力。

表6 本文系统在CCKS2020 KBQA任务上的效果

4 总结

本文构建了一种基于查询路径排序的知识库问答系统,实现了对简单问题和复杂问题的统一处理。系统借助LambdaRank排序算法训练打分模型,提升了系统计算查询路径与问题之间相关度的能力,从而在CCKS2019 KBQA任务数据集以及CCKS2020 KBQA任务数据集上都取得了较好的效果。此外,本文还提出了一种基于融合方式的实体识别方法,借助知识库对基于模型的实体识别结果进行修正,同时提高了识别结果的准确率与召回率,增强了系统确定问题中主题实体的能力。

但是,与CCKS2020 KBQA任务的前三名相比,本文所构建的系统仍存在一定差距。通过对结果进行分析,可以看出本文所构建的系统主要存在如下两点缺陷: 一方面,在生成候选查询路径集合时,本文所采用的剪枝方法可能会过滤掉正确的路径,影响系统的召回率;另一方面,由于每个问题都对应着大量的候选查询路径,在进行排序筛选时存在大量的噪声,会影响系统的准确率。因此对候选查询路径生成模块进行改进,能够有效提升系统性能。由于自然语言问题所对应的语义依存树在一定程度上反映了问题的结构,因此,后续我们将重点研究如何利用自然语言问题的语义依存树指导查询路径的生成,进而达到同时提升系统准确率与召回率的目的。

猜你喜欢
三元组知识库排序
排序不等式
特征标三元组的本原诱导子
恐怖排序
关于余挠三元组的periodic-模
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
节日排序
一个时态RDF存储系统的设计与实现
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
三元组辐射场的建模与仿真