一种子图检索优化的知识图谱问答方法

文档序号:36259171发布日期:2023-12-05 12:56阅读:35来源:国知局
一种子图检索优化的知识图谱问答方法与流程

本发明涉及一种知识图谱问答方法,特别是涉及基于子图检索的知识图谱问答方法。


背景技术:

1、在基于知识图谱的问答系统中,问句可以根据其难度和复杂程度分为两类:简单问句和复杂问句。简单问句是指那些只涉及一个实体或属性的问句,例如“中国的面积是多少?”,这种问句通常可以通过查询知识库中的实体和属性信息得到答案。复杂问句则是指那些需要进行推理或组合多个实体或属性才能回答的问题,这种问句要求系统具备语义理解能力,需要对知识图谱中的实体和关系进行推理或组合才能得到答案。基于知识图谱的问答发展至今,已经取得诸多研究成果,但是在面临真实的问答场景时,现有的知识问答方法还远不能满足实际需求,主要的难点在于:语言表达的多样性,同一个问题存在多种不同的表述方式,增加了系统识别问题的难度;语言表达的歧义性,同一个词语可能有多种含义和解释,增加了系统理解问题的难度,也容易导致错误的回答;问题的复杂性,在大规模知识图谱中,随着问题难度的增加,所涉及的搜索空间将随之增大,候选答案的数量将呈指数级增长,使得正确答案的挑选难度大大增加。

2、目前主流的知识图谱问答方法包括基于语义解析的方法和基于信息检索的方法。基于语义解析的方法对自然语言问句进行解析,将问句转换为逻辑表达式,再将逻辑表达式转换为知识库支持的结构化查询语句,如sparql、cypher、sql、prolog等,最后从知识库中查询得到答案。根据标注数据的丰富程度,语义解析方法可以分为有监督的语义解析和弱监督的语义解析。其中,有监督的语义解析方法利用包含问答对和结构化查询语句的训练数据来学习从问句到逻辑形式的语义解析器,该方法可以获得高质量的逻辑形式,可解释性强,但是需要人工标注大量包含逻辑形式的训练语料供模型学习语义解析器,逻辑形式的标注需要标注人员熟练掌握逻辑形式的语法规则,标注过程需要耗费大量时间和精力,且复杂问题的逻辑形式标注难度较大,因此,在逻辑形式数据匮乏的场景中,有监督的语义解析方法存在一定的局限性;弱监督的语义解析方法则仅使用问答对来根据特定的规则和过程生成候选语义查询图,通过语义匹配模型对候选查询图排序得到最佳查询图,不依赖于逻辑形式的标注数据,但由于复杂问题的搜索空间巨大,需要一定的约束条件和训练策略,模型的训练比较困难,且容易生成有噪声的候选查询图,导致候选查询图排序阶段产生误判,降低模型的准确率。

3、基于信息检索的方法根据问句所包含的信息从知识图谱中检索问句相关子图,然后从子图中寻找答案,这一过程通常由实体识别、实体链接、子图检索和答案选择等多个模块构成,其中,实体识别模块旨在从问句中识别出实体;实体链接模块是将问句实体与知识图谱中对应的实体进行关联的过程,为了区分问句实体和知识图谱实体,可以将问句实体称为实体提及,将知识图谱中实体提及对应的实体称为主题实体;子图检索模块是根据问句的主题实体,从知识图谱中检索与问句相关的三元组构成问句相关子图,以缩小答案的搜索空间;答案选择模块则是从问句相关子图中选择与问句最匹配的一个或多个三元组作为答案依据。已有研究工作分别针对不同的模块进行改进,以提升问答模型的性能。在实体识别与链接模块训练中,先识别实体提及后链接的方法通常需要训练两个模型,容易导致错误累积,依赖更多的标注数据,而问句直接匹配的方法容易受到问句中噪声的影响,准确率较低,总体上前者的性能优于后者。在子图检索模块训练中,大多数的研究工作在从知识库中检索子图时,采用直接检索或者基于启发式规则的方法,这些方法简单方便,但子图中包含了大量无关实体,答案选择的搜索空间较大,而基于动态扩展和集束搜索剪枝的方法在每一次迭代中选择与问句最相关的关系来扩展子图,可以在有效缩小子图规模的同时保证子图的高召回率。在答案选择模块训练中,基于关系分类的方法比较简单,适用于关系类别较少的知识库,关系类别过多会导致模型分类困难,并且无法处理关系集合中未出现过的关系,而基于语义匹配的方法可以综合利用问句和候选答案实体的多种信息,模型实现思路多样,适用范围较广,能够处理未登录的实体和关系。

4、综合上述研究背景,本发明基于信息检索的方法对知识图谱问答任务进行建模,在已有研究工作的基础上,对实体链接和子图检索部分进行改进,以提升知识图谱问答模型的性能。


技术实现思路

1、本发明的目的在于针对知识图谱问答中存在的实体歧义性问题和复杂问句子图规模庞大的问题,提出了一种基于子图检索优化的知识图谱问答方法,利用关系合并和实体排序的策略对集束搜索过程进行优化,缓解重复关系对子图检索的影响,从而提升知识图谱问答模型的性能。

2、上述的目的通过以下技术方案实现:

3、一种基于子图检索优化的知识图谱问答方法,该方法包括以下步骤:

4、(1)数据预处理

5、将清洗后的知识图谱数据存入数据库中并建立查询索引,基于问答数据集分别构建实体识别和实体链接模型训练所需的数据集;

6、(2)实体识别

7、使用步骤(1)中构建的实体识别数据集对预训练语言模型进行微调,首先利用bert模型对自然问句进行字符级向量表示,然后通过bilstm模型进一步编码问句字符的上下文信息,增强字符的向量表示,最后利用crf模型预测每个字符的实体标签,以此来识别问句中的实体提及;

8、(3)实体链接

9、根据步骤(1)构建的实体链接数据集,采用映射词典匹配、知识图谱实体精确匹配和知识图谱实体模糊匹配三种策略从知识图谱中召回实体提及对应的候选实体集合,而后采用预训练语言模型对文字信息进行建模,对于每一组实体提及和候选实体对,将问句的语义信息作为实体提及的上下文特征,将候选实体的实体名称、实体描述以及实体关系等特征作为候选实体的上下文特征,最后利用实体提及与候选实体上下文特征之间的相关性对候选实体进行消歧从而得到问句的主题实体;

10、(4)子图检索

11、根据步骤(3)得到的主题实体集合,提出基于关系合并和实体排序的子图检索算法,并采用集束搜索的思路动态扩展主题实体的问题相关子图,首先基于关系合并策略合并检索实体的重复关系,然后根据问句与实体关系之间的语义相似度、问句与邻居实体之间的语义相似度分别对实体关系和邻居实体进行排序,最后根据实体关系和邻居实体的排名选择固定数量的实体关系和邻居实体对子图进行扩展;

12、(5)问答匹配

13、利用步骤(4)的问句主题实体和问题相关子图信息,生成主题实体到候选答案的关系路径,基于经过微调的预训练语言模型和孪生网络架构搭建问答匹配模型,利用问句和候选答案路径之间的相关性,对问题相关子图中的所有候选答案路径进行评分,将评分最高的候选答案路径对应的实体集合作为问题的最佳答案;

14、进一步地,步骤(1)包括如下具体步骤:

15、(1-1)对知识图谱数据进行清洗,清洗工作包括实体关系三元组中的繁体中文转换为简体、截断长度过长的实体名称、去除关系中的特殊字符、英文字符大小写统一等;

16、(1-2)根据原问答数据集中的问句、sparql查询语句构建实体识别序列标注数据,通过对sparql进行正则表达式匹配得到其中的实体和关系,以此来反向标注问句中的实体提及,对于无法标注的问句则通过人工进行标注,最后根据问句的标注信息采用bio标注法标注每个字符之间的依存关系,其中,b(begin)表示实体的开始位置、i(inside)表示实体的内部位置、o(outside)表示非实体位置;

17、(1-3)在得到问句的实体提及后,基于字符串匹配的方法检索问答数据集中的mention2entity文件和知识图谱得到候选实体列表,以此构建实体链接数据集,其中,mention2entity文件中包含实体提及、实体提及对应的知识图谱实体以及知识图谱实体的流行度,实体链接数据集由正负样本组成,这里将sparql查询语句中的候选实体作为正样本,将候选实体列表中的其它候选实体作为负样本。

18、进一步地,步骤(2)包括如下具体步骤:

19、(2-1)将实体识别被建模为序列标注任务,即将文本看作一个序列,通过神经网络模型对文本序列中的每一个字符进行标签类型预测,从而得到文本的标签序列,其中,输入问句文本序列x={x1,x2,…,xn},xi表示问句中的第i个字符,预测文本的标签序列y={y1,y2,…,yn},yi表示问句中的第i个字符对应的bio标签;

20、(2-2)使用bert模型对问句进行字符级向量表示,给定问句q={q1,q2,…,qn},n表示问句的长度,bert模型的输入是[cls]、问句文本序列、[sep]的拼接,即s={[cls],q1,q2,…,qn,[sep]},[cls]和[sep]为特殊标识符,对于输入的每一个字符和特殊标识符,分别经过token嵌入层、segment嵌入层和position嵌入层得到三种嵌入向量表示,将它们的和作为transformer编码器层的输入,模型的输出是最后一层transformer编码器编码的隐层向量t,实体识别为序列标注任务,因此t中仅保留问句字符对应的隐层向量作为下一层模型的输入,上述过程的形式化公式如下:

21、t=[t1,t2,…,tn]=bert(s)             (1)

22、(2-3)使用bilstm作为模型的编码器,通过前向传播和后向传播利用当前时刻之前和之后的信息,并将两种信息结合起来作为当前时刻的模型输出,从而获得更加全面的语义信息,对于问句的字符级向量表示t,bilstm的编码过程可形式化为如下公式:

23、

24、

25、j=[h1,h2,…,hn]                   (4)

26、其中,h表示经过bilstm编码层的中间表示向量,表示前向lstm的隐藏状态,表示后向lstm的隐藏状态,在bilstm编码层后使用全连接层进行降维,通过非线性变换将其映射到实体标签所在的输出空间,bilstm编码层最终的输出为p=[p1,p2,…,pn],pi的维度为实体标签数k;

27、(2-4)使用crf模型通过学习标签之间的约束关系,得到最优的标签序列,从而提升实体识别的准确率,具体来说,假设存在转移分数矩阵a,矩阵中的元素表示从标签yi转移到标签yj的转移分数,bilstm编码层的输出表示第i个字符预测为标签yi的分数,对于预测标签序列y={y1,y2,…,yn},其标签序列得分为:

28、

29、对标签序列得分进行归一化,得到预测标签序列y产生的概率:

30、

31、其中表示真实的标签序列,yx表示所有可能的预测标签序列,对上述公式两边取对数得到预测标签的似然函数:

32、

33、在训练阶段,模型的目标是最大化预测正确的标签序列的对数似然函数,即最小化损失函数,通过反向传播算法,求解每个权重参数的梯度,并使用梯度下降算法进行参数更新。模型使用交叉熵损失函数(cross entropy loss)来计算损失,损失函数定义如下:

34、

35、其中,xi表示问句中的第i个字符,yi表示问句中的第i个字符对应的bio标签,p(yi|xi)表示模型将第i个字符预测为标签yi的概率;

36、在测试阶段,采用如下viterbi算法将预测得分最高的标签序列作为最优标签序列。

37、

38、进一步地,其中步骤(3)包括如下具体步骤:

39、(3-1)实体链接模块分为两个任务,候选实体生成和实体消歧;

40、其中,候选实体生成采用基于映射词典和字符串匹配两种方法,首先基于mention2entity文件构建实体提及到知识图谱实体的映射词典,针对实体别名、缩写的问题,从知识图谱中检索实体的别名、中文名、英文名和缩写等属性来扩充映射词典;然后根据问句中的实体提及生成其候选实体列表,先检索预先构建的映射词典,得到基于映射词典生成的候选实体集合m1表示通过映射词典得到的候选实体数量;对于无法映射的实体提及,采用完全匹配和模糊匹配两种策略分别检索知识图谱得到基于字符串匹配的候选实体集合m2表示通过字符串匹配得到的候选实体数量;最后将基于映射词典和字符串匹配的候选实体列表合并得到最终的候选实体集合

41、(3-2)基于bert-softmax来搭建融合多种特征的实体消歧模型,将实体消歧建模为二分类任务,利用问句和候选实体上下文之间的相关性对候选实体进行分类;具体来说,给定自然语言问句q=[q1,q2,…,qn],n表示问句的长度;候选实体集合c=[c1,c2,…,cm],m表示候选实体数量;候选实体ci的上下文信息集合其中dci为实体描述,rci=[r1,r2,…,rp]为实体关系集合,p表示实体关系数量,最大值为k,和rci根据候选实体ci从知识图谱中检索得到,在检索实体关系的过程中,随机选择k种不同的关系作为实体关系集合。实体消歧模型的输入为[cls]、问句q、[sep]、候选实体ci的上下文信息集合i、[sep]的拼接,将问句q和候选实体上下文信息集合i视为两个独立的句子,通过bert模型对进行文本编码,然后取[cls]标识符的隐层向量作为问句和候选实体上下文之间的相关性特征,将其输入到softmax层中进行分类,该过程形式化为公式10-12:

42、

43、h[cls]=bert(input)                            (11)

44、p=softmax(w*h[cls]+b)                                       (12)

45、模型的输出为其中,表示预测为最佳候选实体的概率,表示预测为非最佳候选实体的概率,损失函数为交叉熵损失函数(cross entropy loss),如公式13所示:

46、

47、其中,n为样本数量,yi表示第i个样本的真实标签,表示第i个样本的预测标签。

48、进一步地,其中步骤(4)包括如下具体步骤:

49、(4-1)在扩展子图过程中,首先将主题实体作为初始检索实体,从知识图谱中检索其一跳关系,然后计算问句和每条关系之间的语义相似度,将语义相似度作为候选项得分,选择得分最高的前k条关系对应的三元组添加到问题相关子图,同时将前k条关系对应的尾实体作为下一跳的检索实体,迭代上述过程,直至满足结束退出条件;其中,在计算问句和候选关系之间语义相似度时,需要先通过bert模型分别对问句和关系进行文本编码,而后对输出的隐层向量表示取平均作为问句和关系的向量表示,最后计算问句向量表示和关系向量表示的余弦相似度,该过程的公式形式化为14-18:

50、hq=bert([[cls],q1,q2,…,qn,[sep]])                           (14)

51、qemb=meanpooling(hq)                    (15)

52、hr=bert([[cls],e,r,[sep]])            (16)

53、remb=meanpooling(hr)                             (17)

54、

55、(4-2)先采用关系合并策略,将检索实体的相同关系进行合并,将关系合并后的实体集合全部作为下一跳的检索实体,而后采用实体排序策略对关系合并后的实体集进行排序,选择前m个实体对应的三元组添加到问题相关子图,实体排序策略类似于实体消歧的过程,旨在选择与问句语义更相关的实体加入问题相关子图,利用实体及其一跳关系作为实体的上下文信息,通过计算问句与实体上下文的语义相似度来对实体集中的实体进行排序,问句和实体上下文的语义相似度计算过程如公式19-23所示。

56、hq=bert([[cls],q1,q2,...,qn,[sep]])             (19)

57、qemb=meanpooling(hq)             (20)

58、hcontext=bert([[cls],e,r1,r2,...,rm[sep]])         (21)

59、contextemb=meanpooling(hcontext)                  (22)

60、

61、进一步地,其中步骤(5)包括如下具体步骤:

62、(5-1)将问题相关子图gq中,以主题实体为起点,经过一跳或多跳到达其它非主题实体的实体关系链作为候选答案路径,考虑到知识图谱中关系的有向性,将从非主题实体出发经过一跳或多跳到达主题实体的路径也视为候选答案路径;

63、(5-2)根据跳数和实体数对候选答案路径进行分类,首先根据候选答案路径中起点实体到终点实体之间的跳数,可以分为单跳路径和多跳路径,其次根据候选答案路径中主题实体的数量,又可将其分为单实体路径和多实体路径;

64、(5-3)针对不同类型的问句采取不同的候选答案路径生成策略,给定问句q、主题实体集合t和问题相关子图go,对于仅包含一个主题实体的问句,根据问题相关子图生成以该主题实体为起点或者终点的单实体单跳路径pathsingle_hop和单实体多跳路径pathmulti_hop,合并两种路径得到候选答案路径集合path,如公式24所示:

65、

66、对于包含多个主题实体的问句,除了生成每个实体的单实体单跳路径pathsingle_hop和单实体多跳路径pathmulti_hop外,同时生成多实体单跳路径pathmulti_entity,合并上述路径得到候选答案路径集合path,如公式25所示。

67、

68、(5-4)构建训练数据用于微调问答匹配模型,对于每条问句,通过对数据集中的sparql查询语句进行处理得到正样本路径,对主题实体的关系进行随机采样生成的单实体单跳路径、单实体多跳路径和多实体单跳路径作为负样本路径,这种采样方式能够增加训练数据中关系的多样性;由此生成的候选答案路径由一个或多个三元组构成,而问句是表达自然流畅的自然语言,因此为了避免问句和候选答案路径之间的不同表述方式对模型训练产生干扰,将候选答案路径转换为自然语言形式;

69、(5-5)基于预训练语言模型和孪生网络架构搭建问答匹配模型,模型的输入为问句q=[q1,q2,...,qn]和候选答案路径p=[p1,p2,...,pm],其中p∈path,首先使用基于bert模型构建的孪生网络分别对问句q和候选答案路径p进行编码,然后将bert层输出的隐层向量输入meanpooling层,计算每个token隐层向量的平均值,再通过全连接层将meanpooling层的输出进行降维,分别得到问句和候选答案路径的向量表示hq和hp,最后计算问句向量表示和候选路径向量表示的余弦相似度作为模型的输出,上述过程可形式化为公式26-30,其中,wq、bq、wp、bp为待学习的参数;

70、hq=bert([[cls],q1,q2,...,qn,[sep]])        (26)

71、hp=bert([[cls],p1,p2,...,pm,[sep]])         (27)

72、qemb=(wq*meanpooling(hq)+bq)                 (28)

73、pemb=(wp*meanpooling(hp)+bp)             (29)

74、

75、在训练阶段采用均方误差损失(mean squared error loss)作为模型的损失函数,如公式31所示,模型通过缩小预测值和真实值之间的差距来最小化损失函数,在测试阶段将模型输出的余弦相似度最高的候选答案路径作为最佳路径,通过在问题相关子图中检索最佳路径得到问题的答案集合;

76、

77、其中,n为样本数量,yi表示第i个样本的真实值,表示第i个样本的预测值。

78、本发明还提供一种上述基于子图检索优化的知识图谱问答方法所运行的领域知识问答系统,该系统包括用户登录、领域知识问答、领域实体和关系检索、问答历史记录等功能模块,系统总体架构包括离线部分和在线部分,其中,离线部分完成知识图谱的预处理和存储、知识问答模型的训练等任务,在线部分通过知识图谱检索和问答模型调用与用户进行实时交互,保证系统能够及时快速地响应用户的请求;

79、具体来说,离线部分负责为在线部分提供数据和模型支撑,包括数据获取模块和模型训练模块,其中,数据获取模块对已有的领域知识图谱进行清洗并将其存入neo4j图数据库,采用基于规则模板的方法构建领域的问答数据集;模型训练模块则将提出的基于知识图谱的问答模型迁移到领域,利用领域问答数据集训练知识问答模型中的各个子模块,保存最佳模型以便在线模块实时调用;

80、在线部分负责与用户进行交互,响应用户发出的请求并将结果渲染到用户界面,包括web交互模块、问答服务模块、问答记录管理模块、知识检索模块和权限管理模块,其中,web交互模块提供用户与系统交互的界面,负责转发用户在前端页面发出的请求,并将其它模块响应的数据返回给用户;问答服务模块接收用户从前端发出的问答请求,调用知识问答模型对问句进行解析并将答案返回给用户;问答记录管理模块对用户提问记录进行管理,提供问答历史记录更新和查询接口;知识检索模块则根据用户的检索需求,从neo4j图数据库中检索并返回相关知识;权限管理模块负责对用户身份和访问权限进行认证,保证系统按照管理员设置的安全规则和安全策略正常运行。

81、有益效果:与现有技术相比,本发明采用如上技术方案,具有如下优点:

82、(1)针对知识图谱问答中存在的实体歧义性问题,本发明设计融合多种实体特征的实体消歧模型,充分利用候选实体的实体名称、实体描述和实体关系等特征来丰富候选实体的上下文信息,实现候选实体消歧;

83、(2)针对复杂问句子图规模庞大的问题,本发明提出一种基于关系合并和实体排序的子图检索算法,在集束搜索算法的基础上,采用关系合并策略和实体排序策略对添加到子图中的关系和实体进行筛选,从而有效缩小子图规模。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1