基于历史信息追踪的知识图谱多轮问答方法及系统与流程
未命名
07-13
阅读:124
评论:0
1.本发明涉及数据挖掘技术领域,具体的,涉及基于历史信息追踪的知识图谱多轮问答方法及系统。
背景技术:
2.知识图谱是一种描述真实世界客观存在的实体、概念及它们之间的关联关系的语义网络,用于以符号形式描述物理世界中的概念及其相互关系。其基本构成单位是《头实体,关系,尾实体》组成的三元组,大量实体间通过关系相互联结,构成网状的知识结构。知识图谱旨在通过建立数据之间的语义关联链接,将碎片化的数据有机组织起来,让数据更加容易被人和机器理解和处理,为许多下游智能应用提供了数据支持,如网络搜索和人机交互等等。
3.人机交互系统(例如智能语音助手)可基于知识图谱的智能问答方式(也可称为知识图谱问答)与用户交互:给定自然语言问题,基于知识图谱对问题进行理解,并根据问题理解的结果从知识图谱中查找或推理出问题对应的答案。知识图谱问答相较于基于无结构文本的问答,在数据关联度、数据精度、检索效率等方面具有优势。因此,知识图谱问答一直是学术界和工业界广泛关注的话题。
4.在实际的应用场景中,用户的问题常常是一连串的(也即会有多轮问答),当用户问出下一个问题时,往往会省略历史问答中提到过的关键信息,在这种情况下准确度就会大幅度下降。
技术实现要素:
5.本发明提出基于历史信息追踪的知识图谱多轮问答方法及系统,解决了相关技术中基于知识图谱的多轮问答方法准确度低的问题。
6.本发明的技术方案如下:第一方面,基于历史信息追踪的知识图谱多轮问答方法,包括:根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将当前轮次的问题中所有单词映射为对应的词向量得到;根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;所述各个历史问题向量包括当前轮次之前每一轮次的问题向量;任一轮次的问题向量通过将该轮次的问题中所有单词映射为对应的词向量得到;将当前轮次的问题作为当前问题qi,选出与当前问题qi相关的多个实体作为实体集合uq,计算实体集合uq中每一实体u与当前问题qi的相关分数,选出相关分数最高的k个实
体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以内的所有查询路径作为查询路径集合cq;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合cq中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。
7.第二方面,基于历史信息追踪的知识图谱多轮问答系统,包括:历史问答信息编码模块,用于根据当前轮次的问题向量和当前轮次的答案向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将问题中所有单词映射为对应的词向量得到,所述当前轮次的答案向量通过将答案中所有单词映射为对应的词向量得到;实体转移图模块,用于根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;所述各个历史问题向量包括当前轮次之前每一轮次的问题向量;任一轮次的问题向量通过将该轮次的问题中所有单词映射为对应的词向量得到;答案预测模块,用于将当前轮次的问题作为当前问题qi,选出与当前问题qi相关的多个实体作为实体集合uq,计算实体集合uq中每一实体u与当前问题qi的相关分数,选出相关分数最高的k个实体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以内的所有查询路径作为查询路径集合cq;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合cq中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。
8.本发明的工作原理及有益效果为:本发明通过更新实体转移图,实现追踪历史问答中出现的实体;通过实体转移图中每个实体分数的计算,能够表征当前问题最关注哪个实体;并根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;最后将实体分数和包含历史问题信息的问题向量用于查询路径的概率计算,选择概率值最高的路径,根据该路径得到的答案作为预测答案。这样得到的预测答案,能够综合考虑实体和当前问题的相关性、以及当前问题与历史问答信息的相关信息,避免了多轮问答中省略关键信息造成的应答错误的问题。
附图说明
9.下面结合附图和具体实施方式对本发明作进一步详细的说明。
10.图1为本发明基于历史信息追踪的知识图谱多轮问答方法流程图;图2为本发明基于历史信息追踪的知识图谱多轮问答系统结构示意图。
具体实施方式
11.下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都涉及本发明保护的范围。
12.实施例1如图1所示,本实施例基于历史信息追踪的知识图谱多轮问答方法包括:s100: 根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将当前轮次的问题中所有单词映射为对应的词向量得到。
13.本实施例中,当前问答信息表示为:《,,》, 为第i轮问题,为第i轮答案,两者都为单词组成的序列,,,为上一轮历史问答信息的向量表示。
14.以 为例,首先将问题中所有单词 映射为对应的词向量 ,则:然后将输入到双向lstm中并池化,得到d维的问题向量:采用单向lstm将问题向量用于历史问答信息向量更新:。
15.s300:根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;在多轮问答场景下,用户提问时经常会省略历史对话中提到过的主体,比如用代词替代提到过的名词。对于语言模型来说,缺失问题主体信息的情况下无法获取正确的答案,为了解决这个问题,本实施例引入了图卷积神经网络来通过实体转移图追踪问题主体信息。
16.s500:根据历史问答中的各个问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量。
17.多轮问答场景下,用户提问时经常会省略历史对话中提到过的问题信息,比如询问另一件商品的同一属性时,会省略要提问的属性。对于语言模型来说,缺失问题信息的情况下无法获取正确的答案,为了解决这个问题,本实施例引入了注意力机制,使模型能够充分利用历史问题信息。
18.s700:将当前轮次的问题作为当前问题qi,选出与当前问题qi相关的多个实体作为实体集合uq,计算实体集合uq中每一实体u与当前问题qi的相关分数,选出相关分数最高的k个实体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以
内的所有查询路径作为查询路径集合cq;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合cq中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。具体为:其中, 为当前轮次的答案向量,其计算过程与步骤s100中问题向量的计算过程相同。
19.本实施例在知识图谱中选择两跳以内的所有查询路径是因为这里中的u已经是经过广撒网筛选出来的了,大概率是距离答案很近的实体,没必要消耗算力去进行更深层的查询。
20.其中,知识图谱根据本实施例问答场景相关的信息事先构建,例如,对于医学类的问答场景,可以根据医学领域的信息构建知识图谱,这是本领域的公知常识,这里不做赘述。
21.本实施例通过更新实体转移图,实现追踪历史问答中出现的实体;通过实体转移图中每个实体分数的计算,能够表征当前问题最关注哪个实体;并根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;最后将实体分数和包含历史问题信息的问题向量用于查询路径的概率计算,选择概率值最高的路径,根据该路径得到的答案作为预测答案。这样得到的预测答案,能够综合考虑实体和当前问题的相关性、以及当前问题与历史问答信息的相关信息,避免了多轮问答中省略关键信息造成的应答错误的问题。
22.进一步,步骤s500具体包括:将当前问题向量和当前轮次之前的所有问题向量横向连接,得到问题矩阵;通过自注意力机制将当前问题向量映射为query向量,将问题矩阵映射为key 向量和value向量,将query向量与key向量进行内积运算得到所有向量的相关度;利用相关度作为权值对value向量加权平均得到包含历史问题信息的问题向量。具体为:s510:在步骤s100中得到d维问题向量 的基础上,将所有问题向量横向连接,可得到问题矩阵。
23.s520:将当前问题编码映射为query:将所有历史问题映射为key和value:将所有历史问题映射为key和value:s530:接下来计算注意力分数,并得到包含历史问答信息的问题向量:
其中,为将原问题向量映射为对应query,key,value的矩阵,为包含历史问题信息的问题向量。
24.进一步,步骤s700中选出与当前问题qi相关的多个实体作为实体集合uq,具体包括:构建倒排索引,将知识图谱所有实体描述中大于设定长度的n-gram映射到对应的实体,得到第一实体集合;通过命名实体识别方法从第一实体集合中筛选出当前问题qi中出现的实体,作为第二实体集合;通过倒排索引从当前问题qi中筛选所有大于设定长度的n-gram对应的实体,输入第二实体集合,所述第二实体集合作为实体集合uq。
25.进一步,上述设定长度为4。
26.过短的设定长度会影响匹配的精度,比如work和horrible两个词都有“or”这个2-gram,但是完全是不相同的意思。early和earlier是类似的意思,都包涵"earl"这个4-gram,如果设定长度5则这两个词不能匹配。所以本实施例综合考虑查找覆盖率和精准度的需要,将设定长度设置为4。
27.进一步,步骤s700中计算实体集合uq中每一实体u与当前问题qi的相关分数,具体包括:uq中任一实体u由知识图谱中描述它的句子来表示,,w表示句子中单词对应的词向量,上标d表示向量维度,下标|u|表示向量长度;当前问题qi由知识图谱中描述它的句子来表示, ,下标|q|表示向量长度;通过注意力机制计算u,qi之间的词相关度:其中,表示实体中每一个词向量,表示当前问题qi中每一个词向量,表示第一线性变换;将 归一化,得到其中,表示向量连接,为内积运算,exp( )表示以自然对数为底的指数运算;对于实体u中每一个,使用归一化的词相关度对当前问题qi中的词向量进行加权求和,得到与词向量对应的、经过注意力机制处理后的问题特征向量:
将每个与对应的相连接并求和,经过线性变换后得到表示实体u与当前问题qi关系的向量:根据向量计算实体u的特征向量fu:其中,表示实体u中字母在当前问题qi中出现百分比的1维向量;是一个2维one-hot向量,如果该实体是通过命名实体识别方法找到的,则赋值为[1 0],如果是通过倒排索引找到的,则赋值为[0 1];是表示命名实体识别方法对实体打分的1维向量,如果该实体是通过命名实体方法识别找到的,则赋值为1,如果是通过倒排索引找到的,则赋值为0;表示第二线性变换;根据特征向量fu,计算每个实体u与当前问题qi的相关分数:其中, 表示第三线性变换,b1为第一偏置参数。
[0028]
按照上述方法计算出每个实体u与当前问题qi的相关分数之后,即可根据相关分数选取选出相关分数最高的k个实体作为新的实体集合,对所有,在知识图谱中选择以u为起点,包含1-2个关系的查询路径,得到查询路径集合。
[0029]
进一步,步骤s700中根据实体转移图中每个实体的实体分数、包含历史问题信息的问题向量计算路径集合cq中每一路径的概率值,具体包括:获取路径矩阵 mc;所述路径矩阵 mc包括所述查询路径集合cq中各查询路径的特征向量c
enc
:根据路径矩阵
ꢀꢀ
mc计算所述查询路径集合cq中任一查询路径c’与当前问题qi的相关分数和概率::
其中, 表示第四线性变换, 表示包含历史问题信息的问题向量,focalscore表示实体转移图中每个实体的实体分数,b2为第二偏置参数。
[0030]
进一步,步骤s300中根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图,具体包括:对于每个实体,如果e未添加到实体转移图中,将其作为新节点加入;对于前一轮答案a
i-1
(这里的答案a
i-1
即为一个实体),如果该实体未添加到实体转移图中,将其作为新节点加入;对于每个新加入图中的实体e,对其添加一个从e出发指向自身的“自循环边”;对于每个实体,添加一个从e出发指向a
i-1
的“前向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”,其中s1为第一轮问答中得到的实体集合。
[0031]
进一步,步骤s300中计算实体转移图中每个实体的实体分数,具体包括:当前轮次i的实体转移图为实体转移图gi;上一轮次i-1的实体转移图为实体转移图g
i-1
;所述计算更新后的实体转移图中每个实体的实体分数,具体包括:具体包括:其中,表示在实体转移图g
i-1
中与e有连接关系的边与实体集合,表示实体转移图g
i-1
中的所有向量;是上一轮次历史问答信息向量的转置向量;根据实体转移图gi每一实体e中的向量表示ei计算该实体e的实体分数:计算该实体e的实体分数:其中,focalscore表示实体分数,表示实体e所在句子的向量表示,代表实体e在实体转移图gi中的度,为当前轮次的实体权重,为当前轮次的偏置参数,实体权重和偏置参数对于每一轮次是独立训练的。
[0032]
本实施例使用一个公开数据集convquestions,验证本实施例方法的有效性,该数据集包含11200组数据,可基于wikidata知识图谱进行评估。其包含五个主题的对话信息:“books”、“movies”、“soccer
”ꢀ
、“music
”ꢀ
、“tv series”, 问题具有各种复杂的问题现象,如比较、聚合、组合和时间推理。每组数据包含5个连续的带有答案标注的问答信息,答案基于维基数据实体,以便在各种方法之间进行公平比较。
[0033]
在本实验中,使用一种基于查询图的单轮知识图谱问答方法singleturn,一种基于编码器模型的多轮问答方法convhistory和基于中心实体追踪的方法focal,设计了三种
知识图谱问答方法作为基线:singleturn:一种知识图谱单轮问答方法,使用allennlp命名实体识别工具抽取话题实体,然后根据话题实体生成的查询图生成答案。
[0034]
convhistory:一种知识图谱多轮问答方法,在singleturn基础上,使用双层编码器对历史问题编码,然后根据历史问题信息生成答案。
[0035]
focal:一种知识图谱多轮问答方法,在singleturn基础上,使用实体转移图计算焦点实体分布,然后根据焦点实体信息生成答案。
[0036]
为表述方便,将本实施例方法记作convfocal。同时,设置了一组实验验证本实施例的有效性:本实验将准确率(acc)和f1分数作为性能指标,准确率、精确率、召回率、f1通过如表1所示的混淆矩阵进行定义:表1 混淆矩阵表其中,true positive(真正,tp)为将实际上的正类预测为正类的总数;true negative(真负,tn)为将实际上的负类预测为负类的总数;falsepositive(假正,fp)为将实际上的负类预测为正类的总数;false negative(假负,fn)为将实际上的正类预测为负类的总数。据此,准确率的定义为:表示所有样例中,判断正确的比例。精确率被定义为:表示所有被判断为正类的样例中,实际为正类的比例。召回率被定义为:表示所有实际的正例中,被预测出来的比例。理想的状况下希望精确率和召回率都很高,但是实际上两者是矛盾的。通常情况下,可以找到两者之间的平衡点,因此定义一个新的指标f1分数,同时考虑精确率和召回率:预处理流程使用pytorch工具包提供的模型,使用torch.nn.embedding工具初始化词向量,向量值在正态分布n(0,1)中随机取值。词向量的维度设置为300,词典长度为
30522。下面通过对比分析本实施例方法convfocal和现有取得先进结果的方法的acc和f1实验结果,来说明本实施例方法的效果和性能,本实施例方法convfocal在知识图谱多轮问答任务上的实验结果分别如下表2、表3和表4所示:表2 开发集的acc和测试集的acc/f1结果表3 按照问题轮次的acc结果表4 焦点实体追踪acc结果从上表可以看出:(1)在convquestions数据集下,本实施例的方法convfocal在开发集取得最好的acc值,在测试集取得最好的acc与f1值,这是由于本实施例引入了历史问题信息,表明在问题向量上使用注意力机制有助于答案预测;(2)在按照问题轮次的acc结果中,本实施例的convfocal方法在q2-q5轮次均取得了最好的效果,表明引入历史问题信息在多轮问答场景效果显著,在靠后的轮次中优势更为明显;(3)本实施例在q1轮次的问答中acc值弱于其他方法,此时focal方法也弱于效果最好的convhistory。其原因是第一轮问答等效知识图谱单轮问答,在引入实体转移图和注意力机制时,本实施例为多轮问答提供了更多参考信息,而对于单轮问答场景,这些信息对问答有一定程度的干扰,但该方法在后续轮次中效果提升明显,对整体准确率提升较大,因此在q1轮次的acc损失是可接受的;convfocal比focal获得了更好的焦点实体追踪准确率,这是因为在实体转移图环节比focal的实体预测结果更准确,这表明本实施例对实体特征编码的优化有助于焦点实体的预测。
[0037]
实施例2
如图2所示,基于与上述实施例相同的发明构思,本实施例提出基于历史信息追踪的知识图谱多轮问答系统,包括:历史问答信息编码模块,用于根据当前轮次的问题向量和当前轮次的答案向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将问题中所有单词映射为对应的词向量得到,所述当前轮次的答案向量通过将答案中所有单词映射为对应的词向量得到;实体转移图模块,用于根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;历史问答信息追踪模块,用于根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;所述各个历史问题向量包括当前轮次之前每一轮次的问题向量;任一轮次的问题向量通过将该轮次的问题中所有单词映射为对应的词向量得到;答案预测模块,用于将当前轮次的问题作为当前问题qi,选出与当前问题qi相关的多个实体作为实体集合uq,计算实体集合uq中每一实体u与当前问题qi的相关分数,选出相关分数最高的k个实体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以内的所有查询路径作为查询路径集合cq;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合cq中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。
[0038]
进一步,还包括:第一计算单元,用于:将当前问题向量和当前轮次之前的所有问题向量横向连接,得到问题矩阵;通过自注意力机制将当前问题向量映射为query向量,将问题矩阵映射为key 向量和value向量,将query向量与key向量进行内积运算得到所有向量的相关度;利用相关度作为权值对value向量加权平均得到包含历史问题信息的问题向量。
[0039]
进一步,还包括:第一选择单元,用于选出与当前问题qi相关的多个实体作为实体集合uq,具体包括:构建倒排索引,将知识图谱所有实体描述中大于设定长度的n-gram映射到对应的实体,得到第一实体集合;通过命名实体识别方法从第一实体集合中筛选出当前问题qi中出现的实体,作为第二实体集合;通过倒排索引从当前问题qi中筛选所有大于设定长度的n-gram对应的实体,输入第二实体集合,所述第二实体集合作为实体集合uq。
[0040]
进一步,上述设定长度为4。
[0041]
进一步,uq中任一实体u由知识图谱中描述它的句子来表示,,w表示句子中单词对应的词向量,上标d表示向量维度,下标|u|表示向量长度;当前问题qi由知
识图谱中描述它的句子来表示,,下标|q|表示向量长度;还包括:第二计算单元,用于计算实体集合uq中每一实体u与当前问题qi的相关分数,具体为:通过注意力机制计算u与qi之间各词向量间的词相关度,其中,实体u中任一词向量表示为,当前问题qi中任一词向量表示为,与间的词相关度为:;d表示维度;表示连接;表示第一线性变换;将归一化,得到归一化的词相关度;对于实体u中每一个,使用归一化的词相关度对当前问题qi中的词向量进行加权求和,得到与词向量对应的、经过注意力机制处理后的问题特征向量:将每个与对应的相连接并求和,经过第二线性变换后得到表示实体u与当前问题qi关系的向量:根据向量计算实体u的特征向量fu:其中,表示实体u中字母在当前问题qi中出现百分比的1维向量;是一个2维one-hot向量,如果该实体是通过命名实体识别方法找到的,则赋值为[1 0],如果是通过倒排索引找到的,则赋值为[0 1];是表示命名实体识别方法对实体打分的1维向量,如果该实体是通过命名实体方法识别找到的,则赋值为1,如果是通过倒排索引找到的,则赋值为0;表示第二线性变换;根据特征向量fu,计算每个实体u与当前问题qi的相关分数:其中, 表示第三线性变换,b1为第一偏置参数。
[0042]
进一步,还包括:第三计算单元,用于根据实体转移图中每个实体的实体分数、包含历史问题信息的问题向量计算路径集合cq中每一路径的概率值,具体为:获取路径矩阵 mc;所述路径矩阵 mc包括所述查询路径集合cq中各查询路径的特
征向量c
enc
:根据路径矩阵
ꢀꢀ
mc计算所述查询路径集合cq中任一查询路径c’与当前问题qi的相关分数和概率::其中, 表示第四线性变换, 表示包含历史问题信息的问题向量,focalscore表示实体转移图中每个实体的实体分数,b2为第二偏置参数。
[0043]
进一步,还包括:第一更新单元,用于根据历史问答信息向量更新实体转移图中的节点状态,具体为:对于每个实体,如果e未添加到实体转移图中,将其作为新节点加入;对于前一轮答案a
i-1
(这里的答案a
i-1
即为一个实体),如果该实体未添加到实体转移图中,将其作为新节点加入;对于每个新加入图中的实体e,对其添加一个从e出发指向自身的“自循环边”;对于每个实体,添加一个从e出发指向a
i-1
的“前向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”,其中s1为第一轮问答中得到的实体集合。
[0044]
进一步,还包括:第四计算单元,用于计算实体转移图中每个实体的实体分数,具体为:当前轮次i的实体转移图为实体转移图gi;上一轮次i-1的实体转移图为实体转移图g
i-1
;所述计算更新后的实体转移图中每个实体的实体分数,具体包括:具体包括:其中,表示在实体转移图g
i-1
中与e有连接关系的边与实体集合,表示实体转移图g
i-1
中的所有向量;是上一轮次历史问答信息向量的转置向量;根据实体转移图gi每一实体e中的向量表示ei计算该实体e的实体分数:计算该实体e的实体分数:
其中,focalscore表示实体分数,表示实体e所在句子的向量表示,代表实体e在实体转移图gi中的度,为当前轮次的实体权重,为当前轮次的偏置参数,实体权重和偏置参数对于每一轮次是独立训练的。
[0045]
进一步,还包括:第二更新单元,用于根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量,具体为:将当前轮次的问题向量输入到单向lstm中,得到当前轮次的历史问答信息向量;单向lstm的处理包括:其中,为上一轮次的历史问答信息向量为当前轮次的问题向量。
[0046]
本实施例基于历史信息追踪的知识图谱多轮问答系统的工作原理在方法实施例中已有详细的描述,为了说明书的简洁,这里不做赘述。
[0047]
以上仅为本实施例的较佳实施例而已,并不用以限制本实施例,凡在本实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本实施例的保护范围之内。
技术特征:
1.基于历史信息追踪的知识图谱多轮问答方法,其特征在于,包括:根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将当前轮次的问题中所有单词映射为对应的词向量得到;根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;所述各个历史问题向量包括当前轮次之前每一轮次的问题向量;任一轮次的问题向量通过将该轮次的问题中所有单词映射为对应的词向量得到;将当前轮次的问题作为当前问题q
i
,选出与当前问题q
i
相关的多个实体作为实体集合u
q
,计算实体集合u
q
中每一实体u与当前问题q
i
的相关分数,选出相关分数最高的k个实体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以内的所有查询路径作为查询路径集合c
q
;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合c
q
中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。2.根据权利要求1所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量,具体包括:将当前问题向量和当前轮次之前的所有问题向量横向连接,得到问题矩阵;通过自注意力机制将当前问题向量映射为query向量,将问题矩阵映射为key 向量和value向量,将query向量与key向量进行内积运算得到所有向量的相关度;利用相关度作为权值对value向量加权平均,得到包含历史问题信息的问题向量。3.根据权利要求1所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述选出与当前问题q
i
相关的多个实体作为实体集合u
q
,具体包括:构建倒排索引,将知识图谱所有实体描述中大于设定长度的n-gram映射到对应的实体,得到第一实体集合;通过命名实体识别方法从第一实体集合中筛选出当前问题q
i
中出现的实体,作为第二实体集合;通过倒排索引从当前问题q
i
中筛选所有大于设定长度的n-gram对应的实体,输入第二实体集合,所述第二实体集合作为实体集合u
q
。4.根据权利要求3所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述设定长度为4。5.根据权利要求1-4任一项所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,u
q
中任一实体u由知识图谱中描述它的句子来表示, ,w表示句子中单词对应的词向量,上标d表示向量维度,下标|u|表示向量长度;当前问题q
i 由知识图谱
中描述它的句子来表示,
ꢀꢀ
,下标|q|表示向量长度;所述计算实体集合u
q
中每一实体u与当前问题q
i
的相关分数,具体包括:通过注意力机制计算u与q
i
之间各词向量间的词相关度,其中,实体u中任一词向量表示为 ,当前问题q
i
中任一词向量表示为,与间的词相关度为:;d表示维度;表示连接;表示第一线性变换;将 归一化,得到归一化的词相关度;对于实体u中每一个,使用归一化的词相关度对当前问题q
i 中的词向量进行加权求和,得到与词向量对应的、经过注意力机制处理后的问题特征向量:将实体u中各词向量与对应的问题特征向量相连接并求和,经过线性变换后得到表示实体u与当前问题q
i
关系的向量 :根据向量计算实体u的特征向量f
u
:其中,表示实体u中字母在当前问题q
i
中出现百分比的1维向量;是一个2维one-hot向量,如果该实体是通过命名实体识别方法找到的,则赋值为[1 0],如果是通过倒排索引找到的,则赋值为[0 1]; 是表示命名实体识别方法对实体打分的1维向量,如果该实体是通过命名实体方法识别找到的,则赋值为1,如果是通过倒排索引找到的,则赋值为0;表示第二线性变换;根据特征向量f
u
,计算每个实体u与当前问题q
i
的相关分数:其中, 表示第三线性变换,b1为第一偏置参数。6.根据权利要求1-4任一项所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量计算路径集合c
q
中每一路径的概率值,具体包括:获取路径矩阵 m
c
;所述路径矩阵 m
c
包括所述查询路径集合c
q
中各查询路径的特征向
量c
enc
:根据路径矩阵
ꢀꢀ
m
c
计算所述查询路径集合c
q
中任一查询路径c’与当前问题q
i
的相关分数和概率::其中, 表示第四线性变换, 表示包含历史问题信息的问题向量,focalscore表示实体转移图中每个实体的实体分数,b2为第二偏置参数。7.根据权利要求1-4任一项所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图,具体包括:对于每个实体,如果e未添加到实体转移图中,将其作为新节点加入;对于前一轮答案a
i-1
(这里的答案a
i-1
即为一个实体),如果该实体未添加到实体转移图中,将其作为新节点加入;对于每个新加入图中的实体e,对其添加一个从e出发指向自身的“自循环边”;对于每个实体,添加一个从e出发指向a
i-1
的“前向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”;对于每个实体,添加一个从a
i-1
出发指向e的“后向边”,其中s1为第一轮问答中得到的实体集合。8.根据权利要求1-4任一项所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述计算实体转移图中每个实体的实体分数,具体包括:当前轮次i的实体转移图为实体转移图g
i
;上一轮次i-1的实体转移图为实体转移图g
i-1
;所述计算更新后的实体转移图中每个实体的实体分数,具体包括:具体包括:其中,表示在实体转移图g
i-1
中与e有连接关系的边与实体集合,表示实体转移图g
i-1
中的所有向量;是上一轮次历史问答信息向量的转置向量;根据实体转移图g
i
每一实体e中的向量表示e
i
计算该实体e的实体分数:计算该实体e的实体分数:
其中,focalscore表示实体分数, 表示实体e所在句子的向量表示,代表实体e在实体转移图g
i
中的度,为当前轮次的实体权重,为当前轮次的偏置参数,实体权重和偏置参数对于每一轮次是独立训练的。9.根据权利要求1-4任一项所述的基于历史信息追踪的知识图谱多轮问答方法,其特征在于,所述根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量,具体包括:将当前轮次的问题向量输入到单向lstm中,得到当前轮次的历史问答信息向量 ;单向lstm的处理包括:其中, 为上一轮次的历史问答信息向量 为当前轮次的问题向量。10.基于历史信息追踪的知识图谱多轮问答系统,其特征在于,包括:历史问答信息编码模块,用于根据当前轮次的问题向量和当前轮次的答案向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;所述当前轮次的问题向量通过将问题中所有单词映射为对应的词向量得到,所述当前轮次的答案向量通过将答案中所有单词映射为对应的词向量得到;实体转移图模块,用于根据当前轮次的历史问答信息向量更新上一轮次的实体转移图,得到当前轮次对应的实体转移图;计算当前轮次的实体转移图中每个实体的实体分数;当前轮次的实体转移图包括历史问答中的实体;历史问答信息追踪模块,用于根据各个历史问题向量更新当前轮次的问题向量,得到包含历史问题信息的问题向量;所述各个历史问题向量包括当前轮次之前每一轮次的问题向量;任一轮次的问题向量通过将该轮次的问题中所有单词映射为对应的词向量得到;答案预测模块,用于将当前轮次的问题作为当前问题q
i
,选出与当前问题q
i
相关的多个实体作为实体集合u
q
,计算实体集合u
q
中每一实体u与当前问题q
i
的相关分数,选出相关分数最高的k个实体作为新的实体集合;以实体集合中的每一实体u为起点,将知识图谱中两跳以内的所有查询路径作为查询路径集合c
q
;根据实体转移图中每个实体的实体分数、以及所述包含历史问题信息的问题向量,计算路径集合c
q
中每一路径的概率值;选择概率值最高的路径,所对应的答案作为当前轮次的预测答案;根据当前轮次的答案向量再次更新历史问答信息向量,用于下一轮的答案预测。
技术总结
本发明涉及数据挖掘技术领域,提出了基于历史信息追踪的知识图谱多轮问答方法及系统,包括:根据当前轮次的问题向量对上一轮次的历史问答信息向量进行更新,得到当前轮次的历史问答信息向量;根据当前轮次的历史问答信息向量更新实体转移图中的节点状态,并计算实体转移图中每个实体的实体分数;更新实体转移图中的节点状态,并计算实体转移图中每个实体的实体分数;更新当前轮次的问题向量,得到包含历史问题信息的问题向量;根据实体分数、包含历史问题信息的问题向量计算路径集合C
技术研发人员:程祥 王若鉴 何召锋 杨文林 匡明
受保护的技术使用者:杭州康晟健康管理咨询有限公司
技术研发日:2023.06.08
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种铌基低温锂离子电池 下一篇:一种稳定型换热器的制作方法
