CN110597956B - 一种搜索方法、装置及存储介质 - Google Patents

一种搜索方法、装置及存储介质 Download PDF

Info

Publication number
CN110597956B
CN110597956B CN201910849357.XA CN201910849357A CN110597956B CN 110597956 B CN110597956 B CN 110597956B CN 201910849357 A CN201910849357 A CN 201910849357A CN 110597956 B CN110597956 B CN 110597956B
Authority
CN
China
Prior art keywords
search
word
language model
groups
search text
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
Application number
CN201910849357.XA
Other languages
English (en)
Other versions
CN110597956A (zh
Inventor
赵猛
颜强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910849357.XA priority Critical patent/CN110597956B/zh
Publication of CN110597956A publication Critical patent/CN110597956A/zh
Application granted granted Critical
Publication of CN110597956B publication Critical patent/CN110597956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/374Thesaurus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种搜索方法、装置及存储介质,所述方法包括:对用户输入的搜索文本进行数据变换,生成多个待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;分别计算各待选词组成为所述搜索文本的下一个词组的概率;根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,所述候选后缀包括概率高于预设概率的待选词组;根据所述候选词组和所述候选后缀生成搜索词;根据所述搜索词进行搜索,生成并输出搜索结果。采用本方案能够避免Simrank方式下错误的推荐,也不依赖统计机器翻译方式下的大量训练数据和长期的词典资源建设,进而提高搜索推荐准确率,动态生成高质量的搜索词。

Description

一种搜索方法、装置及存储介质
技术领域
本申请实施例涉及通信技术领域,具体涉及一种搜索方法、装置及存储介质。
背景技术
在挖掘用户搜索词时,一般采用结构相似度(英文全称:Structural Similarityrank,英文简称:Simrank)算法和基于会话(session)的word2vec。其中,SimRank算法是基于图的拓扑结构信息来衡量任意两个对象间相似程度以向用户推荐搜索词,例如对象a和b如果分别指向对象c和d,则被认为是相似的,并且c和d本身相似。基于session的word2vec则是将用户输入的搜索词(query)表示为一个session序列,利用word2vec中的skip-gram算法学习query的向量表示,然后基于向量表示找到相似的query。这两种方式均基于用户已经输入过的query进行挖掘,一旦用户输入新的query时便不能给用户推荐合适的相关搜索词。
目前,主要基于统计机器翻译方式来生成新的query,例如通过离线term/phrase对齐挖掘,利用解码的方式实现query的生成。
在对现有技术的研究和实践过程中,本申请的发明人发现,基于统计机器翻译方式虽然可以生成新的query,但是需要挖掘出高质量的对齐短语,则需要积累大量的对齐训练数据以及以来长期维护的词典资源。可见,基于统计机器翻译方式存在一定的局限性,并不能在不依赖于大量训练数据和词典资源的前提下挖掘出高质量的搜索词。
发明内容
本申请实施例提供一种搜索方法、装置及存储介质,能够有效挖掘高质量的搜索词,以及明确用户的搜索需求。
第一方面,本申请实施例提供一种搜索方法,所述方法包括:
对用户输入的搜索文本进行数据变换,生成多个待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;
分别计算各待选词组成为所述搜索文本的下一个词组的概率;
根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;
根据所述候选词组和所述候选后缀生成搜索词;
根据所述搜索词进行搜索,生成并输出搜索结果。
一种可能的设计中,所述搜索文本包括字和词中的至少一种字符;所述获取用户输入的搜索文本之后,所述对所述搜索文本进行数据变换之前,所述方法还包括:
将所述搜索文本进行编码,得到字符串,所述字符串是指字向量、词向量以及字的热编码向量中的至少一种向量合成得到的字符串;
所述对所述搜索文本进行数据变换,生成多个待选词组,包括:
将所述字符串输入语言模型;
通过所述语言模型确定所述字符串中的各向量与各待选词组之间的长期依赖关系;
根据所述字符串中的各向量与各待选词组之间的长期依赖关系生成所述多个待选词组。
一种可能的设计中,所述对所述搜索文本进行数据变换,生成多个待选词组,分别计算各待选词组成为所述搜索文本的下一个词组的概率;根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,包括:
将所述搜索文本输入所述语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;
计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;
对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;
根据所述概率分布从所述多个待选词组中选择所述候选后缀。
一种可能的设计中,所述语言模型包括计算图,所述待选词组为字符;所述将所述搜索文本输入所述语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;根据所述概率分布从所述多个待选词组中选择所述候选后缀,包括:
基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),所述W(i,k)表示所述第i次集束搜索得到的k个字符;k为正整数;
确定生成W(i+1,k)中各字符的路径和在每条路径生成新字符的概率;所述W(i+1,k)表示待进行第i+1次集束搜索的k个新字符;
根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k);W(i+1,n)表示待进行第i+1次集束搜索时所述W(i+1,k)中输入所述语言模型的第n个字符;1≤n≤k且n为正整数;
将所述W(i+1,k)作为所述语言模型的下一轮输入并基于所述计算图对所述W(i+1,k)进行第i+1次集束搜索,直至生成的后缀长度达到预设长度或者出现结束符;
从所述k个新字符中选择偏微分最大的新字符作为所述候选后缀。
一种可能的设计中,所述基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),包括:
基于所述计算图对所述搜索文本进行第i次集束搜索,预测得到多个字符;
将W(i,n)在第一路径的偏微分与所述W(i,n)的第二路径的偏微分相加,得到所述W(i,n)的实际偏微分;所述W(i,n)是指所述第i次集束搜索时所述W(i,k)中输入所述语言模型的第n个字符;所述W(i,n)是指参与至少两条路径上的至少两次计算的字符;所述W(i,n)在所述第二路径的偏微分先于在所述第一路径计算;
根据所述W(i,n)的实际偏微分从所述W(i,n)中选择k个字符作为所述W(i,k)
一种可能的设计中,所述根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k)之后,所述方法还包括:
记录生成每个新字符后所述语言模型的隐藏状态。
一种可能的设计中,所述获取用户输入的搜索文本之后,所述对所述搜索文本进行数据变换之前,所述方法还包括:
若确定所述搜索文本与小程序名称或者公众号名称一致,则将所述搜索文本标记为小程序或者公众号;
不生成所述搜索文本的后缀;
或者,生成所述搜索文本的后缀,并将所述搜索文本的后缀的偏微分标记为预设数值以下。
一种可能的设计中,所述搜索结果保存在区块链节点上。
第二方面中,本申请实施例提供一种搜索装置,具有实现对应于上述第一方面提供的搜索方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述搜索装置包括:
输入输出模块,用于获取用户输入的搜索文本;
处理模块,用于对所述输入输出模块获取的所述搜索文本进行数据变换,生成多个待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;分别计算各待选词组成为所述搜索文本的下一个词组的概率;根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;根据所述候选词组和所述候选后缀生成搜索词;根据所述搜索词进行搜索,生成搜索结果;
所述输入输出模块还用于输出所述处理模块生成的所述搜索结果。
一种可能的设计中,所述搜索文本包括字和词中的至少一种字符;所述处理模块在所述输入输出模块获取用户输入的搜索文本之后,对所述搜索文本进行数据变换之前,还用于:
将所述搜索文本进行编码,得到字符串,所述字符串是指字向量、词向量以及字的热编码向量中的至少一种向量合成得到的字符串;
通过所述输入输出模块将所述字符串输入语言模型;
通过所述语言模型确定所述字符串中的各向量与各待选词组之间的长期依赖关系;
根据所述字符串中的各向量与各待选词组之间的长期依赖关系生成所述多个待选词组。
一种可能的设计中,所述处理模块具体用于:
通过所述输入输出模块将所述搜索文本输入所述语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;
计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;
对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;
根据所述概率分布从所述多个待选词组中选择所述候选后缀。
一种可能的设计中,所述语言模型包括计算图,所述待选词组为字符;所述处理模块具体用于:
基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),所述W(i,k)表示所述第i次集束搜索得到的k个字符;k为正整数;
确定生成W(i+1,k)中各字符的路径和在每条路径生成新字符的概率;所述W(i+1,k)表示待进行第i+1次集束搜索的k个新字符;
根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k);W(i+1,n)表示待进行第i+1次集束搜索时所述W(i+1,k)中输入所述语言模型的第n个字符;1≤n≤k且n为正整数;
通过所述输入输出模块将所述W(i+1,k)作为所述语言模型的下一轮输入并基于所述计算图对所述W(i+1,k)进行第i+1次集束搜索,直至生成的后缀长度达到预设长度或者出现结束符;
从所述k个新字符中选择偏微分最大的新字符作为所述候选后缀。
一种可能的设计中,所述处理模块具体用于:
基于所述计算图对所述搜索文本进行第i次集束搜索,预测得到多个字符;
将W(i,n)在第一路径的偏微分与所述W(i,n)的第二路径的偏微分相加,得到所述W(i,n)的实际偏微分;所述W(i,n)是指所述第i次集束搜索时所述W(i,k)中输入所述语言模型的第n个字符;所述W(i,n)是指参与至少两条路径上的至少两次计算的字符;所述W(i,n)在所述第二路径的偏微分先于在所述第一路径计算;
根据所述W(i,n)的实际偏微分从所述W(i,n)中选择k个字符作为所述W(i,k)
一种可能的设计中,所述处理模块在根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k)之后,还用于:
记录生成每个新字符后所述语言模型的隐藏状态。
一种可能的设计中,所述处理模块在所述输入输出模块获取用户输入的搜索文本之后,对所述搜索文本进行数据变换之前,还用于:
若确定所述搜索文本与小程序名称或者公众号名称一致,则将所述搜索文本标记为小程序或者公众号;
不生成所述搜索文本的后缀;
或者,生成所述搜索文本的后缀,并将所述搜索文本的后缀的偏微分标记为预设数值以下。
一种可能的设计中,所述搜索结果保存在区块链节点上。
本申请实施例又一方面提供了一种搜索装置,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行上述第一方面所述的方法。
本申请实施例又一方面提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
与现有机制相比,本申请实施例中,对用户输入的搜索文本进行数据变换,生成多个待选词组,分别计算各待选词组成为所述搜索文本的下一个词组的概率;从所述多个待选词组中选择,根据所述候选词组和所述候选后缀生成搜索词。由于该搜索词是对搜索文本进行数据变换得到的,而待选词组能够补充缺失语义的关键词去明确用户的查询需求,所以,能够避免Simrank方式下错误的推荐,也不依赖统计机器翻译方式下的大量训练数据和长期的词典资源建设,能够提高搜索推荐准确率,动态生成高质量的搜索词。这样根据该搜索词进行搜索时,就可以明确的搜索出与该搜索词匹配的搜索结果。
附图说明
图1是本申请实施例中语言模型的一种结构示意图;
图2是本申请实施例中搜索方法的一种流程示意图;
图3是本申请实施例中LSTM网络的输出多个待选词组的一种示意图;
图4a是现有机制中采用Simrank方式搜索的一种界面示意图;
图4b是采用本申请实施例中的搜索方法搜索的一种界面示意图;
图5a是本申请实施例中基于LSTM网络对输入进行编码的一种示意图;
图5b是本申请实施例中基于LSTM网络进行搜索的一种示意图;
图6a是本申请实施例中基于计算图生成新字符的一种示意图;
图6b是本申请实施例中基于LSTM网络进行搜索的一种示意图;
图6c是本申请实施例中基于计算图进行集束搜索的一种流程示意图;
图7a是本申请实施例中基于LSTM网络对输入编码的一种示意图;
图7b是本申请实施例中基于LSTM网络进行搜索的一种示意图;
图7c是本申请实施例中LSTM网络输出的搜索结果的一种示意图;
图7d是本申请实施例中分布式***的一种结构示意图;
图8是本申请实施例中搜索装置的一种结构示意图;
图9是本申请实施例中执行搜索方法的计算机装置的一种结构示意图;
图10是本申请实施例中执行搜索方法的服务器的结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例提供一种搜索方法、装置及存储介质。该方案可用于服务器、搜索引擎等网络侧提供搜索、检索或查询等服务的网络设备,本申请实施例中的服务器可以是区块链***中的节点。以下分别进行详细说明。
图1为本申请实施例中的语言模型的一种结构示意图,该语言模型包括输入层、隐藏层和输出层。其中,隐藏层由至少两层循环神经网络构成,语言模型中的循环神经网络可为长短期记忆(英文全称:long short term memory,英文简称:LSTM)网络(图1以两层LSTM网络为例)、门控循环单元(英文全称:gated recurrent unit,英文简称:GRU)和简单循环单元(英文全称:simple recurrent units,英文简称:SRU)等神经网络,本申请实施例不对此作限定。LSTM网络的大小为1024个隐藏单元,LSTM网络的目标函数为最大似然。
在现有机制中,Simrank和词向量化方式只能基于已经用户曾输入过的查询词进行挖掘,当用户输入的查询词为全新时,无法准确的为用户推荐合适的搜索建议。而统计机器翻译方式则需要大量训练数据和长期的词典资源建设,生成的查询词仅仅针对语义改变,并未改变查询需求。所以,导致推荐的搜索结果可能无法真的对应用户需求,尤其是用户在仅仅知道几个关键词而缺失部分关键词的情况下,这种推荐更是无法定位出用户隐藏的实际查询需求。
为解决上述技术问题,本申请实施例采用下述方案:
1、改进语言模型的数据处理方式,例如使用LSTM网络针对用户输入的新查询词进行派生,生成后缀,通过派生后缀补充缺失语义的关键词去明确用户的查询需求,避免Simrank方式下错误的推荐,也不依赖统计机器翻译方式下的大量训练数据和长期的词典资源建设,能够提高搜索和推荐的准确率,动态生成高质量的查询词。
2、改进语言模型的输入,例如对语言模型中LSTM网络的输入进行数据变换,例如,将输入LSTM网络的query转换为字向量、词向量以及字的热编码(one-hot)向量中的至少一种组合,并拼接为一个字符串作为LSTM网络的输入。通过对LSTM的输入进行数据变换,使LSTM网络更容易学习到后缀中各词与搜索文本中各词的位置之间的依赖关系,使得语言模型学习的更准确,从而提高后缀的准确性。
3、改进语言模型的结构和数据处理方式,例如在LSTM网络中引入计算图,基于计算图对输入LSTM的字符串进行解码。能够避免大量的请求、减少网络延迟以及缩短大量的网络请求耗时。
需要说明的是,不论用户输入的搜索文本是不是与已有的搜索词(query)匹配,都可以用本申请实施例中介绍的生成候选后缀的方式。因为,即使确定用户当前输入的搜索文本能够与后台历史训练过的query相匹配,考虑到搜索库的更新不及时以及语言模型的训练更新不及时,也可以在直接调取已经训练过的query对应的搜索结果,也可以同时或单独基于本申请实施例公开的技术方案来生成搜索词,已有的搜索库和本方案可结合或单独使用,本申请实施例不对此作限定。同时,针对一个新输入的搜索文本,本申请实施例中的语言模型可以将该新输入的搜索文本为训练数据,以不断更新搜索库,在保证实时动态的响应搜索请求的同时,还不断的训练语言模型,以保证语言模型越来越全面,搜索准确率更高。
本申请实施例以搜索文本为语言模型未学习到的新query为例,针对历史query的搜索方法可参考本申请实施例中针对新query搜索方法的介绍,本申请实施例不限于基于新query搜索,同样适用于基于历史query搜索。
参阅图2,本申请实施例提供一种搜索方法,本申请实施例包括:
201、对用户输入的搜索文本进行数据变换,生成多个待选词组。
其中,所述待选词组是指与所述搜索文本构成真实语义的后缀。
所述搜索文本包括字和词中的至少一种字符。例如,用户在搜索界面输入“科技鱼是什么”,该搜索文本中包括“科技”、“鱼”、“是”和“什么”。本申请实施例中的搜索文本还可以包括符号、字母等形式的字符,本申请实施例不对此作限定,字和词组成的搜索文本仅为一种示例。
一些实施方式中,数据变换包括归一化变换和派生,可对所述搜索文本依次进行归一化变换和派生,生成多个待选词组。
一些实施方式中,为提高语言模型生成的候选后缀的准确率,还可以对语言模型的输入进行预处理。具体来说,在获取用户输入的搜索文本之后,对所述搜索文本进行数据变换之前,所述方法还包括:
将所述搜索文本进行编码,得到字符串,所述字符串是指字向量、词向量以及字的热编码向量中的至少一种向量合成(例如拼接方式)得到的字符串;
所述对所述搜索文本进行数据变换,生成多个待选词组,包括:
将所述字符串输入语言模型;
通过所述语言模型确定所述字符串中的各向量与各待选词组之间的长期依赖关系;
根据所述字符串中的各向量与各待选词组之间的长期依赖关系生成所述多个待选词组。
具体来说,上述长期依赖关系是指候选后缀中的每个词与所述搜索文本中各位置的词之间的依赖关系。由于字符串为字向量、词向量以及字的热编码向量中的至少一种向量合成得到,一方面中,所以拼接得到的字符串能够使得语言模型学习到候选后缀中的每个词与所述搜索文本中各位置的词之间的依赖关系,所以使得语言模型学习的更准确,进而提高语言模型生成的候选后缀的准确率;另一方面中,由于语言模型的输入采用拼接得到的字符串为char级,所以字符级输入可以解决语言模型训练时的(英文全称:out ofvocabulary,英文简称:OOV)问题。
一些实施方式中,所述将所述搜索文本进行编码,包括:
将所述搜索文本进行分词处理和分类处理,得到多个标签字符;
按照标签字符的类别分别将每类标签字符映射到对应的整数值;
将每个整数值映射为二进制向量。
其中,热编码(One-Hot),又称为一位有效编码,One-Hot主要采用N位状态寄存器来对N个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效。具体来说,One-Hot编码是分类变量作为二进制向量的表示,首先将分类值映射到整数值,然后,将每个整数值映射为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。
例如,所述搜索文本为:科技鱼是采用了哪种科技生长的,可见所述搜索文本包括“科技”和“鱼”的标签字符。那么,可将“科技”的整数值分配为0,将“鱼”的整数值分配为1,然后创建一个二进制向量表示每个整数值。对于科技”和“鱼”这2个可能的整数值,向量的长度为2。
用二进制向量[1,0]表示编码为0的“科技”标签,其中第0个索引被标记为值1。将用一个二进制向量[0,1]表示编码为1的“鱼”标签,其中第一个索引被标记为1。
由于所述搜索文本中存在标签序列:“科技”、“鱼”、“科技”。那么,对该标签序列进行One-Hot编码后,得到One-Hot向量:
1[1、0]
2[0、1]
3[1、0]
可见,进行One-Hot编码后,能够体现出“科技”与“鱼”这两个类别之间存在的自然关系,相较于单个标签而言,One-Hot向量更能够提供准确的一组预测值。
202、分别计算各待选词组成为所述搜索文本的下一个词组的概率。
一些实施方式中,可采用下述公式计算下一个词组的概率:
其中,T表示词典大小,aj是语言模型对词典中第j个词的打分,Sj是下一个词是词典中第j个词的概率。
以LSTM网络为例,如图3所示的LSTM网络的输出多个待选词组的一种示意图,所述搜索文本为“男士衬”,将男士衬”经过步骤201中的编码后,将编码得到的字符串依次输入语言模型,LSTM网络输出包括:衫、衣、衫定做、衫价格、衫采购和衫布料。其中,每个阴影矩形框表示各待选词组成为所述搜索文本的下一个词组的概率,例如图3中“衫”成为“男士衬”的下一个词的概率最大,其他同理,不做赘述。可见,最终LSTM网络输出的各待选词组时,能够呈现各待选词组成为所述搜索文本的下一个词组的概率的分布状态。
203、根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀。
其中,所述候选后缀是指成为所述搜索文本的下一个词组的概率高于预设概率的待选词组。
例如,可选择概率最高的作为所述候选后缀,或者选择概率在top10(仅为举例,不对该数量作限定)的待选词组作为所述候选后缀。
204、根据所述候选词组和所述候选后缀生成搜索词。
例如,所述搜索文本为“京西”,如图4a所示,如果采用Simrank方式搜索,则会生成“天之猫”、“拼的多”等与“京西”电商平台类似的电商平台的搜索词,然后推荐给用户。显然,现有机制中的这种推荐仅适用于商业推广,并没有贴合用户的真实需求,甚至导致用户反感。而采用本申请实施例中的方案生成的搜索词为“京西优惠券”,“京西全球购”、“京西会员级别”等类似派生词组,如图4b所示。一方面中,最后向用户推荐的搜索结果既不会脱离用户实际的搜索需求,还能更明确用户的实际需求;另一方面中,用户无需输入所有关键词,也能得到想要的搜索结果,减少用户的输入成本和输入时间,还能够引导用户选择用户未知或正在推广的搜索词。
205、根据所述搜索词进行搜索,生成并输出搜索结果。
其中,所述搜索结果可包括至少一个搜索摘要。
基于如图1所示的语言模型的结构,向该语言模型输入“男士衬”,对该输入“男士衬”分词,得到“男”、“士”和“衬”,分别输入语言模型中的LSTM网络,LSTM网络对“男”、“士”和“衬”进行预测,预测出如图3所示的“男士衬”的多个下一词(简称为候选后缀),并给出各个候选后缀为“男士衬”的下一词的概率。从图3所示的概率分布可确定“衫”为当前预测的最高概率的下一词,其他词次之。
在得到“男士衬”的下一词的概率分布后,将“男士衬”与各个候选后缀组合成一个输入,对该合成的输入进行编码(如图5a所示),得到:
字的one-hot向量:one-hot(士)、one-hot(‘’)。
字的embed向量:embed(士)、embed(INC)、embed(‘’)。
词的embed向量:embed(男士)。
其中,INC表示该位置没有词。然后将这三类向量拼接成一个新字符串,并将拼接得到的新字符串输入下一个LSTM网络中,如图5b所示。
与现有机制相比,本申请实施例中,对用户输入的搜索文本进行数据变换,生成多个待选词组,分别计算各待选词组成为所述搜索文本的下一个词组的概率;从所述多个待选词组中选择候选后缀,根据所述候选词组和所述候选后缀生成搜索词。由于该搜索词是对搜索文本进行数据变换得到的,而待选词组能够补充缺失语义的关键词去明确用户的查询需求,所以,能够避免Simrank方式下错误的推荐,也不依赖统计机器翻译方式下的大量训练数据和长期的词典资源建设,进而能够提高搜索推荐准确率,动态生成高质量的搜索词。这样根据该搜索词进行搜索时,就可以明确的搜索出与该搜索词匹配的搜索结果。
可选的,在本申请的一些实施例中,所述步骤201-步骤203,包括:
将所述搜索文本输入所述语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;
计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;其中,偏微分是指从搜索文本生成待选词组的每条路径上的偏导数,将从搜索文本生成待选词组的所有路径上的偏导数相加即可得到待选词组的偏微分;
对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;
根据所述概率分布从所述多个待选词组中选择所述候选后缀。
一些实施方式中,概率分布的一种计算公式为:
∑p(Wi)=1;
其中,p(Wi)为Wi构成下一个词的概率,Wi是指待选词组,1≤i≤N,N为词典大小。
可见,通过根据所述概率分布去选择候选后缀,能够提高实时推荐搜索词的准确性。
可选的,在本申请的一些实施例中,由于生成后缀需要迭代多次,每迭代一次都需要响应一次计算请求,这样会影响输出搜索结果的效率,占用计算资源,所以本申请实施例还提供基于计算图对所述搜索文本进行多次集束搜索(beam search)的方案,利用计算图的使用单个共享的核心节点集合,并根据采取的计算路径来做不同的任务等特征完成预测,能够节约大量运行时间,还能减少来自客户端的多次请求。具体来说,所述语言模型包括计算图,即将所述语言模型画成计算图形式,每个输入语言模型的字符都是一个节点,所述计算图中节点与节点之间形成的每条边均代表一条计算偏导数的路径。所述待选词组为字符,也可称为向量、参数等,本申请实施例不作限定,也不作区分。具体可根据步骤a至步骤e得到所述候选后缀:
a、基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k)
其中,所述W(i,k)表示所述第i次集束搜索得到的k个字符,所述W(i,k)表示即候选后缀,k为正整数。
一些实施方式中,所述基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),包括:
基于所述计算图对所述搜索文本进行第i次集束搜索,预测得到多个字符。
将W(i,n)在第一路径的偏微分与所述W(i,n)的第二路径的偏微分相加,得到所述W(i,n)的实际偏微分;所述W(i,n)是指所述第i次集束搜索时所述W(i,k)中输入所述语言模型的第n个字符;所述W(i,n)是指参与至少两条路径上的至少两次计算的字符;所述W(i,n)在所述第二路径的偏微分先于在所述第一路径计算;W(i,n)在第一路径的偏微分是指W(i-1,n)在第一路径到W(i,n)的变化。
根据所述W(i,n)的实际偏微分从所述W(i,n)中选择k个字符作为所述W(i,k)
在基于计算图进行集束搜索的过程中,可以用雅各布矩阵表示一个字符对另一个字符的偏微分。
b、确定生成W(i+1,k)中各字符的路径和在每条路径生成新字符的概率。
其中,所述W(i+1,k)表示待进行第i+1次集束搜索的k个新字符。
c、根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符W(i+1,k)
其中,W(i+1,n)表示待进行第i+1次集束搜索时所述W(i+1,k)中输入所述语言模型的第n个字符,1≤n≤k且n为正整数。
例如,根据第t个新字符的路径构造出语言模型的第t个input(简称为inputt),然后将该第t个input输入语言模型后,语言模型中的计算图又利用该第t个input和第t+1个新字符的路径去生成第t+1个input(简称为inputt+1),如此循环。具体的计算可参考如图6a所示的一种示意图,图6a中,与inputt+1和inputt)有依赖关系的节点包括a、b和c,从inputt生成inputt+1有路径1和路径2,路径1和路径2均可看做一条父路径,父路径包括至少一条子路径,例如图6a中节点b到inputt的边可称为一条子路径,其他同理,不做赘述。分别计算每条子路径上的偏微分,然后累加各子路径上的偏微分,即可得到从inputt生成inputt+1的路径的实际偏微分。
例如从inputt生成inputt+1的路径1上,从inputt到c的子路径上的偏微分为从c到inputt+1的子路径上的偏微分为/>那么从inputt生成inputt+1的路径1上的偏微分为/>同理得到从inputt生成inputt+1的路径2上的偏微分为/>故,从inputt生成inputt+1的路径的/>/>
一些实施方式中,在得到W(i+1,k)之后,还可以记录生成每个新字符后所述语言模型的隐藏状态,以便对编码质量不符合预设条件的编码结果(即字符串)进行改进。具体来说,包括以下操作:
根据激活函数(sigmoid)、所述语言模型的权重矩阵、所述语言模型在前后两个时刻的隐藏状态计算文本控制门的向量;
根据文本控制门的向量对所述语言模型的当前隐藏状态改进,得到改进后的隐藏状态;
根据改进后的隐藏状态对所述字符串进行重新编码。
其中,文本控制门用于判断编码质量,文本控制门也可称为文本控制器,所述语言模型的隐藏状态可称为编码器的隐藏状态。
可选的,可通过下述公式分别计算文本控制门的向量:
为所述语言模型的权重矩阵,hi是所述语言模型的当前隐藏状态,si-1是所述语言模型的上一时刻隐藏状态,bz是偏置向量。
可见,由于循环神经网络(例如本申请实施例中的语言模型)的当前隐藏状态是根据循环神经网络的上一时刻隐藏状态和循环神经网络当前的输入共同得到,所以根据文本控制门的向量对当前隐藏状态改进时,能够改善原来生成的字符串的表达,从而提升搜索效果。
d、将所述W(i+1,k)作为所述语言模型的下一轮输入并基于所述计算图对所述W(i+1,k)进行第i+1次集束搜索,直至生成的后缀长度达到预设长度或者出现结束符。
e、从所述k个新字符中选择偏微分最大的新字符作为所述候选后缀。
举例来说,如图6b所示,u1和u2为用户输入的搜索文本,C1、C2、C3和Ck等为每一轮生成的候选词组,ti为输入LSTM网络中隐藏层的时刻,i=0、1、2、…(k-1),t1为时刻LSTM网络在时刻1的隐藏状态。为LSTM网络在时刻ti的隐藏状态。将u1、u2、C1、C2、…和Ck输入LSTM网络,进入输入层进行编码,在编码完成后,将编码结果输入LSTM网络的隐藏层,在隐藏层中进行k次集束搜索,预测得到多个生成的新字符,从这些新字符中选择topk个新字符,确定这k个新字符的生成路径和在每个路径生成新字符的概率;根据这k个字符的路径构造k个字符(即搜索文本的后缀),用于下一轮循环迭代搜索,并记录LSTM网络在本次迭代时刻的隐藏状态。如此循环迭代多次,直至生成的后缀达到预设长度或者遇到结束符则结束循环迭代操作。可以具体的循环迭代搜索的流程可参考图6c。可选的,在每一轮循环迭代结束时,可以计算一次生成的字符的长度,也可以间隔几轮循环迭代结束时计算一次生成的字符的长度,本申请实施例不对此作限定。
可见,通过在计算图中实现beam search,一方面中,将整个解码的过程集中在服务器端完成,能够避免客户端多次请求调用服务器端,进而减少线上服务的耗时。另一方面中,利用计算图的使用单个共享的核心节点集合,并根据采取的计算路径来做不同的任务等特征完成预测,能够节约大量运行时间,进而提高对客户端的响应速度。
可选的,在本申请的一些实施例中,所述获取用户输入的搜索文本之后,所述对所述搜索文本进行数据变换之前,所述方法还包括:
若确定所述搜索文本与小程序名称或者公众号名称一致,则将所述搜索文本标记为小程序或者公众号,所述小程序和所述公众号均依赖宿主应用运行;
不生成所述搜索文本的后缀;
或者,生成所述搜索文本的后缀,并将所述搜索文本的后缀的偏微分标记为预设数值以下。
例如,对用户历史输入的query打标签,如果是小程序或者公众号,则打上类似“官方”、“小程序”或者“公众号”等标签,便于后续搜索时识别和过滤。
可见,将query是否为小程序或者公众号编码进输入向量,使神经语言模型学习到该query为小程序或者公众号,因此神经语言模型倾向于不生成后缀或者生成的后缀得分比较低,这样就可以直接在搜索页面跳出小程序或者公众号,不用再专门为这类词生成后缀,提高搜索的响应速度。或者生成后缀。而打很低的分数,这样生成的后缀就被过滤而不会出现在搜索列表的前排了,就可以避免用户点得分低的后缀链接。
举例来说,基于如图1所示的语言模型的结构,向该语言模型输入“科技鱼”,对该输入“科技鱼”进行编码(如图7a所示),得到:
字的one-hot向量:one-hot(技)、one-hot(鱼)、one-hot(NO-App)、one-hot(App)。
字的embed向量:embed(技)、embed(INC)、embed(鱼)。
其中,INC表示该位置没有词。然后将这三类向量拼接成一个新字符串,并将拼接得到的新字符串输入下一个LSTM网络中,参考如图5a和图5b所对应的的实施例,不作赘述。
首先判断“科技鱼”是否有对应的小程序或者公众号,如果不存在对应的小程序或者公众号,那么可直接基于图1所示的语言模型生成多个候选后缀:科技鱼价格、科技鱼图片、科技鱼怎么养、科技鱼的做法、科技鱼的作用、科技鱼缸、科技鱼推荐、科技鱼视频、科技鱼图、科技鱼卷、科技鱼素;然后按照概率分布选择top6的候选后缀作为输出的搜索词,如图7b所示。
如果存在对应的小程序或者公众号,那么语言模型学习到与“科技鱼”构成的query为小程序或者公众号(可通过打标签方式标注一个query是否存在小程序或公众号),因此神经语言模型倾向于不生成后缀,或者生成上述候选后缀,给“科技鱼”较低分值,例如,与“科技鱼”构成的query“科技鱼缸”存在公众号,那么语言模型给该query“科技鱼缸”打“-10.7856”,其他同理。不作赘述。当分值较低时,分值对应的query在搜索词的候选队列的位置靠后,那么就会倾向于靠后显示。因此,相较于现有机制中在响应“科技鱼”的搜索请求时,会向前端推荐不太合理的搜索摘要,并不明确用户的需求,对用户造成干扰。本申请实施例中,如图7c所示,最终过滤掉“科技鱼缸、科技鱼推荐、科技鱼视频、科技鱼图、科技鱼卷、科技鱼素”这些query。
本申请实施例中,上述搜索结果可保存在区块链中。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营检测等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营检测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、检测网络情况、检测节点设备健康状态等。
本申请实施例中执行搜索方法的服务器(也可称作搜索装置)可以是区块链***中的节点。本申请实施例中的服务器可以是如图7d所示的一种区块链***中的节点。
图1至图7d中任一项所对应的实施例中所提及的任一技术特征也同样适用于本申请实施例中的图8至图10所对应的实施例,后续类似之处不再赘述。
以上对本申请实施例中一种搜索方法进行说明,以下对执行上述搜索方法的相关装置进行介绍。
上面对本申请实施例中的一种搜索方法进行了描述,下面对本申请实施例中的搜索装置80进行描述。
参阅图8,如图8所示的一种搜索装置的结构示意图,其可应用于搜索***、检索***或查询***等。本申请实施例中的搜索装置80能够实现对应于上述图1-图7d所对应的实施例中所执行的搜索方法的步骤。所述搜索装置80实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块(例如选择模块、生成模块、变换模块和编码模块等,本申请实施例不对此作限定),所述模块可以是软件和/或硬件。所述搜索装置80可包括处理模块和输入输出模块,所述处理模块801和所述输入输出模块802的功能实现可参考图1-图7d所对应的实施例中所执行的操作,例如所述处理模块可执行图1-图7d所对应的实施例中所执行的归一化变换、派生、计算、生成、选择和编码等操作,此处不作赘述。例如,所述处理模块可用于控制所述输入输出模块的获取、输入输出等操作。
一些实施方式中,所述输入输出模块802可用于获取用户输入的搜索文本;
所述处理模块801可用于对所述输入输出模块802获取的所述搜索文本进行数据变换,生成多个待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;分别计算各待选词组成为所述搜索文本的下一个词组的概率;根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;根据所述候选词组和所述候选后缀生成搜索词;根据所述搜索词进行搜索,生成搜索结果;
所述输入输出模块802还用于输出所述处理模块801生成的所述搜索结果。
与现有机制相比,本申请实施例中,所述处理模块801对所述输入输出模块802获取的搜索文本进行数据变换,生成多个待选词组,分别计算各待选词组成为所述搜索文本的下一个词组的概率;从所述多个待选词组中选择候选后缀,根据所述候选词组和所述候选后缀生成搜索词。由于该搜索词是对搜索文本进行数据变换得到的,而待选词组能够补充缺失语义的关键词去明确用户的查询需求,所以,能够避免Simrank方式下错误的推荐,也不依赖统计机器翻译方式下的大量训练数据和长期的词典资源建设,能够提高搜索推荐准确率,动态生成高质量的搜索词。这样根据该搜索词进行搜索时,就可以明确的搜索出与该搜索词匹配的搜索结果。
一些实施方式中,所述搜索文本包括字和词中的至少一种字符;所述处理模块801在所述输入输出模块802获取用户输入的搜索文本之后,对所述搜索文本进行数据变换之前,还用于:
将所述搜索文本进行编码,得到字符串,所述字符串是指字向量、词向量以及字的热编码向量中的至少一种向量合成得到的字符串;
通过所述输入输出模块802将所述字符串输入语言模型;
通过所述语言模型确定所述字符串中的各向量与各待选词组之间的长期依赖关系;
根据所述字符串中的各向量与各待选词组之间的长期依赖关系生成所述多个待选词组。
一些实施方式中,所述处理模块801具体用于:
通过所述输入输出模块802将所述搜索文本输入所述语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;
计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;
对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;
根据所述概率分布从所述多个待选词组中选择所述候选后缀。
一些实施方式中,所述语言模型包括计算图,所述待选词组为字符;所述处理模块801具体用于:
基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),所述W(i,k)表示所述第i次集束搜索得到的k个字符;k为正整数;
确定生成W(i+1,k)中各字符的路径和在每条路径生成新字符的概率;所述W(i+1,k)表示待进行第i+1次集束搜索的k个新字符;
根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k);W(i+1,n)表示待进行第i+1次集束搜索时所述W(i+1,k)中输入所述语言模型的第n个字符;1≤n≤k且n为正整数;
通过所述输入输出模块802将所述W(i+1,k)作为所述语言模型的下一轮输入并基于所述计算图对所述W(i+1,k)进行第i+1次集束搜索,直至生成的后缀长度达到预设长度或者出现结束符;
从所述k个新字符中选择偏微分最大的新字符作为所述候选后缀。
一些实施方式中,所述处理模块801具体用于:
基于所述计算图对所述搜索文本进行第i次集束搜索,预测得到多个字符;
将W(i,n)在第一路径的偏微分与所述W(i,n)的第二路径的偏微分相加,得到所述W(i,n)的实际偏微分;所述W(i,n)是指所述第i次集束搜索时所述W(i,k)中输入所述语言模型的第n个字符;所述W(i,n)是指参与至少两条路径上的至少两次计算的字符;所述W(i,n)在所述第二路径的偏微分先于在所述第一路径计算;
根据所述W(i,n)的实际偏微分从所述W(i,n)中选择k个字符作为所述W(i,k)
一些实施方式中,所述处理模块801在根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k)之后,还用于:
记录生成每个新字符后所述语言模型的隐藏状态。
一些实施方式中,所述处理模块801在所述输入输出模块802获取用户输入的搜索文本之后,对所述搜索文本进行数据变换之前,还用于:
若确定所述搜索文本与小程序名称或者公众号名称一致,则将所述搜索文本标记为小程序或者公众号;
不生成所述搜索文本的后缀;
或者,生成所述搜索文本的后缀,并将所述搜索文本的后缀的偏微分标记为预设数值以下。
上面从模块化功能实体的角度对本申请实施例中的网络认证服务器和终端设备进行了描述,下面从硬件处理的角度分别对本申请实施例中的网络认证服务器和终端设备进行描述。需要说明的是,在本申请实施例图8所示的实施例中的收发模块对应的实体设备可以为输入/输出单元,处理模块对应的实体设备可以为处理器,显示模块所对应的实体设备可以是显示屏等显示单元。图8所示的装置可以具有如图8所示的结构,当图8所示的装置具有如图9所示的结构时,图9中的处理器和收发器能够实现前述对应该装置的装置实施例提供的处理模块和收发模块相同或相似的功能,图9中的存储器存储处理器执行上述搜索方法时需要调用的计算机程序。在本申请实施例图8所示的实施例中的输入输出模块802所对应的实体设备可以为输入射频电路、通信模块和输出接口等,处理模块801对应的实体设备可以为处理器。
图10是本申请实施例提供的一种服务器结构示意图,该服务器1020可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(英文全称:centralprocessing units,英文简称:CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器1022可以设置为与存储介质1030通信,在服务器1020上执行存储介质1030中的一系列指令操作。
服务器1020还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作***1041,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图10所示的服务器1020的结构。例如,例如上述实施例中由图8所示的搜索装置80所执行的步骤可以基于该图10所示的服务器结构。例如,所述处理器1022通过调用存储器1032中的指令,执行以下操作:
通过所述输入输出接口1058获取用户输入的搜索文本;
对所述搜索文本进行数据变换,生成多个待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;分别计算各待选词组成为所述搜索文本的下一个词组的概率;根据成为所述搜索文本的下一个词组的概率,从所述多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;根据所述候选词组和所述候选后缀生成搜索词;根据所述搜索词进行搜索,生成搜索结果;
通过所述输入输出接口1058输出所述搜索结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (10)

1.一种搜索方法,其特征在于,所述方法包括:
将搜索文本输入语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;
计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;
对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;
根据所述概率分布从多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;
根据所述待选词组和所述候选后缀生成搜索词;
根据所述搜索词进行搜索,生成并输出搜索结果。
2.根据权利要求1所述的方法,其特征在于,所述搜索文本包括字和词中的至少一种字符;所述将搜索文本输入语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组之前,所述方法还包括:
将所述搜索文本进行编码,得到字符串,所述字符串是指字向量、词向量以及字的热编码向量中的至少一种向量合成得到的字符串。
3.根据权利要求2所述的方法,其特征在于,所述语言模型包括计算图,所述待选词组为字符;所述将搜索文本输入语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组;计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;根据所述概率分布从多个待选词组中选择候选后缀,包括:
基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),所述W(i,k)表示所述第i次集束搜索得到的k个字符;k为正整数;
确定生成W(i+1,k)中各字符的路径和在每条路径生成新字符的概率;所述W(i+1,k)表示待进行第i+1次集束搜索的k个新字符;
根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k);W(i+1,n)表示待进行第i+1次集束搜索时所述W(i+1,k)中输入所述语言模型的第n个字符;1≤n≤k且n为正整数;
将所述W(i+1,k)作为所述语言模型的下一轮输入并基于所述计算图对所述W(i+1,k)进行第i+1次集束搜索,直至生成的后缀长度达到预设长度或者出现结束符;
从所述k个新字符中选择偏微分最大的新字符作为所述候选后缀。
4.根据权利要求3所述的方法,其特征在于,所述基于所述计算图对所述搜索文本进行第i次集束搜索,得到W(i,k),包括:
基于所述计算图对所述搜索文本进行第i次集束搜索,预测得到多个字符;
将W(i,n)在第一路径的偏微分与所述W(i,n)的第二路径的偏微分相加,得到所述W(i,n)的实际偏微分;所述W(i,n)是指所述第i次集束搜索时所述W(i,k)中输入所述语言模型的第n个字符;所述W(i,n)是指参与至少两条路径上的至少两次计算的字符;所述W(i,n)在所述第二路径的偏微分先于在所述第一路径计算;
根据所述W(i,n)的实际偏微分从所述W(i,n)中选择k个字符作为所述W(i,k)
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述W(i,n)和生成新字符W(i+1,n)的路径生成待输入所述语言模型的新字符得到W(i+1,k)之后,所述方法还包括:
记录生成每个新字符后所述语言模型的隐藏状态。
6.根据权利要求1-2中任一项所述的方法,其特征在于,所述将搜索文本输入语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组之前,所述方法还包括:
若确定所述搜索文本与小程序名称或者公众号名称一致,则将所述搜索文本标记为小程序或者公众号;
不生成所述搜索文本的后缀;
或者,生成所述搜索文本的后缀,并将所述搜索文本的后缀的偏微分标记为预设数值以下。
7.根据权利要求1所述的方法,其特征在于,所述搜索结果保存在区块链节点上。
8.一种搜索装置,其特征在于,所述搜索装置包括:
输入输出模块,用于获取用户输入的搜索文本;
处理模块,用于将所述搜索文本输入语言模型,通过所述语言模型预测与所述搜索文本构成真实语义的所有待选词组,所述待选词组是指与所述搜索文本构成真实语义的后缀;计算各待选词组的偏微分,将所有待选词组的偏微分转换为得分向量;对所述得分向量进行分类变换,计算各待选词组的概率,以得到所有待选词组的概率分布;根据所述概率分布从多个待选词组中选择候选后缀,所述候选后缀是指概率高于预设概率的待选词组;根据所述待选词组和所述候选后缀生成搜索词;根据所述搜索词进行搜索,生成搜索结果;
所述输入输出模块还用于输出所述处理模块生成的所述搜索结果。
9.一种计算机装置,其特征在于,所述计算机装置包括:
至少一个处理器、存储器和输入输出单元;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的方法。
CN201910849357.XA 2019-09-09 2019-09-09 一种搜索方法、装置及存储介质 Active CN110597956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910849357.XA CN110597956B (zh) 2019-09-09 2019-09-09 一种搜索方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910849357.XA CN110597956B (zh) 2019-09-09 2019-09-09 一种搜索方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110597956A CN110597956A (zh) 2019-12-20
CN110597956B true CN110597956B (zh) 2023-09-26

Family

ID=68858293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910849357.XA Active CN110597956B (zh) 2019-09-09 2019-09-09 一种搜索方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110597956B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340221B (zh) * 2020-02-25 2023-09-12 北京百度网讯科技有限公司 神经网络结构的采样方法和装置
CN112507188B (zh) * 2020-11-30 2024-02-23 北京百度网讯科技有限公司 候选搜索词的生成方法、装置、设备及介质
CN113449515A (zh) * 2021-01-27 2021-09-28 心医国际数字医疗***(大连)有限公司 一种医学文本的预测方法、预测装置及电子设备
CN115033774A (zh) * 2022-06-16 2022-09-09 北京百度网讯科技有限公司 待推荐的搜索文本的生成方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665217A (zh) * 2016-07-29 2018-02-06 苏宁云商集团股份有限公司 一种用于搜索业务的词汇处理方法及***
CN107766337A (zh) * 2017-09-25 2018-03-06 沈阳航空航天大学 基于深度语义关联的译文预测方法
CN109828981A (zh) * 2017-11-22 2019-05-31 阿里巴巴集团控股有限公司 一种数据处理方法及计算设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665217A (zh) * 2016-07-29 2018-02-06 苏宁云商集团股份有限公司 一种用于搜索业务的词汇处理方法及***
CN107766337A (zh) * 2017-09-25 2018-03-06 沈阳航空航天大学 基于深度语义关联的译文预测方法
CN109828981A (zh) * 2017-11-22 2019-05-31 阿里巴巴集团控股有限公司 一种数据处理方法及计算设备

Also Published As

Publication number Publication date
CN110597956A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN110597956B (zh) 一种搜索方法、装置及存储介质
Ren et al. Sequential recommendation with self-attentive multi-adversarial network
CN109902145B (zh) 一种基于注意力机制的实体关系联合抽取方法和***
Qi et al. Finding all you need: web APIs recommendation in web of things through keywords search
US11501182B2 (en) Method and apparatus for generating model
Ni et al. Perceive your users in depth: Learning universal user representations from multiple e-commerce tasks
Nguyen et al. Aggregating and predicting sequence labels from crowd annotations
WO2017057921A1 (ko) 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템
CN113761218B (zh) 一种实体链接的方法、装置、设备及存储介质
EP4394781A1 (en) Reactant molecule prediction method and apparatus, training method and apparatus, and electronic device
CN113779225B (zh) 实体链接模型的训练方法、实体链接方法及装置
US11645526B2 (en) Learning neuro-symbolic multi-hop reasoning rules over text
US20220100772A1 (en) Context-sensitive linking of entities to private databases
US20220100967A1 (en) Lifecycle management for customized natural language processing
WO2022160442A1 (zh) 答案生成方法、装置、电子设备及可读存储介质
CN113761219A (zh) 基于知识图谱的检索方法、装置、电子设备及存储介质
CN114186084A (zh) 在线多模态哈希检索方法、***、存储介质及设备
CN111709225B (zh) 一种事件因果关系判别方法、装置和计算机可读存储介质
Zeng et al. A next location predicting approach based on a recurrent neural network and self-attention
CN113128196A (zh) 文本信息处理方法及其装置、存储介质
Chen et al. Extensible Cross-Modal Hashing.
CN113609819B (zh) 标点符号确定模型及确定方法
Yuan et al. Deep learning from a statistical perspective
US20230376828A1 (en) Systems and methods for product retrieval
US11755671B2 (en) Projecting queries into a content item embedding space

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