一种基于混合编码和重排序的知识筛选方法与流程
未命名
09-07
阅读:132
评论:0
1.本发明涉及自然语言处理技术领域,尤其是一种知识筛选方法,更具体涉及一种基于混合编码和重排序的知识筛选方法。
技术背景
2.知识筛选是一种从知识库中检索知识的任务,通常是给定一个要解决的问题或要论证的假设,从知识库中筛选出与该问题或假设有关的一系列知识,这些知识一起提供了足够的证据来回答该问题或论证假设成立。
3.知识筛选作为自然语言处理领域的一种基础研究任务,涉及自然语言处理的诸多原理和技术,例如:信息检索、文本特征抽取、文本排序、文本分类、阅读理解等。当今互联网中存在大量的文本数据,如何从这些数据中选择出有用的信息,或者结合知识库中的知识回答人们的问题,引起了人们的广泛关注。将知识筛选作为自动推理、智能问答等系统的上游任务变得日趋普遍和重要。在自动推理中,筛选出来的知识可以为推理任务提供支撑证据;在问答任务中,根据具体的问题从外部知识库选择需要的知识,对于正确回答该问题至关重要。
4.通常,知识筛选都是在大规模知识库上进行的,知识库中所包含知识的数量巨大,如何从这些知识库中快速地筛选出相关知识是非常具有挑战性的。其中一个主要的挑战是所筛选的知识不一定直接与问题或假设相关,有些知识只与已经被筛选出的其他知识相关,因此对此类知识的筛选更加困难。目前用于知识筛选的方法多是基于文本之间语义相似性的方法,在上述与问题或假设关系不大的知识筛选上效果较差。一些研究者提出通过多次迭代的方式进行知识筛选,每次迭代筛选出一条知识,根据第次筛选到的知识为条件,来选择第次的知识。此类方法可以较为有效地减轻上述挑战带来的问题,但随着迭代次数的增加,可能会筛选出错误的知识,将错误的知识作为下一次筛选的条件,就会影响筛选的准确性,甚至让后面几次的筛选结果偏差越来越大。
技术实现要素:
5.针对现有技术的不足,本发明提出一种基于混合编码和重排序的知识筛选方法,本发明采用从粗到细两阶段的方式,首先利用两种不同类型的编码器将知识库里的知识编码成向量,并利用检索技术从大规模知识库中检索出与问题或假设相关的n条候选知识(n≈100),然后训练排序模型,对上述候选知识进行排序,根据排序结果筛选出用于解决问题或支撑假设的前k条知识(k<25)。
[0006] 本发明的技术方案为: 基于混合编码和重排序的知识筛选方法,包括以下步骤:
[0007] s1)、分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码;
[0008] s2)、基于步骤s1)所产生的编码,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,然后将该知识与给定的问题或假设进行拼接,迭代的检索
出第二条候选知识,依次不断迭代,直到检索出n条候选知识;
[0009] s3)、训练排序模型,对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识。
[0010]
上述方法中,步骤s1)中,使用稀疏编码器对知识库中所有的知识以及给定的某个问题或假设进行编码,具有包括以下步骤:
[0011] s101)、将知识库中的句子形式的知识输入到一个稀疏编码器中,例如bm25编码器,将编码器输出的向量作为该知识对应的稀疏编码;
[0012] s102)、将给定的问题或假设输入到上述稀疏编码器中,将编码器的输出作为该问题或假设的稀疏编码;
[0013] s103)、将知识库中的句子形式的知识输入到一个稠密编码器中,例如bert编码器,将编码器输出的向量作为该知识对应的稠密编码;
[0014] s104)、将给定的问题或假设输入到上述稠密编码器中,将编码器的输出作为该问题或假设的稠密编码;
[0015]
稀疏编码和稠密编码在形式上都是向量,不同之处在于稀疏编码向量中0的数量较多,其他数值一般为整数,形式上看起来该向量比较“稀疏”,向量总体长度较长;而稠密编码向量由0到1之间的浮点小数中组成,几乎没有0,形式上看起来该向量比较“稠密”,向量总体长度较短。
[0016]
上述方法中,步骤s2)中,基于步骤s1)所产生的编码,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,具有包括以下步骤:
[0017] s201)、依次将知识库中的一条知识的稀疏编码与给定问题或假设的稀疏编码一同输入到一个相似度打分函数中,例如余弦相似度函数,计算知识库中每一个知识与给定问题或假设的相似度得分;
[0018] s202)、依次将知识库中的一条知识的稠密编码与给定问题或假设的稠密编码一同输入到一个相似度打分函数中,例如余弦相似度函数,计算知识库中每一个知识与给定问题或假设的相似度得分;
[0019] s203)、将步骤s201)得到的相似度得分与步骤s202)得到的相似度得分相加,作为知识库中每一个知识与给定问题或假设的最终相似度得分,将知识库中最终相似度得分最高的知识作为检索出第一条候选知识。
[0020]
上述方法中,步骤s2)中,将该知识与给定的问题或假设进行拼接,迭代的检索出第二条候选知识,具有包括以下步骤::
[0021] s204)、将步骤s203)产生的候选知识作为句子拼接在给定的问题或假设的句子后面,将拼接后的文本作为一个整体分别输入到步骤s101)的稀疏编码器和步骤s103)的稠密编码器中,得到对应的稀疏编码和稠密编码;
[0022] s205)、依次将知识库中的一条知识的稀疏编码与步骤s204)得到的稀疏编码一同输入到步骤s201)使用的打分函数中,计算知识库中每一个知识与步骤s204)中拼接后的文本的相似度得分;
[0023] s206)、依次将知识库中的一条知识的稠密编码与步骤s204)得到的稠密编码一同输入到步骤s201)使用的打分函数中,计算知识库中每一个知识与步骤s204)中拼接后的文本的相似度得分;
[0024] s207)、将步骤s205)得到的相似度得分与步骤s206)得到的相似度得分相加,作为知识库中每一个知识与步骤s204)中拼接后的文本的最终相似度得分,将知识库中没有被选为候选知识的所有知识中最终相似度得分最高的知识作为检索出第二条候选知识。
[0025]
上述方法中,步骤s2)中,依次不断迭代,直到检索出n条候选知识,具有为:不断重复步骤s204)到步骤s207),每迭代一次将产生一条新的候选知识,直到共产生出n条候选知识时,停止迭代。
[0026]
上述方法中,步骤s3)中,训练排序模型,具体为:
[0027]
选择一种预训练语言模型,例如bert语言模型、tanda语言模型等作为排序模型,使用人工标注好的知识筛选数据集对预训练语言模型进行微调。其中知识筛选数据集由正样本和负样本两类数据组成,正样本的形式是(问题,相关知识,1)这样的三元组;负样本的形式为(问题,不相关知识,0)这样的三元组。知识筛选数据集是由人工构造的。
[0028]
对预训练语言模型进行微调是指在已经训练好的预训练语言模型基础之上,通过在特定领域或任务的数据集上进行进一步的训练,以适应该领域或任务的需求。这种方法通常用于提高模型在某个特定任务上的性能表现。微调过程中会将预训练语言模型加载进来,并在新的特定领域或任务的数据集上进行训练。在微调过程中,模型的参数会被调整以最大限度地适应该领域或任务的情况。微调过程不需要从头开始训练一个全新的模型,而是利用预训练模型已经学到的通用知识和模式,快速学习特定任务的相关知识。微调技术已经成为自然语言处理领域中非常流行的技术,它可以有效地提高模型的性能和泛化能力,使得模型在不同领域和任务中都能取得良好的表现。
[0029]
上述方法中,步骤s3)中,对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识,具体为:
[0030]
将给定的问题和步骤s2)所产生的n条候选知识以问题-知识对的形式逐一输入到经过知识筛选数据集微调训练好的排序模型中,模型输出对该知识的打分,根据得分对n条候选知识进行排序,筛选出打分最高的k条知识作为最终结果,即用于解决问题或支撑假设的知识。
[0031]
与现有方法相比,本发明的有益效果是:
[0032]
本发明采用稀疏编码和稠密编码相结合的混合编码方法能够更好地学习所选知识与给定问题或假设之间的语义关联,有利于提高知识筛选的效果;
[0033]
本发明采用基于深度学习、人工神经网络的大规模预训练语言模型作为候选知识的重排序器,能够提高知识筛选的准确性、反应速度和容错性;
[0034]
本发明采用混合编码与重排序两步走的方式,能够提高知识筛选方法的可缩放性,可以将该方法应用在大规模工业级知识库上,满足工业界对大规模知识筛选的实际需求。
附图说明
[0035]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1为本发明的一种基于混合编码和重排序的知识筛选方法的流程示意图。
[0037]
图2为本发明实施例中从输入到输出结果的示意图。
[0038]
图3为本发明实施例中第一阶段基于混合编码的知识检索方法的流程示意图。
[0039]
图4为本发明实施例中本发明实施例中第二阶段重排序的流程示意图。
[0040]
图5为本发明的一种基于混合编码和重排序的知识筛选方法的基本原理示意图。
实施方式
[0041]
下面结合附图对本发明的具体实施方式作进一步说明:
[0042] 本发明提供一种基于混合编码和重排序的知识筛选方法,本发明首先使用基于混合编码的知识检索方法,即分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码,并利用检索技术从大规模知识库中检索出与问题或假设相关的n条候选知识(n ≈ 100);然后使用重排序模型,对上述候选知识进行排序,根据排序结果筛选出用于解决问题或支撑假设的前k条知识(k<25)。
[0043]
如图1所示,一种基于混合编码和重排序的知识筛选方法包括以下步骤:
[0044] s1)、分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码;
[0045] s2)、基于步骤s1)所产生的编码,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,然后将该知识与给定的问题或假设进行拼接,迭代的检索出第二条候选知识,依次不断迭代,直到检索出n条候选知识;
[0046] s3)、训练排序模型,对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识。
[0047]
例如图2所示,给定问题“火山爆发会对植物产生什么影响?”或给定假设“火山爆发会造成植物死亡”,以及包含从sent1到sent9999的知识库,基于混合编码和重排序的知识筛选方法从知识库中筛选出3条知识:“sent2:火山爆发产生火山灰”、“sent4:没有阳光,生产者会死亡”和“sent5:火山灰挡住阳光”,这三条知识可用到知识推理方法中,推理出假设“火山爆发会造成植物死亡”。
[0048]
上述方法中,步骤s1)中,使用稀疏编码器对知识库中所有的知识以及给定的某个问题或假设进行编码,如图1所示,具体为:
[0049] s101)、将知识库中的句子形式的知识输入到bm25稀疏编码器中,将编码器输出的向量作为该知识对应的稀疏编码;
[0050] s102)、将给定的问题或假设输入到上述bm25稀疏编码器中,将编码器的输出作为该问题或假设的稀疏编码;
[0051] s103)、将知识库中的句子形式的知识输入到bert稠密编码器中,将编码器输出的向量作为该知识对应的稠密编码;
[0052] s104)、将给定的问题或假设输入到上述bert稠密编码器中,将编码器的输出作为该问题或假设的稠密编码;
[0053]
上述方法中,步骤s2)中,基于步骤s1)所产生的编码,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,如图3所示,具有包括以下步骤:
[0054] s201)、依次将知识库中的一条知识的稀疏编码与给定问题或假设的稀疏编码一
同输入到一个相似度打分函数中,例如余弦相似度函数,计算知识库中每一个知识与给定问题或假设的相似度得分;
[0055] s202)、依次将知识库中的一条知识的稠密编码与给定问题或假设的稠密编码一同输入到一个余弦相似度打分函数中,计算知识库中每一个知识与给定问题或假设的相似度得分;
[0056] s203)、将步骤s201)得到的相似度得分与步骤s202)得到的相似度得分相加,作为知识库中每一个知识与给定问题或假设的最终相似度得分,将知识库中最终相似度得分最高的知识作为检索出第一条候选知识。
[0057]
例如,根据假设“火山爆发会造成植物死亡”从知识库中筛选出第一条候选知识“sent2:火山爆发产生火山灰”。
[0058]
进一步的,步骤s2)中,将该知识与给定的问题或假设进行拼接,迭代的检索出第二条候选知识,具有包括以下步骤::
[0059] s204)、将步骤s203)产生的候选知识作为句子拼接在给定的问题或假设的句子后面,将拼接后的文本作为一个整体分别输入到步骤s101)的稀疏编码器和步骤s103)的稠密编码器中,得到对应的稀疏编码和稠密编码;
[0060] s205)、依次将知识库中的一条知识的稀疏编码与步骤s204)得到的稀疏编码一同输入到步骤s201)使用的打分函数中,计算知识库中每一个知识与步骤s204)中拼接后的文本的相似度得分;
[0061] s206)、依次将知识库中的一条知识的稠密编码与步骤s204)得到的稠密编码一同输入到步骤s202)使用的打分函数中,计算知识库中每一个知识与步骤s204)中拼接后的文本的相似度得分;
[0062] s207)、将步骤s205)得到的相似度得分与步骤s206)得到的相似度得分相加,作为知识库中每一个知识与步骤s204)中拼接后的文本的最终相似度得分,将知识库中没有被选为候选知识的所有知识中最终相似度得分最高的知识作为检索出第二条候选知识。
[0063]
例如,根据将假设“火山爆发会造成植物死亡”与第一条候选知识“sent2:火山爆发产生火山灰”进行拼接,得到“火山爆发会造成植物死亡;火山爆发产生火山灰”,将此拼接后的文本作为新的假设,与知识库中的知识一起分别输入到稀疏编码器和稠密编码器中,进行相似度打分,将两个相似度得分相加作为每条知识的最终相似度得分,将知识库中除第一条候选知识“sent2:火山爆发产生火山灰”外的最终相似度得分最高的知识“sent1:火山爆发喷发出熔岩”作为检索出第二条候选知识。
[0064]
上述方法中,步骤s2)中,依次不断迭代,直到检索出n条候选知识,具有为:不断重复步骤s204)到步骤s207),每迭代一次将产生一条新的候选知识,直到共产生出n条候选知识时,停止迭代。
[0065]
上述方法中,步骤s3)中,训练排序模型如图4所示,具体为:
[0066]
选择一种预训练语言模型作为排序模型,使用人工标注好的知识筛选数据集对预训练语言模型进行微调。
[0067]
上述方法中,步骤s3)中,对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识,具体为:
[0068]
将给定的问题和步骤s2)所产生的n条候选知识以问题-知识对或假设-知识对的
形式逐一输入到经过知识筛选数据集微调训练好的排序模型中,模型输出对该知识的打分,根据得分对n条候选知识进行排序,筛选出打分最高的k条知识作为最终结果,即用于解决问题或支撑假设的知识。
[0069]
例如图4所示,候选知识列表中的知识“sent2:火山爆发产生火山灰”、“sent1:火山爆发喷发出熔岩”、“sent4:没有阳光,生产者会死亡”和“sent5:火山灰挡住阳光”以及假设“火山爆发会造成植物死亡”输入到排序模型中,排序模型给出每条假设-知识对的得分,根据得分对n条候选知识进行排序,筛选出打分最高的3条知识作为最终结果,即:“sent2:火山爆发产生火山灰”、“sent4:没有阳光,生产者会死亡”和“sent5:火山灰挡住阳光”。
[0070]
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
技术特征:
1.一种基于混合编码和重排序的知识筛选方法,其特征在于,包括以下步骤:s1)、分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码;s2)、基于步骤s1)所产生的编码,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,然后将该知识与给定的问题或假设进行拼接,迭代的检索出第二条候选知识,依次不断迭代,直到检索出n条候选知识;s3)、训练排序模型,对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识。2.根据权利要求1所述的一种基于混合编码和重排序的知识筛选方法,其特征在于:步骤s1)中,分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码,具体如下:将知识库中的句子形式的知识输入到一个稀疏编码器中,将编码器输出的向量作为该知识对应的稀疏编码;将给定的问题或假设输入到上述稀疏编码器中,将编码器的输出作为该问题或假设的稀疏编码;将知识库中的句子形式的知识输入到一个稠密编码器中,将编码器输出的向量作为该知识对应的稠密编码;将给定的问题或假设输入到上述稠密编码器中,将编码器的输出作为该问题或假设的稠密编码。3.根据权利要求1所述的一种基于混合编码和重排序的知识筛选方法,其特征在于:步骤s2)中,使用基于迭代的检索算法对知识库中的知识进行检索,检索出第一条候选知识,具体如下:依次将知识库中的一条知识的稀疏编码与给定问题或假设的稀疏编码一同输入到一个相似度打分函数中,计算知识库中每一个知识与给定问题或假设的相似度得分;依次将知识库中的一条知识的稠密编码与给定问题或假设的稠密编码一同输入到一个相似度打分函数中,计算知识库中每一个知识与给定问题或假设的相似度得分;将上述两次计算得到的相似度得分相加,作为知识库中每一个知识与给定问题或假设的最终相似度得分,将知识库中最终相似度得分最高的知识作为检索出第一条候选知识。4.根据权利要求1所述的一种基于混合编码和重排序的知识筛选方法,其特征在于:步骤s2)中,将该知识与给定的问题或假设进行拼接,迭代的检索出第二条候选知识,依次不断迭代,直到检索出n条候选知识,具体如下:将第一条候选知识拼接在给定的问题或假设的句子后面,将拼接后的文本作为一个整体分别输入到稀疏编码器和稠密编码器中,得到对应的稀疏编码和稠密编码;依次将知识库中的一条知识的稀疏编码与拼接后的文本的稀疏编码一同输入到一个相似度打分函数中,计算知识库中每一个知识与给定问题或假设的相似度得分;依次将知识库中的一条知识的稠密编码与拼接后的文本的稠密编码一同输入到一个相似度打分函数中,计算知识库中每一个知识与给定问题或假设的相似度得分;将上述两次计算得到的相似度得分相加,作为知识库中每一个知识与拼接后的文本的最终相似度得分,将知识库中最终相似度得分最高的知识作为检索出第二条候选知识;
重复迭代上述步骤,每迭代一次将产生一条新的候选知识,直到共产生出n条候选知识时,停止迭代。5.根据权利要求1所述的一种基于混合编码和重排序的知识筛选方法,其特征在于:步骤s3)中,训练排序模型,具体如下:选择一种预训练语言模型作为排序模型,使用人工标注好的知识筛选数据集对预训练语言模型进行微调,其中知识筛选数据集由正样本和负样本两类数据组成,正样本的形式是(问题,相关知识,1)这样的三元组;负样本的形式为(问题,不相关知识,0)这样的三元组。6.根据权利要求1所述的一种基于混合编码和重排序的知识筛选方法,其特征在于:对步骤s2)所产生的n条候选知识进行排序,根据排序结果筛选k条知识作为最终用于解决问题或支撑假设的知识,具体如下:将给定的问题和步骤s2)所产生的n条候选知识以问题-知识对的形式逐一输入到经过知识筛选数据集微调训练好的排序模型中,模型输出对该知识的打分,根据得分对n条候选知识进行排序,筛选出打分最高的k条知识作为最终结果,即用于解决问题或支撑假设的知识。
技术总结
本发明涉及一种基于混合编码和重排序的知识筛选方法,本发明首先分别使用稀疏编码器和稠密编码器对知识库中所有的知识以及给定的某个问题或假设进行编码,然后基于上述编码,使用基于迭代的检索算法从知识库中检索出约100条左右的候选知识,最后训练排序模型,对上述候选知识排序,筛选出十几或几十条知识作为最终用于解决问题或支撑假设的知识。本发明采用两种编码器结合的混合编码方法能够更好地学习所选知识与给定问题或假设之间的语义关联,有利于提高知识筛选的效果。本发明采用基于深度学习、人工神经网络的大规模预训练语言模型作为候选知识的重排序器,能够提高知识筛选的准确性、反应速度和容错性。反应速度和容错性。反应速度和容错性。
技术研发人员:黄智胜 陈涛 贾旭东 张仲维
受保护的技术使用者:黄智胜
技术研发日:2023.06.29
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种利用农林废弃物快速制备氨基酸有机肥的方法 下一篇:水面漂浮式光伏电站的制作方法
