检索信息的方法、装置、设备以及存储介质与流程

文档序号:24306826发布日期:2021-03-17 00:59阅读:130来源:国知局
检索信息的方法、装置、设备以及存储介质与流程

本申请涉及计算机技术领域,具体涉及智能推荐、深度学习等人工智能技术领域,尤其涉及检索信息的方法、装置、设备以及存储介质。



背景技术:

信息检索的一个核心任务就是计算用户输入的查询请求(query)与作为检索对象的各文档(doc)之间的语义相关程度。具体地,可对查询请求与各doc的标题(title)的匹配度进行评估,如计算query与title之间的匹配度评分(score),并可按照评分由高到低的顺序对各doc进行排序,进而将排序后处于前n位的doc作为检索结果返回给用户,n为正整数。

在一些特定领域(例如医疗领域)检索场景下,对于高频查询请求的召回结果能够很好的满足用户需求,但是对于低频查询请求的召回结果不能够满足用户需求,有损用户搜索体验效果。



技术实现要素:

本申请实施例提供了检索信息的方法、装置、设备以及存储介质。

第一方面,本申请实施例提供了检索信息的方法,包括:获取输入的查询语句;采用预先训练的语义匹配模型,将查询语句转换成语义向量;基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句;基于至少一个近似查询语句,确定查询语句的检索结果。

第二方面,本申请实施例提供了检索信息的装置,包括:装置包括:输入模块,被配置成获取输入的查询语句;转换模块,被配置成采用预先训练的语义匹配模型,将查询语句转换成语义向量;第一确定模块,被配置成基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句;第二确定模块,被配置成基于至少一个近似查询语句,确定查询语句的检索结果。

第三方面,本申请实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。

第四方面,本申请实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。

本申请实施例提供的检索信息的方法、装置、设备以及存储介质,首先获取输入的查询语句;之后采用预先训练的语义匹配模型,将查询语句转换成语义向量;而后基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句;最后基于至少一个近似查询语句,确定查询语句的检索结果,从而通过近似最近邻检索实现对输入查询语句的泛化,进而提高低频query的召回率。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的检索信息的方法的一个实施例的流程示意图;

图3是根据本申请的检索信息的方法的另一个实施例的流程示意图;

图4是根据本申请的检索信息的方法的一个实施例的应用场景示意图;

图5是本申请的检索信息的装置的一个实施例的结构示意图;

图6是用来实现本申请实施例的检索信息的方法的电子设备的框图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如背景技术中所提到的,在特定领域(例如医疗领域)检索场景下,对于低频查询请求的召回结果往往不能够满足用户需求。对于低频query召回不足、相关性差的问题,常用的技术手段包括:

1、通过离线定向挖掘低频查询请求的数据,构建key-value(键值对)检索机制来解决;

2、基于用户搜索的点击等特征,持续优化语义匹配模型。

第1种方案实现简单,对于低频查询请求的召回不足问题,完全依赖离线数据挖掘,并且无泛化能力。

对于第2种方案,由于低频查询请求特征信息不足,导致语义匹配模型对低频查询请求的识别准确率不够,并且该模型迭代时间长。

鉴于现有技术的上述缺陷,本申请实施例提供了一种检索信息的方法,以解决低频查询请求召回不足、相关性差的问题。

图1示出了可以应用本申请的检索信息的方法或检索信息的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、网络102、服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

终端设备101可以通过网络102与服务器103交互。终端设备101中可以输入查询语句,包括但不限于智能手机、平板电脑、个人数字助理、电子书阅读器、个人电脑、智能电视、查询服务终端等等。

服务器103可以提供各种服务,例如服务器103可以对从终端设备101获取到的输入的查询语句等数据进行分析等处理,生成处理结果(例如确定查询语句的检索结果)。

需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。

需要说明的是,本申请实施例所提供的检索信息的方法一般由服务器103执行,相应地,检索信息的装置一般设置于服务器103中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2,示出了根据本申请的检索信息的方法的一个实施例的流程200。该方法包括以下步骤:

步骤201,获取输入的查询语句。

在本实施例中,检索信息的方法的执行主体(例如图1所示的服务器103)可以获取输入的查询语句。

用户可以通过各种终端设备(例如图1所示的终端设备101)进行搜索查询。这些终端设备可以向用户呈现用户界面(例如,浏览器界面)以输入查询语句。用户可以经由各种输入工具,例如触控屏、手写笔、键盘、麦克风等来输入查询语句。查询语句可以是文本查询、语音查询或其他类型的查询。如果查询语句为非文本查询,则可以采用各种适当的技术,诸如ocr(opticalcharacterrecognition,光学字符识别)、语音识别等,将文本查询转换为文本查询。继而,终端设备可以将原始接收的或者经转换的查询语句发送给搜索服务器(例如,图1的服务器103)。

步骤202,采用预先训练的语义匹配模型,将查询语句转换成语义向量。

在本实施例中,上述执行主体可以采用预先训练的语义匹配模型,将查询语句转换成语义向量。

其中,语义匹配模型可以通过学习query-title对的语义相关性来构建。query-title对可以保存在query日志中。query日志例如记录了每次用户查询会话中所使用的查询请求query、展现的搜索结果以及用户对搜索结果的点击操作等。这些搜索结果例如可以用网页标题title来表征,因此,query-title对指的是查询-搜索结果对。

其中,语义匹配模型利用基于相关性/相似性的评分函数,通过匹配query的潜在语义和向量空间表示中包含的关系来度量query-title的可信性。示例性地,query为:糖尿病怎么治疗,title为:糖尿病如何才能治好,那么此query-title对的相关性分数应该很高。

其中,语义匹配模型可以包括输入层、表示层、匹配层。输入层通过查询表将query-title对中的词序列转换为词嵌入序列。表示层主要功能是由词到句的表示构建,或者说将序列的孤立的词语的嵌入表示,转换为具有全局信息的一个或多个低维稠密的语义向量。匹配层利用query-title对的表示向量进行交互计算,并根据损失函数来进行语义匹配模型的训练。

其中,可以将查询语句输入至训练完成的语义匹配模型,并在语义匹配模型的表示层,得到查询语句的语义向量。示例性地,语义匹配模型可以是simnet语义模型。

步骤203,基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句。

在本实施例中,上述执行主体可以基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句。

其中,可以通过离线挖掘query-检索结果(doclist)数据,构建近似最近邻检索索引库。其中,近似最近邻检索(approximatenearestneighbor,ann)利用了数据量增大后数据之间会形成簇状聚集分布的特性,通过对数据分析聚类的方法对数据库中的数据进行分类或编码,对于目标数据根据其数据特征预测其所属的数据类别,返回类别中的部分或全部作为检索结果。近似最近邻检索的核心思想是搜索可能是近邻的数据项而不再只局限于返回最可能的项目,在牺牲可接受范围内的精度的情况下提高检索效率。主要分为两种办法,一种是采用哈希散列的办法,另一种则是矢量量化。

其中,ann索引库存放的是query的向量和与query对应的检索结果(doclist)的数据标识。给定一个输入的query,可以从ann索引库中检索到空间距离最近的topn个query向量及其对应的检索结果的数据标识,其中n为正整数。而现有技术中的key-value(键值对)检索机制,则是给定一个输入的query,只能检索到固定字符串匹配的检索结果。对比而言,ann检索机制具有泛化效果,不依赖字符串匹配,可以泛化检索。

其中,可以将语义向量输入至近似最近邻检索索引库,检索出与语义向量的空间距离最近的topn个向量及其对应的检索结果的数据标识。其中,可以将与语义向量的空间距离最近的topn个向量对应的query作为查询语句的近似查询语句。示例性地,输入的查询语句为:糖尿病怎么治,通过ann检索,可以查找到“糖尿病的治疗”、“糖尿病如何才能治好”等等近似查询语句。

步骤204,基于至少一个近似查询语句,确定查询语句的检索结果。

在本实施例中,上述执行主体可以基于至少一个近似查询语句,确定查询语句的检索结果。

其中,可以基于近似查询语句语义召回相关的候选检索结果(doc)集合。语义召回是指对候选资源进行词向量表示,并构建向量表示基础上的快速索引召回技术,与传统的基于字词倒排索引方法不同,直接从语义相关性角度上给用户召回结果。

其中,可以采取多种方式来搜索与近似查询请求匹配的候选结果。在一些实现中,可以使用文本匹配,例如词匹配的方法来搜索与近似查询请求匹配的候选结果。词匹配方法的一些常用算法例如可以包括,bm25(bestmatch,最佳匹配)算法、proximity(termproximityscoring,词近邻得分)算法等。通过词匹配算法计算候选资源与近似查询请求的匹配程度,继而可以基于匹配程度给出与近似查询请求匹配的检索结果。上述搜索方法可以使用目前已知的各种算法来实现,此处不再赘述。

本申请上述实施例提供的检索信息的方法,通过近似最近邻检索实现对输入查询语句的泛化,将传统的key-value(键值对)检索机制升级为软key-value(键值对)检索机制,进而提高低频查询请求的召回率。

在本申请实施例的一些可选的实现方式中,上述步骤203包括:基于annoy算法,从近似最近邻检索索引库中查找与语义向量的空间距离满足预定阈值的至少一个查询语义向量,其中,至少一个查询语义向量对应的至少一个查询语句为查询语句的至少一个近似查询语句。

其中,annoy(approximatenearestneighborsohyeah)算法是一种可以在高维稠密数据查找相似数据的算法。annoy通过建立一个二叉树来使得每个点查找时间复杂度是o(logn),相似的数据节点在二叉树上位置更接近,通过从根节点不停的往叶子节点遍历从而查找到需要的topn个相似邻居节点。annoy算法可以从以稠密向量形式表达的海量文本中快速查找到相似的topn个文本。

其中,使用annoy算法可以在近似最近邻检索索引库中进行与语义向量近似的k邻近搜索。

在本申请实施例的一些可选的实现方式中,上述步骤204包括:根据至少一个近似查询语句与查询语句的相关性,确定查询语句的检索结果。

进一步参考图3,其示出了检索信息的方法的另一个实施例的流程图,该方法包括如下步骤:

步骤301,获取输入的查询语句。

步骤301与步骤201基本相同,因此不再赘述。

步骤302,采用预先训练的语义匹配模型,将查询语句转换成语义向量。

步骤302与步骤202基本相同,因此不再赘述。

步骤303,基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句。

步骤303与步骤203基本相同,因此不再赘述。

步骤304,基于至少一个近似查询语句,确定查询语句的检索结果。

步骤304与步骤204基本相同,因此不再赘述。

步骤305,根据至少一个近似查询语句与查询语句的相关性,对查询语句的检索结果进行排序。

其中,可以对近似查询语句和查询语句的相关性打分,并将相关性分值高的近似查询语句的召回结果优先展示。对近似查询语句和查询语句的相关性打分可以采用一些常用算法例如可以包括,bm25(bestmatch,最佳匹配)算法、proximity(termproximityscoring,词近邻得分)算法等。bm25算法是一种常见用来做相关性打分的公式,主要就是计算一个近似查询语句里面所有词和查询语句的相关性,然后在把分数做累加操作。上述相关性打分方法可以使用目前已知的各种算法来实现,此处不再赘述。

在本实施例的一些可选的实现方式中,上述步骤204还包括:根据至少一个近似查询语句的搜索结果的浏览量和/或点击量,对查询语句的检索结果进行排序。

其中,搜索结果的浏览量越大,其位置权重越大;搜索结果的点击量越大,其位置权重越大。其中,位置权重越大,检索结果的排序越靠前。

在本实施例的一些可选的实现方式中,查询语句的检索结果的数据类型包括以下任一项:语音、文章、问答。

其中,本实施例提供的检索信息的方法可以应用于医疗检索场景,尤其适用于医疗聚合卡。其中,医疗聚合卡指的是使用搜素引擎搜索医疗查询请求,出现的检索结果。检索结果的数据类型包括语音、文章、问答。

为了便于理解,图4示出了根据本申请的检索信息的方法的一个实施例的应用场景示意图。

如图4所示,本申请实施例提供的检索信息的方法可以应用于软key-value检索机制,从而实现一个query召回多个近似query*的文件(doc)。其中,实现ann泛化包括如下步骤:

s1:基于query-title相关性训练simnet语义模型作为编码器使用;

s2:离线挖掘海量key-value数据(query-检索结果),构建ann索引库;

s3:获取用通过网页输入的query后,调用simnet语义模型将query编码成128维向量并在ann索引库中检索query的至少一个近似query*

s4:解析至少一个近似query*的召回结果附带的文件(doc)。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种检索信息的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的检索信息的装置500可以包括:输入模块501、转换模块502、第一确定模块503、第二确定模块504。其中,输入模块501,被配置成获取输入的查询语句;转换模块502,被配置成采用预先训练的语义匹配模型,将查询语句转换成语义向量;第一确定模块503,被配置成基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句;第二确定模块504,被配置成基于至少一个近似查询语句,确定查询语句的检索结果。

在本实施例中,检索信息的装置500中:输入模块501、转换模块502、第一确定模块503、第二确定模块504的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-204的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,第一确定模块503进一步被配置成:基于annoy算法,从近似最近邻检索索引库中查找与语义向量的空间距离满足预定阈值的至少一个查询语义向量,其中,至少一个查询语义向量对应的至少一个查询语句为查询语句的至少一个近似查询语句。

在本实施例的一些可选的实现方式中,第二确定模块504还包括:排序模块,被配置成根据至少一个近似查询语句与查询语句的相关性,对查询语句的检索结果进行排序。

在本实施例的一些可选的实现方式中,排序模块进一步被配置成根据至少一个近似查询语句的搜索结果的浏览量和/或点击量,对查询语句的检索结果进行排序。

在本实施例的一些可选的实现方式中,语义匹配模型是基于查询语句和检索结果的相关性训练而得。

在本实施例的一些可选的实现方式中,查询语句的检索结果的数据类型包括以下任一项:语音、文章、问答。

如图6所示,是根据本申请实施例检索信息的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。

存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的检索信息的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的检索信息的方法。

存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的检索信息的方法对应的程序指令/模块(例如,附图5所示的输入模块501、转换模块502、第一确定模块503、第二确定模块504)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的检索信息的方法。

存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据检索信息的方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至检索信息的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

检索信息的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置603可接收输入的数字或字符信息,以及产生与检索信息的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请的技术方案,首先获取输入的查询语句;之后采用预先训练的语义匹配模型,将查询语句转换成语义向量;而后基于语义向量和预先根据查询语句和检索结果构建的近似最近邻检索索引库,确定查询语句的至少一个近似查询语句;最后基于至少一个近似查询语句,确定查询语句的检索结果,从而通过近似最近邻检索实现对输入查询语句的泛化,进而提高低频查询请求的召回率。

人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1