CN115617954B - 问答方法、装置、电子设备及存储介质 - Google Patents
问答方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115617954B CN115617954B CN202211440775.1A CN202211440775A CN115617954B CN 115617954 B CN115617954 B CN 115617954B CN 202211440775 A CN202211440775 A CN 202211440775A CN 115617954 B CN115617954 B CN 115617954B
- Authority
- CN
- China
- Prior art keywords
- question
- program
- vocabulary
- knowledge base
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012549 training Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 13
- 230000015654 memory Effects 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008034 disappearance Effects 0.000 abstract 1
- 239000002585 base Substances 0.000 description 97
- 230000008569 process Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012458 free base Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术领域,提供一种问答方法、装置、电子设备及存储介质,其中方法包括:将问题输入生成模型,获得问题对应的推理程序;基于目标知识库执行问题对应的推理程序得到问题的答案;生成模型是基于目标知识库之外的外部知识库和对应的第一数据集,以及目标知识库和对应的第二数据集,进行训练得到的,第一数据集包括第一问题样本和对应的第一推理程序标签,第二数据集包括第二问题样本和对应的答案样本;生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇得到问题对应的推理程序;或者,通过解析程序骨架以及程序骨架所需的参数得到问题对应的推理程序。解决平行语料缺失的问题,提升了问答性能。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种问答方法、装置、电子设备及存储介质。
背景技术
知识库问答 (Knowledge Based Question Answering, KBQA) 是自然语言问题领域中的一个研究方向,主要任务是针对给定的自然语言的问题,利用知识库进行查询和推理,得出问题的答案。从涉及到单个关系三元组的简单问答,逐渐转移到知识库复杂问答(Complex KBQA) 上来。知识库复杂问答需要计算机处理复杂问题,通常需要逻辑,比较和多跳关系等多种推理能力。
针对复杂问题,可以基于信息检索的方法得到问题的答案,具体可以通过问题的实体识别与链接召回候选实体,并根据候选实体与问题的语义匹配进行排序,从而从知识库中检索到问题的答案。为了提升问答的可解释性,还可以基于语义解析的方法得到问题的答案,具体可以把问题解析为一个推理程序,基于知识库,执行该推理程序就可以得到问题的答案。不同于基于信息检索的方法,基于语义解析的方法可以通过查询语句得到具体的推理过程,解释性较强。但是,现有技术中,语义解析的学习依赖于给定知识库上大规模的问题和推理程序的平行语料,由于数据标注需要大量的人力、时间和物力等成本,对于大多数的知识库来说,问题和推理程序的平行语料是缺失的,难以满足复杂问题的需求。
发明内容
本发明提供一种问答方法、装置、电子设备及存储介质,用以解决现有技术中因问题和推理程序的平行语料是缺失难以满足复杂问题的需求的缺陷,实现了问答性能的提升。
本发明提供一种问答方法,包括:
将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,所述生成模型用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
根据本发明提供的一种问答方法,所述得到所述生成模型输出的所述问题对应的推理程序,包括:
基于所述问题,对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇。
根据本发明提供的一种问答方法,从所述序列中需要解码的第二个所述位置开始,所述位置对应的候选词汇表是以前一个所述位置的词汇为约束条件确定的。
根据本发明提供的问答方法,所述位置对应的候选词汇表中包括以下至少一种:
基本函数的名称;
知识元素;
预设标识,所述预设标识的类型包括函数类型和/或参数类型。
根据本发明提供的一种问答方法,所述对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇,包括:
按顺序依次选择所述序列中需要解码的每个所述位置作为当前位置;
若所述当前位置为需要解码的第一个所述位置,确定所述当前位置对应的候选词汇表包括预设标识,计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇;
若所述当前位置不为需要解码的第一个所述位置,以前一个所述位置的词汇为约束条件更新所述当前位置对应的候选词汇表,并计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇。
根据本发明提供的一种问答方法,所述生成模型是通过如下方式训练得到的:
基于所述外部知识库,以所述第一问题样本为输入,以输出所述第一推理程序标签为目标,对预设模型进行预训练;
基于所述目标知识库,以所述第二问题样本输入,以输出执行结果为所述第二问题样本对应的答案样本的第二推理程序为目标,对预设模型进行训练,得到所述生成模型。
根据本发明提供的一种问答方法,所述获得所述生成模型输出的所述问题对应的推理程序,包括:
解析程序骨架;
以所述外部知识库的部分作为参数候选池;
从所述参数候选池中,选择所述程序骨架所需的参数,得到所述问题对应的推理程序。
本发明还提供一种问答装置,包括:
程序获得模块,用于将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
推理程序执行模块,用于基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,所述生成模型用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述问答方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述问答方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述问答方法。
本发明提供的问答方法,可以通过生成模型生成问题对应的推理程序,从而基于目标知识库,执行问题对应的推理程序,得到问题对应的答案,其中,生成模型是结合外部知识库对应的已经标注的第一数据集进行训练得到的,可以缓解目标知识库对应的第二数据集中第二问题样本缺乏标注的情况,由于该生成模型可以通过解码程序的树形结构所转换的序列中每个位置的词汇,得到问题对应的推理程序,每个位置的词汇是从与位置对应的动态的候选词汇表中选择的,大大提升了生成模型的效率,或者可以通过解析程序骨架以及程序骨架所需的参数,得到问题对应的推理程序,从而提高了问答性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的问答方法的流程示意图;
图2是本发明提供的程序的树形结构的示意图;
图3是本发明提供的问答装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
知识库问答 (Knowledge Based Question Answering, KBQA) 是自然语言问题领域中的一个研究方向,主要任务是针对给定的自然语言的问题,利用知识库进行查询和推理,得出问题的答案。从涉及到单个关系三元组的简单问答,逐渐转移到知识库复杂问答(Complex KBQA) 上来。知识库复杂问答需要计算机处理复杂问题,通常需要逻辑,比较和多跳关系等多种推理能力。
针对复杂问题,可以基于信息检索的方法得到问题的答案,具体可以通过问题的实体识别与链接召回候选实体,并根据候选实体与问题的语义匹配进行排序,从而从知识库中检索到问题的答案。为了提升问答的可解释性,还可以基于语义解析的方法得到问题的答案,具体可以把问题解析为一个推理程序,基于知识库,执行该推理程序就可以得到问题的答案。不同于基于信息检索的方法,基于语义解析的方法可以通过查询语句得到具体的推理过程,解释性较强。
例如,一种实现方式中,把问题转换为LISP语言程序,通过四个基本函数的组合实现了对Freebase知识库的一些常用查询,该方案的系统被称为神经符号机(NeuralSymbolic Machine,NSM)。另一种实现方式中,把问题转换为多个基本函数组成的程序,实现了比较、逻辑推理、计数等多种推理操作,实现了对Wikidata知识库的问答。还有一种实现方式中,设计了面向知识的推理问答编程语言(Knowledge-oriented ProgrammingLanguage,KoPL),这种语言抽象了一组面向知识的基本函数,通过把问题转换为KoPL实现了在Wikidata知识库的一个子集上针对复杂问题的问答。
但是,现有技术中,语义解析的学习依赖于给定知识库上大规模的问题和推理程序的平行语料,由于数据标注需要大量的人力、时间和物力等成本,对于大多数的知识库来说,问题和推理程序的平行语料是缺失的,仍难以满足复杂问题的需求。
下面结合图1-图2描述本发明的问答方法。
本实施例提供一种问答方法,该方法可以由问答装置执行,如图1所示,至少包括如下步骤:
步骤101、将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序。
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,所述生成模型用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
其中,问题对应的推理程序的执行结果为问题的答案。
程序的树形结构是一种非线性数据结构,能够以树形结构表达程序,程序的树形结构可以序列化,即,将程序的树形结构转换为一个线性的序列,当然,这个序列也可以反解回去得到程序的树形结构。因此,可以通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序。其中,每个位置对应的候选词汇表包含属于该位置的候选的词汇,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的,不同的位置对应的候选词汇表可以不同,也即,候选词汇表可以随着序列的位置的变化而动态变化,从而与该位置的需求相匹配,可以提升效率,从而提升生成模型的性能。基于此,生成模型为端到端的序列到序列(Sequence-to-Sequence)的模型,也称为自回归生成模型。
一个完整的推理程序包括多个基本函数,有些基本函数需要传入参数,以上解析的程序骨架由忽略传入参数的基本函数组合而成,可以表征推理程序中有哪些基本函数,而解析的程序骨架所需的参数则包括推理程序中的基本函数需要传入的参数。因此,可以通过解析程序骨架以及程序骨架所需的参数,得到所述问题对应的推理程序。分别解析程序骨架和程序骨架所需的参数的生成模型也称层次化生成模型,解析程序骨架的部分为高层次,解析程序骨架所需的参数的部分为低层次。
目标知识库是提供问题的答案的知识库。生成模型可以结合目标知识库之外的外部知识库对应的第一数据集中第一问题样本和对应的第一推理程序标签形成的平行语料训练得到,其中,第一推理程序标签需要进行标注得到,如此,利用外部知识库对应的已经标注的第一数据集,可以缓解目标知识库对应的第二数据集中第二问题样本缺乏标注的情况,不依赖人工设计启发式规则,可以自动地构建生成模型来实现问答。
步骤102、基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案。
本实施例中,可以通过生成模型生成问题对应的推理程序,从而基于目标知识库,执行问题对应的推理程序,得到问题对应的答案,其中,生成模型是结合外部知识库对应的已经标注的第一数据集进行训练得到的,可以缓解目标知识库对应的第二数据集中第二问题样本缺乏标注的情况,由于该生成模型可以通过解码程序的树形结构所转换的序列中每个位置的词汇,得到问题对应的推理程序,每个位置的词汇是从与位置对应的动态的候选词汇表中选择的,大大提升了生成模型的效率,或者可以通过解析程序骨架以及程序骨架所需的参数,得到问题对应的推理程序,从而提高了问答性能。
在示例性实施例中,所述得到所述生成模型输出的所述问题对应的推理程序,其具体实现方式可以包括:基于所述问题,对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇。
参见图2,示意了程序的树形结构,包括多个节点,例如包括第一基本函数、第二基本函数和第三基本函数。其中,第一基本函数可以为用于找出具有指定名称(例如zhangsan)的实体的函数Find,第二基本函数可以为用于找出与指定实体(例如zhang san)有指定关系(例如父亲:father)的所有实体的函数Relate,第三基本函数可以为用于选择出指定属性(例如更高:height greater)的实体的函数Select。实施中,可以进行树的遍历,使之变为线性的序列,示例性的,可以得到序列<bos> <func> Find <ent> zhang san </ent><func> Relate <rel> father</rel> <kw> forward </kw> <func> Find <ent> zhangsan</ent> <func> Select <attr> height </attr><kw> greater </kw> <eos>。
其中,<bos>为序列开始的标识,<eos>为序列结束的标识。
所述位置对应的候选词汇表中包括以下至少一种:
一、基本函数的名称。举例来说,基本函数的名称可以为Find,Relate等。
二、知识元素。
这里的知识元素可以是知识库中具体的实体、关系、概念、属性、或者关键字。
三、预设标识。这里的预设标识为预先设置的特殊标识,示例性的,所述预设标识的类型包括函数类型和/或参数类型。示例性的,<func>为函数类型的标识,<ent>,<rel>,<con>,<attr>和<kw>为参数类型的标识,其中,<ent>为实体类型的标识,<rel>为关系类型的标识,<con>为概念类型的标识,<attr>为属性类型的标识,<kw>为关键字类型的标识。另外,参数类型的标识还可以设置对应的结束标识,参数类型的标识与对应的结束标识之间的内容为该参数类型。例如,<ent>对应的结束标识为</ent>,<ent>与</ent>之间的内容为实体类型,同理,<rel>对应的结束标识为</ rel >,< rel >与</ rel >之间的内容为关系类型,< attr >对应的结束标识为</ attr >,< attr >与</ attr >之间的内容为属性类型,< con >对应的结束标识为</ con >,< con >与</ con >之间的内容为概念类型,< kw>对应的结束标识为</ kw >,< kw >与</ kw >之间的内容为关键字类型,等等。
示例性的,所述对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇,其具体实现方式可以包括:
第一步、按顺序依次选择所述序列中需要解码的每个所述位置作为当前位置。
第二步、若所述当前位置为需要解码的第一个所述位置,确定所述当前位置对应的候选词汇表包括预设标识,计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇。
第三步、若所述当前位置不为需要解码的第一个所述位置,以前一个所述位置的词汇为约束条件更新所述当前位置对应的候选词汇表,并计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇。
示例性的,从所述序列中需要解码的第二个所述位置开始,所述位置对应的候选词汇表是以前一个所述位置的词汇为约束条件确定的。如此,以前一个位置的词汇为约束条件,可以减少每个位置对应的候选词汇表中词汇的数量,实现对搜索空间的剪枝。
实际应用中,可以设置候选词汇表,在解码的过程中,动态地更新当前位置的词
汇,并更新候选词汇表。序列需要解码的第一个位置对应的候选词汇表可以包括序
列开始的标识,例如<bos>,更新为<bos>。以第一个位置对应的词汇为约束条件,第二个
位置对应的候选词汇表更新为包括函数类型的标识,例如<func>,更新为<func>。以第
二个位置对应的词汇为约束条件,第三个位置对应的候选词汇表更新为包括基本函数
的名称,例如{Find,Relate,Select, …},如果更新为Find,则以第三个位置对应的词汇
为约束条件,第四个位置对应的候选词汇表包括实体类型的标识,例如<ent>,第五个位
置对应的候选词汇表则包括知识库中的实体的集合,直到选择出实体类型的标识对应
的结束标识</ent>,表明选择出的基本函数的名称的参数已经全部生成,下一个位置对应
的候选词汇表仍包括函数类型的标识,例如<func>,依此类推,直到选择出序列结束标
识<eos>,解码过程结束。
本实施例中,结合目标知识库对每个位置的候选词汇表进行了约束,与使用每一步从整个目标词汇表中选择词汇的贪婪解码算法相比,大大减少了搜索空间,每个位置对应的词汇均符合目标知识库的约束,而且提升了问答效率。
解码过程可以通过遍历树形结构实现。下面通过一个问题举例说明。
以<func>为根节点的树形结构,示例性的,<func>的孩子节点包括Find、Relate、Select……,示例性的,Find的孩子节点包括<ent>,Relate的孩子节点包括<rel>,Select的孩子节点包括< attr >。
以<ent>为根节点的树形结构,示例性的,<ent>的孩子节点包括zhang、Li……,zhang的孩子节点包括san,Li的孩子节点包括si,san和si的孩子节点包括</ent>。
以<rel>为根节点的树形结构,示例性的, <rel>的孩子节点包括place、nationality、teams……, place的孩子节点包括of, of 的孩子节点包括birth,teams的孩子节点包括owned,birth、nationality和owned的孩子节点包括</rel>。
以<rel>为根节点的树形结构,示例性的, <rel>的孩子节点包括location、head、player……,head的孩子节点包括coach, location、coach和player的孩子节点包括</rel>。
以<con>为根节点的树形结构,示例性的, < con >的孩子节点包括hockey、sports、football……, hockey的孩子节点包括team, sports 的孩子节点包括team,football的孩子节点包括team,team的孩子节点包括</con>。
以<con>为根节点的树形结构,示例性的, < con >的孩子节点包括football、coach……, football的孩子节点包括coach, coach 的孩子节点包括</con>。
以上树形结构可以作为子树。
解码过程中,首先生成<bos><func>,之后从<func>的孩子结点中选择Find作为下一个输出,接下来输出Find的孩子结点<ent>,接下来从以<ent>为根节点的子树中选择zhang,zhang的孩子结点san,san的孩子结点</ent>,zhang和 san组成了Find函数的参数zhang san;在确定Find函数的参数是zhang san后,本发明中可以自动构建以<rel>和以<con>为根结点的字典树(Trie树),参见以上示例,即,以<rel>为根的树形结构是与zhangsan相关的关系组成的Trie树;以<con>为根结点的树形结构是zhang san所属的概念组成的Trie树。接下来,输出</ent>的孩子结点<func>,<func>的孩子结点Relate,Relate的孩子结点<rel>,<rel>的孩子结点father,father的孩子结点</rel>,… 以此类推,直到生成整个序列。在这里,由于<ent>的子树是由知识库中的实体组织成的Trie树,<rel>的子树是由知识库中的关系生成的Trie树,所以Find参数会生成知识库中的某个实体,Relate的参数会生成知识库中的某个关系,避免了贪婪解码算法中可能输出不在知识库实体的问题。而且由于以<rel>为根节点的子树和以<con>为根节点的子树是根据实体动态构建,进一步缩小了模型的生成空间。本实施例中的孩子节点可以作为候选的词汇。
在示例性实施例中,所述生成模型是通过如下方式训练得到的:
第一步、基于所述外部知识库,以所述第一问题样本为输入,以输出所述第一推理程序标签为目标,对预设模型进行预训练。
本步骤实现了利用外部知识库对应的第一数据集对预设模型进行有监督的预训练。
第二步、基于所述目标知识库,以所述第二问题样本输入,以输出执行结果为所述第二问题样本对应的答案样本的第二推理程序为目标,对预设模型进行训练,得到所述生成模型。
本步骤实现了基于目标知识库对应的第二数据集进行弱监督学习。在弱监督学习中,可以采用Hard-EM算法,先根据已有参数搜索出问题的可能的推理程序,然后用搜索到的推理程序对自身进行微调,并迭代进行这个过程,直到最后收敛。
实施中,可以定义知识库为,其中 和 分别是概
念,实体,关系,和事实三元组集合。可以被形式化为, 其中,代表关系, 代表 关系, 是普通关系集合。可以包括三个子集:基于的三元组集合 ,为概念,为实体;基于的
三元组集合,与为不同概念;基于普通关系的三元组,与为不同概念,r为中的关系。基于此,可以定
义推理程序为。这
里,是一个函数集合,包含了在知识库上进行查询、推理的基本函数,表示基本函数的
个数,为知识库中的参数,表示输入参数 的基本函数。根据参数类型,可以被划分为四个子集:,分别表示参数类型为实体、概念、
关系和空的函数。语义解析的任务则是定一个知识库和一个基于自然语言的问题,为问题x中词的个数,生成一个推理程序y,y在上执行的结
果z就是问题x的正确答案。
基于此,训练的过程中,本实施例给定的输入是外部知识库对应的第一数据集和目标知识库对应的第二数据集。其中,包含(第一
问题样本,第一推理程序标签)对 ,为包含的对数,为其中
第i对第一问题样本和第一推理程序标签。包含(第二问题样本,答案)对,为包含的对数,为其中第i对第二问题样本和答案。
训练的目标为针对目标知识库,学习把第二问题样本解析为对应的推理程序,
使得对应的推理程序 在上执行的结果为第二问题样本对应的答案。
本实施例中,基于外部知识库对应的第一数据集,以外部知识库的第一问题样本为输入,以对应的第一推理程序标签为输出,对预设模型进行有监督的预训练,然后,在预训练的基础上,在目标知识库对应的第二数据集上进行弱监督学习,如此,有效利用了外部知识库这一富资源知识库的监督信号,实现了跨知识库之间知识的迁移,从而实现缺乏标注的目标知识库的问答。
在示例性实施例中,所述获得所述生成模型输出的所述问题对应的推理程序,其具体实现方式可以包括:
第一步、解析程序骨架。
编码器用于将问题编码为一个隐向量,示例性的,可以采用RoBERTa预训练语言模型:
解码器用于将基本函数逐步解码输出,解码器的种类有多种,示例性的,可以基于
(Gated Recurrent Unit,GRU) 实现解码器,也可以基于长短期记忆(Long Short-Term
Memory,LSTM)实现解码器。解码是逐步进行的,在预测了后,步骤的隐向量计算为:
第二步、以所述外部知识库的部分作为参数候选池。
第三步、从所述参数候选池中,选择所述程序骨架所需的参数,得到所述问题对应的推理程序。
需要说明的是,公式(2)和(5)中的RoBERTa仅是示例并非限定,也可以采用其它的编码器,RoBERTa这一编码器的计算能力更强,因此,本实施例采用RoBERTa,从而可以大大提升生成模型的性能。
实际应用中,可以使用外部知识库的本体进行参数候选池的约束和剪枝。由于外
部知识库的本体和推理程序的基本函数的参数是相互制约的。因此,当基本函数的参数被确定后,下一个基本函数的参数候选池会被相应地调整。后一个解码的
基本函数对应的参数候选池可以基于前一个解码的基本函数的参数的约束来确定,从而实
现后一个解码的基本函数对应的参数候选池的剪枝。具体地,可以利用外部知识库中实体
的类型 (type),关系的定义域 (domain)和值域 (range)等来约束得到参数候选池。
FindRelateFilterConceptRelateFilterConceptQueryName。其中,
FilterConcept用于找出属于指定概念的所有实体。QueryName用于返回指定实体的名称。
在程序骨架所需的参数的解析过程中,首先,确定了Find函数的参数是zhangsan,由此可以确定下一个函数的参数候选池是定义域包含zhang san的实体类型{sportsteam owner, person}的关系集合,如{teams owned, place of birth, nationality}等,而不可能是其他与person无关的关系 (如time zone);在确定了第二个函数Relate的参数是teams owned时,可以进一步确定接下来的FilterConcept的参数候选池是teams owned的值域,即{hockey team, sports team, football team},而不可能是其他的概念。依次类推,前一个函数的参数确定后,根据外部知识库的本体的约束,可以对后面的函数的参数进行剪枝。
本实施例中,参数候选池是通过外部知识库本体的约束得到的,以外部知识库的部分为参数候选池,大大减少了搜索空间。
下面对本发明提供的问答装置进行描述,下文描述的问答装置与上文描述的问答方法可相互对应参照。
本实施例提供一种问答装置,如图3所示,包括:
程序获得模块301,用于将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
推理程序执行模块302,用于基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
在示例性实施例中,程序获得模块,具体用于:
基于所述问题,对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇。
在示例性实施例中,从所述序列中需要解码的第二个所述位置开始,所述位置对应的候选词汇表是以前一个所述位置的词汇为约束条件确定的。
在示例性实施例中,所述位置对应的候选词汇表中包括以下至少一种:
基本函数的名称;
知识元素;
预设标识,所述预设标识的类型包括函数类型和/或参数类型。
在示例性实施例中,程序获得模块,具体用于:
按顺序依次选择所述序列中需要解码的每个所述位置作为当前位置;
若所述当前位置为需要解码的第一个所述位置,确定所述当前位置对应的候选词汇表包括预设标识,计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇;
若所述当前位置不为需要解码的第一个所述位置,以前一个所述位置的词汇为约束条件更新所述当前位置对应的候选词汇表,并计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇。
在示例性实施例中,所述生成模型是通过如下方式训练得到的:
基于所述外部知识库,以所述第一问题样本为输入,以输出所述第一推理程序标签为目标,对预设模型进行预训练;
基于所述目标知识库,以所述第二问题样本输入,以输出执行结果为所述第二问题样本对应的答案样本的第二推理程序为目标,对预设模型进行训练,得到所述生成模型。
在示例性实施例中,程序获得模块,具体用于:
解析程序骨架;
以所述外部知识库的部分作为参数候选池;
从所述参数候选池中,选择所述程序骨架所需的参数,得到所述问题对应的推理程序。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行问答方法,该方法包括:
将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的问答方法,该方法包括:
将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的问答方法,该方法包括:
将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种问答方法,其特征在于,包括:
将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;
基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;所述问题对应的推理程序包括多个基本函数;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;所述生成模型是通过如下方式训练得到的:基于所述外部知识库,以所述第一问题样本为输入,以输出所述第一推理程序标签为目标,对预设模型进行预训练;基于所述目标知识库,以所述第二问题样本输入,以输出执行结果为所述第二问题样本对应的答案样本的第二推理程序为目标,对预设模型进行训练,得到所述生成模型;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,所述生成模型用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
2.根据权利要求1所述的问答方法,其特征在于,所述得到所述生成模型输出的所述问题对应的推理程序,包括:
基于所述问题,对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇。
3.根据权利要求2所述的问答方法,其特征在于,从所述序列中需要解码的第二个所述位置开始,所述位置对应的候选词汇表是以前一个所述位置的词汇为约束条件确定的。
4.根据权利要求3所述的问答方法,其特征在于,所述位置对应的候选词汇表中包括以下至少一种:
基本函数的名称;
知识元素;
预设标识,所述预设标识的类型包括函数类型和/或参数类型。
5.根据权利要求3所述的问答方法,其特征在于,所述对所述序列中需要解码的每个所述位置,计算与所述位置对应的候选词汇表中每个词汇属于所述位置的概率,并选择出概率最大的词汇作为所述位置的词汇,包括:
按顺序依次选择所述序列中需要解码的每个所述位置作为当前位置;
若所述当前位置为需要解码的第一个所述位置,确定所述当前位置对应的候选词汇表包括预设标识,计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇;
若所述当前位置不为需要解码的第一个所述位置,以前一个所述位置的词汇为约束条件更新所述当前位置对应的候选词汇表,并计算所述当前位置对应的候选词汇表中每个词汇属于所述当前位置的概率,并选择出概率最大的词汇作为所述当前位置的词汇。
6.根据权利要求1所述的问答方法,其特征在于,所述获得所述生成模型输出的所述问题对应的推理程序,包括:
解析程序骨架;
以所述外部知识库的部分作为参数候选池;
从所述参数候选池中,选择所述程序骨架所需的参数,得到所述问题对应的推理程序。
7.一种问答装置,其特征在于,包括:
程序获得模块,用于将问题输入生成模型,获得所述生成模型输出的所述问题对应的推理程序;所述问题对应的推理程序包括多个基本函数;
推理程序执行模块,用于基于目标知识库,执行所述问题对应的推理程序,得到所述问题的答案;
其中,所述生成模型是基于所述目标知识库之外的外部知识库和对应的第一数据集,以及所述目标知识库和对应的第二数据集,进行训练得到的,所述第一数据集包括第一问题样本和对应的第一推理程序标签,所述第二数据集包括第二问题样本和对应的答案样本;所述生成模型是通过如下方式训练得到的:基于所述外部知识库,以所述第一问题样本为输入,以输出所述第一推理程序标签为目标,对预设模型进行预训练;基于所述目标知识库,以所述第二问题样本输入,以输出执行结果为所述第二问题样本对应的答案样本的第二推理程序为目标,对预设模型进行训练,得到所述生成模型;
所述生成模型用于通过解码程序的树形结构所转换的序列中每个位置的词汇,得到所述问题对应的推理程序,其中,每个所述位置的词汇是从与所述位置对应的候选词汇表中选择的;或者,所述生成模型用于通过解析程序骨架以及所述程序骨架所需的参数,得到所述问题对应的推理程序。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述问答方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述问答方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440775.1A CN115617954B (zh) | 2022-11-17 | 2022-11-17 | 问答方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440775.1A CN115617954B (zh) | 2022-11-17 | 2022-11-17 | 问答方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115617954A CN115617954A (zh) | 2023-01-17 |
CN115617954B true CN115617954B (zh) | 2023-03-28 |
Family
ID=84878150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211440775.1A Active CN115617954B (zh) | 2022-11-17 | 2022-11-17 | 问答方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617954B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117634617B (zh) * | 2024-01-25 | 2024-05-17 | 清华大学 | 知识密集型推理问答方法、装置、电子设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188182B (zh) * | 2019-05-31 | 2023-10-27 | 中国科学院深圳先进技术研究院 | 模型训练方法、对话生成方法、装置、设备及介质 |
CN111241807B (zh) * | 2019-12-31 | 2021-06-29 | 浙江大学 | 一种基于知识引导注意力的机器阅读理解方法 |
US11544597B2 (en) * | 2020-04-30 | 2023-01-03 | International Business Machines Corporation | Problem manipulators for language-independent computerized reasoning |
CN112818098B (zh) * | 2021-01-29 | 2023-11-24 | 深圳平安智慧医健科技有限公司 | 基于知识库的对话生成方法、装置、终端及存储介质 |
CN112988996B (zh) * | 2021-03-10 | 2024-03-08 | 中国平安人寿保险股份有限公司 | 知识库生成方法、装置、设备及存储介质 |
CN113850387A (zh) * | 2021-09-10 | 2021-12-28 | 深圳市中孚恒升科技有限公司 | 专家系统知识库构建方法、问答方法、系统、装置及介质 |
-
2022
- 2022-11-17 CN CN202211440775.1A patent/CN115617954B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115617954A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501182B2 (en) | Method and apparatus for generating model | |
CN113672708B (zh) | 语言模型训练方法、问答对生成方法、装置及设备 | |
CN110727779A (zh) | 基于多模型融合的问答方法及系统 | |
CN117009490A (zh) | 基于知识库反馈的生成式大语言模型的训练方法和装置 | |
AU2014315620B2 (en) | Methods and systems of four valued analogical transformation operators used in natural language processing and other applications | |
CN110442880B (zh) | 一种机器翻译译文的翻译方法、装置及存储介质 | |
CN112766507B (zh) | 基于嵌入式和候选子图剪枝的复杂问题知识库问答方法 | |
CN114528898A (zh) | 基于自然语言命令的场景图修改 | |
CN117390497B (zh) | 基于大语言模型的类目预测方法、装置和设备 | |
CN112420205B (zh) | 实体识别模型生成方法、装置及计算机可读存储介质 | |
CN112328800A (zh) | 自动生成编程规范问题答案的系统及方法 | |
CN111881264B (zh) | 一种开放领域问答任务中长文本检索的方法和电子设备 | |
CN110084323A (zh) | 端到端语义解析系统及训练方法 | |
CN115617954B (zh) | 问答方法、装置、电子设备及存储介质 | |
CN115438674A (zh) | 实体数据处理、实体链接方法、装置和计算机设备 | |
CN116561251A (zh) | 一种自然语言处理方法 | |
CN110909174B (zh) | 一种基于知识图谱的简单问答中实体链接的改进方法 | |
CN113971394A (zh) | 文本复述改写系统 | |
CN118467985A (zh) | 一种基于自然语言的训练评分方法 | |
CN118446182A (zh) | 基于同义词网络和反向引用对比学习的icd自动编码方法和装置 | |
CN116386895B (zh) | 基于异构图神经网络的流行病舆情实体识别方法与装置 | |
CN113468311B (zh) | 一种基于知识图谱的复杂问句问答方法、装置及存储介质 | |
CN115238705A (zh) | 语义解析结果重排序方法及系统 | |
CN111767388B (zh) | 一种候选池生成方法 | |
CN113626574A (zh) | 一种信息查询方法及系统及装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |