基于神经网络的搜索方法、设备及存储介质与流程

文档序号:15445921发布日期:2018-09-14 23:21阅读:106来源:国知局

本发明实施例涉及搜索技术,尤其涉及一种基于神经网络的搜索方法、设备及存储介质。



背景技术:

随着搜索技术的快速发展,用户越来越多地使用搜索引擎来进行结果搜索。通常情况下,用户在搜索栏输入关键字并触发搜索;搜索引擎返回与该关键字匹配的结果。其中,关键字可以是文字、词汇或文本等。

在相关技术中,搜索引擎通过将与关键字相关的多篇文档拼接成一篇文档;然后,采用神经网络技术,直接定位该拼接文档中的某一连续文字片段,作为最接近的结果。

然而,上述搜索方法倾向在拼接文档中查找一个表面文字意义上最像答案的文字片段作为最接近的搜索结果,该搜索结果的可靠性较差。



技术实现要素:

本发明实施例提供一种基于神经网络的搜索方法、设备及存储介质,可以有效提高搜索结果的可靠性。

第一方面,本发明实施例提供一种基于神经网络的搜索方法,包括:

获取搜索对象及与该搜索对象匹配的多个文档;

根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值,第一神经网络向量中的元素用于表征文档中的单元与搜索对象中的单元的相关性,内容校验值用于表示每个文档作为搜索结果时其他文档对文档的支持程度;

根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值,每一开始位置及其对应的结束位置确定一片段,参考值用于表示片段作为搜索结果的可能性;

根据多个文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果。

在一种可能的设计中,上述根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值,可以包括:根据每个文档对应的第一神经网络向量,确定文档中各单元作为搜索结果的概率;根据每个文档对应的第二神经网络向量、该文档中各单元作为搜索结果的概率与其他文档中各单元作为搜索结果的概率,确定每个文档的内容校验值,第二神经网络向量中的元素用于表征文档中的单元,例如为一一维向量等。

在一种可能的设计中,上述根据每个文档对应的第一神经网络向量,确定文档中各单元作为搜索结果的概率,可以包括:将第i个文档中第k个单元在对应第一神经网络向量中的元素值与一神经网络参数作为任一第一函数的因变量,得到该第一函数输出的第一值,该第一函数可以包括输出为第一预设范围的神经元函数;将第一值和另一神经网络参数作为任一输出为第二预设范围的第二函数的因变量,得到该第二函数输出的第二值,作为第i文档中第k个单元作为搜索结果的概率。其中,i取值为1~n中任一整数值,n为所述多个文档的个数;k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值相同或不同。

在一种可能的设计中,上述根据每个文档对应的第二神经网络向量、该文档中各单元作为搜索结果的概率与其他文档中各单元作为搜索结果的概率,确定每个文档的内容校验值,可以包括:根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量;根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值。

在一种可能的设计中,上述根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量,可以包括:将第i个文档中第k个单元在第i个文档对应的第二神经网络向量中的元素值与第i文档中第k个单元作为搜索结果的概率相乘,得到第一结果,其中,该元素值可以为一维向量,k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值可以相同或不同,i取值为1~n中任一整数值,n为上述多个文档的个数;累加第i个文档中每个单元对应的第一结果,并将累加得到的结果除以m,得到第i个文档作为搜索结果的第三神经网络向量。

在一种可能的设计中,上述根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值,可以包括以下步骤:

根据第i个文档作为搜索结果的第三神经网络向量和第j个文档作为搜索结果的第三神经网络向量,得到每个文档对第j个文档作为搜索结果的支持权重值,j取值为1~n中任一整数值;

对所述支持权重值进行归一化处理;

将第j个文档作为搜索结果的第三神经网络向量与其对应的归一化处理得到的结果相乘,得到第j个文档对应的结果;

累加每个文档对应的结果,获得校验后的第四神经网络向量;

将第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行内积;

将内积得到的结果与所述第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行向量合并,并与一神经网络参数相乘,得到第i个文档对应的一数值;

对所有文档对应的该数值进行归一化处理,得到每个文档的内容校验值。

在一种可能的设计中,上述根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值,可以包括:根据每个文档的内容校验值、该文档中各单元作为搜索结果的概率、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,得到每个文档中各片段对应的参考值。

在一种可能的设计中,上述根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值之前,还可以包括:根据文档对应的第一神经网络向量,得到该文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值。

在一种可能的设计中,上述根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值之前,还可以包括:切分每个文档;根据切分后的每个文档,得到每个文档对应的第二神经网络向量,第二神经网络向量中的元素用于表征该文档中的单元;根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量。

第二方面,本发明实施例提供一种一种基于神经网络的搜索设备,包括:

获取模块,用于获取搜索对象及与所述搜索对象匹配的多个文档;

第一处理模块,用于根据每个所述文档对应的第一神经网络向量,确定每个所述文档的内容校验值,所述第一神经网络向量中的元素用于表征所述文档中的单元与所述搜索对象中的单元的相关性,所述内容校验值用于表示每个所述文档作为搜索结果时其他文档对所述文档的支持程度;

第二处理模块,用于根据每个所述文档的内容校验值、搜索结果的开始位置和结束位置、所述开始位置对应的概率值和所述结束位置对应的概率值,确定每个所述文档中各片段对应的参考值,每一开始位置及其对应的结束位置确定一片段,所述参考值用于表示片段作为搜索结果的可能性;

第三处理模块,用于根据多个所述文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果。

在一种可能的设计中,上述第一处理模块可以包括:

第一处理子模块,用于根据每个所述文档对应的第一神经网络向量,确定所述文档中各单元作为搜索结果的概率;

第二处理子模块,用于根据每个所述文档对应的第二神经网络向量、所述文档中各单元作为搜索结果的概率与其他文档中各单元作为搜索结果的概率,确定每个所述文档的内容校验值,所述第二神经网络向量中的元素用于表征所述文档中的单元。

在一种可能的设计中,上述第一处理子模块可具体用于:

将第i个文档中第k个单元在对应第一神经网络向量中的元素值与一神经网络参数作为任一第一函数的因变量,得到所述第一函数输出的第一值,所述第一函数包括输出为第一预设范围的神经元函数;

将所述第一值和另一神经网络参数作为任一输出为第二预设范围的第二函数的因变量,得到所述第二函数输出的第二值,作为第i文档中第k个单元作为搜索结果的概率;

其中,i取值为1~n中任一整数值,n为所述多个文档的个数;k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值相同或不同。

在一种可能的设计中,上述第二处理子模块可具体用于:根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量;根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值。

在一种可能的设计中,上述第二处理子模块用于根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量时,可具体为:

将第i个文档中第k个单元在第i个文档对应的第二神经网络向量中的元素值与第i文档中第k个单元作为搜索结果的概率相乘,得到第一结果,其中,所述元素值为一维向量,k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值可以相同或不同,i取值为1~n中任一整数值,n为上述多个文档的个数;

累加第i个文档中每个单元对应的第一结果,并将累加得到的结果除以m,得到第i个文档作为搜索结果的第三神经网络向量。

在一种可能的设计中,上述第二处理子模块用于根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值时,可具体为:

根据第i个文档作为搜索结果的第三神经网络向量和第j个文档作为搜索结果的第三神经网络向量,得到每个文档对第j个文档作为搜索结果的支持权重值,j取值为1~n中任一整数值;

对所述支持权重值进行归一化处理;

将第j个文档作为搜索结果的第三神经网络向量与其对应的归一化处理得到的结果相乘,得到第j个文档对应的结果;

累加每个文档对应的结果,获得校验后的第四神经网络向量;

将第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行内积;

将内积得到的结果与所述第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行向量合并,并与一神经网络参数相乘,得到第i个文档对应的一数值;

对所有文档对应的该数值进行归一化处理,得到每个文档的内容校验值。

在一种可能的设计中,上述第二处理模块可具体用于:根据每个文档的内容校验值、该文档中各单元作为搜索结果的概率、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,得到每个文档中各片段对应的参考值。

在一种可能的设计中,上述第二处理模块还可以用于:在根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值之前,根据文档对应的第一神经网络向量,得到该文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值。

在一种可能的设计中,上述第一处理模块还可以用于:在根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值之前,切分每个文档;根据切分后的每个文档,得到每个文档对应的第二神经网络向量,第二神经网络向量中的元素用于表征文档中的单元;根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量。

第三方面,本发明实施例提供一种基于神经网络的搜索设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的基于神经网络的搜索方法。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的基于神经网络的搜索方法。

本发明实施例提供的基于神经网络的搜索方法、设备及存储介质,通过获取搜索对象及与该搜索对象匹配的多个文档,根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值,第一神经网络向量中的元素用于表征文档中的单元与搜索对象中的单元的相关性,内容校验值用于表示每个文档作为搜索结果时其他文档对文档的支持程度;根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值,每一开始位置及其对应的结束位置确定一片段,参考值用于表示片段作为搜索结果的可能性,根据多个文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果,第二神经网络向量中的元素用于表征文档中的单元。由于每个文档的内容校验值均可以反映该文档作为搜索结果时其他文档对其的支持程度,也就是说,该文档作为搜索结果可以获得其他文档的支持校验,因此,根据内容校验值所确定的目标搜索结果的可靠性较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的问答系统的架构示意图;

图2为本发明一实施例提供的基于神经网络的搜索方法的流程图;

图3为本发明另一实施例提供的基于神经网络的搜索方法的子流程图;

图4为本发明一实施例提供的基于神经网络的搜索设备的结构示意图;

图5为本发明另一实施例提供的基于神经网络的搜索设备的结构示意图;

图6为本发明又一实施例提供的基于神经网络的搜索设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的问答系统的架构示意图。如图1所示,本实施例提供的问答系统包括搜索引擎11和基于神经网络的搜索装置12。可选地,基于神经网络的搜索装置12可以集成于搜索引擎11中;或者,另一种实现方式中,基于神经网络的搜索装置即为搜索引擎本身。

在实际应用中,用户在搜索引擎11对应的界面上输入搜索对象;之后,用户通过操控用于开始搜索的控件(例如,键盘上的回车键或界面上的“搜索”按钮)触发搜索;对应地,搜索引擎11在检测到搜索被触发之后,基于上述搜索对象进行搜索,并返回与该搜索对象匹配的结果,即包含多个文档的相关文档集合,给基于神经网络的搜索装置12;基于神经网络的搜索装置12获取搜索对象,并对该多个文档进行如本发明实施例提供的基于神经网络的搜索方法的处理,结合搜索对象和上述多个文档进行阅读理解,得到最终的目标搜索结果,并输出该目标搜索结果给用户。

下面采用详细的实施例,来说明本发明实施例如何结合搜索对象和与该搜索对象匹配的多个文档来获取可靠的目标搜索结果。

图2为本发明一实施例提供的基于神经网络的搜索方法的流程图。该方法的执行主体可以为图1所示的基于神经网络的搜索装置12。如图2所示,该基于神经网络的搜索方法包括:

s201、获取搜索对象及与该搜索对象匹配的多个文档。

其中,搜索对象可以为一个或多个关键字,或者,所述搜索对象甚至可以为完整的一句话或问题,关键字为搜索引擎中常用术语。当搜索对象为多个关键字时,该多个关键字可以通过多种方式进行组合。例如,搜索对象为“中国长城”,可以理解,该搜索对象包括两个关键字:“中国”和“长城”,这两个关键字是“和(and)”的关系;再如,搜索对象为“中国or长城”,可以理解,该搜索对象包括两个关键字:“中国”和“长城”,这两个关键字是“或(or)”的关系,等等。

用户在搜索框中输入搜索对象并触发搜索之后,搜索引擎可以基于该搜索对象通过一些列处理得到多个文档,即与该搜索对象匹配的多个文档,例如网页文档等。若基于神经网络的搜索装置即为搜索引擎,此时,该步骤已完成;若参考图1所示的架构,基于神经网络的搜索装置12可从搜索引擎11获取搜索对象及该多个文档。

s202、根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值。

其中,第一神经网络向量中的元素用于表征文档中的单元与搜索对象中的单元的相关性。单元即组成搜索对象或文档的元素,具体可以包括以下任一种或多种:数字、文字、字母、符号、词汇和文本等。内容校验值用于表示每个文档作为搜索结果时其他文档对该文档的支持程度。

针对第一神经网络向量进行以下示例说明。示例性地,搜索对象仍以“中国长城”为例,文档为与“中国长城”匹配的多个文档中的任意一个。其中,“中国长城”中的单元可以是中国、长城;或者,“中国长城”中的单元还可以是:中、国、长、城。对其对应,文档中的单元也可以有多种形式。本发明实施例不限定搜索对象及文档中的单元的具体形式,但可以理解的是,由于对搜索对象及文档进行单元划分的执行主体是同一个执行主体,例如基于神经网络的搜索装置,因此,可以认为对搜索对象及文档中各自包含的同一内容进行单元划分,所得到的结果是相同的。例如,文档包含与搜索对象相同的内容“中国长城”,则对这一相同内容,文档中的单元与搜索对象中的单元是相同的,均为:中国长城;或,中国、长城;或,中、国、长、城,等等。

基于上述示例说明,对于“中国长城”这一相同内容,以文档中的单元与搜索对象中的单元均为“中国”、“长城”为例,第一神经网络向量中元素用于表征以下任两个单元的相关性:

文档中的其他单元与搜索对象中的“中国”;

文档中的“中国”与搜索对象中的“中国”;

文档中的“长城”与搜索对象中的“中国”;

文档中的“中国”与搜索对象中的“长城”;

文档中的“长城”与搜索对象中的“长城”;

文档中的其他单元与搜索对象中的“长城”。

也就是说,遍历文档中的所有单元及搜索对象中的所有单元,计算文档中的每一单元与搜索对象中的每一单元的相关性,得到文档对应的第一神经网络向量。

对每个文档进行上述处理,得到每一文档对应的第一神经网络向量。其中,第一神经网络向量的个数与文档的个数相同,第一神经网络向量与文档二者是一一对应的。

因此,可选地,该步骤之前,基于神经网络的搜索方法还可以包括:切分每个文档;根据切分后的每个文档,得到每个文档对应的第二神经网络向量;根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量。其中,第二神经网络向量中的元素用于表征文档中的单元。

可以理解,切分文档即对文档进行单元切分,得到文档对应的单元列表,其中,单元切分可以包括词汇切分、字切分和文本切分。随后,对切分后的文档进行神经网络语义编码,形成文档对应的第二神经网络向量。进一步地,还可以对搜索对象进行切分,并根据切分后的搜索对象,得到搜索对象对应的第四神经网络向量。相应地,根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量,具体为:根据每个文档对应的第二神经网络向量和搜索对象对应的第四神经网络向量,得到每个文档对应的第一神经网络向量。

其中,根据切分后的每个文档,得到每个文档对应的第二神经网络向量,可以通过多种实现方式实现。示例性地,将切分后的文档作为以下任一算法的因变量,算法可以包括并不限于:词带(bag-of-words,简称:bow)模型算法、卷积神经网络(convolutionalneuralnetwork)算法、循环神经网络(recurrentneuralnetwork,简称:rnn)算法;文档对应的第二神经网络向量即为该些算法得到的结果,例如,上述算法的层叠组合得到的多层的神经网络,或,上述算法的混合得到的单层的神经网络。其中,第二神经网络向量中的元素可以为一维向量。第二神经网络向量的个数与文档的个数相同,第二神经网络向量与文档二者是一一对应的。

针对根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量的具体实现,可以通过以下算法中任一种算法实现:双向注意力流(bi-directionalattentionflow,简称:bidaf)算法、匹配循环神经网络算法(matchlongshorttermmemorynetworks,简称:match-lstm)、双重注意力算法(attention-over-attention,简称:aoa)、自匹配门限机制的匹配算法(gatedself-matchingnetworks,又称为:r-net)等各项算法中匹配算法的部分,其中,文档对应的第二神经网络向量和搜索对象为该些算法的因变量,文档对应的第一神经网络向量为采用该些算法得到的结果。

相比现有技术采用神经网络技术仅对多个文档拼接得到文档进行定位处理得到最接近的结果的方案,本发明实施例首先得到其中元素表征文档中的单元与搜索对象中的单元的相关性的第一神经网络向量,然后,根据每个文档对应的第一神经网络向量,确定用于表示每个文档作为搜索结果时其他文档对该文档的支持程度的内容校验值。由于每个文档的内容校验值均可以反映该文档作为搜索结果时其他文档对其的支持程度,也就是说,该文档作为搜索结果可以获得其他文档的支持校验,因此,可提高最终确定的目标搜索结果的可靠性。

s203、根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值。

其中,参考值用于表示片段作为搜索结果的可能性。每一开始位置及其对应的结束位置确定一片段。

可以理解,搜索结果的开始位置和结束位置,是指文档中与搜索对象相关的所有可能答案的开始位置和结束位置。具体地,实施例可以在该步骤之前,根据文档对应的第一神经网络向量,得到该文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,也即,对文档中与搜索对象相关的所有可能答案的边界进行预测。

可选地,根据文档对应的第一神经网络向量,得到该文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,可以具体为:通过以下算法中任一种算法实现:双向注意力流(bidaf)算法、匹配循环神经网络算法(match-lstm)、双重注意力算法(aoa)、自匹配门限机制的匹配算法(r-net)等各项算法中定位答案的算法部分,其中,文档对应的第一神经网络向量为该些算法的因变量,文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值为采用该些算法得到的结果。

通过文档中搜索结果的开始位置和结束位置确定文档中所有可能答案的片段,再根据文档对应的内容校验值,结合开始位置对应的概率值和结束位置对应的概率值,进而确定文档中各片段对应的参考值。

s204、根据多个文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果。

针对多个文档中各片段,找到各片段对应的参考值中最大的,确定该最大参考值对应的片段为目标搜索结果。

例如,片段1对应的参考值为0.1,片段2对应的参考值为-0.1,片段3对应的参考值为2,……,其中,所有参考值中最大的为2,则确定片段3为目标搜索结果。

本发明实施例提供的基于神经网络的搜索方法,通过获取搜索对象及与该搜索对象匹配的多个文档,根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值,第一神经网络向量中的元素用于表征文档中的单元与搜索对象中的单元的相关性,内容校验值用于表示每个文档作为搜索结果时其他文档对文档的支持程度;根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值,每一开始位置及其对应的结束位置确定一片段,参考值用于表示片段作为搜索结果的可能性,根据多个文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果,第二神经网络向量中的元素用于表征文档中的单元。由于每个文档的内容校验值均可以反映该文档作为搜索结果时其他文档对其的支持程度,也就是说,该文档作为搜索结果可以获得其他文档的支持校验,因此,根据内容校验值所确定的目标搜索结果的可靠性较高。

在上述实施例的基础上,一种实现方式中,如图3所示,s202、根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值,可以包括以下步骤:

s2021、根据每个文档对应的第一神经网络向量,确定文档中各单元作为搜索结果的概率。

其中,相同单元在不同文档作为搜索结果的概率可以是相同的,也可以是不同的;另外,相同单元在同一文档中不同位置作为搜索结果的概率可以是相同的,也可以是不同的。具体地,将第i个文档中第k个单元在对应第一神经网络向量中的元素值与一神经网络参数作为任一第一函数的因变量,得到该第一函数输出的第一值,该第一函数可以为输出为第一预设范围的神经元函数;将该第一值和另一神经网络参数作为任一输出为第二预设范围的第二函数的因变量,得到该第二函数输出的第二值,作为第i文档中第k个单元作为搜索结果的概率。其中,i取值为1~n中任一整数值,n为上述多个文档的个数;k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值可以相同或不同,从而得到每个文档中各单元作为搜索结果的概率。

需要说明的是,第一预设范围与第二预设范围可以为相同范围,或者,第一预设范围与第二预设范围可以为不同范围,具体可根据实际需求进行设置,本发明实施例不对其进行限制。

可选地,通过如下公式得到文档中各单元作为搜索结果的概率:

其中,表示第i个文档中第k个单元作为搜索结果的概率,表示第i个文档中第k个单元在对应第一神经网络向量中的元素值,均为神经网络参数,t表示转置,sigmoid表示第二函数,可采用所有的0~1输出的函数,f()表示第一函数,可以为任一输出为0~1的神经元函数,例如,修正线性单元(rectifiedlinearunits,简称:relu)神经元函数。

s2022、根据每个文档对应的第二神经网络向量、文档中各单元作为搜索结果的概率与其他文档中各单元作为搜索结果的概率,确定每个文档的内容校验值。

可选地,该步骤可以包括:根据每个文档对应的第二神经网络向量和文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量;根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值。

其中,根据每个文档对应的第二神经网络向量和文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量,可以包括:将第i个文档中第k个单元在第i个文档对应的第二神经网络向量中的元素值(该元素之为一维向量)与第i文档中第k个单元作为搜索结果的概率相乘,得到第一结果,k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值可以相同或不同;累加第i个文档中每个单元对应的第一结果,并将累加得到的结果除以m,得到第i个文档作为搜索结果的第三神经网络向量,其中,i取值为1~n中任一整数值,n为上述多个文档的个数。

例如,通过如下公式得到文档作为搜索结果的第三神经网络向量:

其中,ri表示第i个文档作为搜索结果的第三神经网络向量,表示第i个文档中第k个单元作为搜索结果的概率,∑表示累加符号,表示第i个文档中第k个单元在第i个文档对应的第二神经网络向量中的元素值,[]表示对两个一维向量的合并,即将两个一维向量拼接为一个一维向量,这一个一维向量的维数为上述两个一维向量的维数的和。此处,表示第i个文档中第k个单元在对应的第二神经网络向量中的元素值,此处仅为示例说明,可选择其他表述方式。

另外,上述根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值,可以包括:根据第i个文档作为搜索结果的第三神经网络向量和第j个文档作为搜索结果的第三神经网络向量,得到每个文档对第j个文档作为搜索结果的支持权重值,j取值为1~n中任一整数值;对所述支持权重值进行归一化处理;将第j个文档作为搜索结果的第三神经网络向量与其对应的归一化处理得到的结果相乘,得到第j个文档对应的结果;累加每个文档对应的结果,获得校验后的第四神经网络向量;将第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行内积,之后,将内积得到的结果与第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行向量合并,并与一神经网络参数相乘,得到第i个文档对应的一数值;对所有文档对应的该数值进行归一化处理,得到每个文档的内容校验值。

例如,通过如下公式得到文档的内容校验值:

其中,表示第i个文档的内容校验值,si,j表示第i个文档和第j个文档交互计算的结果,用于表征两个文档相对支持的权重,在此基础上经过归一得到αi,j,进而获得校验后的第四神经网络向量最终通过获得各个文档的内容校验值,[]表示对其包含的元素进行合并,合并后的维数为其中各元素的维数的和,∑表示累加符号,t表示转置,exp表示以e为底的指数符号,wv为神经网络参数,·表示点积或内积的符号。

进一步地,s203、根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值,可以包括:根据每个文档的内容校验值、文档中各单元作为搜索结果的概率、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,得到每个文档中各片段对应的参考值。

一些实施例中,针对每个文档,根据文档中搜索结果的开始位置和结束位置,确定该文档中所有可能答案的片段。之后,针对同一文档中每个片段,将文档对应的内容校验值、文档中各单元作为搜索结果的概率、该片段的开始位置对应的概率值和该片段的结束位置对应的概率值进行线性加权,得到该片段对应的参考值,即采用线性加权算法得到片段对应的参考值。

另一些实施例中,针对每个文档,根据文档中搜索结果的开始位置和结束位置,确定该文档中所有可能答案的片段。之后,针对同一文档中每个片段,将文档对应的内容校验值、文档中各单元作为搜索结果的概率、该片段的开始位置对应的概率值和该片段的结束位置对应的概率值进行指数变换,得到该片段对应的参考值,即采用指数变换算法得到片段对应的参考值。

上述线性加权算法及指数变换算法仅为示例说明,其目的在于综合考虑文档的内容校验值、文档中各单元作为搜索结果的概率、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,得到一个最终答案定位的唯一数值,作为每个文档中各片段对应的参考值,并不对本发明实施例构成限制。

可以理解,可能存在多个片段对应的参考值均相同的情况,该情况下,若该相同参考值为所有片段对应的参考值中最大的,此时,确定的目标搜索结果为该多个片段。至于将该多个片段显示在设备屏幕上的先后顺序,本发明实施例不对其进行限制。

需要说明的是,通常情况下,结束位置的个数等于开始位置的个数。若结束位置的个数少于开始位置的个数,则默认下一个开始位置即为当前开始位置对应的结束位置,或者,在不存在下一个开始位置的情况下,文档的末尾即为当前开始位置对应的结束位置。

最后,将得到的目标搜索结果输出给用户,例如,通过设备屏幕显示目标搜索结果,或者,将目标搜索结果播报给用户,等等,以使用户获知该目标搜索结果。另外,由于每个文档中各片段对应的参考值已知,因此,可按照参考值从大到小的顺序输出多个片段给用户。

图4为本发明一实施例提供的基于神经网络的搜索设备的结构示意图。如图4所示,基于神经网络的搜索设备40包括:获取模块41、第一处理模块42、第二处理模块43和第三处理模块44。其中,

该获取模块41,用于获取搜索对象及与所述搜索对象匹配的多个文档。

该第一处理模块42,用于根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值。该第一神经网络向量中的元素用于表征文档中的单元与搜索对象中的单元的相关性。内容校验值用于表示每个文档作为搜索结果时其他文档对该文档的支持程度。

该第二处理模块43,用于根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值。每一开始位置及其对应的结束位置确定一片段。参考值用于表示片段作为搜索结果的可能性。

该第三处理模块44,用于根据多个文档中各片段对应的参考值,确定最大参考值对应的片段为目标搜索结果。

可选地,参考图5,在图4所示结构的基础上,基于神经网络的搜索设备50中,第一处理模块42可以包括:第一处理子模块421和第二处理子模块422。

该第一处理子模块421,用于根据每个文档对应的第一神经网络向量,确定该文档中各单元作为搜索结果的概率。

该第二处理子模块422,用于根据每个文档对应的第二神经网络向量、该文档中各单元作为搜索结果的概率与其他文档中各单元作为搜索结果的概率,确定每个文档的内容校验值。第二神经网络向量中的元素用于表征文档中的单元。

可选地,该第一处理子模块421可具体用于:

将第i个文档中第k个单元在对应第一神经网络向量中的元素值与一神经网络参数作为任一第一函数的因变量,得到所述第一函数输出的第一值,所述第一函数包括输出为第一预设范围的神经元函数;

将所述第一值和另一神经网络参数作为任一输出为第二预设范围的第二函数的因变量,得到所述第二函数输出的第二值,作为第i文档中第k个单元作为搜索结果的概率。

其中,i取值为1~n中任一整数值,n为所述多个文档的个数;k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值相同或不同。

可选地,该第二处理子模块422可具体用于:根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量;根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值。

可选地,该第二处理子模块422用于根据每个文档对应的第二神经网络向量和该文档中各单元作为搜索结果的概率,得到每个文档作为搜索结果的第三神经网络向量时,可具体为:

将第i个文档中第k个单元在第i个文档对应的第二神经网络向量中的元素值与第i文档中第k个单元作为搜索结果的概率相乘,得到第一结果,其中,所述元素值为一维向量,k取值为1~m中任一整数值,m为第i个文档中的单元个数,不同文档对应的m值可以相同或不同,i取值为1~n中任一整数值,n为上述多个文档的个数;

累加第i个文档中每个单元对应的第一结果,并将累加得到的结果除以m,得到第i个文档作为搜索结果的第三神经网络向量。

可选地,该第二处理子模块422用于根据所有文档作为搜索结果的第三神经网络向量,得到每个文档的内容校验值时,可具体为:

根据第i个文档作为搜索结果的第三神经网络向量和第j个文档作为搜索结果的第三神经网络向量,得到每个文档对第j个文档作为搜索结果的支持权重值,j取值为1~n中任一整数值;

对所述支持权重值进行归一化处理;

将第j个文档作为搜索结果的第三神经网络向量与其对应的归一化处理得到的结果相乘,得到第j个文档对应的结果;

累加每个文档对应的结果,获得校验后的第四神经网络向量;

将第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行内积;

将内积得到的结果与所述第四神经网络向量、第i个文档作为搜索结果的第三神经网络向量进行向量合并,并与一神经网络参数相乘,得到第i个文档对应的一数值;

对所有文档对应的该数值进行归一化处理,得到每个文档的内容校验值。

可选地,该第二处理模块43可具体用于:根据每个文档的内容校验值、该文档中各单元作为搜索结果的概率、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,得到每个文档中各片段对应的参考值。

可选地,该第二处理模块43还可以用于:在根据每个文档的内容校验值、搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值,确定每个文档中各片段对应的参考值之前,根据文档对应的第一神经网络向量,得到该文档中搜索结果的开始位置和结束位置、开始位置对应的概率值和结束位置对应的概率值。

可选地,该第一处理模块42还可以用于:在根据每个文档对应的第一神经网络向量,确定每个文档的内容校验值之前,切分每个文档;根据切分后的每个文档,得到每个文档对应的第二神经网络向量,第二神经网络向量中的元素用于表征文档中的单元;根据每个文档对应的第二神经网络向量和搜索对象,得到每个文档对应的第一神经网络向量。

本实施例提供的基于神经网络的搜索设备,可用于执行上述的方法实施例,其实现方式和技术效果类似,本实施例此处不再赘述。

图6为本发明又一实施例提供的基于神经网络的搜索设备的结构示意图。如图6所示,该基于神经网络的搜索设备60包括:

至少一个处理器61和存储器62;

所述存储器62存储计算机执行指令;

所述至少一个处理器61执行所述存储器62存储的计算机执行指令,使得所述至少一个处理器61执行如上所述的基于神经网络的搜索方法。

处理器61的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

可选地,该基于神经网络的搜索设备60还包括通信部件63。其中,处理器61、存储器62以及通信部件63可以通过总线64连接。

在上述的图4、图5和图6实施例中,该基于神经网络的搜索设备可以为图1所示的搜索引擎或其对应的服务器。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的基于神经网络的搜索方法。

在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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