掌桥专利:专业的专利平台
掌桥专利
首页

查询文档排序方法、装置及电子设备

文献发布时间:2023-06-19 09:54:18


查询文档排序方法、装置及电子设备

技术领域

本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种查询文档排序方法、装置及电子设备。

背景技术

在现实生活中,用户在使用互联网服务(例如:网络购物、在线转账等)时,可能会遇到用户自己难以解决的问题。在这种情况下,用户通常会通过智能客服进行咨询,以由智能客服提供用户遇到的问题的解答。

举例来说,用户通常可以通过在智能客服的用户界面中输入查询问句,向智能客服提出问题,以由智能客服针对该查询问句进行解答,即由智能客服在数据库中查找与该查询问句对应的查询文档,并将查找到的查询文档通过智能客服的用户界面展示给用户,供用户查看。

随着业务用户量的逐渐增大,以及业务类型的日趋复杂,如何使智能客服更加高效、准确地为用户提供问题的解答也就成为了亟待解决的问题。

发明内容

本说明书提出一种查询文档排序方法,所述方法包括:

基于用户输入的查询问句和与所述查询问句对应的多个查询文档,构建输入向量;其中,所述输入向量中与各个查询文档对应的位置上被分别添加了代表所述查询文档的语义的预设标识;

将所述输入向量输入至BERT模型进行语义表示计算,并获取所述BERT模型输出的与各个预设标识对应的语义向量;

将与各个预设标识对应的语义向量输入至训练完成的排序学习模型,计算与各个语义向量对应的匹配度评分,并输出按照所述匹配度评分进行排序的排序结果。

可选地,所述排序学习模型为基于文档列表方法的排序学习模型。

可选地,所述方法还包括:

获取预设数量的训练样本;其中,所述训练样本包括查询问句和与所述查询问句对应的多个查询文档,所述多个查询文档被分别标注了指示查询文档与查询问句的匹配度排序的标签;

基于所述训练样本,按照预设的优化目标对所述排序学习模型的评分函数进行有监督的训练;其中,所述优化目标包括所述训练样本中与查询问句的匹配度最高的查询文档对应于查询问句的匹配度评分最大。

可选地,所述基于所述训练样本,按照预设的优化目标对所述排序学习模型的评分函数进行有监督的训练,包括:

基于所述训练样本,对所述排序学习模型的评分函数进行有监督的训练,以使与所述评分函数对应的损失函数收敛;

其中,所述损失函数包括:

L为所述损失函数的数值,

可选地,所述方法还包括:

从所述查询问句中提取出至少一个关键词;

获取包含任一所述关键词的多个查询文档,作为与所述查询问句对应的多个查询文档。

可选地,所述输出按照所述匹配度评分进行排序的排序结果,包括:

按照所述匹配度评分从大到小的顺序对所述多个查询文档进行排序,并输出排序后的所述多个查询文档。

本说明书还提出一种查询文档排序装置,所述装置包括:

构建模块,基于用户输入的查询问句和与所述查询问句对应的多个查询文档,构建输入向量;其中,所述输入向量中与各个查询文档对应的位置上被分别添加了代表所述查询文档的语义的预设标识;

计算模块,将所述输入向量输入至BERT模型进行语义表示计算,并获取所述BERT模型输出的与各个预设标识对应的语义向量;

排序模块,将与各个预设标识对应的语义向量输入至训练完成的排序学习模型,计算与各个语义向量对应的匹配度评分,并输出按照所述匹配度评分进行排序的排序结果。

可选地,所述排序学习模型为基于文档列表方法的排序学习模型。

可选地,所述装置还包括:

第一获取模块,获取预设数量的训练样本;其中,所述训练样本包括查询问句和与所述查询问句对应的多个查询文档,所述多个查询文档被分别标注了指示查询文档与查询问句的匹配度排序的标签;

训练模块,基于所述训练样本,按照预设的优化目标对所述排序学习模型的评分函数进行有监督的训练;其中,所述优化目标包括所述训练样本中与查询问句的匹配度最高的查询文档对应于查询问句的匹配度评分最大。

可选地,所述训练模块:

基于所述训练样本,对所述排序学习模型的评分函数进行有监督的训练,以使与所述评分函数对应的损失函数收敛;

其中,所述损失函数包括:

L为所述损失函数的数值,

可选地,所述装置还包括:

提取模块,从所述查询问句中提取出至少一个关键词;

第二获取模块,获取包含任一所述关键词的多个查询文档,作为与所述查询问句对应的多个查询文档。

可选地,所述排序模块:

按照所述匹配度评分从大到小的顺序对所述多个查询文档进行排序,并输出排序后的所述多个查询文档。

本说明书还提出一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现上述方法的步骤。

本说明书还提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。

在上述技术方案中,针对用户输入的查询问句和与该查询问句对应的多个查询文档,可以由BERT模型同时计算得到分别与这多个查询文档对应的语义表示向量,并将这多个语义向量输入至排序学习模型,由该排序学习模型计算得到这多个查询文档分别对应于该查询问句的匹配度评分,并输出按照该匹配度评分进行排序得到的排序结果。采用这样的方式,由于可以通过一次性计算得到多个查询文档分别对应于相应的查询问句的匹配度评分,并直接输出按照该匹配度评分进行排序得到的排序结果,因此与相关技术中需要先通过多次计算,分别计算得到这多个查询文档对应于该查询问句的匹配度评分,再根据该匹配度评分对这多个查询文档进行排序的方式相比,可以简化查询文档的排序步骤,提高查询文档的排序效率,从而可以更快速地为用户提供信息查询服务,提升用户体验。

附图说明

图1是本说明书一示例性实施例示出的一种查询界面的示意图;

图2是一种BERT模型的示意图;

图3是本说明书一示例性实施例示出的一种查询文档排序系统的示意图;

图4是本说明书一示例性实施例示出的一种查询文档排序方法的流程图;

图5是本说明书一示例性实施例示出的另一种查询文档排序方法的流程图;

图6是本说明书一示例性实施例示出的一种查询文档排序装置所在电子设备的硬件结构图;

图7是本说明书一示例性实施例示出的一种查询文档排序装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以智能客服为例,用户通常可以通过在智能客服的用户界面中输入查询问句,向智能客服提出问题,以由智能客服在数据库中查找与该查询问句对应的查询文档,并将查找到的查询文档通过智能客服的用户界面展示给用户,供用户查看。

在与智能客服类似的信息查询的应用场景下,实现信息查询功能的服务端通常可以面向用户提供查询界面,从而使用户可以通过该查询界面输入需要查询的内容;其中,用户输入的需要查询的内容即为查询问句。后续,服务端可以基于该查询问句,在存储了查询文档的数据库中查找与该查询问句对应的查询文档,并向用户输出查找到的查询文档,例如:将查找到的查询文档展示在该查询界面中,以供用户查看;其中,查询文档具体可以包括文档内容和用于概括该文档内容的文档标题。

请参考图1,图1是本说明书一示例性实施例示出的一种查询界面的示意图。

以如图1所示的查询界面为例,用户可以在该查询界面包含的文本输入框中输入“怎么转账”作为查询问句。后续,服务端可以基于“怎么转账”这一查询问句,在存储了查询文档的数据库中查找与该查询问句对应的查询文档;假设服务端查找到的与该查询问句对应的查询文档包括文档标题为“转账操作”、“转账限额”和“转账时效”的三个查询文档,则服务端可以将这三个查询文档展示在该查询界面中,以供用户查看。进一步地,服务端在检测到用户针对这三个查询文档中的某个查询文档的文档标题的点击操作时,可以向用户输出该查询文档的文档内容,以供用户查看。

在实际应用中,如果服务端查找到多个与用户输入的查询问句对应的查询文档,则服务端在向用户输出查找到的这多个查询文档时,可以先对这多个查询文档进行排序,得到相应的排序结果,再向用户输出按照该排序结果进行排列的这多个查询文档,例如:服务端可以针对该查询问句和这多个查询文档,确定各个查询文档与该查询问句的匹配度(即该查询文档用于解答由该查询问句提出的问题的合适程度),并按照匹配度从高到低的顺序对这多个查询文档进行排序,得到相应的排序结果,再向用户输出按照该排序结果进行排列的这多个查询文档。

继续以图1所示的查询界面为例,假设针对上述查询问句和上述三个查询文档,服务端确定文档标题为“转账操作”的查询文档与上述查询问句的匹配度最高,文档标题为“转账限额”的查询文档与该查询问句的匹配度排在第2位,文档标题为“转账时效”的查询文档与该查询问句的匹配度最低,则服务端可以按照匹配度从高到低的顺序对这三个查询文档进行排序,得到以下排序结果:1、文档标题为“转账操作”的查询文档;2、文档标题为“转账限额”的查询文档;3、文档标题为“转账时效”的查询文档。在这种情况下,服务端在将这三个查询文档展示在上述查询界面中时,可以将该排序结果中序号为1的查询文档显示在最上方,将该排序结果中序号为2的查询文档显示在中间,将该排序结果中序号为3的查询文档显示在最下方。

请参考图2,图2是一种BERT模型的示意图。

在实际应用中,针对一个查询问句,以及与该查询问句对应的一个查询文档,可以基于该查询问句和该查询文档,构建一个输入向量。

具体地,可以对该查询问句和该查询文档进行单词化拆分,以将该查询问句和该查询文档拆分为多个单词(token),并一方面在拆分得到的所有单词之前添加CLS标志位,作为代表该查询问句和该查询文档的整体语义的标识,另一方面分别在从该查询问句拆分得到的所有单词之后,以及在从该查询文档拆分得到的所有单词之后添加SEP标志位,作为分隔标识,形成一个输入向量。

在构建了上述输入向量之后,可以对该输入向量中的从上述查询问句和上述查询文档中拆分得到的各个单词、CLS标志位和SEP标志位进行向量化处理,以得到分别与各个单词、CLS标志位和SEP标志位对应的表示向量。

在实际应用中,针对从上述查询问句和上述查询文档中拆分得到的任意一个单词,或者上述CLS标志位、上述SEP标志位,可以通过对该单词或该标志位进行词嵌入(tokenembedding)处理、句子嵌入(segment embedding)和位置嵌入(position embedding),得到与该单词或该标志位对应的表示向量。

具体地,以从该查询问句和该查询文档中拆分得到的任意一个单词为例,一方面可以对该单词进行token embedding,得到与该单词对应的第一表示子向量,另一方面可以对该单词在该输入向量中所属的句子(SEP标志位用于分隔不同的句子)进行segmentembedding,得到与该单词对应的第二表示子向量,再一方面可以对该单词在该输入向量中的位置进行position embedding,得到与该单词对应的第三表示子向量;后续,可以将该第一表示子向量、该第二表示子向量和该第三表示子向量相加,并将相加得到的向量确定为与该单词对应的表示向量。

需要说明的是,与从上述查询问句和上述查询文档中拆分得到的各个单词对应的表示向量、与上述CLS标志位对应的表示向量,以及与上述SEP标志位对应表示向量的特征维度的数量通常都是相等的。

在得到了分别与上述输入向量中的从上述查询问句和上述查询文档中拆分得到的各个单词、CLS标志位和SEP标志位对应的表示向量之后,可以基于这些表示向量构建输入矩阵。

如图2所示,可以对与从上述查询问句和上述查询文档中拆分得到的各个单词对应的表示向量、与上述CLS标志位对应的表示向量,以及与上述SEP标志位对应表示向量进行排列,并将最终形成的矩阵确定为输入向量。

在实际应用中,可以分别将各个表示向量作为矩阵的行向量进行排列。举例来说,假设用户输入的查询问句为Q,与该查询问句对应的一个查询文档为T1;进一步假设可以将查询问句Q拆分为q1、q2这两个单词,并计算得到分别与这两个单词对应的表示向量为

在构建了上述输入矩阵之后,可以将构建的该输入矩阵输入至BERT模型进行编码处理,得到与该输入矩阵对应的编码矩阵。

需要说明的是,对于与输入矩阵对应的编码矩阵而言,该编码矩阵中的某个位置上的向量即为与该输入矩阵中的相同位置上的向量对应的编码向量(可以视为语义向量)。

继续以上述举例为例,假设通过对上述输入矩阵进行编码处理,得到的编码矩阵为

由于上述CLS标志位可以作为代表上述查询问句和上述查询文档的整体语义的标识,因此与CLS标志位对应的语义向量可以指示该查询文档与该查询问句的匹配度。在这种情况下,在得到了与CLS标志位对应的语义向量之后,可以将该语义向量映射为数值,并将该数值作为该查询文档对应于该查询问句的匹配度评分,例如:可以基于由技术人员预先设置的评分函数,将该语义向量作为该评分函数中的自变量,计算对应的因变量,并将计算得到的因变量的数值作为该查询文档对应于该查询问句的匹配度评分。

相关技术中,如果查找到N个与用户输入的查询问句对应的查询文档,则需要分别计算这N个查询文档对应于该查询问句的匹配度评分,即针对这N个查询文档中的任意一个查询文档,都需要基于该查询问句和该查询文档,构建输入向量,并将构建的该输入向量输入至BERT模型进行计算,以得到与该输入向量中代表该查询问句和该查询文档的整体语义的CLS标志位对应的语义向量,再将得到的该语义向量映射为该查询文档对应于该查询问句的匹配度评分;后续,可以进一步按照计算得到的匹配度评分对这N个查询文档进行排序。

本说明书旨在提供一种基于BERT(Bidirectional Encoder Representationfrom Transformers)模型和训练完成的排序学习(Learning to Rank,LTR)模型,针对用户输入的查询问句(Query)和与该查询问句对应的多个查询文档(Document),通过一次性计算得到各个查询文档对应于该查询问句的匹配度评分,并输出按照该匹配度评分进行排序得到的排序结果的技术方案。

在具体实现时,为了实现对查询文档的排序,从而便于向用户输出所需的查询文档,首先可以获取用户输入的查询问句,以及与该查询问句对应的多个查询文档。

在获取到用户输入的查询问句,以及与该查询问句对应的多个查询文档之后,可以基于该查询问句和这多个查询文档,构建一个输入向量;其中,该输入向量中与各个查询文档对应的位置上被分别添加了代表该查询文档的语义的预设标识。

在基于用户输入的查询问句,以及与该查询问句对应的多个查询文档构建了上述输入向量之后,可以将该输入向量输入至BERT模型进行语义表示计算。

在获取到了与用户输入的查询问句对应的多个查询文档的语义向量之后,可以将获取到的这多个语义向量输入至训练完成的排序学习模型,由该排序学习模型将这多个语义向量中的各个语义向量映射为各个查询文档对应于该查询问句的匹配度评分,并输出按照计算得到的匹配度评分进行排序的排序结果。

在上述技术方案中,针对用户输入的查询问句和与该查询问句对应的多个查询文档,可以由BERT模型同时计算得到分别与这多个查询文档对应的语义表示向量,并将这多个语义向量输入至排序学习模型,由该排序学习模型计算得到这多个查询文档分别对应于该查询问句的匹配度评分,并输出按照该匹配度评分进行排序得到的排序结果。采用这样的方式,由于可以通过一次性计算得到多个查询文档分别对应于相应的查询问句的匹配度评分,并直接输出按照该匹配度评分进行排序得到的排序结果,因此与相关技术中需要先通过多次计算,分别计算得到这多个查询文档对应于该查询问句的匹配度评分,再根据该匹配度评分对这多个查询文档进行排序的方式相比,可以简化查询文档的排序步骤,提高查询文档的排序效率,从而可以更快速地为用户提供信息查询服务,提升用户体验。

请参考图3,图3是本说明书一示例性实施例示出的一种查询文档排序系统的示意图。请结合图3,参考图4,图4是本说明书一示例性实施例示出的一种查询文档排序方法的流程图。该查询文档排序方法可以应用于上述提供信息查询服务的服务端,该服务端可以部署在电子设备上,该电子设备具体可以是服务器或计算机等,本说明书对此不作限制。如图4所示,该查询文档排序方法可以包括以下步骤:

步骤402,基于用户输入的查询问句和与所述查询问句对应的多个查询文档,构建输入向量;其中,所述输入向量中与各个查询文档对应的位置上被分别添加了代表所述查询文档的语义的预设标识;

步骤404,将所述输入向量输入至BERT模型进行语义表示计算,并获取所述BERT模型输出的与各个预设标识对应的语义向量;

步骤406,将与各个预设标识对应的语义向量输入至训练完成的排序学习模型,计算与各个语义向量对应的匹配度评分,并输出按照所述匹配度评分进行排序的排序结果。

在本实施例中,为了实现对查询文档的排序,从而便于向用户输出所需的查询文档,首先可以获取用户输入的查询问句,以及与该查询问句对应的多个查询文档。

在示出的一个实施方式中,在获取到用户输入的查询问句之后,可以先从该查询问句中提取出至少一个关键词,再获取包含这些关键词中的任意一个关键词的多个查询文档,作为与该查询问句对应的多个查询文档。

具体地,可以在存储了查询文档的数据库中,查找文档标题中包含上述任意一个关键词的多个查询文档,并将查找到的这多个查询文档作为与上述查询问句对应的多个查询文档。

举例来说,数据库中存储的查询文档可以如下表1所示:

表1

假设用户输入的查询问句为“怎么转账”,则可以从该查询问句中提取出“转账”作为关键词,从而可以在上述数据库中查找到标题为“转账操作”、“转账限额”和“转账时效”的三个查询文档,并将这三个查询文档作为与该查询问句对应的多个查询文档。

在本实施例中,在获取到用户输入的查询问句,以及与该查询问句对应的多个查询文档之后,可以基于该查询问句和这多个查询文档,构建一个输入向量;其中,该输入向量中与各个查询文档对应的位置上被分别添加了代表该查询文档的语义的预设标识。

具体地,可以对该查询问句和这多个查询文档进行单词化拆分,以将该查询问句和这多个查询文档拆分为多个单词(token),并一方面在拆分得到的所有单词之前添加CLS标志位,作为代表该查询问句和这多个查询文档的整体语义的标识,另一方面分别在从该查询问句拆分得到的所有单词之后,以及在从所有查询文档拆分得到的所有单词之后添加SEP标志位,作为分隔标识,再一方面分别在从各个查询文档拆分得到的所有单词之前添加代表该查询文档的语义的预设标识(用RANK标志位表示),形成一个输入向量。

需要说明的是,在对多个查询文档按照与查询问句的匹配度进行排序时,针对其中的某个查询文档添加的RANK标志位,可以代表该查询问句和该查询文档的整体的语义。

在实际应用中,可以分别在从各个查询文档拆分得到的所有单词之前添加RANK标志位,作为代表该查询文档的语义的预设标识,即此时与各个查询文档对应的位置为该查询文档的前一位;也可以分别在从各个查询文档拆分得到的所有单词之后添加RANK标志位,作为代表该查询文档的语义的预设标识,即此时与各个查询文档对应的位置为该查询文档的后一位;本说明书对代表各个查询文档的语义的预设标识的具体位置不作限制。

在本实施例中,在基于用户输入的查询问句,以及与该查询问句对应的多个查询文档构建了上述输入向量之后,可以将该输入向量输入至BERT模型进行语义表示计算。

由于上述RANK标志位可以作为代表上述查询文档的语义的标识,因此与该RANK标志位对应的语义向量可以指示该查询文档与上述查询问句的匹配度。在这种情况下,针对与该查询问句对应的多个查询文档中的任意一个查询文档,可以获取上述BERT模型输出的与上述输入向量中代表该查询文档的语义的RANK标志位对应的语义向量,作为与该查询文档对应的语义向量,并基于该语义向量计算该查询文档对应于该查询问句的匹配度评分。

具体地,可以对该输入向量中的从该查询问句和这多个查询文档中拆分得到的各个单词、RANK标志位、CLS标志位和SEP标志位进行向量化处理,以得到分别与各个单词、RANK标志位、CLS标志位和SEP标志位对应的表示向量。

在实际应用中,针对从上述查询问句和与该查询问句对应的多个查询文档中拆分得到的任意一个单词,或者上述RANK标志位、上述CLS标志位、上述SEP标志位,可以通过对该单词或该标志位进行词嵌入(token embedding)处理、句子嵌入(segment embedding)和位置嵌入(position embedding),得到与该单词或该标志位对应的表示向量。

需要说明的是,与从上述查询问句和与该查询问句对应的多个查询文档中拆分得到的各个单词对应的表示向量、与上述RANK标志位对应的表示向量、与上述CLS标志位对应的表示向量,以及与上述SEP标志位对应表示向量的特征维度的数量通常都是相等的。

在得到了分别与上述输入向量中的从上述查询问句和与该查询问句对应的多个查询文档中拆分得到的各个单词、RANK标志位、CLS标志位和SEP标志位对应的表示向量之后,可以基于这些表示向量构建输入矩阵。

如图3所示,可以对与从上述查询问句和与该查询问句对应的多个查询文档中拆分得到的各个单词对应的表示向量、与上述RANK标志位对应的表示向量、与上述CLS标志位对应的表示向量,以及与上述SEP标志位对应表示向量进行排列,并将最终形成的矩阵确定为输入矩阵。

在实际应用中,可以分别将各个表示向量作为矩阵的行向量进行排列。举例来说,假设用户输入的查询问句为Q,与该查询问句对应的两个查询文档分别为T1和T2;进一步假设可以将查询问句Q拆分为q1、q2这两个单词,并计算得到分别与这两个单词对应的表示向量为

在构建了上述输入矩阵之后,可以将构建的该输入矩阵输入至BERT模型进行编码处理,得到与该输入矩阵对应的编码矩阵。

需要说明的是,对于与输入矩阵对应的编码矩阵而言,该编码矩阵中的某个位置上的向量即为与该输入矩阵中的相同位置上的向量对应的编码向量(可以视为语义向量)。

继续以上述举例为例,假设通过对上述输入矩阵进行编码处理,得到的编码矩阵为

也即,可以将

在本实施例中,在获取到了与用户输入的查询问句对应的多个查询文档的语义向量之后,可以将获取到的这多个语义向量输入至训练完成的排序学习模型(Learning toRank,LTR),由该排序学习模型将这多个语义向量中的各个语义向量映射为各个查询文档对应于该查询问句的匹配度评分,并输出按照计算得到的匹配度评分进行排序的排序结果。

需要说明的是,上述排序学习模型具体可以是基于文档列表方法(ListWiseApproach)的排序学习模型。

在实际应用中,上述排序学习模型可以是由一层神经网络输出层构成的机器学习模型,也可以是由多层神经网络输出层构成的机器学习模型;本说明书对该排序学习模型的具体架构不作限制。

在示出的一种实施方式中,上述排序学习模型在计算得到与用户输入的查询问句对应的多个查询文档分别对应于该查询问句的匹配度评分之后,可以基于计算得到的这多个匹配度评分,按照匹配度评分从大到小的顺序对这多个查询文档进行排序,得到相应的排序结果,并输出该排序结果。

举例来说,假设与查询问句Q对应的四个查询文档分别为查询文档T1、查询文档T2、查询文档T3和查询文档T4;进一步假设通过该排序学习模型的评分函数的计算,将与查询文档T1对应的语义向量映射为匹配度评分1,将与查询文档T2对应的语义向量映射为匹配度评分2,将与查询文档T3对应的语义向量映射为匹配度评分3,将与查询文档T4对应的语义向量映射为匹配度评分4,且匹配度评分2>匹配度评分3>匹配度评分1>匹配度评分4,则该排序学习模型可以输出如下表2所示的排序结果:

表2

请参考图5,图5是本说明书一示例性实施例示出的另一种查询文档排序方法的流程图。

针对上述排序学习模型,如图5所示,可以采用以下步骤实现对该排序学习模型的训练:

步骤502,获取预设数量的训练样本;其中,所述训练样本包括查询问句和与所述查询问句对应的多个查询文档,所述多个查询文档被分别标注了指示查询文档与查询问句的匹配度排序的标签;

步骤504,基于所述训练样本,按照预设的优化目标对所述排序学习模型的评分函数进行有监督的训练;其中,所述优化目标包括所述训练样本中与查询问句的匹配度最高的查询文档对应于查询问句的匹配度评分最大。

在本实施例中,为了对上述排序学习模型进行训练,首先可以获取预设数量的训练样本;其中,这些训练样本可以包括查询问句和与该查询问句对应的多个查询文档,且这多个查询文档被分别标注了指示与该查询问句的匹配度排序的标签。

具体地,针对任意一个训练样本,可以按照与该训练样本中的查询问句的匹配度从高到低的顺序,对该训练样本中的各个查询文档进行排序,并为各个查询文档标注由匹配度排序得到的序号。

举例来说,一个训练样本可以如下表3所示:

表3

在如上表3所示的训练样本中,与查询问句Q对应的四个查询文档分别为查询文档T1、查询文档T2、查询文档T3和查询文档T4;其中,查询文档T2与查询问句Q的匹配度最高,查询文档T3与查询问句Q的匹配度排在第2位,查询文档T1与查询问句Q的匹配度排在第3位,查询文档T4与查询问句Q的匹配度最低。

在本实施例中,在获取到上述训练样本之后,可以基于这些训练样本,按照预设的优化目标对上述排序学习模型的评分函数进行有监督的训练;其中,该优化目标可以包括:针对任意一个训练样本,该训练样本中与查询问句的匹配度最高的查询文档对应于该查询问句的匹配度评分最大。

具体地,可以基于其中各个查询文档被分别标注了由匹配度排序得到的序号的训练样本,对该排序学习模型的评分函数进行有监督的训练,从而使由该排序学习模型的评分函数针对任意一个训练样本,计算得到的该训练样本中的序号最小的查询文档对应于该训练样本中的查询问句的匹配度评分最大。

继续以上述举例为例,在对该排序学习模型的评分函数进行有监督的训练之后,针对如图3所示的训练样本,由该排序学习模型的评分函数计算得到的查询文档T2对应于查询问句Q的匹配度评分最大。

在实际应用中,为了实现按照上述优化目标对上述排序学习模型的评分函数进行有监督的训练,可以在基于上述训练样本对该排序学习模型的评分函数进行有监督的训练时,通过判断与该排序学习模型的评分函数对应的损失函数是否收敛,确定该排序学习模型的评分函数是否达到该优化目标,即确定该排序学习模型的评分函数是否训练完成。如果该损失函数收敛,则可以确定该排序学习模型的评分函数训练完成;如果该损失函数不收敛,则可以确定该排序学习模型的评分函数未训练完成,从而可以继续对该排序学习模型的评分函数进行有监督的训练。

具体地,与该排序学习模型的评分函数对应的损失函数可以包括:

其中,L为该损失函数的数值,

需要说明的是,λ可以由技术人员根据实际需求预先设置,通常可以被设置为大于0且小于

在上述技术方案中,针对用户输入的查询问句和与该查询问句对应的多个查询文档,可以由BERT模型同时计算得到分别与这多个查询文档对应的语义表示向量,并将这多个语义向量输入至排序学习模型,由该排序学习模型计算得到这多个查询文档分别对应于该查询问句的匹配度评分,并输出按照该匹配度评分进行排序得到的排序结果。采用这样的方式,由于可以通过一次性计算得到多个查询文档分别对应于相应的查询问句的匹配度评分,并直接输出按照该匹配度评分进行排序得到的排序结果,因此与相关技术中需要先通过多次计算,分别计算得到这多个查询文档对应于该查询问句的匹配度评分,再根据该匹配度评分对这多个查询文档进行排序的方式相比,可以简化查询文档的排序步骤,提高查询文档的排序效率,从而可以更快速地为用户提供信息查询服务,提升用户体验。

与前述查询文档排序方法的实施例相对应,本说明书还提供了查询文档排序装置的实施例。

本说明书查询文档排序装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书查询文档排序装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该查询文档排序的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图7,图7是本说明书一示例性实施例示出的一种查询文档排序装置的框图。该查询文档排序装置70可以应用于图6所示的电子设备,包括:

构建模块701,基于用户输入的查询问句和与所述查询问句对应的多个查询文档,构建输入向量;其中,所述输入向量中与各个查询文档对应的位置上被分别添加了代表所述查询文档的语义的预设标识;

计算模块702,将所述输入向量输入至BERT模型进行语义表示计算,并获取所述BERT模型输出的与各个预设标识对应的语义向量;

排序模块703,将与各个预设标识对应的语义向量输入至训练完成的排序学习模型,计算与各个语义向量对应的匹配度评分,并输出按照所述匹配度评分进行排序的排序结果。

在本实施例中,所述排序学习模型为基于文档列表方法的排序学习模型。

在本实施例中,所述装置70还包括:

第一获取模块704,获取预设数量的训练样本;其中,所述训练样本包括查询问句和与所述查询问句对应的多个查询文档,所述多个查询文档被分别标注了指示查询文档与查询问句的匹配度排序的标签;

训练模块705,基于所述训练样本,按照预设的优化目标对所述排序学习模型的评分函数进行训练;其中,所述优化目标包括所述训练样本中与查询问句的匹配度最高的查询文档对应于查询问句的匹配度评分最大。

在本实施例中,所述训练模块705:

基于所述训练样本,对所述排序学习模型的评分函数进行有监督的训练,以使与所述评分函数对应的损失函数收敛;

其中,所述损失函数包括:

L为所述损失函数的数值,

在本实施例中,所述装置70还包括:

提取模块706,从所述查询问句中提取出至少一个关键词;

第二获取模块707,获取包含任一所述关键词的多个查询文档,作为与所述查询问句对应的多个查询文档。

在本实施例中,所述排序模块703:

按照所述匹配度评分从大到小的顺序对所述多个查询文档进行排序,并输出排序后的所述多个查询文档。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

相关技术
  • 查询文档排序方法、装置及电子设备
  • 查询文档排序方法、装置及电子设备
技术分类

06120112345449