CN109977292B - 搜索方法、装置、计算设备和计算机可读存储介质 - Google Patents
搜索方法、装置、计算设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109977292B CN109977292B CN201910217435.4A CN201910217435A CN109977292B CN 109977292 B CN109977292 B CN 109977292B CN 201910217435 A CN201910217435 A CN 201910217435A CN 109977292 B CN109977292 B CN 109977292B
- Authority
- CN
- China
- Prior art keywords
- query
- query language
- document
- sub
- determining
- 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 106
- 238000013528 artificial neural network Methods 0.000 claims abstract description 86
- 230000007246 mechanism Effects 0.000 claims abstract description 48
- 238000012549 training Methods 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 26
- 239000013598 vector Substances 0.000 claims description 11
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 2
- 230000007787 long-term memory Effects 0.000 claims 1
- 230000000306 recurrent effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了搜索方法、装置、计算设备和计算机可读存储介质。该方法包括:获取查询语,其中查询语包括一个或多个查询语子部分;将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;获取注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在查询语中的各自的权重值。通过本申请的实施例,能够提升确定查询语子部分的重要性/权重值的准确性。
Description
技术领域
本申请实施例涉及信息检索技术领域,具体涉及一种搜索方法、装置、计算设备和计算机可读存储介质。
背景技术
在信息检索技术领域中,确定文档相关度/相似度是一种常用的技术。例如,在进行诸如应用程序搜索、内容检索(例如,新闻搜索、微博搜索、网页搜索等)等的信息检索时,经常需要确定文档与查询语的相关度、文档与文档的相关度等,以便根据文档相关度来确定搜索/检索结果。
文档相关度确定得越准确,搜索结果就越准确。为了得到符合用户期望的搜索结果,可以对查询进行查询理解以分析用户的意图,在查询理解的基础上对查询所包含的术语的重要性进行确定,并基于术语的重要性确定文档相关度。因此,确定术语的重要性是进行查询理解的一项基本任务,如何准确地确定查询所包含的术语的各自的重要性在信息检索领域中是被关注的焦点之一。
发明内容
本申请的实施例提供一种搜索方法、装置、计算设备和计算机可读存储介质,以通过应用了注意力机制的神经网络来确定查询语中的查询语子部分的权重值/重要性。
根据本申请实施例的第一方面,公开了一种确定查询语包含的查询语子部分的权重值的方法,其包括:
获取查询语,其中所述查询语包括一个或多个查询语子部分;
将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值。
根据本申请实施例的第二方面,公开了一种确定文档相关度的方法,其包括:
获取查询语,其中所述查询语包括一个或多个查询语子部分;
将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度。
根据本申请实施例的第三方面,公开了一种搜索方法,其包括:
获取查询语,其中所述查询语包括一个或多个查询语子部分;
将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定一个或多个文档中的每个文档与所述查询语的相关度;
根据所述一个或多个文档中的每个文档相对于查询语的相关度,确定与所述查询语相应的搜索结果。
根据本申请实施例的第四方面,公开了一种确定查询语包含的查询语子部分的权重值的装置,其包括:
获取单元,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值。
根据一示例性实施例,所述确定查询语包含的查询语子部分的权重值的装置还包括训练单元,其被配置为使用训练数据和相对应的训练数据标记对所述神经网络***进行训练,其中所述训练数据包括查询语,所述相对应的训练数据标记包括如下中的至少一个:
已确定的查询结果的分类;
已确定的查询意图的分类。
根据一示例性实施例,所述确定查询语包含的查询语子部分的权重值的装置还包括训练数据集收集单元,所述训练数据集收集单元包括:
训练数据收集模块,其被配置为收集包含一个或多个查询语子部分的查询语作为训练数据;
选择确定模块,其被配置为确定用户对与所述查询语相对应的查询结果的选择;
训练标记确定模块,其被配置为根据用户所选择的查询结果确定该查询结果的分类或查询意图的分类,作为与所述查询语相对应的训练数据标记。
根据本申请实施例的第五方面,公开了一种文档相关度确定装置,其包括:
获取单元,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
相关度确定单元,其被配置为根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度。
根据一示例性实施例,所述相关度确定单元包括:
加权TF值确定模块,其被配置为:将每个查询语子部分在所述查询语中的权重值乘以该查询语子部分在所述文档中的词频TF值,作为该查询语子部分在所述文档中的加权TF值;
相关度确定模块,其被配置为:使用所述一个或多个查询语子部分的各自的加权TF值来确定所述文档与所述查询语的相关度。
根据一示例性实施例,所述相关度确定模块包括:
第一确定子模块,其被配置为:根据所述一个或多个查询语子部分的各自的加权TF值,确定每个查询语子部分相对于所述文档的相关度;
第二确定子模块,其被配置为:根据每个查询语子部分相对于所述文档的相关度以及每个查询语子部分相对于所述文档的反向文件频率IDF值,确定所述文档与所述查询语的相关度。
根据一示例性实施例,所述第一确定子模块被配置为根据如下公式计算每个查询语子部分相对于所述文档的相关度Ri:
其中,k1和b均为预设的调节参数,dl为所述文档的长度,avdl为所述文档所在的文档集中文档的平均长度,witfid为该查询语子部分在所述文档中的加权TF值,其中wi为该查询语子部分在所述查询语中的权重值,tfid为该查询语子部分在所述文档中的词频TF值。
根据一示例性实施例,所述第二确定子模块被配置为根据如下公式来确定所述文档与所述查询语的相关度sd:
其中,n为所述一个或多个查询语子部分的个数,IDFi为每个查询语子部分相对于所述文档的反向文件频率IDF值,Ri为每个查询语子部分相对于所述文档的相关度。
根据本申请实施例的第六方面,公开了一种搜索装置,其包括:
获取单元,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
相关度确定单元,其被配置为根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度;
搜索结果确定单元,其被配置为根据一个或多个文档中的每个文档相对于所述查询语的相关度,确定与所述查询语相应的搜索结果。
根据本申请实施例的第七方面,公开了一种计算设备,其包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述处理器在执行所述存储器上的计算机可读指令时被配置为实现实现如上所述的确定查询语中的查询语子部分的权重值的方法、确定文档相关度的方法或搜索方法中的任一个。
根据本申请实施例的第八方面,公开了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在被处理器执行时实现如上所述的确定查询语中的查询语子部分的权重值的方法、确定文档相关度的方法或搜索方法中的任一个。
本申请的实施例提供的技术方案可以具有以下有益效果:
在本申请各实施例的一个或多个中,获取已训练好的神经网络***的注意力机制层为各查询语子部分相对应的隐藏层输出确定的权重值,作为相对应的各查询语子部分在查询语中的相关度权重值,从而能够提升确定查询语子部分的重要性/权重值的准确性,提升信息检索结果的NDCG(Normalized Discounted cumulative gain,归一化折损累计增益)。
本申请实施例的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请实施例的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请实施例的上述和其它目标、特征及优点将变得更加显而易见。此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1示出根据本申请一示例性实施例的搜索方法的示例应用环境示意图。
图2示出根据本申请一示例性实施例的确定查询语中的查询语子部分的权重值的方法的示意流程图。
图3示出根据本申请一示例性实施例的神经网络***的示意结构图。
图4示出根据本申请的一示例性实施例的收集训练数据集的示意流程图。
图5示出根据本申请一示例性实施例的确定文档相关度的方法的示例流程图。
图6示出根据本申请一示例性实施例的确定文档相关度的方法包括的根据查询语子部分在查询语中的各自的权重值来确定文档与所述查询语的相关度的示意流程图。
图7示出根据本申请一示例性实施例的图6中的步骤S620的一示例性具体实施方式的流程示意图。
图8示出根据本申请一示例性实施例的搜索方法的示意流程图。
图9示出根据本申请一示例性实施例的确定查询语包含的查询语子部分的权重值的装置的示意组成框图。
图10示出根据本申请一示例性实施例的文档相关度确定装置的示意组成框图。
图11示出根据本申请一示例性实施例的文档相关度确定装置的示意组成框图。
图12示出根据本申请一示例性实施例示出的计算设备的示意组成框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本申请实施例的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本申请实施例的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请实施例的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请实施例的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本申请实施例的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在查询理解领域,查询语子部分加权是一项基本任务,旨在找到反映用户主要搜索意图的查询语子部分,并回忆最相关的内容。查询理解从搜索查询中分析用户的意图。例如,应用程序检索(也称为应用程序搜索)是典型的信息检索问题,它根据用户输入的文本查询从大量候选者中选择和排列相关应用程序。例如,用户可以在app检索引擎中输入查询:“下载适合女性玩的游戏”。为了更好地理解此查询,搜索引擎需要以不同方式对输入项进行加权。显然,“女性”和“游戏”的重量应该大于其他查询语子部分。更重要的是,考虑到单个查询语子部分“游戏”可能会招致不相关的应用程序,例如“竞技游戏”,查询语子部分“女性”的权重大于查询语子部分“游戏”。因此,查询理解对于信息检索非常重要,它可以改善用户的搜索体验,还可以提高网站的推广成功率。
对于文本形式的查询语,一般通过分词(word segmentation)处理将其分割成一个或多个查询语子部分,每个查询语子部分可以是对应一个或多个单词的术语(term)。一般地,可以使用词频等统计方法以及概率模型和基于图的算法等来解决确定查询语中的术语的重要性/权重值的问题。
TF-IDF模型是最广泛使用的术语权重方案之一。在TF-IDF模型中,术语的权重由其在查询中出现的词频(Term Frequency,TF)以及其反向文档频率(Inverse DocumentFrequency,IDF)确定。例如,如果A这个术语在查询中经常出现但在文档集合中很少出现,则被认为是有用的。然而,在TF-IDF模型中,最大的权重将分配给高频但信息量较少的信息,比如垃圾词汇,这导致术语的权重值的确定不准确。
广泛使用的另外一种方案是利用词性(part of speech,POS)n元语法(n-gram)来确定术语的权重。在该方案中,基于不同的词性对信息检索有不同贡献的考虑,提出了五种基于词性的术语加权度量,其中两种达到了相对较好的性能,即“pos_ml_weighted”和“pos_idf”。“pos_ml_weighted”获取文档集合中POS n-gram的频率,以指示它们的信息量,并进一步使用术语权重的术语的n-gram分布。“pos_idf”采用更简单的策略,取一个术语出现在不同的POS n-gram中的反向频率。由于这两项措施仅考虑计算术语的POS信息,因此必须将它们整合到现有的术语加权方法中以便有效检索。对于利用词性n-gram来确定术语权重的方法而言,术语权重的结果严重依赖于词性分析,对于新出现的词或者词性分析不准的情况束手无策。
现有基于TF-IDF和词性分析确定术语权重的方法受限于词频和词性分析的结果,在信息搜索中确定术语在查询语中的重要性/权重值的准确率不高。
在本申请的实施例中,提出使用应用了注意力机制的神经网络***来确定查询语中各查询语子部分的权重值,由于使用了大数据,从而使得查询语子部分权重值的确定更加准确。
在本申请的实施例中:
“查询语”可以指能够作为信息查询、检索或搜索的参照的任何内容,其不限于文本内容,例如还可以是图像内容。查询语可以包括一个或多个单词、符号或它们的组合,或者可以包括图像、图像与文本的组合,等等。例如,查询语可以是单词、短语、句子、段落、整篇文档、图片等等。
“查询语子部分”可以指查询语能够被分割成的分割部分。例如,按照预定的规则,将文本形式的查询语分成一个或多个术语,将图像形式的查询语分成一个或多个图像部分,等等。每个查询语子部分可以包括一个或多个单词、符号或它们的组合,也可以包括一个或多个图像部分。
相对于用户的查询意图而言,查询语所包含的各查询语子部分在查询语中的重要性/权重值可能是不同的。“查询语子部分在查询语中的权重值”可以指基于对查询意图的理解而确定的查询语所包含的查询语子部分的重要性/权重值,其可用于确定文档相对于所述查询语的相关度。
本文中的“文档”可以是文本形式的内容,也可以是图像形式的内容,或者可以是这两种形式的组合。
图1示出了根据本申请一示例性实施例的搜索方法的示例应用环境示意图。如图1中所示,终端设备120可以通过通信链路130与搜索服务器110进行通信,以将获取的查询语发送给搜索服务器110,使得搜索服务器110可以执行如本申请实施例所述的搜索方法、文档相关度确定方法或确定查询语中的查询语子部分的权重值的方法。在图1的示例中,搜索服务器110可以访问一个或多个本地/远程数据库140。在另一示例中,搜索服务器110本身具有数据库140。
终端设备120可以通过其提供的人机界面(例如终端设备120上安装的搜索app的图形用户界面)获取查询语。在另一实施例中,终端设备120也可以通过诸如自动抓取的其他方式获取查询语。
搜索服务器110获取到查询语后,通过应用了注意力机制的神经网络***对查询语进行处理,得到查询语所包含的查询语子部分各自的权重值。在一个示例中,搜索服务器110还可以使用所确定的查询语子部分在查询语中的各自的权重值来确定文档(例如数据库140中的文档)相对于该查询语的相关度。在另一示例中,搜索服务器110可以确定一个或多个文档相对于查询语的相关度,并根据相关度确定与该查询语相对应的搜索结果。在一个示例中,搜索服务器110可以通过通信链路130将所确定的搜索结果返回给终端设备120。
如上所述的实施例只是对根据本申请实施例的搜索方法、文档相关度确定方法或确定查询语中的查询语子部分的权重值的方法适用的示例应用环境的描述,应当理解的是,该应用环境存在各种变形和改变。例如,搜索服务器110本身可以具有终端设备120的如上所述的功能(例如从用户获取查询语),或者搜索服务器110为执行如本申请实施例所述的搜索方法、文档相关度确定方法或确定查询语中的查询语子部分的权重值的方法而具有的功能模块被包含在终端设备120中。即,根据本申请实施例的搜索方法、文档相关度确定方法或确定查询语中的查询语子部分的权重值的方法可以由终端设备120来执行,也可以由搜索服务器110来执行。
图2示出了根据本申请一示例性实施例的确定查询语中的查询语子部分的权重值的方法的示意流程图。该示例方法可以由任何能够获取查询语并执行如下所述的查询语子部分权重值确定处理的电子设备来执行,例如,如上所述的终端设备120或搜索服务器110。如图2所示,该示例方法包括:
S210,获取查询语,其中所述查询语包括一个或多个查询语子部分。
作为该示例方法的执行主体的电子设备可以从其他电子设备或外部数据库获取查询语(例如,作为执行主体的搜索服务器从终端设备获取查询语),也可以从自身获取查询语(例如,作为执行主体的搜索服务器具有接收查询语输入的接口,或者作为执行主体的是包含搜索服务器功能的终端设备)。该电子设备可以通过接收、自动抓取等各种方式来获取查询语。
在一个示例中,可以按照预定的规则(例如,每个单词为一个查询语子部分)将查询语分割成一个或多个查询语子部分。例如,查询语“real-time road trip planner withtraffic”可以被分割成如下查询语子部分:“real-time”、“road”、“trip”、“planner”、“with”和“traffic”。在下面的描述中,将以文本形式的查询语为例来说明本申请实施例的方法,但应当理解的是,图像形式的查询语也适用于本申请的各实施例。此外,查询语的初始来源也可以是诸如语音、手势等其他形式的内容,这些形式的内容可以经过一定的处理被转换成文本或图像形式的查询语。另外,在一些实施例中,对于图像形式的查询语,也可以通过图像识别技术先将其转换为文本形式的内容,然后再应用本申请实施例的方法。
S220,将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层。
图3示出了根据本申请一示例性实施例的神经网络***300的示意结构图。如图3中所示,神经网络***300包括输入层310、隐藏层320、注意力机制层330、输出层340。
输入层310接收作为输入的一个或多个查询语子部分,将其一一转换成向量(例如词向量),并将转换后的输入向量输入到隐藏层320。例如,如图3所示,作为输入的查询语子部分{S1,S2,S3,S4,S5,S6}经过输入层310的转换后分别成为相应的向量{x1,x2,x3,x4,x5,x6}。在一个示例中,输入层310为嵌入(embedding)层,用于将输入的查询语子部分转换成相应的词向量。在另一示例中,输入层310为one-hot层,用于将输入的查询语子部分通过one-hot方法编码成相应的向量。
隐藏层320用于对输入的向量序列{x1,x2,x3,x4,x5,x6}进行运算,得到相应的隐藏层输出{h1,h2,h3,h4,h5,h6},其中,h1对应于查询语子部分S1,h2对应于查询语子部分S2,h3对应于查询语子部分S3,h4对应于查询语子部分S4,h5对应于查询语子部分S5,h6对应于查询语子部分S6。可见,隐藏层320包括用于对向量序列形式的输入进行运算以输出向量序列形式的输出的神经网络结构。隐藏层320可以为一层或多层,每层可以由一个或多个神经网络结构单元组成,在图3中示例性地示出了一层隐藏层结构。构成隐藏层320的神经网络结构单元可以是如下中的任一种或它们的组合:门控循环单元(GRU),卷积神经网络(CNN),深度神经网络(DNN),长短期记忆神经网络(LSTM),循环神经网络(RNN)等等。下面以隐藏层320由GRU构成为例来进行说明。每一GRU结构单元包括两个门:更新门和重置门。在一GRU结构单元中,有一个当前的输入xt,和上一个节点传递下来的隐状态(hidden state)ht-1,这个隐状态包含了之前节点的相关信息。结合xt和ht-1,通过更新门和重置门的作用,GRU结构单元会得到当前隐藏节点的输出yt和传递给下一个隐藏节点的隐状态ht。
注意力机制层330对神经网络***300应用注意力机制,确定隐藏层320的一个或多个输出的各自的权重值,并对这些隐藏层输出进行加权求和。在使用大数据对神经网络***300进行训练的过程中,注意力机制层330根据每个隐藏层输出对神经网络***300的最终输出的不同贡献学习到反映每个隐藏层输出的重要性的权重值。例如,如图3所示,对于隐藏层输出{h1,h2,h3,h4,h5,h6},注意力机制层330确定出它们各自的权重值分别为{w1,w2,w3,w4,w5,w6}。注意力机制层330根据确定出的权重值对隐藏层输出进行加权求和,并将结果传递给输出层340。
输出层340根据注意力机制层330传递的结果确定神经网络***300的最终输出。在一个示例中,输出层340的输出结果为如下中的至少一个:查询结果的分类;查询意图的分类。输出层340的最终输出结果以及神经网络***300的各参数取决于训练神经网络***300时使用的训练数据集(训练数据和相应的训练数据标记)以及训练过程。
确定各查询语子部分的重要性可看成是一个分类任务,但是在收集训练数据时标注查询语子部分的重要性比较困难。在本申请的一些实施例中,没有直接使用查询语子部分的重要性/权重值作为训练数据标记,而是创造性地通过标注查询结果的分类和查询意图的分类中的至少一个来进行训练数据的标注,并通过将注意力机制引入神经网络***中来学习查询语子部分对于查询结果的分类或查询意图的分类的重要性/权重值。应当理解的是,将查询结果的分类和查询意图的分类中的至少一个作为训练数据标记只是示例性实施例,训练数据的标记也可以是能够体现各查询语子部分的重要性/权重值的其他结果分类。
图4示出了根据本申请一示例性实施例的收集训练数据集的示意流程图。如图4所示,该流程包括:
S410,收集包含一个或多个查询语子部分的查询语作为训练数据。
为学习查询语子部分的权重值,可以收集包含一个或多个查询语子部分的查询语作为训练数据。
S420,确定用户对与所述查询语相对应的查询结果的选择。
对应于一个查询语,可能具有被提供给用户的一个或多个查询结果。用户可以从中选择自己满意的查询结果。因此,用户最终选择的查询结果是最符合用户的查询意图的。
S430,根据用户所选择的查询结果确定该查询结果的分类或查询意图的分类,作为与所述查询语相对应的训练数据标记。
在步骤S430中,根据用户的选择来确定训练数据标记。在一个示例中,训练数据标记例如为所选择的查询结果的分类。例如,在应用程序搜索的情况下,训练数据标记可以是应用程序分类。查询结果的分类可以是预先分配给该查询结果的标签,标签可以有一级或多级。例如,对于应用程序“天天酷跑”,可以预先分配给其多级标签“游戏_动作冒险_跑酷/酷跑”。可以根据用户选择的查询结果确定预先分配给该查询结果的分类标签,作为训练数据标记。
在另一示例中,训练数据标记可以是查询意图的分类。相似地,查询意图的分类也可以使用一级或多级标签来表示。在一示例中,可以直接将最终被选中的查询结果的分类作为查询意图的分类。例如,在应用程序搜索的情况下,如果用户从搜索结果中选择了应用程序“天天酷跑”,则可以将该应用程序的分类标签“游戏_动作冒险_跑酷/酷跑”作为查询意图的分类。可以理解的是,查询意图也可以通过例如调查、问卷等方式来确定和收集。
对于收集的训练数据集,可以将作为训练数据的查询语所包含的一个或多个查询语子部分作为神经网络***300的输入,将作为相应训练数据标记的分类数据(例如查询意图的分类、查询结果的分类等)作为神经网络***300的输出,对神经网络***300进行训练,以确定神经网络***300的各参数。已训练好的神经网络***300对于作为其输入的一个或多个查询语子部分,可以通过注意力机制层330确定与所述一个或多个查询语子部分相对应的隐藏层输出的权重值。
S230,获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值。
注意力机制层所确定的隐藏层输出的权重值反映了各隐藏层输出对神经网络***300的最终分类结果(例如查询意图/查询结果的分类)的重要性,从而也反映了与各隐藏层输出分别对应的各查询语子部分对最终分类结果的重要性。因此,可以将注意力机制层330所确定的权重值作为相应的一个或多个查询语子部分在所述查询语中的各自的权重值。例如,对于作为输入的各查询语子部分{S1,S2,S3,S4,S5,S6},可以获取注意力机制层330为隐藏层输出{h1,h2,h3,h4,h5,h6}所确定的权重值{w1,w2,w3,w4,w5,w6},作为这些查询语子部分各自的权重值。例如,在应用程序搜索的示例中,对于用户输入的查询语“天天酷跑”,神经网络***300可以确定其包含的查询语子部分“天天”和“酷跑”各自的权重值分别为例如0.4和0.6。
在本申请的实施例中,通过应用了注意力机制(attention)的神经网络***对作为输入的一个或多个查询语子部分进行处理,使得能够通过注意力机制层确定查询语所包含的一个或多个查询语子部分的权重值。由于采用了大数据对神经网络***进行训练,因此,由神经网络***的注意力机制层所确定的权重值更加准确。另外,在查询语子部分的权重值难以标记的情况下,本申请的一些实施例提出使用能体现各查询语子部分的不同重要性的分类数据(例如查询意图分类、查询结果分类等)作为训练数据标记,使得能够利用大数据训练神经网络***,以学习查询语子部分的权重值,从而实现了使用神经网络学习查询语子部分的权重值。
根据所确定的查询语子部分的各自的权重值,可以确定一文档与查询语的相关度。图5示出了根据本申请一示例性实施例的确定文档相关度的方法的示例流程图。该示例方法可以由具有计算处理能力的电子设备来执行,例如如上所述的搜索服务器110或终端设备120。如图5所示,该示例方法包括:
S510,获取查询语,其中所述查询语包括一个或多个查询语子部分;
S520,将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
S530,获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
上面的步骤S510-S530与图2的示例中的步骤S210-S230相同,关于这些步骤的实现细节,请参见上面对步骤S210-S230的描述,在此不再赘述。
S540,根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度。
确定文档与查询语之间的相关度可以使用多种多样的方法。BM25算法是一种常用的用于评价查询语与文档之间相关性的算法,其公式可以表示如下:
其中,其中Sd表示使用BM25算法对文档集中的第d个文档确定的文档相关度得分,即第d个文档的BM25值。由公式1可知,文档相关度得分为对每个查询语子部分i的得分求和(n为查询语所包含的查询语子部分的个数)。每个查询语子部分i的得分为三部分IDFi、R1i、R2i的乘积,其中IDFi为每个查询语子部分i相对于所述文档的反向文件频率(IDF)值,R1i为每个查询语子部分i与第d个文档的相关度,R2i为每个查询语子部分i与查询语的相关度,其中:
其中,i表示查询语中的每个查询语子部分(例如每个术语),N表示文档集中的总文档数,dfi表示文档集中包含查询语子部分i的文档数,tfid为查询语子部分i在第d个文档中的词频(TF)值,tfiq为查询语子部分i在查询语q中的词频(TF)值,dl为第d个文档的长度,avdl为该文档所在的文档集中所有文档的平均长度,k1、k3和b均为预设的调节参数。k1是一个取正值的调优参数,用于对文档中的词频进行缩放控制。如果k1取0,则相当于不考虑词频,如果k1取较大的值,那么对应于使用原始词频。b是另外一个预设的调节参数,其中可以设置为0≤b≤1,用于决定文档长度的缩放程度。如果b=1,则表示基于文档长度对术语权重进行完全的缩放;如果b=0,则表示归一化时不考虑文档长度因素。k3是另一个取正值的调优参数,用于对查询语子部分i在查询语中的词频进行缩放控制。
由上述公式1-4可知,在现有技术中确定文档与查询语的相关度时并未使用各查询语子部分在所述查询语中的权重值。而在根据本申请实施例的文档相关度确定方法中,使用查询语所包含的一个或多个查询语子部分在所述查询语中的各自的权重值,来确定文档与所述查询语的相关度(S540)。下面以图6中的流程为例来说明如何使用查询语子部分在查询语中的各自的权重值来确定文档与所述查询语的相关度。
图6示出了根据本申请一示例性实施例的确定文档相关度的方法包括的根据查询语子部分在查询语中的各自的权重值来确定文档与所述查询语的相关度的示意流程图。如图6所示,该示例过程包括:
S610,将每个查询语子部分在所述查询语中的权重值乘以该查询语子部分在所述文档中的词频TF值,作为该查询语子部分在所述文档中的加权TF值。
例如,假设每个查询语子部分的权重值为wi,在文档中的TF值为tfid,则每个查询语子部分相对于该文档的加权TF值为witfid。
S620,使用所述一个或多个查询语子部分的各自的加权TF值来确定所述文档与所述查询语的相关度。
图7示出了根据加权TF值witfid确定文档与查询语的相关度(S620)的一示例性具体实施方式的示意流程图。如图7所示,该过程可以包括:
S710,根据所述一个或多个查询语子部分的各自的加权TF值,确定每个查询语子部分相对于所述文档的相关度。
上面的公式3示出了现有技术中如何计算查询语子部分与文档的相关度。与公式3类似,根据本申请实施例的方法使用加权的TF值witfid替代公式3中的TF值tfid来确定查询语子部分与文档的相关度R′i1,即:
其中,各个参数的含义与在公式3中相同,此处不再赘述。
S720,根据每个查询语子部分相对于所述文档的相关度以及每个查询语子部分相对于所述文档的反向文件频率IDF值,确定所述文档与所述查询语的相关度。
在如上所述的公式1中,文档的相关度Sd为每个查询语子部分得分的加权和,每个查询语子部分得分为三部分IDFi、R1i、R2i的乘积。在本申请的实施例中,如公式5所示,在R′i1中使用的是加权后的TF值witfid,而不是TF值tfid。可以看出,根据本申请的实施例在确定R′i1已经考虑了查询语子部分在查询语中的权重值(wi),因此,在确定每个查询语子部分的得分时,仅需考虑IDFi和R′i1两部分,而不再考虑查询语子部分与查询语的相关度R2i。在本申请的一个示例中,通过如下公式来确定文档相关度S′d:
其中,IDFi为每个查询语子部分相对于文档的反向文件频率IDF值,其计算公式请参见公式2,其他各个参数的含义与在公式1-4中相同,在此不再赘述。
由公式6可知,根据本申请实施例的方法在确定文档相对于查询语的相关度时仅考虑每个查询语子部分相对于文档的IDF值以及根据查询语子部分的加权TF值确定的查询语子部分与文档的相关度R′i1,而不再单独考虑查询语子部分与查询语的相关度R2i。由于查询语子部分的加权TF值是根据神经网络***学习得到的查询语子部分的比较准确的权重值wi而计算的,因此,根据本申请实施例的方法而确定的文档相关度S′d也是更加准确的。
根据本申请实施例的另一方面,还提供一种搜索方法,该方法同样可以由具有计算和处理能力的电子设备来执行,例如搜索服务器或终端设备。图8示出了这样的搜索方法的一示例性实施例的流程图。如图8所示,该示例搜索方法包括:
S810,获取查询语,其中所述查询语包括一个或多个查询语子部分。
S820,将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层。
S830,获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值。
S840,根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定一个或多个文档中每个文档与所述查询语的相关度。
上面的步骤S810-S830与图2的示例中的步骤S210-S230相同,关于这些步骤的实现细节,请参见上面对步骤S210-S230的描述,在此不再赘述。步骤S840与图5的示例中的步骤S540相同,关于其实现细节,请参见上面对步骤S540的描述,此处不再赘述。
S850,根据所述一个或多个文档中的每个文档相对于查询语的相关度,确定与所述查询语相应的搜索结果。
在确定了作为候选搜索结果的一个或多个文档相对于查询语的相关度后,可以根据它们的相关度来确定相应搜索结果。在一个示例中,可以将这一个或多个文档按照相对于查询语的相关度从高到低的顺序进行排序,将排序后的文档中排在前面的预定数量(例如,前5个,前10个等等)的文档作为与该查询语相对应的搜索结果。作为执行主体的电子设备可以将该搜索结果返回给用户。例如,作为执行主体的搜索服务器将搜索结果返回发起搜索的终端设备,由终端设备通过显示装置将搜索结果呈现给用户。
根据本申请实施例的搜索方法使用神经网络***学习到查询语所包含的各查询语子部分的权重值,根据权重值确定文档与查询语的相关度,并根据各文档的相关度确定与查询语相对应的搜索结果。由于使用经过大数据训练的神经网络***来确定查询语子部分的权重值,所确定的权重值更加准确,从而搜索结果也更加准确,具有更高的归一化折损累计增益(Normalized Discounted cumulative gain,NDCG)。
NDCG是信息检索领域对排序的评价指标之一,常用于评价排序的好坏。下面以一个示例来说明根据本申请实施例的搜索方法具有更高的NDCG。
对于查询语“text messenger my phone to my tablet”,使用TF-IDF算法得到的各查询语子部分的权重值wi1(其中wi1等于查询语子部分的TF值与IDF值的乘积)以及根据本申请实施例的确定查询语子部分的权重值的方法而得到的权重值wi2分别如下表所示:
text | messenger | my | phone | to | my | tablet | |
w<sub>i1</sub> | 0.19 | 0.11 | 0.08 | 0.05 | 0.19 | 0.08 | 0.30 |
w<sub>i2</sub> | 0.01 | 0.41 | 0.04 | 0.12 | 0.04 | 0.04 | 0.38 |
在一个示例中,在确定文档相关度以确定搜索结果时,对于搜索结果中排名前10的结果计算NDCG,其中,如下几种情况下所得到的搜索结果的NDCG分别如下表所示:
情况一,将使用TF-IDF算法得到的权重值作为公式5-6中wi的值来计算文档相关度;
情况二,将使用词性n元语法得到的权重值作为公式5-6中wi的值来计算文档相关度;
情况三,将随机初始化的权重值作为公式5-6中wi的值来计算文档相关度;
情况四,使用传统BM25算法(公式1-4)来计算文档相关度;
情况五,将根据本申请实施例的方法得到的查询语子部分的权重值作为公式5-6中wi的值来计算文档相关度。
NDCG | |
情况一 | 73% |
情况二 | 65.3% |
情况三 | 75% |
情况四 | 74% |
情况五(本申请) | 77.5% |
由上表可知,根据本申请实施例的搜索方法而得到的搜索结果具有最高的NDCG(77.5%)。
根据本申请实施例的另一方面,还提供一种确定查询语包含的查询语子部分的权重值的装置,该装置可用来执行如上所述的查询语子部分的权重值确定方法的各实施例。该装置可以是具有计算和处理能力的计算设备的一部分,例如位于如上所述的搜索服务器或终端设备中。图9示出了根据本申请一示例性实施例的确定查询语包含的查询语子部分的权重值的装置900的示意组成框图,如图9所示,该装置900包括:
获取单元910,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***920,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元930,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值。
根据本申请实施例的另一方面,还提供一种文档相关度确定装置,该装置可用来执行如上所述的文档相关度确定方法的各实施例。该装置可以是具有计算和处理能力的计算设备的一部分,例如位于如上所述的搜索服务器或终端设备中。图10示出了根据本申请一示例性实施例的文档相关度确定装置1000的示意组成框图,如图10所示,该装置1000包括:
获取单元910,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***920,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元930,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
相关度确定单元1040,其被配置为根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度。
根据本申请实施例的另一方面,还提供一种搜索装置,该装置可用来执行如上所述的搜索方法的各实施例。该装置可以是具有计算和处理能力的计算设备的一部分,例如位于如上所述的搜索服务器或终端设备中。图11示出了根据本申请一示例性实施例的文档相关度确定装置1100的示意组成框图,如图11所示,该装置1100包括:
获取单元910,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***920,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元930,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
相关度确定单元1040,其被配置为根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度;
搜索结果确定单元1150,其被配置为根据一个或多个文档中的每个文档相对于所述查询语的相关度,确定与所述查询语相应的搜索结果。
上述各装置中各个单元/模块的功能和作用的实现过程以及相关细节具体详见上述方法实施例中对应步骤的实现过程,在此不再赘述。
以上各实施例中的各装置实施例可以通过硬件、软件、固件或其组合的方式来实现,并且其可以被实现为一个单独的装置,也可以被实现为各组成单元/模块分散在一个或多个计算设备中并分别执行相应功能的逻辑集成***。以上各实施例中组成各装置的各单元/模块是根据逻辑功能而划分的,它们可以根据逻辑功能被重新划分,例如可以通过更多或更少的单元/模块来实现该装置。这些组成单元/模块分别可以通过硬件、软件、固件或其组合的方式来实现,它们可以是分别的独立部件,也可以是多个组件组合起来执行相应的逻辑功能的集成单元/模块。所述硬件、软件、固件或其组合的方式可以包括:分离的硬件组件,通过编程方式实现的功能模块、通过可编程逻辑器件实现的功能模块,等等,或者以上方式的组合。
根据一个示例性实施例,上述各装置实施例可被实现为一种计算设备,该计算设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时,使得所述计算设备执行如上所述的确定查询语中的查询语子部分的权重值的方法、确定文档相关度的方法或搜索方法的各实施例中的任一个,或者,所述计算机程序在被所述处理器执行时使得该计算设备实现如上所述的各装置实施例的组成单元/模块所实现的功能。
上面的实施例中所述的处理器可以指单个的处理单元,如中央处理单元CPU,也可以是包括多个分散的处理单元/处理器的分布式处理器***。
上面的实施例中所述的存储器可以包括一个或多个存储器,其可以是计算设备的内部存储器,例如暂态或非暂态的各种存储器,也可以是通过存储器接口连接到计算设备的外部存储装置。
图12示出了这样的计算设备1201的一个示例性实施例的示意组成框图。如图12所示,该计算设备可以包括但不限于:至少一个处理单元1210、至少一个存储单元1220、连接不同***组件(包括存储单元1220和处理单元1210)的总线1230。
所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1210执行,使得所述处理单元1210执行本说明书上述示例性方法的描述部分中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元1210可以执行附图中所示的各个步骤。
存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1221和/或高速缓存存储单元1222,还可以进一步包括只读存储单元(ROM)1223。
存储单元1220还可以包括具有一组(至少一个)程序模块1225的程序/实用工具1224,这样的程序模块1225包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
该计算设备也可以与一个或多个外部设备1270(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该计算设备交互的设备通信,和/或与使得该计算设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1250进行。在一个实施例中,该计算设备还可以通过网络适配器1260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与该计算设备的其它模块通信。应当明白,尽管图中未示出,但该计算设备可以使用其它硬件和/或软件模块来实现,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的各方法实施例。
根据本申请的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请实施例的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例的操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请实施例的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
Claims (14)
1.一种确定查询语包含的查询语子部分的权重值的方法,其特征在于,包括:
获取查询语,其中所述查询语包括一个或多个查询语子部分;
将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
其中,在将所述一个或多个查询语子部分作为相应的一个或多个输入,输入到训练好的神经网络***之前,所述方法还包括:
使用训练数据和相对应的训练数据标记对所述神经网络***进行训练,其中所述训练数据包括查询语,所述相对应的训练数据标记包括如下中的至少一个:
已确定的查询结果的分类;
已确定的查询意图的分类。
2.根据权利要求1所述的方法,其特征在于,所述隐藏层包括用于对向量序列形式的输入进行运算以输出向量序列形式的输出的一层或多层神经网络结构。
3.根据权利要求1所述的方法,其特征在于,所述隐藏层包括如下神经网络结构中的至少一种:
门控循环单元;
卷积神经网络;
深度神经网络;
长短期记忆神经网络;
循环神经网络。
4.根据权利要求1所述的方法,其特征在于,在使用训练数据和相对应的训练数据标记对所述神经网络***进行训练之前,所述方法还包括:
收集包含一个或多个查询语子部分的查询语作为训练数据;
确定用户对与所述查询语相对应的查询结果的选择;
根据用户所选择的查询结果确定该查询结果的分类或查询意图的分类,作为与所述查询语相对应的训练数据标记。
5.一种确定文档相关度的方法,其特征在于,包括:
根据权利要求1-4中任一项所述的确定查询语包含的查询语子部分的权重值的方法,确定所述查询语所包含的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度。
6.根据权利要求5所述的方法,其特征在于,所述根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度包括:
将每个查询语子部分在所述查询语中的权重值乘以该查询语子部分在所述文档中的词频TF值,作为该查询语子部分在所述文档中的加权TF值;
使用所述一个或多个查询语子部分的各自的加权TF值来确定所述文档与所述查询语的相关度。
7.根据权利要求6所述的方法,其特征在于,所述使用所述一个或多个查询语子部分的各自的加权TF值来确定所述文档与所述查询语的相关度包括:
根据所述一个或多个查询语子部分的各自的加权TF值,确定每个查询语子部分相对于所述文档的相关度;
根据每个查询语子部分相对于所述文档的相关度以及每个查询语子部分相对于所述文档的反向文件频率IDF值,确定所述文档与所述查询语的相关度。
10.一种搜索方法,其特征在于,包括:
根据如权利要求5-9中任一项所述的确定文档相关度的方法,确定一个或多个文档中的每个文档相对于查询语的相关度;
根据所述一个或多个文档中的每个文档相对于查询语的相关度,确定与所述查询语相应的搜索结果。
11.一种确定查询语包含的查询语子部分的权重值的装置,其特征在于,包括:
获取单元,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;以及
训练单元,其被配置为使用训练数据和相对应的训练数据标记对所述神经网络***进行训练,其中所述训练数据包括查询语,所述相对应的训练数据标记包括如下中的至少一个:
已确定的查询结果的分类;
已确定的查询意图的分类。
12.一种文档相关度确定装置,其特征在于,包括:
获取单元,其被配置为获取查询语,其中所述查询语包括一个或多个查询语子部分;
神经网络***,其被配置为以所述一个或多个查询语子部分作为所述神经网络***的相应的一个或多个输入,其中所述神经网络***包括:用于对所述一个或多个输入进行运算以得到相应的一个或多个输出的隐藏层,和用于确定所述一个或多个输出的各自的权重值并对所述一个或多个输出进行加权求和的注意力机制层;
权重值获取单元,其被配置为获取所述注意力机制层所确定的所述一个或多个输出的各自的权重值,作为相应的所述一个或多个查询语子部分在所述查询语中的各自的权重值;
相关度确定单元,其被配置为根据所述一个或多个查询语子部分在所述查询语中的各自的权重值,确定文档与所述查询语的相关度;以及
训练单元,其被配置为使用训练数据和相对应的训练数据标记对所述神经网络***进行训练,其中所述训练数据包括查询语,所述相对应的训练数据标记包括如下中的至少一个:
已确定的查询结果的分类;
已确定的查询意图的分类。
13.一种计算设备,包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述处理器在执行所述存储器上的计算机可读指令时被配置为实现根据权利要求1至4中任一项所述的确定查询语中的查询语子部分的权重值的方法,或权利要求5-9中任一项所述的确定文档相关度的方法,或权利要求10所述的搜索方法。
14.一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在被处理器执行时实现根据权利要求1至4中任一项所述的确定查询语中的查询语子部分的权重值的方法,或权利要求5-9中任一项所述的确定文档相关度的方法,或权利要求10所述的搜索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910217435.4A CN109977292B (zh) | 2019-03-21 | 2019-03-21 | 搜索方法、装置、计算设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910217435.4A CN109977292B (zh) | 2019-03-21 | 2019-03-21 | 搜索方法、装置、计算设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977292A CN109977292A (zh) | 2019-07-05 |
CN109977292B true CN109977292B (zh) | 2022-12-27 |
Family
ID=67079963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910217435.4A Active CN109977292B (zh) | 2019-03-21 | 2019-03-21 | 搜索方法、装置、计算设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977292B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784145B (zh) * | 2019-11-01 | 2024-06-04 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置和介质 |
CN110991181B (zh) * | 2019-11-29 | 2023-03-31 | 腾讯科技(深圳)有限公司 | 用于增强已标注样本的方法和设备 |
CN112307190B (zh) * | 2020-10-31 | 2023-07-25 | 平安科技(深圳)有限公司 | 医学文献排序方法、装置、电子设备及存储介质 |
CN113868370A (zh) * | 2021-08-20 | 2021-12-31 | 深延科技(北京)有限公司 | 文本推荐方法、装置、电子设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768679A (zh) * | 2012-06-25 | 2012-11-07 | 深圳市汉络计算机技术有限公司 | 一种搜索方法及搜索*** |
CN102929924A (zh) * | 2012-09-20 | 2013-02-13 | 百度在线网络技术(北京)有限公司 | 一种基于浏览内容的取词搜索结果生成方法及装置 |
CN103246681A (zh) * | 2012-02-13 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种搜索方法及装置 |
CN106339756A (zh) * | 2016-08-25 | 2017-01-18 | 北京百度网讯科技有限公司 | 训练数据的生成方法、搜索方法以及装置 |
CN107330057A (zh) * | 2017-06-29 | 2017-11-07 | 哈尔滨工程大学科技园发展有限公司 | 一种ElasticSearch搜索相关度算法优化方法及*** |
CN107402960A (zh) * | 2017-06-15 | 2017-11-28 | 成都优易数据有限公司 | 一种基于语义语气加权的倒排索引优化算法 |
CN108733766A (zh) * | 2018-04-17 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置和可读介质 |
CN109472024A (zh) * | 2018-10-25 | 2019-03-15 | 安徽工业大学 | 一种基于双向循环注意力神经网络的文本分类方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269545B2 (en) * | 2001-03-30 | 2007-09-11 | Nec Laboratories America, Inc. | Method for retrieving answers from an information retrieval system |
US9465872B2 (en) * | 2009-08-10 | 2016-10-11 | Yahoo! Inc. | Segment sensitive query matching |
US20130173610A1 (en) * | 2011-12-29 | 2013-07-04 | Microsoft Corporation | Extracting Search-Focused Key N-Grams and/or Phrases for Relevance Rankings in Searches |
-
2019
- 2019-03-21 CN CN201910217435.4A patent/CN109977292B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246681A (zh) * | 2012-02-13 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种搜索方法及装置 |
CN102768679A (zh) * | 2012-06-25 | 2012-11-07 | 深圳市汉络计算机技术有限公司 | 一种搜索方法及搜索*** |
CN102929924A (zh) * | 2012-09-20 | 2013-02-13 | 百度在线网络技术(北京)有限公司 | 一种基于浏览内容的取词搜索结果生成方法及装置 |
CN106339756A (zh) * | 2016-08-25 | 2017-01-18 | 北京百度网讯科技有限公司 | 训练数据的生成方法、搜索方法以及装置 |
CN107402960A (zh) * | 2017-06-15 | 2017-11-28 | 成都优易数据有限公司 | 一种基于语义语气加权的倒排索引优化算法 |
CN107330057A (zh) * | 2017-06-29 | 2017-11-07 | 哈尔滨工程大学科技园发展有限公司 | 一种ElasticSearch搜索相关度算法优化方法及*** |
CN108733766A (zh) * | 2018-04-17 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置和可读介质 |
CN109472024A (zh) * | 2018-10-25 | 2019-03-15 | 安徽工业大学 | 一种基于双向循环注意力神经网络的文本分类方法 |
Non-Patent Citations (3)
Title |
---|
POLAR: Attention-Based CNN for One-Shot Personalized Article Recommendation;Yuhui Ding 等;《Machine Learning and Knowledge Discovery in Databases》;20190123;675–690页 * |
一种新的融合BM25与文本特征的新闻摘要算法;李楠等;《成都信息工程大学学报》;20180415;第33卷(第2期);113-118页 * |
面向信息精准服务的信息检索与查询推荐方法研究;蔡飞;《中国博士学位论文全文数据库 信息科技辑》;20171215;I138-121 * |
Also Published As
Publication number | Publication date |
---|---|
CN109977292A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977292B (zh) | 搜索方法、装置、计算设备和计算机可读存储介质 | |
CN109284357B (zh) | 人机对话方法、装置、电子设备及计算机可读介质 | |
US20200250465A1 (en) | Accurate tag relevance prediction for image search | |
US11544474B2 (en) | Generation of text from structured data | |
CN109829104B (zh) | 基于语义相似度的伪相关反馈模型信息检索方法及*** | |
WO2020108608A1 (zh) | 搜索结果处理方法、装置、终端、电子设备及存储介质 | |
CN106776673B (zh) | 多媒体文档概括 | |
CN106575503B (zh) | 用于对话理解***的会话上下文建模的方法和*** | |
US7555427B2 (en) | Providing a topic list | |
TWI512502B (zh) | 用於產生習慣語言模式之方法及系統及相關之電腦程式產品 | |
JP4726528B2 (ja) | マルチセンスクエリについての関連語提案 | |
US11874862B2 (en) | Community question-answer website answer sorting method and system combined with active learning | |
US20130060769A1 (en) | System and method for identifying social media interactions | |
CN111753167B (zh) | 搜索处理方法、装置、计算机设备和介质 | |
CN109241243B (zh) | 候选文档排序方法及装置 | |
US11023503B2 (en) | Suggesting text in an electronic document | |
US10949452B2 (en) | Constructing content based on multi-sentence compression of source content | |
CN110147494B (zh) | 信息搜索方法、装置,存储介质及电子设备 | |
US11308146B2 (en) | Content fragments aligned to content criteria | |
CN112818091A (zh) | 基于关键词提取的对象查询方法、装置、介质与设备 | |
US20230119161A1 (en) | Efficient Index Lookup Using Language-Agnostic Vectors and Context Vectors | |
KR102053419B1 (ko) | 개체명 연결 방법, 장치, 시스템 및 컴퓨터 프로그램 | |
CN112883266A (zh) | 搜索方法、搜索装置、存储介质与电子设备 | |
CN117076636A (zh) | 一种智能客服的信息查询方法、***和设备 | |
CN113312523B (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 |