一种基于多跳推理的检索方法及装置与流程

文档序号:28168222发布日期:2021-12-24 23:02阅读:77来源:国知局
一种基于多跳推理的检索方法及装置与流程

1.本发明涉及智能检索查询领域,尤其是涉及一种基于多跳推理的检索方法 及装置。


背景技术:

2.开放域问答(qa)是我们利用大型文本语料库中的知识的一种重要手段, 并且可以进行多种查询而无需提前建立知识模式。使此类系统能够执行多步推 理可以进一步扩展我们探索这些语料库中知识的能力。
3.在最近提出的大规模qa数据集的推动下,开放域问答已经取得了很大进展。 现有技术中的一种分两个阶段的方法,即检索问题的相关内容,然后阅读信息 检索(ir)组件返回的段落以得出最终答案。此后,这种“rank和read”方法 已在各种开放域质量保证系统中采用和扩展,但是此类系统的一个前提是仅限 于回答不需要多跳的问题/多步骤推理。这是因为对于许多多跳问题,不是所有 的相关上下文都可以在单个检索步骤中获得。


技术实现要素:

4.本发明主要是针对无法在单个检索步骤中获得答案的问题,提供一种基于 多跳推理的检索方法及装置。
5.本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种基于 多跳推理的检索方法,包括以下步骤:
6.s1、给定一个问题,初始的当前推理路径仅包含问题本身;
7.s2、使用检索器从当前推理路径中生成搜索查询,搜索查询包括新的查询 词;
8.s3、读取器将不在推理路径中的一个段落附加到当前推理路径中得到临时 推理路径,然后通过搜索查询在临时推理路径中寻找问题的答案,重复此过程 直至遍历所有不在当前推理路径中的段落;
9.s4、如果步骤s3找到至少一个答案,跳转到步骤s6,如果一个答案都找不 到,跳转到步骤s5;
10.s5、重排序器根据当前推理路径对各个不在当前推理路径中的段落评分, 并将排名最高的段落附加到当前推理路径形成新的当前推理路径,如果推理路 径的总段落数达到阈值,则停止检索过程,如果未达到阈值则将更新后的当前 推理路径提供给检索器,跳转到步骤s2;
11.s6、以最高的可回答性得分预测答案。
12.基于多跳推理的检索方法还包括训练方法:
13.假设系统的外部环境是一个固定的全文索引,在每一次查询检索之后,获 得一个回报r
t
,t表示当前的轮次;预期回报值表达为:
[0014][0015]
其中,γ∈[0,1]是折损因子,每次查询最多进行t轮;θ指这个模型的参 数,e为取期望值操作;
[0016]
加入一个基线bias:
[0017][0018]
b为预设常数,rt为加入基线后的结果;
[0019]
最终针对强化学习rl的损失函数为:
[0020][0021]
p是概率,x
j
是第j个字符输出,k是推理路径添加的新段落,k是推理路 径,θ是模型参数,表示求导操作。
[0022]
作为优选,检索器在每一步生成见检索查询时对于每一个字符的二分输出p(x
i
=1|p)为第一个行动,重排序器对于候选的段落进行排序是第二个行动;检索 索引和阅读器根据问题本身或者正确答案来判断当前推理路径是否包含所有需 要找到的段落;每次成功找到一个正确段落则r=5,每次增加一轮查询则r=

1。
[0023]
本方案通过配置有监督学习sl:强化学习rl的比率来控制强化学习和监督 学习的比例,从而得到最佳的结果。
[0024]
作为优选,可回答性得分为最可能的肯定回答与无答案预测知见的对比似 然数;段落评分为通过将模型的第一个输出字符的隐藏表示与线性变换相乘得 到的分数。
[0025]
一种基于多跳推理的检索装置,包括:
[0026]
检索器,通过从推理路径中旋转单词来生成自然语言搜索查询;
[0027]
阅读器,从推理路径中提取答案,如果置信度不够高则弃权;
[0028]
重排序器,为每个检索到的段落分配一个标量分数作为当前推理路径的潜 在延续。
[0029]
本发明带来的实质性效果是,可以在不依赖人工标注推理路径的场景下, 利用深度强化学习,针对任意文本知识库自动寻找最佳的推理路线。
附图说明
[0030]
图1是本发明的一种基于多跳推理的检索方法流程图。
具体实施方式
[0031]
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0032]
实施例:多跳问答数据集的出现引起了学术界对多跳qa的兴趣。与类似 squad的
数据集相比,它们的设计更具挑战性,其特征在于需要多个上下文的 问题记录答案,测试qa系统的能力,以在存在多个证据的情况下推断出答案, 并在大量候选文档中有效地找到证据。但是,由于这些数据集仍然相对较新, 因此,大多数现有研究都集中在少数文档设置中,其中给出了相对少量的上下 文文档,并且这些文档保证包含着“正确的”证据文档。在现实使用中,这个 假设条件几乎是不可能成立的。
[0033]
在本方案中,我们提出了multiq算法,在不依赖人工标注推理路径的场景 下,利用深度强化学习,针对任意文本知识库自动寻找最佳的推理路线。我们 的系统是基于迭代搜索的基础架构,但是不同于过往的系统依赖人工规则得到 每一次跳跃对应的问题查询,multiq仅仅用这一类专家规则作为预训练数据。 在通过监督学习初步得到问题生成模型之后,multiq利用仿真模型探索潜在的 推理路线,并且利用基于policy gradient的深度强化学习算法在线更新问题生成 模型,从而获得更好的查询生成模型。此外,我们提出了更加稳定的训练算法, 通过迭代监督学习和强化学习,可以有效的避免模型训练崩塌等问题。
[0034]
我们在hotpot数据集上测试了multiq算法,实验结果表明通过multiq算 法,我们可以获得性能远超仅基于人工规则训练和得到的迭代检索引擎。在 hotpot数据集上达到了90%的召回率,对于一级搜索自后的片段,召回率提高 了58%。
[0035]
受一系列trec质量检查竞赛的启发,机器阅读理解模型被与检索系统相 结合,实现开放问答的工作。例如使用tf

idf建立了一个简单的倒排索引查找, 并使用该问题作为查询来检索前5个结果,以供读者模型产生答案。关于开放 域问答的最新工作在很大程度上遵循了这种检索和阅读方法,并着重考虑了在 考虑方面具有问答性能的信息检索组件。但是,这些单步检索和阅读方法从根 本上不足以解决需要多跳推理的问题,尤其是在无法轻易从该问题中检索必要 的证据。
[0036]
qangaroo和hotpotqa是迄今为止规模最大的多跳qa数据集。前者是 围绕知识库及其中的知识模式构建的,而后者则在众包和基于跨度的评估中采 用了自由形式的问题生成过程。这两个数据集的设计过程中都提供了人工标注 的支持事实以及一小组干扰文档,以减轻计算负担。然而,研究人员表明,这 有时会导致博弈环境,因此并不总是测试模型的多跳推理能力。因此,在这项 工作中,我们将重点放在hotpotqa的完整wiki设置上,该功能具有真正的 开放域设置,包含更多不同的问题,而不是局限在十几个干扰项。
[0037]
在更广泛的层面上,ir社区已经清楚地认识到对多步骤搜索,查询任务分 解和子任务提取的需求,但直到最近随着大规模数据集的发布,人们才对多跳 qa进行了深入研究。许多研究专注于在少数文档环境中,开发多跳推理模型, 例如通过对实体图进行建模或针对上下文对候选答案进行评分。但是,当支持 文档和/或候选答案的数量超过几十个时,这些方法会遇到扩展性的问题。有人 将实体图建模应用于hotpotqa,从问题开始扩展了一个小实体图,以到达 qa模型的上下文。但是,以实体名称为中心,此模型可能会丢失问题中纯描述 性的线索。现有的一种在远程监督下训练的神经检索器,以偏向包含给定问题 答案的段落,然后将其用于多步骤读者

推理者框架中。但是,这并不能从根本 上解决开放域多跳检索的可发现性问题,因为通常并非所有证据都可以通过问 题直接获得。此外,神经检索模型缺乏可解释性,这在实际应用中至关重要。 相反,通过将问题分解为子问题并进行迭代检索和问题回答可以大规模回答多 跳问题,这与我们的工作有着相似的动机。但
是,在该工作中研究的问题是基 于固定模式的逻辑形式的,这为问题分解提供了额外的监督,但限制了问题的 多样性。类似的想法被应用于hotpotqa,但是这种方法类似地需要分解的人 工标注数据,并且作者没有将其应用于迭代检索。
[0038]
首先,我们正式定义我们需要解决的问题和相关核心变量。给定一个查询 语句q和初始推理路径p,该系统的目标是通过不断利用q和p,生成下一个虚 拟查询语句q

,通过检索引擎得到相关的段落d,然后将d中某一篇文章纳入 到p中,周而复始,直到所有的相关段落都被包含在p中,也就意味着检索成 功。
[0039]
具体来说,给定一个问题q,初始推理路径仅包含问题本身,即p0=[q], 我们尝试使用检索器从中生成搜索查询,以检索一组相关文档d1d,这可能有 助于回答这个问题,或者揭示有关我们需要回答q的下一个证据的线索。然后, 读取器模型尝试在d1中附加每个文档以回答问题。如果从这些推理路径中可以 找到多个答案,我们将以最高的可回答性得分预测答案。如果找不到答案,则 reranker根据当前推理路径对每个检索到的段落评分,并将排名最高的段落附加 到当前推理路径,即p
i+1
=p
i
+[argmax
d∈d1
reranker(p
i
,d],然后将更新的推理 路径提供给检索器以生成新的搜索查询。重复此迭代过程,直到从推理路径之 一预测出答案为止,或者直到推理路径总共达到k个文档,其中k是系统允许 的最大迭代次数。整个过程如图1所示。
[0040]
为了降低计算成本,我们构建了一个多任务模型构建,该模型建立在执行 所有三个子任务的预训练transormer模型上。从高层次上讲,它由一个 transormer编码器组成,该编码器将问题和到目前为止检索到的所有段落(推理 路径p)作为输入,并为每一个提供一组特定于任务的参数,供给检索、重排和 阅读三个子任务。具体地说,检索器(ranker)通过从推理路径中选择单词来 生成自然语言搜索查询,阅读器(reader)从推理路径中提取答案,如果其置信 度不够高则弃权,并且重新排序器(reranker)为每个检索到的段落分配一个标 量分数作为当前推理路径的潜在延续。
[0041]
检索器(ranker):检索器的目的是生成自然语言查询,以从基于现成文本 的检索引擎中检索相关文档。这使系统能够以可解释和可控制的方式执行开放 域质量检查,用户可以轻松地了解模型的行为,并在必要时进行干预。我们建 议从当前推理路径中提取搜索查询,也就是原始问题以及我们已经检索的所有 段落。这种方法源于以下观察:推理路径与要检索的下一段之间通常存在强烈 的语义重叠。而不是严格限制查询字符串始终是推理路径的子字符串。在本文 中,我们放宽了约束条件,取而代之的是允许搜索查询成为推理路径的任何子 序列,因此允许使用更灵活的搜索短语组合。
[0042]
为了从推理路径预测这些搜索查询,我们在共享的transormer编码器模型 之上应用了基于令牌的二进制分类器,以确定每个令牌是否包含在最终查询中。 在训练时,我们导出监督信号来训练具有二进制交叉熵损失的这些分类器;在 测试时,我们从推理路径中选择要包含的查询词的截止阈值。在实践中,我们 发现增强模型以预测更多查询词有利于增加检索中目标段落的召回率。
[0043]
我们利用aibase中的全文检索引擎实现后续实验中对于维基百科数据的检 索任务。
[0044]
阅读器(reader):读者尝试在给出由问题和检索到的段落组成的推理路径 的情况下找到答案,并同时为该推理路径分配答案得分,以评估找到原始问题 答案的可能性。
由于并非所有推理路径都能得出最终答案,因此我们训练基于 第一个输出字符([cls]令牌)transormer编码器表示形式的分类器,以确定在 给出推理路径的情况下是否应预测答案。使用跨度开始分类器和跨度结束分类 器从上下文中预测跨度答案。为了支持hotpotqa中的特殊非抽取式答案(例如
ꢀ“
是/否”),我们进一步将这些作为分类器的选项包括在内,以在4向分类器中 进行预测。
[0045]
可回答性得分用于从所有候选推理路径中选择最佳答案,并用作为系统的 停止标准。我们将可回答性定义为最可能的肯定回答与no answer预测之间 的对数似然比。对于no answer示例,我们进一步训练跨度分类器以将[cls] 令牌预测为“span”,因此,如果肯定答案是span,我们还将包括最佳跨度和[cls] 跨度之间的似然比。与预测概率相比,这种似然比公式受序列长度的影响较小, 因此可以更轻松地跨不同长度的推理路径分配全局阈值以停止进一步的检索。
[0046]
重排序器(reranker):当阅读器无法从推理路径中找到答案时,重排序器选 择所检索段落之一以对其进行扩展,以便检索者可以生成新的搜索查询来检索 新的上下文来回答问题。为了实现这一点,我们通过将[cls]令牌的隐藏表示与 线性变换相乘,为每个潜在的扩展推理路径分配一个分数,然后选择得分最高 的扩展。在训练时,我们将所有检索到的段落的reranker分数标准化,并使从检 索到的段落中选择黄金支持段落的对数可能性最大化。为避免transormer编码 器的线性计算成本与获取的段落数成线性比例,我们采用negative sampling的 方法来估计这种概率分布。具体来说我们通过从全库和类似文章中进行随机采 样来获得负样本,然后通过每个batch中的负样本来和交叉熵损失函数来训练模 型。
[0047]
根据以上设定,如何训练检索器中的问题生成模块和重排序器是最大的难 题。因为具体的推理路径是未知的,我们必须通过某种方法去猜测或者得到最 佳的推理路径。
[0048]
通过规则生成专家意见:通过专家规则的方式生成监督训练的标注数据。
[0049]
具体来说,可以通过如下步骤获得“最佳”推理路径:
[0050]
1.找到p中所有在最终正确段落中重复的单词。
[0051]
2.假如部分单词是连续出现在q对其进行合并,形成n个候选span,s
i

[0052]
3.分别计算每一个span的重要程度,具体计算公式为:
[0053]
i(s
i
)=rank(t,{s
j≠i
})

rank(t,s
j
)
[0054]
也就是说能够独立拉高正确段落排名的span会更加重要。
[0055]
4.根据每个span的重要程度,得到前m个高概率查询语句q’。
[0056]
5.对于每一个候选q’,我们对其逐一检索,留下排名最高的数据点。
[0057]
由此可以看出,上述方法系统必须依靠最终的效果,才能看到长期投入后 的回报。
[0058]
reinforce:强化学习(rl)模型基于马尔可夫决策过程(mdp)或者 隐马尔可夫决策过程(pomdp)。mdp是一个tuple(s,a,p,γ,r),其状态为一 个针对状态的集合;a是一组动作;p定义转移概率p(s0|s,a);r定义了预期的 即时奖励r(s,a);γ∈[0,1)是折现因子。强化学习的目标是找到最佳策略π*, 以使预期的累积回报最大化。我们假设系统的外部环境是一个固定的全文索引, 在每一次查询检索之后,我们的智能体可以获得一个这t轮的回报reward r
t
。我 们然后就可以把预期回报值表达为
[0059][0060]
其中,γ∈[0,1]是折损因子,每次查询最多进行t轮。同时,为了降低 variance,通常还会加入一个基线:
[0061][0062]
基于如上设定,此强化学习系统的核心元素总结如下:
[0063]
a行动:ranker在每一步生成query时对于每一个token的二分输出p(x
i
=1|p) 为第一个行动。其次,reranker对于n个候选文章进行排序是第二个行动。
[0064]
e环境:检索索引和reader根据p或者正确答案来判断当前p是否包含所有 需要找到的段落。
[0065]
r奖励:每次成功找到了一个正确段落r=5,每次增加一轮查询r=

1。我 们用这种方法鼓励系统找到更加短、也就是更加高效的推理路径。
[0066]
最终针对rl的损失函数为:
[0067][0068]
在训练过程中,我们通过配置sl:rl的比率来控制强化学习和监督学习 的比例,旨在防止模型在训练过程最终变得不可控。
[0069]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属 技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采 用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定 义的范围。
[0070]
尽管本文较多地使用了检索器、阅读器、推理路径等术语,但并不排除使 用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的 本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1