查询结果的确定方法、装置、服务器及存储介质与流程

文档序号:20576853发布日期:2020-04-29 01:11阅读:200来源:国知局
查询结果的确定方法、装置、服务器及存储介质与流程

本申请实施例涉及自然语言处理领域,特别涉及一种查询结果的确定方法、装置、服务器及存储介质。



背景技术:

文本匹配是自然语言处理中的一个核心问题,如在电商领域,商品搜索任务就是一个查询词和商品词的匹配过程,商品搜索任务的核心问题是将用户输入的查询词和最佳的候选商品词匹配起来。其中,商品搜索任务一般分为获取查询结果和对查询结果进行排序这两部分,当用户发起一次商品搜索任务时,根据用户提供的查询词在海量的商品中找出相关的候选商品集,继而对候选商品集根据不同的规则进行打分,根据打分结果对各个候选商品集进行排序,最终在终端界面呈现查询结果。

相关技术中,存在多种完成商品搜索任务的方法。如,构建同义词词典和核心词词典,将用户提供的查询词进行同义词扩展和核心词抽取,将拓展和抽取的词作为新的查询词进行查询,并得到不同路的查询结果,将各路的查询结果取并集得到最终的查询结果;又如,对查询词和所有商品词做向量化,得到查询词和商品词的词向量,并将词向量取平均得到查询词和商品词的句向量,求取查询词和所有商品中向量距离最近的商品作为查询结果。

然后上述完成商品搜索任务的方法过度依赖于分词结果,根据分词结果生成对应的词向量,对于特定领域的商品搜索任务而言,如分词效果不佳的生鲜领域,查询结果不是很理想,此外,平均求得的句向量无法体现特殊字或词在整个句子中的权重,使得查询结果不精准。



技术实现要素:

本申请实施例提供了一种查询结果的确定方法、装置、服务器及存储介质,所述技术方案如下:

一方面,提供了一种查询结果的确定方法,所述方法包括:

获取查询请求中包含的查询词;

将所述查询词输入语义向量生成模型,得到所述查询词对应的第一语义向量,所述语义向量生成模型用于按字粒度对输入内容进行划分,并对划分结果的语义进行向量化表示;

根据所述第一语义向量与各个第二语义向量的向量相似度,从所述第二语义向量中确定出至少一个候选语义向量,所述第二语义向量是商品库中商品词对应的语义向量;

将所述候选语义向量对应的商品词确定为响应所述查询请求的查询结果。

另一方面,提供了一种查询结果的确定装置,所述装置包括:

查询词获取模块,用于获取查询请求中包含的查询词;

语义向量生成模块,用于将所述查询词输入语义向量生成模型,得到所述查询词对应的第一语义向量,所述语义向量生成模型用于按字粒度对输入内容进行划分,并对划分结果的语义进行向量化表示;

语义向量确定模块,用于根据所述第一语义向量与各个第二语义向量的向量相似度,从所述第二语义向量中确定出至少一个候选语义向量,所述第二语义向量是商品库中商品词对应的语义向量;

查询结果确定模块,用于将所述候选语义向量对应的商品词确定为响应所述查询请求的查询结果。

另一方面,提供了一种服务器,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的查询结果的确定方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的查询结果的确定方法。

另一方面,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述方面所述的查询结果的确定方法。

本申请实施例中,服务器通过语义向量生成模型获取查询词对应的第一语义向量,并计算第一语义向量与商品库中商品词对应的第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量作为响应查询请求的查询结果。基于本申请实施例提供的查询结果的确定方法,可直接利用语义向量生成模型对查询词进行向量化并得到查询词对应的第一语义向量,简化了相关技术中的语义向量生成过程;此外,语义向量生成模型直接按字粒度对查询词进行划分,减少对查询词进行分词的过程,从而在使得语义向量的语义表征更为准确的基础上提高了语义向量生成模型处理输入内容的效率,尤其是在对分词精度要求较高的领域,与相关技术中的词粒度划分方法相比,本申请实施例有助于提高查询结果的准确性。

附图说明

图1示出了本申请一示例性实施例提供的计算机系统的示意图;

图2示出了本申请一示例性实施例提供的查询结果的确定方法的流程图;

图3示出了本申请另一示例性实施例提供的查询结果的确定方法的流程图;

图4示出了本申请一示例性实施例提供的语义向量生成模型训练的流程图;

图5示出了本申请另一示例性实施例提供的语义向量生成模型训练的流程图;

图6示出了本申请一示例性实施例提供的语义向量生成模型的结构示意图;

图7示出了本申请另一示例性实施例提供的查询结果的确定方法的流程图;

图8示出了本申请一示例性实施例提供的查询结果的确定装置的结构框图;

图9示出了本申请一示例性实施例提供的服务器的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本申请提供的查询结果的确定方法能够广泛应用于需要进行目标对象搜索的场景中,如在电商领域,该目标对象为商品库中用户意向购买的商品,又如人事系统中,该目标对象为符合空缺职位的候选人员,等等。为了方便下述实施例的阐述,本申请各个实施例以电商领域为例进行示意性的说明,但并不对本申请造成限定。

请参考图1,其示出了本申请一示例性实施例提供的计算机系统的示意图。该计算机系统包括终端110和服务器120,其中,终端110与服务器120之间通过通信网络进行数据通信,可选的,通信网络可以是有线网络也可以是无线网络,且该通信网络可以是局域网、城域网以及广域网中的至少一种。

终端110中安装有具备商品搜索功能的应用程序,如各类购物软件。可选的,终端110可以是智能手机、平板电脑、膝上便携式笔记本电脑等移动终端,也可以是台式电脑、投影式电脑等终端,本申请实施例对此不做限定。

服务器120可以实现为一台服务器,也可以实现为一组服务器构成的服务器集群,其可以是物理服务器,也可以实现为云服务器。在一种可能的实施方式中,服务器120是终端110中应用程序的后台服务器。

在一个示例中,如图1所示,终端110安装有一款水果购买软件,此时终端110接收用户在搜索引擎触发的查询操作,该查询操作用于指示用户此时有意向搜索查询词a对应的商品,或者当查询词a对应的商品不存在时,用户意向搜索与查询词a对应商品相近的商品。终端110根据该查询操作生成查询请求,并向水果购买软件后台的服务器120发送该查询请求。

在服务器120一侧,服务器120根据查询请求获取查询词a,并将该查询词a输入语义向量生成模型得到第一语义向量,服务器120获取商品库的语义索引,该语义索引包括有商品库所包含的所有商品的第二语义向量,如与该水果购买软件对应的话,则商品库包含有该软件当前能够提供的水果的所有水果名称,各个水果名称对应有各自的第二语义向量,该示例中的语义索引即为所有第二语义向量的集合。进一步的,服务器120计算第一语义向量与各个第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量,并将候选语义向量对应的商品词确定为响应查询请求的查询结果。

相应的,终端110一侧接收到包含至少一个商品词的查询结果后,在水果购买软件的搜索界面显示各个商品词,如图1示出的商品词1至商品词5。在一种可能的实施方式中,查询结果中的各个商品词基于向量相似度进行排列,如向量相似度最高的第二语义向量对应的商品词(如图1中的商品词1)在第一位置处显示,以此类推。

在其他可能的实施方式中,上述语义向量生成模型和商品库的语义索引也可以实现成为应用程序的部分或全部,相应的,终端110可以在本地进行查询结果的确定,而无需借助服务器120,本申请对此不作限定。

为了方便表述,下述各个实施例以查询结果的确定方法由服务器执行为例进行说明。

请参考图2,其示出了本申请一示例性实施例提供的查询结果的确定方法的流程图。该方法包括:

步骤201,获取查询请求中包含的查询词。

可选的,查询请求由用户发起,用户通过文本输入,图片输入,或者,语音输入的方式向终端界面显示的搜索引擎对应的输入框输入查询词,服务器根据该输入操作生成与该查询词对应的查询请求。

其中,当用户所输入的内容为非文本形式时,服务器通过语音识别技术或图片识别技术将上述非文本形式的输入内容转换至文本形式的输入内容,并根据所转换的输入内容获取查询词。

在一种可能的实施方式中,当本申请的查询结果的确定方法全部由终端侧执行时,终端可直接根据用户的输入操作获取查询词,而无需通过生成查询请求来获取查询词;在另一种可能的实施方式中,当本申请的查询结果的确定方法由终端侧和服务器侧配合执行时,如图1所示,终端侧根据用户的输入操作生成查询请求,服务器接收终端侧发送的查询请求后,根据查询请求获取查询词。

步骤202,将查询词输入语义向量生成模型,得到查询词对应的第一语义向量。

在本申请中,查询结果的确定方法基于计算语义向量间的向量相似度实现的,因此,服务器需要获取查询词对应的第一语义向量,在一种可能的实施方式中,将查询词输入语义向量生成模型,得到查询词对应的第一语义向量。

其中,语义向量生成模型用于按字粒度对输入内容进行划分,并对划分结果的语义进行向量化表示。

在一种可能的实施方式中,服务器将查询词输入语义向量生成模型,将查询词进行划分,划分的单位为字粒度,即获取查询词包含的各个字,并通过向量化的形式表示查询词包含的各个字,进一步的,服务器通过语义向量生成模型得到各个字的语义,且基于各个字的向量化表示形式,最终得到向量化表示的语义,即语义向量,为了与商品词的语义向量进行区分,用第一语义向量表示查询词对应的语义向量。

在一个示例中,用户在搜索引擎输入“有机山药”,服务器将该查询词按字粒度进行划分,得到“有”、“机”、“山”和“药”这四个划分后的字,通过语义向量生成模型对各个字进行向量化表示,如表示结果为s=(s1,s2,s3,s4),其中,s表示为该查询词,s1表示为“有”对应的向量化结果,s2表示为“机”对应的向量化结果,s3表示为“山”对应的向量化结果,s4表示为“药”对应的向量化结果。进一步的,通过语义向量生成模型获取各个字的语义,最终得到查询词对应的第一语义向量。

步骤203,根据第一语义向量与各个第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量。

商品库中各个商品词对应有语义向量,为了与查询词对应的第一语义向量进行区分,将商品库中商品词对应的语义向量表示为第二语义向量,即第二语义向量是商品库中商品词对应的语义向量。

可选的,用户输入的查询词并不一定指代具体的商品名,可能是此类商品的总称,或,某一商品的局部特征等等,因此,服务器需要从商品库中获取合适的商品词作为响应查询请求的查询结果。

因此,为了获取合适的商品词作为响应查询请求的查询结果,服务器计算当前查询词对应的第一语义向量与各个商品词对应的第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量。

在一种可能的实施方式中,候选语义向量的获取数量可以是固定值,如当前搜索引擎对应的应用程序设定查询结果最多显示5个商品词,则服务器基于向量相似度获取位列前五的第二语义向量作为候选语义向量。

在另一种可能的实施方式中,候选语义向量的获取数量可以是变量,如当前搜索引擎对应的应用程序设定获取向量相似度大于某一阈值的所有第二语义向量作为候选语义向量,则候选语义向量的获取数量是不固定的。本申请对候选语义向量的获取数量不作限定。

步骤204,将候选语义向量对应的商品词确定为响应查询请求的查询结果。

可选的,各个第二语义向量为对应商品词的语义向量,而候选语义向量为所有第二语义向量中的一部分,即各个候选语义向量也对应有商品词,因此,服务器在确定出候选语义向量后,获取各个候选语义向量对应的商品词,该商品词即为响应查询请求的查询结果。

综上所述,本申请实施例中,服务器通过语义向量生成模型获取查询词对应的第一语义向量,并计算第一语义向量与商品库中商品词对应的第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量作为响应查询请求的查询结果。基于本申请实施例提供的查询结果的确定方法,可直接利用语义向量生成模型对查询词进行向量化并得到查询词对应的第一语义向量,简化了相关技术中的语义向量生成过程;此外,语义向量生成模型直接按字粒度对查询词进行划分,减少对查询词进行分词的过程,从而在使得语义向量的语义表征更为准确的基础上提高了语义向量生成模型处理输入内容的效率,尤其是在对分词精度要求较高的领域,与相关技术中的词粒度划分方法相比,本申请实施例有助于提高查询结果的准确性。

进一步的,通过下述实施例对语义向量生成模型的构建做进一步的阐述。

请参考图3,其示出了本申请另一示例性实施例提供的查询结果的确定方法的流程图。该方法包括:

步骤301,获取查询请求中包含的查询词。

本步骤请参考步骤201,本申请实施例在此不再赘述。

步骤302,将查询词输入表示层,得到第一字向量组。

在本申请中,语义向量生成模型在输入内容后,如输入查询词,和/或,商品词,能够实现按字粒度将输入内容进行化划分,并将划分后的各个字进行向量化表示,继而减少了对输入内容进行分词的过程,使得输入内容在分词精度较高的情况下实现了向量化表示;此外,通过向量化表示的输入内容并未作为直接输出结果,语义向量生成模型还用于对向量化表示的输入内容按照顺序进行向量化编码并得到输入内容对应的语义向量,如语义向量生成模型输入查询词后,得到该查询词对应的第一语义向量。

在一种可能的实施方式中,上述语义向量生成模型可用于实现的功能通过表示层和编码层实现,即语义向量生成模型包括表示层和编码层。其中,表示层用于实现将输入内容按字粒度进行向量化表示,并将向量化表示后的输入内输出继而输入至编码层,编码层用于对向量化表示后的输入内容进行编码并得到各个输入内容对应的语义向量。

可选的,表示层基于双向编码器表征模型构建,编码层基于长短时记忆网络构建。

其中,双向编码器表征模型用于实现将输入内容按字粒度进行向量表示。在一种可能的实施方式中,服务器将查询词,和/或,商品词等输入内容数输入双向编码器表征模型,双向编码器表征模型按字粒度将各个输入内容进行划分,得到各个输入内容包含的字,进一步的,双向编码器表征模型通过查询字向量库将各个输入内容包含的字转化为一维向量,即各个字对应的字向量。

可选的,字向量库可以是双向编码器表征模型自带的字向量库。在本申请实施例中,服务器,和/或,技术人员还可以对字向量库进行补充,如在特定应用领域的生僻字词等等,可在实施本申请的查询结果的确定方法之前,针对当前的应用领域对字向量库进行补充。

其中,长短时记忆网络用于实现将表示层输出的内容进行编码并得到输入内容对应的语义向量。在相关技术中,对输入内容按词粒度进行划分后得到输入内容的词向量,并对各个词向量取平均操作后处理并得到输入内容对应的语义向量,如查询词“abcd”,包含四个字,而按词粒度进行划分后得到“ab”和“cd”,向量化后查询词“abcd”对应有两个词向量,对各个词向量取平均操作后处理并得到查询词“abcd”对应的语义向量。而,相关技术所提供的方法存在降低关键字权重的问题。如,查询词“好吃的棒棒糖”,通过相关技术中的词粒度划分得到词向量、并对各个词向量取平均操作后处理得到语义向量的方式,其中“好吃”或“好吃的”对应的词向量会在词向量取平均操作后降低关键词“棒棒糖”的权重,最终对语义向量的准确度造成一定的影响。

而在本申请中,不仅通过长短时记忆网络实现对输入内容的字粒度划分,还在生成对应语义向量的过程中实现对关键字的权重提升,从而得到语意表征更为准确的语义向量。

需要的是,为了优化表示层和编码层的数据处理能力而对双向编码器表征模型和长短时记忆网络结构进行的微调均在本申请的保护范围之内。

因此,在一种可能的实施方式中,服务器获取查询请求中包含的查询词后,将查询词输入表示层,得到第一字向量组,第一字向量组中包含查询词中各个字对应的字向量。

如上述实施例中的示例,用户在搜索引擎输入“有机山药”后,服务器获取该查询词“有机山药”,将查询词“有机山药”输入语义向量生成模型的表示层,服务器通过表示层将该查询词按字粒度进行划分,得到“有”、“机”、“山”和“药”这四个划分后的字,并通过表示层对各个字进行向量化表示,第一字向量组可表示为s=(s1,s2,s3,s4),其中,s表示为该查询词,s1表示为“有”对应的字向量,s2表示为“机”对应的字向量,s3表示为“山”对应的字向量,s4表示为“药”对应的字向量。

第一字向量组中包含查询词中各个字对应的字向量。

步骤303,将第一字向量组输入编码层,得到第一语义向量。

服务器通过表示层得到查询词对应的第一字向量,进一步的,计算机将第一字向量组输入编码层,得到第一语义向量。

在一种可能的实施方式中,提供长短时记忆网络构建的编码层获取第一字向量组后,按照各个字向量在第一字向量组的顺序对各个字向量进行向量化编码并处理得到查询词对应的语义向量,该语义向量与相关技术中通过取平均操作后的语义向量是不同的,如通过长短时记忆网络的处理提高了查询词中关键字的权重,继而削弱了非关键字的权重,又如,长短时记忆网络能够基于特定领域的应用场景生成与该特定领域语义表征最接近的语义向量。

步骤304,根据第一语义向量与各个第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量。

本步骤请参考步骤203,本申请实施例在此不再赘述。

步骤305,将候选语义向量对应的商品词确定为响应查询请求的查询结果。

本步骤请参考步骤204,本申请实施例在此不再赘述。

本申请实施例中,在上述实施例的基础上,对语义向量生成模型的构建做进一步的阐述功能,语义向量生成模型包括表示层和编码层,可选的,通过表示层对查询词按字粒度划分后进行向量化表示,得到查询词对应的第一向量组,与相关技术中按词粒度划分的方法相比,本申请实施例通过表示层直接按字粒度对查询词进行划分,从而减少了对查询词进行分词的过程,继而实现在使得语义向量的语义表征更为准确的基础上提高语义向量生成模型处理输入内容的效率;此外,本申请还通过编码层对表示层输出的第一向量组进行编码并处理得到查询词对应的第一语义向量,与相关技术中对向量化后的结果进行取平均操作处理得到语义向量的方法相比,本申请实施例能够通过编码层实现对查询词中关键字权重的提高,继而实现非关键字权重的削弱,还能够基于特定领域的应用场景生成与该特定领域语义表征最接近的语义向量。

可选的,上述实施例示出的语义向量生成模型是基于训练样本集训练得到的模型,即在获取查询请求中包含的查询词(步骤201)之前,还包括语义向量生成模型的训练过程。

请参考图4,其示出了本申请一示例性实施例提供的语义向量生成模型训练的流程图。该方法包括:

步骤401,获取训练样本集。

本申请的语义向量生成模型不仅可以实现对查询词的第一语义向量的生成,可以实现对商品词的第二语义向量的生成。因此,用于训练语义向量生成模型的训练样本集,不仅包括与查询词相关的训练样本,还包括与商品词相关的训练样本。

可选的,训练样本集中包括样本查询词、正样本商品词和负样本商品词,正样本商品词是样本查询词对应相关商品的商品词。此外,与相关技术中的三元组训练样本格式(即一条训练样本由一个样本查询词、一个正样本商品词和一个负样本商品词组成)相比,本申请实施例为了提高语义向量生成模型获取查询词对应相关商品的商品词的准确性,训练样本集的各条训练样本包括的负样本商品词至少为一个,如一条训练样本由一个样本查询词、一个正样本商品词和四个负样本商品词组成。

在一种可能的实施方式中,步骤401包括如下内容。

内容一、获取历史查询词,并将历史查询词确定为样本查询词。

可选的,为了使得查询结果更符合用户的实际期望,本申请中用于训练语义向量模型的训练样本集基于用户的历史操作得到。

因此,在一种可能的实施方式中,服务器,和/或,技术人员根据搜索引擎的日志文件获取基于用户历史操作的历史查询词,将历史查询词确定为样本查询词。

内容一、从历史查询词对应的历史行为数据中,确定正样本商品词和负样本商品词。

其中,历史行为数据包括历史购买数据和历史浏览数据。根据历史购买数据可以得到样本查询词对应的历史购买商品,即正样本商品词对应的商品为样本查询词对应的历史购买商品;此外,根据历史浏览数据可以得到样本查询词对应的未浏览商品,即负样本商品词对应的商品为样本查询词对应的未浏览商品。

在一个示例中,服务器从终端处获取日志文件,该日志文件对应搜索引擎处用户的操作记录,在搜索引擎对应的各个日志文件中,服务器获取到用户甲曾输入查询词a向搜索引擎发起过查询请求,且服务器根据该查询请求向用户甲提供过10个商品词(商品词1至商品词10)作为查询结果,用户甲浏览了商品词1至商品词3对应的商品,并购买了商品词1对应的商品。则服务器将商品词1标记为查询词a对应的正样本商品词,将商品词4至商品词10标记为查询词a对应的负样本商品词。

此外,对于历史浏览数据,浏览但并未购买的商品所对应的商品词也可以作为样本查询词对应的正样本商品词,本申请实施例对此不作限定。如在上述示例中,服务器还可以将已购买商品(商品词1对应的商品)和已浏览商品(商品词1至商品词3对应的商品)均标记为查询词a对应的正样本商品词。

步骤402,将训练样本集输入表示层,得到样本字向量组。

可选的,步骤402中将训练样本集输入表示层得到样本字向量组的过程,可参考步骤302中将查询词输入表示层得到第一字向量组的过程。

此外,在本申请实施例中,即在语义向量模型的训练阶段,由于训练样本集包含的各条训练样本是以样本查询词、正样本商品词和至少一个负样本商品词的输入格式进行输入的,因此,训练样本集输入表示层得到的样本字向量组并非为单一对象的字向量组。

可选的,样本字向量组中包含样本查询词对应的第一样本字向量组、正样本商品词对应的第二样本字向量组以及负样本商品词对应的第三样本字向量组。

步骤403,将样本字向量组输入编码层,得到样本语义向量。

可选的,步骤403中将样本字向量组输入编码层得到样本语义向量的过程,可参考步骤303中将第一字向量组输入编码层得到第一语义向量的过程。

同样的,样本字向量组输入编码层得到的样本语义向量并非为单一对象的语义向量。

可选的,样本语义向量包含样本查询词对应的第一样本语义向量、正样本商品词对应的第二样本语义向量以及负样本商品词对应的第三样本语义向量。

步骤404,计算第一样本语义向量与第二样本语义向量的正样本向量相似度,以及第一样本语义向量与各个第三样本语义向量的负样本向量相似度。

在实际的模型训练过程中,由于训练样本集是基于用户的历史操作得到的,对于一些购买率较低的商品,搜索引擎的日志文件包含的相关历史行为数据并不丰富,使得基于该商品的样本查询词所对应的正样本商品词和负样本商品词并不一定是精准的,即对应的正样本商品词和负样本商品词并非代表了更大范围用户的购买意向与非购买意向。

因此,为了确定训练样本集中,正样本商品词与对应的样本查询词是相似度较高的,并非为错误的正样本商品词,本申请实施例在编码层输出第一样本语义向量和第二样本语义向量之后,还包括计算第一样本语义向量与第二样本语义向量的正样本向量相似度的内容。

对应的,为了确定训练样本集中,负样本商品词与对应的样本查询词是相似度较低的,并非为错误的负样本商品词,本申请实施例在编码层输出第一样本语义向量和第三样本语义向量之后,还包括计算第一样本语义向量与各个第三样本语义向量的负样本向量相似度的内容。

步骤405,根据正样本向量相似度和负样本向量相似度训练语义向量生成模型。

进一步的,服务器在计算出正样本向量相似度以及负样本向量相似度之后,根据正样本向量相似度和负样本向量相似度训练语义向量生成模型。

在一种可能的实施方式中,步骤405包括如下内容。

内容一、根据正样本向量相似度和负样本向量相似度确定训练样本集的样本损失。

对于训练样本集中的每一条训练样本而言,在编码层输出后都有对应的正样本向量相似度和负样本向量相似度,在一种可能的实施方式中,通过损失函数计算每一条训练样本的样本损失,通过求和最终得到训练样本集整体的样本损失。

内容二、根据样本损失训练语义向量生成模型。

可选的,通过损失函数计算得到训练样本集整体的样本损失后,根据预设的损失阈值对语义向量生成模型不断进行训练,直至训练样本集整体的样本损失不大于损失阈值,即服务器反复训练语义向量生成模型,不断最小化损失函数,直至语义向量生成模型收敛,则结束对语义向量生成模型的训练。

本申请实施例中,公开了在获取查询请求中包含的查询词之前,语义向量生成模型的训练过程。服务器根据历史行为数据获取训练样本集,将训练样本集输入表示层,得到样本字向量组,将样本字向量组输入编码层,得到样本语义向量,使得训练后的语义向量生成模型可同时生成不同输入内容(如查询词和商品词)的语义向量;此外,通过计算第一样本语义向量与第二样本语义向量的正样本向量相似度,以及第一样本语义向量与各个第三样本语义向量的负样本向量相似度来训练语义向量生成模型,并且引入损失函数,提高了语义向量生成模型的准确性。

对于语义向量生成模型而言,编码层包括第一编码网络和第二编码网络,第一编码网络和第二编码网络的网络参数不同。基于查询词和商品词(包括正样本商品词和负样本商品词)的不同,在一种可能的实施方式中,第一编码网络对应于查询词的语义向量的生成,第一编码网络对应于商品词的语义向量的生成。

请参考图5,其示出了本申请另一示例性实施例提供的语义向量生成模型训练的流程图。该方法包括:

步骤501,获取训练样本集。

本步骤请参考步骤401,本申请实施例在此不再赘述。

步骤502,将训练样本集输入表示层,得到样本字向量组。

本步骤请参考步骤402,本申请实施例在此不再赘述。

此外,示意性的,如图6所示,语义向量生成模型还可以包括有输入层和输出层。

可选的,输入层可用于直接将语义向量生成模型的输入内容输入至表示层,也可以将多个输入内容调整至一定的数据格式之后再输入至表示层,又或是,输入层具备语音识别功能和图像识别功能,可以将非文本形式的输入内容进行转换,得到文本形式的内容。上述输入层的作用仅为示例性的示出,并不对本申请造成限定。

可选的,输出层可用于直接将语义向量生成模型中编码层的处理结果进行输出,也可以是将多个处理内容调整至一定的数据格式之后再输出,有或是,当编码层的处理结果是不同类别的,输出层具备对不同类别处理结果进行评估的功能,如图6所示,输出层用于计算上述实施例中的各个样本向量相似度,又或是将处理结果按照一定的排列规则进行顺序输出,等等。上述输出层的作用仅为示例性的示出,并不对本申请造成限定。

步骤503,将第一样本字向量组输入第一编码网络,得到第一样本语义向量。

在一种可能的实施方式中,当查询词通过表示层向量化后,生成第一样本字向量组,进一步的,如图6所示,服务器将第一样本字向量组输入编码层中与查询词对应的第一编码网络,并通过第一编码网络的网络参数生成与第一样本字向量组对应的第一样本语义向量。

步骤504,将第二样本字向量组输入第二编码网络,得到第二样本语义向量。

本申请实施例中,第二编码网络对应商品词的语义向量的生成,即正样本商品和负样本商品在通过表示层进行向量化表示之后,均通过第二编码网络生成对对应的语义向量。

在一种可能的实施方式中,当正样本商品通过表示层向量化后,生成第二样本字向量组,进一步的,如图6所示,服务器将第二样本字向量组输入编码层中与商品词对应的第二编码网络,并通过第二编码网络的网络参数生成与第二样本字向量组对应的第二样本语义向量。

步骤505,将第三样本字向量组输入第二编码网络,得到第三样本语义向量。

对应的,当负样本商品通过表示层向量化后,生成第三样本字向量组,进一步的,如图6所示,服务器将第三样本字向量组输入编码层中与商品词对应的第二编码网络,并通过第二编码网络的网络参数生成与第三样本字向量组对应的第三样本语义向量。

步骤506,计算第一样本语义向量与第二样本语义向量的正样本向量相似度,以及第一样本语义向量与各个第三样本语义向量的负样本向量相似度。

本步骤请参考步骤404,本申请实施例在此不再赘述。

步骤507,根据正样本向量相似度和负样本向量相似度训练语义向量生成模型。

本步骤请参考步骤405,本申请实施例在此不再赘述。

本申请实施例中,在上述实施例的基础上,对语义向量生成模型的结构做了进一步的描述,即编码层包括第一编码网络和第二编码网络,其中,第一编码网络对应于查询词的语义向量的生成,第一编码网络对应于商品词的语义向量的生成,第一编码网络和第二编码网络的网络参数不同;与相关技术中对向量化后的结果进行取平均操作处理得到语义向量的方法相比,本申请实施例能够通过编码层的不同编码网络实现对查询词和商品词的语义向量的生成,继而提高语义向量生成模型的训练效果,使得训练完成的语义向量生成模型能够更精准地获取与查询词对应的正样本商品词、以及减少或规避负样本商品词的获取。

可选的,对于本申请的查询结果的获取方法而言,获取查询词是服务器所进行的实时任务,以及获取查询词后通过训练得到的语义向量模型生成与查询词对应的第一语义向量的过程。而对于生成商品库中各个商品词对应的第二语义向量而言并非是实时任务,即可以在语义向量生成模型训练完成后,提前建立当前商品库对应的第二语义向量的集合,如建立商品库对应的语义索引。

请参考图7,其示出了本申请另一示例性实施例提供的查询结果的确定方法的流程图。该方法包括:

步骤701,将商品库中的各个商品词输入表示层,得到第二字向量组。

第二字向量组中包含商品词中各个字对应的字向量。

可选的,基于本申请在不同领域的应用,本申请对商品库的类型并不做限定,如不同的应用领域对应不同的商品库。

在一种可能的实施方式中,服务器将商品库所包括的商品词输入语义向量生成模型的表示层,表示层按字粒度将各个商品词进行划分,得到各个商品词包含的字,进一步的,表示层通过查询字向量库将各个商品词包含的字转化为一维向量,得到商品词对应的第二字向量组,其中,第二字向量组中包含商品词中各个字对应的字向量。

步骤702,将第二字向量组输入编码层的第二编码网络,得到第二语义向量。

服务器通过表示层得到商品库所有的商品词对应的第二字向量,进一步的,计算机将第二字向量组输入编码层,按照各个字向量在第二字向量组的顺序对各个字向量进行向量化编码并处理得到商品词对应的第二语义向量。

由于编码层包括第一编码网络和第二编码网络,其中,第二编码网络对应商品词的语义向量的生成,因此,在一种可能的实施方式中,服务器将第二字向量组输入编码层的第二编码网络,得到第二语义向量。

步骤703,根据各个商品词对应的第二语义向量,建立商品库对应的语义索引。

在一种可能的实施方式中,服务器获取当前商品库对应的第二语义向量,将所有商品词对应的第二语义向量加载至搜索引擎,从而建立商品库对应的语义索引,当用户通过该搜索引擎输入某一查询词时,服务器生成该查询词对应的第一语义向量,继而服务器根据第一语义向量与语义索引中各个第二语义向量的相似度,从语义索引中获取至少一个候选语义向量。

步骤704,获取查询请求中包含的查询词。

本步骤请参考步骤301,本申请实施例在此不再赘述。

步骤705,将查询词输入表示层,得到第一字向量组。

本步骤请参考步骤302,本申请实施例在此不再赘述。

步骤706,将第一字向量组输入第一编码网络,得到第一语义向量。

本步骤请参考步骤303,本申请实施例在此不再赘述。

步骤707,根据第一语义向量与各个第二语义向量的向量相似度,从第二语义向量中确定出至少一个候选语义向量。

本步骤请参考步骤304,本申请实施例在此不再赘述。

步骤708,将候选语义向量对应的商品词确定为响应查询请求的查询结果。

本步骤请参考步骤305,本申请实施例在此不再赘述。

在上述实施例的基础上,本申请实施例补充了建立商品库对应的语义索引的内容,从而避免服务器在语义向量生成模型的应用过程中增加生成第二语义向量的运算过程,实现了查询结果获取的高效性。

请参考图8,其示出了本申请一示例性实施例提供的查询结果的确定装置的结构框图,所述装置包括:

查询词获取模块801,用于获取查询请求中包含的查询词;

语义向量生成模块802,用于将所述查询词输入语义向量生成模型,得到所述查询词对应的第一语义向量,所述语义向量生成模型用于按字粒度对输入内容进行划分,并对划分结果的语义进行向量化表示;

语义向量确定模块803,用于根据所述第一语义向量与各个第二语义向量的向量相似度,从所述第二语义向量中确定出至少一个候选语义向量,所述第二语义向量是商品库中商品词对应的语义向量;

查询结果确定模块804,用于将所述候选语义向量对应的商品词确定为响应所述查询请求的查询结果。

可选的,所述语义向量生成模型包括表示层和编码层;

可选的,所述语义向量生成模块802,包括:

第一生成单元,用于将所述查询词输入所述表示层,得到第一字向量组,所述第一字向量组中包含所述查询词中各个字对应的字向量;

第二生成单元,用于将所述第一字向量组输入所述编码层,得到所述第一语义向量。

可选的,所述表示层基于双向编码器表征模型构建,所述编码层基于长短时记忆网络构建。

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

第一获取模块,用于获取训练样本集,所述训练样本集中包括样本查询词、正样本商品词和至少一个负样本商品词,所述正样本商品词是所述样本查询词对应相关商品的商品词;

第二获取模块,用于将所述训练样本集输入所述表示层,得到样本字向量组,所述样本字向量组中包含所述样本查询词对应的第一样本字向量组、所述正样本商品词对应的第二样本字向量组以及所述负样本商品词对应的第三样本字向量组;

第三获取模块,用于将所述样本字向量组输入所述编码层,得到样本语义向量,所述样本语义向量包含所述样本查询词对应的第一样本语义向量、所述正样本商品词对应的第二样本语义向量以及所述负样本商品词对应的第三样本语义向量;

相似度计算模块,用于计算所述第一样本语义向量与所述第二样本语义向量的正样本向量相似度,以及所述第一样本语义向量与各个所述第三样本语义向量的负样本向量相似度;

模型训练模型,用于根据所述正样本向量相似度和所述负样本向量相似度训练所述语义向量生成模型。

可选的,所述编码层包括第一编码网络和第二编码网络,所述第一编码网络和所述第二编码网络的网络参数不同;

可选的,所述第三获取模块,包括:

第一获取单元,用于将所述第一样本字向量组输入所述第一编码网络,得到所述第一样本语义向量;

第二获取单元,用于将所述第二样本字向量组输入所述第二编码网络,得到所述第二样本语义向量;

第三获取单元,用于将所述第三样本字向量组输入所述第二编码网络,得到所述第三样本语义向量。

可选的,所述第二生成单元,还用于:

将所述第一字向量组输入所述第一编码网络,得到所述第一语义向量;

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

第一输入模块,用于将所述商品库中的各个商品词输入所述表示层,得到第二字向量组,所述第二字向量组中包含商品词中各个字对应的字向量;

第二输入模块,用于将所述第二字向量组输入所述编码层的所述第二编码网络,得到所述第二语义向量;

语义索引建立模块,用于根据各个商品词对应的所述第二语义向量,建立所述商品库对应的语义索引。

可选的,所述第一获取模块,包括:

第一确定单元,用于获取模块获取历史查询词,并将所述历史查询词确定为所述样本查询词;

第二确定单元,用于从所述历史查询词对应的历史行为数据中,确定所述正样本商品词和所述负样本商品词,所述历史行为数据包括历史购买数据和历史浏览数据,所述正样本商品词对应的商品为历史购买商品,所述负样本商品词对应的商品为未浏览商品。

请参考图9,其示出了本申请一个实施例提供的服务器900的结构示意图。该服务器900可用于实施于上述实施例中提供的查询结果的确定方法。该服务器900可以是图1实施例中介绍的服务器120。具体来讲:

所述服务器900包括中央处理单元(cpu)901、包括随机存取存储器(ram)902和只读存储器(rom)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。

所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。

根据本申请的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于实现上述服务器侧的查询结果的确定方法的指令。

所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述查询结果的确定方法中各个步骤的功能。

本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述各个实施例提供的查询结果的确定方法。

可选地,该计算机可读存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、固态硬盘(ssd,solidstatedrives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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