掌桥专利:专业的专利平台
掌桥专利
首页

排序模型生成方法、排序方法、装置、电子设备

文献发布时间:2023-06-19 12:13:22


排序模型生成方法、排序方法、装置、电子设备

技术领域

本公开涉及计算机技术领域,尤其涉及一种排序模型生成方法、排序方法、装置、电子设备、计算机可读存储介质、计算机程序产品。

背景技术

排序学习是搜索算法中的重要一环。随着互联网技术的快速发展,准确搜索与用户账户更加匹配的对象成为目前的热门话题。

搜索的过程可以分为粗排和精排。粗排是指自动选取与用户输入的搜索词(query)最相关的一组搜索结果的过程。精排是指通过预训练的排序模型对粗排得到的一组搜索结果进行精确排序的过程。相关技术中,通过排序模型实现精确排序可以采用文档对(pairwise)方法。在这种情况下,排序模型通常以人工标注样本作为排序的主要依据,使排序模型能够在训练过程中学习人工标注样本之间的相对顺序。但是,在对排序模型进行训练的过程中,常常会发生由于训练样本在某个或多个特征维度覆盖不够而导致的排序模型效果不佳,进而导致排序模型的排序准确率较低的问题。

发明内容

本公开提供一种排序模型生成方法、排序方法、装置、电子设备、计算机可读存储介质、计算机程序产品,以至少解决相关技术中由于训练样本在某个或多个特征维度覆盖不够而导致的推荐准确率较低的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种排序模型生成方法,包括:

获取初始样本集合,所述初始样本集合中包括待进行排序的多个初始搜索结果;

对多个所述初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度;

根据所述待优化特征维度,补充与各个所述初始搜索结果对应的虚拟搜索结果,以使所述初始搜索结果和所述虚拟搜索结果在所述待优化特征维度下的特征值分布均匀;

确定多个所述初始搜索结果的第一排序结果,并根据所述第一排序结果确定所述虚拟搜索结果的第二排序结果;

将所述初始搜索结果和所述虚拟搜索结果进行配对生成输入样本,根据所述第一排序结果和所述第二排序结果确定所述输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型。

在其中一个实施例中,所述确定多个所述初始搜索结果的第一排序结果,并根据所述第一排序结果确定所述虚拟搜索结果的第二排序结果包括:

根据针对各个所述初始搜索结果的第一排序标记结果,对多个所述初始搜索结果进行分档排序,得到第一档间排序结果,作为所述第一排序结果;其中,所述第一档间排序结果包括多个档位,每一档位包括至少一个初始搜索结果;

根据针对所述虚拟搜索结果与对应的所述初始搜索结果的第二排序标记结果,确定所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系;

根据所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系,以及所述第一档间排序结果,确定所述虚拟搜索结果与多个所述初始搜索结果的第二档间排序结果,作为所述第二排序结果。

在其中一个实施例中,所述根据所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系,以及所述第一档间排序结果,确定所述虚拟搜索结果与多个所述初始搜索结果的第二档间排序结果,包括:

若所述虚拟搜索结果相对于对应的所述初始搜索结果属于升序关系,且对应的所述初始搜索结果所在档位为第一档位,则确定所述虚拟搜索结果与低于所述第一档位的其余档位为升序关系;

根据低于所述第一档位的其余档位中的初始搜索结果确定所述虚拟搜索结果的第二档间排序结果;

若所述虚拟搜索结果相对于对应的所述初始搜索结果属于降序关系,且对应的所述初始搜索结果所在档位为第二档位,则确定所述虚拟搜索结果与高于所述第二档位的其余档位为降序关系;

根据高于所述第二档位的其余档位中的初始搜索结果确定所述虚拟搜索结果的第二档间排序结果。

在其中一个实施例中,所述根据针对所述虚拟搜索结果与对应的所述初始搜索结果的第二排序标记结果,确定所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系,包括:

获取所述虚拟搜索结果与搜索词之间的第一相关度,以及对应的所述初始搜索结果与所述搜索词之间的第二相关度;

若所述第一相关度高于所述第二相关度,则确定所述虚拟搜索结果与对应的所述初始搜索结果之间为升序关系;

若所述第一相关度低于所述第二相关度,则确定所述虚拟搜索结果与对应的所述初始搜索结果之间为降序关系。

在其中一个实施例中,所述确定多个所述初始搜索结果的第一排序结果,还包括:

获取各个所述初始搜索结果的后验数据;

根据各个所述初始搜索结果的后验数据,对属于每一档位内的所述初始搜索结果进行排序,得到档内排序结果,将所述第一档间排序结果和所述档内排序结果作为所述第一排序结果。

在其中一个实施例中,所述对多个所述初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度,包括:

对多个所述初始搜索结果进行多维度特征分析,获取多个所述初始搜索结果中各个特征维度对应的特征值域;

对各个所述特征维度对应的特征值域进行划分得到对应的多个特征值区间;

针对每个特征维度,获取多个所述初始搜索结果在各个所述特征值区间的覆盖率;

确定所述覆盖率小于预设覆盖率要求的特征维度,作为所述待优化特征维度。

在其中一个实施例中,所述根据所述待优化特征维度,补充与各个所述初始搜索结果对应的虚拟搜索结果,包括:

对各个所述初始搜索结果在所述待优化特征维度下的特征值进行调整,以使所述初始搜索结果和所述虚拟搜索结果在所述待优化特征维度下的特征值分布均匀,得到对应的所述虚拟搜索结果。

根据本公开实施例的第二方面,提供一种排序方法,包括:

响应于客户端的搜索请求,确定与所述搜索请求中携带的搜索词对应的候选搜索结果;

通过上述第一方面任一项实施例得到的排序模型对所述候选搜索结果进行排序;

将排序后的所述候选搜索结果发送至所述客户端。

根据本公开实施例的第三方面,提供一种排序模型生成装置,包括:

获取模块,被配置为执行获取初始样本集合,所述初始样本集合中包括待进行排序的多个初始搜索结果;

维度确定模块,被配置为执行对多个所述初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度;

搜索结果生成模块,被配置为执行根据所述待优化特征维度,补充与各个所述初始搜索结果对应的虚拟搜索结果,以使所述初始搜索结果和所述虚拟搜索结果在所述待优化特征维度下的特征值分布均匀;

排序模块,被配置为执行确定多个所述初始搜索结果的第一排序结果,并根据所述第一排序结果确定所述虚拟搜索结果的第二排序结果;

模型生成模块,被配置为执行将所述初始搜索结果和所述虚拟搜索结果进行配对生成输入样本,根据所述第一排序结果和所述第二排序结果确定所述输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型。

在其中一个实施例中,所述排序模块,包括:

第一排序单元,被配置为执行根据针对各个所述初始搜索结果的第一排序标记结果,对多个所述初始搜索结果进行分档排序,得到第一档间排序结果,作为所述第一排序结果;其中,所述第一档间排序结果包括多个档位,每一档位包括至少一个初始搜索结果;

关系确定单元,被配置为执行据针对所述虚拟搜索结果与对应的所述初始搜索结果的第二排序标记结果,确定所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系;

第二排序单元,被配置为执行根据所述虚拟搜索结果与对应的所述初始搜索结果之间的升序关系或降序关系,以及所述第一档间排序结果,确定所述虚拟搜索结果与多个所述初始搜索结果的第二档间排序结果,作为所述第二排序结果。

在其中一个实施例中,所述第二排序单元,被配置为执行若所述虚拟搜索结果相对于对应的所述初始搜索结果属于升序关系,且对应的所述初始搜索结果所在档位为第一档位,则确定所述虚拟搜索结果与低于所述第一档位的其余档位为升序关系;根据低于所述第一档位的其余档位中的初始搜索结果确定所述虚拟搜索结果的第二档间排序结果;

若所述虚拟搜索结果相对于对应的所述初始搜索结果属于降序关系,且对应的所述初始搜索结果所在档位为第二档位,则确定所述虚拟搜索结果与高于所述第二档位的其余档位为降序关系;根据高于所述第二档位的其余档位中的初始搜索结果确定所述虚拟搜索结果的第二档间排序结果。

在其中一个实施例中,所述关系确定单元,被配置为执行获取所述虚拟搜索结果与搜索词之间的第一相关度,以及对应的所述初始搜索结果与所述搜索词之间的第二相关度;若所述第一相关度高于所述第二相关度,则确定所述虚拟搜索结果与对应的所述初始搜索结果之间为升序关系;若所述第一相关度低于所述第二相关度,则确定所述虚拟搜索结果与对应的所述初始搜索结果之间为降序关系。

在其中一个实施例中,所述排序模块,包括:

后验数据获取单元,被配置为执行获取各个所述初始搜索结果的后验数据;

第三排序单元,被配置为执行根据各个所述初始搜索结果的后验数据,对属于每一档位内的所述初始搜索结果进行排序,得到档内排序结果,将所述第一档间排序结果和所述档内排序结果作为所述第一排序结果。

在其中一个实施例中,所述维度确定模块,包括:

特征值域获取单元,被配置为执行对多个所述初始搜索结果进行多维度特征分析,获取多个所述初始搜索结果中各个特征维度对应的特征值域;

划分单元,被配置为执行对各个所述特征维度对应的特征值域进行划分得到对应的多个特征值区间;

覆盖率获取单元,被配置为执行针对每个特征维度,获取多个所述初始搜索结果在各个所述特征值区间的覆盖率;

维度确定单元,被配置为执行确定所述覆盖率小于预设覆盖率要求的特征维度,作为所述待优化特征维度。

在其中一个实施例中,所述搜索结果生成模块,被配置为执行对各个所述初始搜索结果在所述待优化特征维度下的特征值进行调整,以使所述初始搜索结果和所述虚拟搜索结果在所述待优化特征维度下的特征值分布均匀,得到对应的所述虚拟搜索结果。

根据本公开实施例的第四方面,提供一种排序装置,包括:

候选搜索结果确定模块,被配置为执行响应于客户端的搜索请求,确定与所述搜索请求中携带的搜索词对应的候选搜索结果;

排序模块,被配置为执行通过上述第一方面任一项实施例得到的排序模型对所述候选搜索结果进行排序;

发送模块,被配置为执行将排序后的所述候选搜索结果发送至所述客户端。

根据本公开实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现上述第一方面任一项实施例所述的排序模型生成方法。

根据本公开实施例的第六方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现上述第二方面实施例所述的排序方法。

根据本公开实施例的第七方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面任一项实施例所述的排序模型生成方法。

根据本公开实施例的第八方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第二方面实施例所述的排序方法。

根据本公开实施例的第九方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的排序模型生成方法。

根据本公开实施例的第十方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第二方面实施例所述的排序方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过对多个初始搜索结果进行扩增,得到虚拟搜索结果。确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果。基于初始搜索结果和虚拟搜索结果配对生成输入样本,根据第一排序结果和第二排序结果确定输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型,实现在不破坏多个初始搜索结果的原有排序的前提下,利用初始搜索结果和扩增得到的虚拟搜索结果构建得到更多的输入样本,使排序模型能够学习到更多的特征信息和相对顺序,进而使排序模型具备更强的性能。

通过使用上述方式得到的排序模型推理两个候选搜索结果之间的相对顺序,能够在推理过程中覆盖尽可能多的特征,从而让可能的特征值在模型上都有分裂点,有助于提高模型的排序精度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种排序模型生成方法的流程图。

图2是根据一示例性实施例示出的一种确定第一排序结果和第二排序结果步骤的流程图。

图3是根据一示例性实施例示出的一种确定待优化特征维度步骤的流程图。

图4是根据一示例性实施例示出的一种样本数分布的示意图。

图5是根据一示例性实施例示出的一种排序模型生成方法的流程图。

图6是根据一示例性实施例示出的一种排序方法的应用环境图。

图7是根据一示例性实施例示出的一种排序方法的流程图。

图8是根据一示例性实施例示出的一种排序模型生成装置的框图。

图9是根据一示例性实施例示出的一种排序装置的框图。

图10是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

本公开所提供的排序模型生成方法可以应用于服务器中。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器中部署有待训练的排序模型。其中,待训练的排序模型可以是树模型、支持向量机等。服务器可以对待训练的排序模型进行实时在线训练或者周期性离线训练等。当服务器需要对待训练的排序模型进行训练时,首先,获取初始样本集合,初始样本集合中包括待进行排序的多个初始搜索结果。其中,搜索结果的类别可以视排序模型的应用场景而定,例如,可以是视频、文章、商品、音乐、游戏等。然后,对多个初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度。根据待优化特征维度,补充与各个初始搜索结果对应的虚拟搜索结果,以使初始搜索结果和虚拟搜索结果在待优化特征维度下的特征值分布均匀。确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果。最后,服务器将初始搜索结果和虚拟搜索结果进行配对生成输入样本,根据第一排序结果和第二排序结果确定输入样本的样本标签(即真实排序结果)。将输入样本输入至待训练的排序模型,得到对应的预测排序结果。通过损失函数计算输入样本的预测排序结果和真实排序结果之间的损失值,并根据该损失值调整待训练的排序模型的模型参数,直至达到训练停止条件,得到满足线上推理要求的排序模型。其中,训练停止条件可以是损失值达到最小值,或者训练迭代次数达到预设迭代次数等。

图1是根据一示例性实施例示出的一种排序模型生成方法的流程图,如图1所示,排序模型生成方法用于服务器中,包括以下步骤。

在步骤S110中,获取初始样本集合。

其中,初始样本集合中可以但不限于包括与搜索词对应的、待进行排序的多个初始搜索结果。搜索词可以是用户账户曾经在搜索时输入的信息;也可以是为模型训练而人为设定的信息,例如,将已有的标准类别作为搜索词。初始搜索结果视具体的搜索场景而定,例如,对于短视频搜索场景,初始搜索结果可以是短视频、直播视频等;对于商品搜索场景,初始搜索结果可以是各类商品;对于搜索引擎场景,初始搜索结果可以是网页链接等。与至少一个搜索词对应的多个初始搜索结果可以从用户账户的历史浏览记录中得到;也可以从已有的分类中得到,例如,将已有的标准类别作为搜索词,则可以将标准类别下对象作为初始搜索结果。

在步骤S120中,对多个初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度。

具体地,服务器在获取初始样本集合后,获取与初始样本集合中的每个初始搜索结果对应的结果相关信息。对每个初始搜索结果的结果相关信息进行处理得到的能够被排序模型处理的初始特征向量,初始特征向量包含多个特征维度。其中,结果相关信息可以但不限于是初始搜索结果的标题、名称、类别、标识,以及短期和长期统计类特征等。具体实现中,可以通过MLP(Multilayer Perceptron,多层感知器)、one-hot编码(独热编码)、Embedding Lookup(嵌入向量查找)等方式对结果相关信息进行处理,得到初始搜索结果对应的初始特征向量。

在一些可能性实施例中,初始搜索结果对应的初始特征向量可以预先处理得到并固化于服务器中,在需要进行模型训练时便可根据初始搜索结果的关联信息(例如,标识)快速查找得到。

服务器在获取多个初始搜索结果的初始特征向量后,便可得到初始特征向量中每个特征维度的特征值、每个特征维度的特征值域等信息。服务器根据所得到的信息分析多个初始搜索结果在每个特征维度对应的特征值下的特征值分布情况。若判断特征值分布不均,将该特征维度确定为待优化特征维度。

在步骤S130中,根据待优化特征维度,补充与各个初始搜索结果对应的虚拟搜索结果,以使初始搜索结果和虚拟搜索结果在待优化特征维度下的特征值分布均匀。

具体地,在确定待优化特征维度后,可以将全部初始搜索结果的初始特征向量作为变更对象,也可以将部分初始搜索结果的初始特征向量作为变更对象。服务器对变更对象的待优化特征维度的特征值进行变更,使变更后的待优化特征维度能够向分布均匀的方向改变,得到对应的虚拟特征向量,作为虚拟搜索结果。

进一步地,服务器中可以预先配置有特征值的变更范围。该变更范围可以是固定数值范围;也可以根据待优化特征维度对应的特征值域进行动态改变,例如,设定变更范围在待优化特征维度对应的特征值域的1/1000以内。

在步骤S140中,确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果。

具体地,多个初始搜索结果的第一排序结果可以但不限于根据初始搜索结果和对应搜索词之间的相关度确定。例如,可以将搜索词与对应的每个初始搜索结果进行配对,形成搜索词-初始搜索结果对。获取搜索词对应的搜索词特征向量。其中,搜索词特征向量可以通过MLP、one-hot编码、Embedding Lookup等方式得到。通过深度学习模型计算初始搜索结果的初始特征向量与对应的搜索词特征向量之间的相关度。将初始搜索结果按照相关度从高到低,或者从低到高的顺序进行排序,得到每个搜索词下多个初始搜索结果的第一排序结果。

在确定第一排序结果之后,服务器根据初始搜索结果的第一排序结果,确定虚拟搜索结果的第二排序结果。例如,对于具有对应关系的虚拟搜索结果和初始搜索结果,可以设置第二排序结果与第一排序结果相同。

在步骤S150,将初始搜索结果和虚拟搜索结果进行配对生成输入样本,根据第一排序结果和第二排序结果确定输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型。

具体地,服务器根据第一排序结果和第二排序结果,从多个初始搜索结果和步骤S130得到虚拟搜索结果中选取多对搜索结果,作为输入样本。每个输入样本中包含的一对搜索结果可以是两两初始搜索结果、两两虚拟搜索结果、初始搜索结果和虚拟搜索结果等中任一形式。服务器根据第一排序结果和第二排序结果确定每个输入样本中两个搜索结果之间的真实排序结果,作为输入样本的样本标签。服务器使用输入样本对待训练的排序模型进行训练,通过待训练的排序模型输出每个输入样本中两个搜索结果之间的预测排序结果。接着,通过预设的损失函数计算预测排序结果和真实排序结果之间的损失值,并向损失值变小的方向调整待训练的排序模型的模型参数,直至达到预设的训练停止条件。最后,可以从训练得到的多个待训练的排序模型中选择性能较优的模型,作为推理阶段使用的排序模型。

上述排序模型生成方法中,通过对多个初始搜索结果进行扩增,得到虚拟搜索结果。确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果。基于初始搜索结果和虚拟搜索结果配对生成输入样本,根据第一排序结果和第二排序结果确定输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型,实现在不破坏多个初始搜索结果的原有排序的前提下,利用初始搜索结果和扩增得到的虚拟搜索结果构建得到更多的输入样本,使排序模型能够学习到更多的特征信息和相对顺序,进而使排序模型具备更强的性能。

在一示例性实施例中,如图2所示,步骤S140,确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果,具体可以通过以下步骤实现:

在步骤S210中,根据针对各个初始搜索结果的第一排序标记结果,对多个初始搜索结果进行分档排序,得到第一档间排序结果,作为第一排序结果;其中,第一档间排序结果包括多个档位,每一档位包括至少一个初始搜索结果。

其中,第一排序标记结果可以用于标记各个初始搜索结果在初步排序后的多个初始搜索结果中的位置。可以根据每个初始搜索结果与搜索词之间的相关度对多个初始搜索结果进行初步排序。例如,针对与搜索词对应的多个初始搜索结果,可以获取搜索词与每个初始搜索结果之间的相关度。根据相关度从大到小或者从小到大的顺序对多个初始搜索结果进行初步排序。将各个初始搜索结果在排序后的多个初始搜索结果中的位置,作为第一排序标记结果。

档位用于反映相关度的等级。档位可以人工划分并通过终端设备进行配置;也可以由服务器进行自动划分。第一档间排序结果可以通过不同档位之间的排序确定。例如,档位包括3档:第3档表示非常相关,对应相关度为0.8~1;第2档表示一般相关,对应相关度为0.5~0.8;第1档表示不相关,对应相关度为0~0.5。那么,第一档间排序结果则为第3档中的初始搜索结果排序高于第2档中的初始搜索结果,第2档中的初始搜索结果排序高于第1档中的初始搜索结果。

具体地,针对每个搜索词下的多个初始搜索结果,在计算得到搜索词特征向量与对应的每个初始搜索结果的初始特征向量之间的相关度后,可以按照所得到的相关度对多个初始搜索结果进行分档排序,确定每个初始搜索结果所属的档位,得到第一档间排序结果,作为第一排序结果。

在步骤S220中,根据针对虚拟搜索结果与对应的初始搜索结果的第二排序标记结果,确定虚拟搜索结果与对应的初始搜索结果之间的升序关系或降序关系。

其中,第二排序标记结果可以用于表示虚拟搜索结果相对于对应的初始搜索结果之间的排序位置,可以根据每个虚拟搜索结果与搜索词之间的相关度确定。升序关系可以用于反映虚拟搜索结果的排序位置高于对应的初始搜索结果的排序位置,相应地,降序关系可以用于反映虚拟搜索结果的排序位置低于对应的初始搜索结果的排序位置。

具体地,在一些可能性情况下,虚拟搜索结果与对应搜索词之间的相关度可能会发生跨档的现象,例如,虚拟搜索结果对应的初始搜索结果属于第3档,但是虚拟搜索结果与搜索词之间的相关度属于第3档外的其他档位。因此,为了确保样本标签的准确性,针对同一初始搜索结果,可以分别计算虚拟搜索结果和搜索词特征向量之间的第一相关度,以及初始特征向量和搜索词特征向量之间的第二相关度。若第一相关度高于第二相关度,则确定虚拟搜索结果与对应的初始搜索结果之间为升序关系。若第一相关度低于第二相关度,则确定虚拟搜索结果与对应的初始搜索结果之间为降序关系。

在步骤S230中,根据虚拟搜索结果与对应的初始搜索结果之间的升序关系或降序关系,以及第一档间排序结果,确定虚拟搜索结果与多个初始搜索结果的第二档间排序结果,作为第二排序结果。

具体地,若虚拟搜索结果相对于对应的初始搜索结果属于升序关系,且对应的初始搜索结果所在档位为第一档位,难么可以进一步确定虚拟搜索结果与低于第一档位的其余档位为升序关系。服务器则根据其余档位中的初始搜索结果确定虚拟搜索结果的第二档间排序结果,作为第二排序结果。

示例性地,档位包含第3档、第2档和第1档,第3档相关度高于第2档和第1档,第2档相关度高于第1档。若虚拟搜索结果对应的初始搜索结果属于第2档,且虚拟搜索结果与初始搜索结果之间为升序关系,那么可以认为虚拟搜索结果与第1档中的初始搜索结果为升序关系,即,虚拟搜索结果的排序高于第1档中的任一个初始搜索结果,从而得到虚拟搜索结果的第二档间排序结果。进一步地,在这种情况下,服务器则可以将虚拟搜索结果与第1档内每个初始搜索结果进行配对,生成输入样本,并确定样本标签为虚拟搜索结果排序高于初始搜索结果。

若虚拟搜索结果相对于对应的初始搜索结果属于降序关系,且对应的初始搜索结果所在档位为第二档位,难么可以进一步确定虚拟搜索结果与高于第二档位的其余档位为降序关系。服务器则根据其余档位中的初始搜索结果确定虚拟搜索结果的第二档间排序结果,作为第二排序结果。

继续参照上述示例进行说明,若虚拟搜索结果对应的初始搜索结果属于第2档,且虚拟搜索结果与初始搜索结果之间为降序关系,那么可以认为虚拟搜索结果与第3档中的初始搜索结果为降序关系,即,虚拟搜索结果的排序低于第3档中的任一个初始搜索结果,从而得到虚拟搜索结果的第二档间排序结果。进一步地,在这种情况下,服务器则可以将虚拟搜索结果与第3档内每个初始搜索结果进行配对,生成输入样本,并确定样本标签为虚拟搜索结果排序低于初始搜索结果。

本实施例中,通过增加虚拟搜索结果,可以扩大特征的覆盖率,使排序模型能够学习到更多的分裂点,进而有助于提升排序模型的性能;通过根据档间排序结果构建包含虚拟特征向量的训练样本,能够确保输入样本的样本标签的绝对准确性,进而有助于提升排序模型的准确性。

在一示例性实施例中,在步骤S230中,确定多个初始搜索结果的第一排序结果,还包括:获取各个初始搜索结果的后验数据;根据各个初始搜索结果的后验数据,对属于每一档位内的初始搜索结果进行排序,得到档内排序结果,将第一档间排序结果和档内排序结果作为第一排序结果。

其中,后验数据可以用于反映用户帐户对初始搜索结果的评价,可以通过对初始搜索结果的历史数据进行拟合得到。历史数据可以但不限于是一定时间段(例如180天)内产生的点击率、长播率、关注率、点赞率、零播率、短播率、平均播放时长等数据。

档内排序结果是指属于同一档位的初始搜索结果之间的排序。

具体地,针对每个档位下的初始搜索结果,在获取每个初始搜索结果对应的后验数据后,以后验数据作为排序标准,得到每个档位下初始搜索结果的档内排序结果。进而将第一档间排序结果和档内排序结果,作为多个初始搜索结果的第一排序结果。示例性地,档位第3档内包含三个初始搜索结果:初始搜索结果1、初始搜索结果2、初始搜索结果3。初始搜索结果1、初始搜索结果2、初始搜索结果3的后验数据分别为:0.9, 0.8, 0.7,那么第3档的档内排序结果则为初始搜索结果1高于初始搜索结果2和初始搜索结果3、初始搜索结果2高于初始搜索结果3。

进一步地,在确定第一档间排序结果和档内排序结果后,服务器便可根据档内排序结果对属于同一档位的任意两个初始搜索结果进行配对生成输入样本,并将两个初始搜索结果之间的档内排序结果作为样本标签。对属于不同档位的任意两个初始搜索结果进行配对生成输入样本,并将两个初始搜索结果之间的第一档间排序结果作为样本标签。进而使用生成的输入样本以及与输入样本对应的样本标签对待训练的排序模型进行训练。

示例性地,搜索词“美食”对应9个初始搜索结果,初始搜索结果1~初始搜索结果9。计算搜索词“美食”的搜索词特征向量和每个初始搜索结果的初始特征向量之间的相关度,并按照相关度由高至低排序为:初始搜索结果1、初始搜索结果2、初始搜索结果3、初始搜索结果4、初始搜索结果5、初始搜索结果6、初始搜索结果7、初始搜索结果8、初始搜索结果9。获取档位包含3档:第3档表示非常相关、第2档表示一般相关、第1档表示不相关,则第3档中包含初始搜索结果1、初始搜索结果2、初始搜索结果3,第2档中包含初始搜索结果4、初始搜索结果5、初始搜索结果6,第1档中包含初始搜索结果7、初始搜索结果8、初始搜索结果9。服务器可以将第1档、第2档、第3档中任意两档中的初始搜索结果进行配对生成输入样本,以及,根据档内排序结果,对第3档、第2档、第1档内的任意两个初始搜索结果进行配对生成输入样本。

本实施例中,通过将初始搜索结果间的排序结果划分为档间排序和档内排序,扩展初始搜索结果间相对顺序的数量,进而增加输入样本的数量,可以使排序能够充分学习初始搜索结果间的相对顺序,从而使排序模型有更过更好的分类点,有助于改善排序模型的过拟合问题。

在一示例性实施例中,如图3所示,在步骤S120中,对多个初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度,具体可以通过以下步骤实现:

在步骤S310中,对多个初始搜索结果进行多维度特征分析,获取多个初始搜索结果中各个特征维度对应的特征值域。

在步骤S320中,对各个特征维度对应的特征值域进行划分得到对应的多个特征值区间。

在步骤S330中,针对每个特征维度,获取多个初始搜索结果在各个特征值区间的覆盖率。

在步骤S340中,确定覆盖率小于预设覆盖率要求的特征维度,作为待优化特征维度。

具体地,在获取每个搜索词对应的多个初始搜索结果后,可以对每个特征维度下的特征值进行统计得到特征值域。将特征值域均匀划分成多个特征区间。服务器可以计算属于每个特征值区间的初始搜索结果数。根据每个特征值区间的初始搜索结果数以及总的初始搜索结果数计算得到覆盖率。服务器可以计算特征维度中两两特征区间之间的覆盖率差异值。若两两特征区间的覆盖率差异值大于预设阈值,则认为该特征维度为覆盖率小于预设覆盖率要求的特征维度(即,特征值分布不均的特征维度),则将该特征维度作为待优化特征维度。

示例性地,初始特征向量包含60个特征维度,统计得到第2维特征的直方图分布如图4所示,第二维特征值域为2338-392338。将第2维特征值域进行均分得到3个特征值区间。可以看出,大部分初始搜索结果都集中在2338-132338区间,其余区间则分布较少。因此,可以确定第2维为待优化特征维度。

进一步地,在确定待优化特征维度后,可以参照上述实施例人工或者使服务器自动地对初始特征向量中的待优化特征维度进行变更,得到对应的虚拟搜索结果。对于其他满足覆盖率要求的维度,则可以保持不变或者在较小范围内抖动。示例性地,存在需要变更的初始搜索结果A,其初始特征向量为(a1, a2, …, a60)。若第2维为待优化特征维度,则可以对第二维特征值进行变更,生成对应的虚拟特征向量A’(a1, a2’, …, a60),即只有特征维度a2发生了变化,其余特征保持不变。

进一步地,还可以统计同一档位下,每个特征维度对应的特征值域。在对初始特征向量进行变更时,使变更后的特征值不超过初始搜索结果所属档位下待优化特征维度的特征值域。

本实施例中,通过对每个特征维度下初始搜索结果的分布情况进行分析,可以快速且准确地查找出不符合覆盖率要求的待优化特征维度,进而有针对性地构建得到虚拟特征向量,使排序模型能够学习到较为全面的特征知识。

图5是根据一示例性实施例示出的一种排序模型生成方法的流程图,如图5所示,排序模型生成方法用于服务器中,包括以下步骤。

在步骤S502中,获取与搜索词对应的多个初始搜索结果。

在步骤S504中,确定多个初始搜索结果的第一档间排序结果和档内排序结果,作为多个初始搜索结果的第一排序结果。其中,档位、属于每个档位的初始搜索结果、第一档间排序结果、以及每个档位下初始搜索结果的档内排序结果的具体确定方式可以参照上述实施例,在此不做具体阐述。

在步骤S506中,针对每个搜索词下的多个初始搜索结果,根据多个初始搜索结果的初始特征向量确定特征值分布不满足覆盖率要求的待优化特征维度。其中,待优化特征维度的具体确定方式可以参照上述实施例,在此不做具体阐述。

在步骤S508中,对多个初始搜索结果的初始特征向量中,待优化特征维度对应的特征值进行变更,生成对应的虚拟搜索结果。其中,生成虚拟搜索结果的具体方式可以参照上述实施例,在此不做具体阐述。变更后待优化特征维度对应的特征值分布向分布均匀的方向变化,且变更后的特征值未超过初始搜索结果所属档位下待优化特征维度的特征值域。

在步骤S510中,确定虚拟搜索结果的第二档间排序结果,作为第二排序结果。其中,第二档间排序结果的具体确定方式可以参照上述实施例,在此不做具体阐述。

在步骤S512中,根据第一排序结果对初始特征向量进行配对生成输入样本。根据第二排序结果对虚拟搜索结果和其他搜索结果进行配对生成输入样本。其中,其他搜索结果可以为虚拟搜索结果或者初始搜索结果。

在步骤S514中,采用输入样本以及与输入样本对应的样本标签对待训练的排序模型进行训练,得到排序模型。

本公开所提供的排序方法,可以应用于如图6所示的应用环境中。该应用环境包括终端610和服务器620。其中,终端610可以是但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备。服务器620可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端610中部署有支持搜索功能的应用程序,该应用程序可以是短视频类、即时通信类、社交类应用程序等。服务器620中部署有通过上述任一个实施例得到的排序模型。具体地,终端610获取用户输入的搜索词。终端610向服务器620发送搜索请求,使服务器620根据搜索请求中携带的搜索词,对全量对象或者指定集合中的对象进行粗排,得到一组候选搜索结果。对象可以视排序模型的应用场景而定,例如,可以是视频、文章、商品、音乐、游戏等。服务器620通过预训练的排序模型对所得到的一组候选搜索结果进行精确排序,并将排序后的候选搜索结果发送至终端610,以使终端610在页面中显示排序后的候选搜索结果。

图7是根据一示例性实施例示出的一种排序方法的流程图,如图7所示,排序方法用于服务器中,包括以下步骤。

在步骤S710中,响应于客户端的搜索请求,确定与搜索请求中携带的搜索词对应的候选搜索结果。

其中,搜索请求可以是响应于用户点击指定按键、点击搜索词链接等时触发的请求。搜索词可以是用户输入的信息,也可以对用户输入的信息进行进一步分析处理得到的信息。候选搜索结果是指待进行精确预测相关度的搜索结果。

具体地,客户端响应于用户触发的搜索请求,将搜索请求发送至服务器,搜索请求中携带搜索词。服务器响应于搜索请求,通过预设的粗排模型从全量对象或者指定的对象集合中筛选得到有限数量的一组候选搜索结果。

在步骤S720中,通过上述任一个实施例得到的排序模型对候选搜索结果进行排序。

具体地,服务器在确定一组候选搜索结果后,生成每个候选搜索结果对应的特征向量。对特征向量的生成方式可以参照上述初始特征向量的生成方式,在此不做具体阐述。服务器对两两候选搜索结果进行配对,并将两两候选搜索结果的特征向量输入至上述任一个实施例得到的排序模型,得到两两候选搜索结果之间的排序顺序。进而,根据两两候选搜索结果之间的排序结果得到一组候选搜索结果的精确排序结果。

在步骤S730中,将排序后的候选搜索结果发送至客户端。

具体地,服务器将精确排序后的一组候选搜索结果发送至客户端,使得用户可以通过客户端浏览到精确排序后的候选搜索结果。

上述排序方法中,通过使用上述任一项实施例得到的排序模型推理两个候选搜索结果之间的相对顺序,能够在推理过程中覆盖尽可能多的特征,从而让可能的特征值在模型上都有分裂点,有助于提高模型的排序精度。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

图8是根据一示例性实施例示出的一种排序模型生成装置800框图。参照图8,该装置包括获取模块802、维度确定模块804、搜索结果生成模块806、排序模块808、模型生成模块810。

获取模块802,被配置为执行获取初始样本集合,初始样本集合中包括待进行排序的多个初始搜索结果;维度确定模块804,被配置为执行对多个初始搜索结果进行多维度特征分析,确定特征值分布不均的待优化特征维度;搜索结果生成模块806,被配置为执行根据待优化特征维度,补充与各个初始搜索结果对应的虚拟搜索结果,以使初始搜索结果和虚拟搜索结果在待优化特征维度下的特征值分布均匀;排序模块808,被配置为执行确定多个初始搜索结果的第一排序结果,并根据第一排序结果确定虚拟搜索结果的第二排序结果;模型生成模块810,被配置为执行将初始搜索结果和虚拟搜索结果进行配对生成输入样本,根据第一排序结果和第二排序结果确定输入样本的样本标签,对待训练的排序模型进行训练,得到排序模型。

在一示例性实施例中,排序模块808,包括:第一排序单元,被配置为执行根据针对各个初始搜索结果的第一排序标记结果,对多个初始搜索结果进行分档排序,得到第一档间排序结果,作为第一排序结果;其中,第一档间排序结果包括多个档位,每一档位包括至少一个初始搜索结果;关系确定单元,被配置为执行据针对虚拟搜索结果与对应的初始搜索结果的第二排序标记结果,确定虚拟搜索结果与对应的初始搜索结果之间的升序关系或降序关系;第二排序单元,被配置为执行根据虚拟搜索结果与对应的初始搜索结果之间的升序关系或降序关系,以及第一档间排序结果,确定虚拟搜索结果与多个初始搜索结果的第二档间排序结果,作为第二排序结果。

在一示例性实施例中,第二排序单元,被配置为执行若虚拟搜索结果相对于对应的初始搜索结果属于升序关系,且对应的初始搜索结果所在档位为第一档位,则确定虚拟搜索结果与低于第一档位的其余档位为升序关系;根据低于第一档位的其余档位中的初始搜索结果确定虚拟搜索结果的第二档间排序结果;若虚拟搜索结果相对于对应的初始搜索结果属于降序关系,且对应的初始搜索结果所在档位为第二档位,则确定虚拟搜索结果与高于第二档位的其余档位为降序关系;根据高于第二档位的其余档位中的初始搜索结果确定虚拟搜索结果的第二档间排序结果。

在一示例性实施例中,关系确定单元,被配置为执行获取虚拟搜索结果与搜索词之间的第一相关度,以及对应的初始搜索结果与搜索词之间的第二相关度;若第一相关度高于第二相关度,则确定虚拟搜索结果与对应的初始搜索结果之间为升序关系;若第一相关度低于第二相关度,则确定虚拟搜索结果与对应的初始搜索结果之间为降序关系。

在一示例性实施例中,排序模块808,包括:后验数据获取单元,被配置为执行获取各个初始搜索结果的后验数据;第三排序单元,被配置为执行根据各个初始搜索结果的后验数据,对属于每一档位内的初始搜索结果进行排序,得到档内排序结果,将第一档间排序结果和档内排序结果作为第一排序结果。

在一示例性实施例中,维度确定模块804,包括:特征值域获取单元,被配置为执行对多个初始搜索结果进行多维度特征分析,获取多个初始搜索结果中各个特征维度对应的特征值域;划分单元,被配置为执行对各个特征维度对应的特征值域进行划分得到对应的多个特征值区间;覆盖率获取单元,被配置为执行针对每个特征维度,获取多个初始搜索结果在各个特征值区间的覆盖率;维度确定单元,被配置为执行确定覆盖率小于预设覆盖率要求的特征维度,作为待优化特征维度。

在一示例性实施例中,搜索结果生成模块806,被配置为执行对各个初始搜索结果在待优化特征维度下的特征值进行调整,以使初始搜索结果和虚拟搜索结果在待优化特征维度下的特征值分布均匀,得到对应的虚拟搜索结果。

图9是根据一示例性实施例示出的一种排序装置900框图。参照图9,该装置包括候选搜索结果确定模块902、排序模块904、发送模块906。

候选搜索结果确定模块902,被配置为执行响应于客户端的搜索请求,确定与搜索请求中携带的搜索词对应的候选搜索结果;排序模块904,被配置为执行通过上述第一方面任一项实施例得到的排序模型对候选搜索结果进行排序;发送模块906,被配置为执行将排序后的候选搜索结果发送至客户端。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图10是根据一示例性实施例示出的一种用于生成排序模型和/或用于对搜索结果进行排序的电子设备1000的框图。例如,电子设备1000可以为一服务器。参照图10,电子设备1000包括处理组件1020,其进一步包括一个或多个处理器,以及由存储器1022所代表的存储器资源,用于存储可由处理组件1020的执行的指令,例如应用程序。存储器1022中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1020被配置为执行指令,以执行上述排序方法,和/或,以执行上述排序模型生成方法。

电子设备1000还可以包括一个电源组件1024被配置为执行电子设备1000的电源管理,一个有线或无线网络接口1026被配置为将电子设备1000连接到网络,和一个输入输出(I/O)接口1028。电子设备1000可以操作基于存储在存储器1022的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器1022,上述指令可由电子设备1000的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项实施例所述的排序方法和/或排序模型生成方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 排序模型生成方法、排序方法、装置、电子设备
  • 排序模型的生成方法、搜索结果的排序方法、装置及设备
技术分类

06120113212616