一种粗排序的方法及装置
技术领域
本申请实施例涉及数据处理
技术领域
,尤其涉及一种粗排序的方法及装置。背景技术
在搜索、推荐、广告等需要进行大规模排序的场景中,漏斗式的级联排序架构得到了非常广泛的应用,级联排序架构按顺序一般包含召回、粗排、精排、重排序等模块,每个模块的候选条目数目依次减少。
粗排位于召回和精排之间,需要从上万个候选条目中挑出几百到一千个候选条目送入精排,设计时需要平衡耗时和准确度两方面的因素。一方面,由于耗时要求,粗排模型设计往往比精排简单,相较精排准确度较低;另一方面粗排使用的训练数据是最终由精排选出的曝光数据,而推理预测是面向比训练数据更广泛的数据,造成严重的选择偏见;并且曝光未点击的样本本身属于粗排模型返回的正样本,又将它们作为负样本,导致模型难以学习。这些因素造成了粗排模型预估的不准确性,影响推荐效果。
发明内容
本申请提供一种粗排序的方法及装置,以解决现有技术中在粗排阶段粗排模型预估准确性不高的问题。
第一方面,本申请实施例提供了一种粗排序的方法,所述方法包括:
获取用户的历史条目集合,并根据所述历史条目集合确定所述用户的多种兴趣点信息;
获取候选条目集合,并确定所述候选条目集合中各候选条目分别与所述多种兴趣点信息的相关度分数;
从所述相关度分数中确定各候选条目的最终相关度分数;
根据各候选条目的最终相关度分数,从所述候选条目集合中选取用于进行精排序的目标候选条目。
第二方面,本申请实施例还提供了一种粗排序的装置,所述装置包括:
历史条目获取模块,用于获取用户的历史条目集合;
兴趣点信息确定模块,用于根据所述历史条目集合确定所述用户的多种兴趣点信息;
相关度分数确定模块,用于获取候选条目集合,并确定所述候选条目集合中各候选条目分别与所述多种兴趣点信息的相关度分数;
最终相关度分数确定模块,用于从所述相关度分数中确定各候选条目的最终相关度分数;
目标候选条目确定模块,用于根据各候选条目的最终相关度分数,从所述候选条目集合中选取用于进行精排序的目标候选条目。
第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面的方法。
本申请具有如下有益效果:
在本实施例中,在推荐系统的粗排序阶段考虑了用户的历史条目,并从历史条目集合中有效提取出当前用户的多种兴趣点信息,然后可以计算候选条目集合中各候选条目分别与各种兴趣点信息的相关度分数,并基于上述相关度分数确定各候选条目的最终相关度分数,然后各候选条目的最终相关度分数从候选条目集合中选取用于进行精排序的目标候选条目,使得选出的目标候选条目与当前用户的历史使用习惯相匹配,用户个性化程度高,提高了粗排阶段筛选目标候选条目的质量和准确度,很好地提升了粗排阶段决策目标候选条目的个性化能力,进而提升了推荐系统的推荐效果,从而达到提升用户黏性和产品留存的目的。
另外,本实施例可以快速提取出与历史条目相关的兴趣点信息,然后基于该兴趣点信息与候选条目的相关性可以获得各候选条目的最终相关性分数,能够满足粗排阶段对于上万级别的候选条目进行打分的需求,提高了打分效率,进而提升了筛选目标候选条目的效率。
附图说明
图1是本申请实施例一提供的一种粗排序的方法实施例的流程图;
图2是本申请实施例一提供的一种粗排序框架示意图;
图3是本申请实施例二提供的一种粗排序的装置实施例的结构框图;
图4是本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的一种粗排序的方法实施例的流程图,本实施例可以应用于推荐系统中,适用于包括新闻、资讯、短视频、音乐、广告等产品的实时个性化推荐场景。
本实施例可以包括如下步骤:
步骤110,获取用户的历史条目集合,并根据所述历史条目集合确定所述用户的多种兴趣点信息。
该步骤中,用户是指当前需要进行个性化推荐的目标账户,其来源可以是系统中所有注册账户中的任一账户,也可以是当前发起请求的账户,或者是根据实际业务需求确定的目标账户,本实施例对此不作限制。
在一种例子中,历史条目集合中可以包括当前用户在过去一段时间内产生行为的条目数据(item),例如,将过去一段时间内用户点击过的条目数据放入历史条目集合中。在实现时,可以通过获取当前用户的日志数据,并从日志数据中提取出当前用户的历史条目集合。其中,该条目数据可以包括条目id。
本实施例可以从用户的历史条目集合中提取出用户的多种兴趣点的兴趣点信息。在一种实施例中,可以依赖于深度学习网络来从用户的历史条目集合中提取兴趣点信息,则步骤110进一步可以包括如下步骤:
步骤110-1,生成各历史条目的历史条目向量。
在实现时,系统中可以包括一个向量层(Embedding层),用于将各个条目数据(如条目id)映射为固定维度的稠密向量,即条目向量。该Embedding层的实现可以是一个Embedding模型,例如,可以将每个历史条目的条目id输入至该Embedding模型中,以由该Embedding模型输出当前历史条目id对应的历史条目向量,各历史条目向量用于作为兴趣网络的输入。
所有历史条目的历史条目向量可以组成历史条目向量集合,即[v1,v2,…,vn],vi∈Rd,其中,d表示稠密向量的维度,n表示历史条目的数目。
步骤110-2,将各历史条目向量输入至预先训练的兴趣网络中,并获得所述兴趣网络输出的多种兴趣点信息。
其中,该兴趣网络可以为采用深度学习算法(如BP算法)训练得到的深度学习网络,其作用是提取各历史条目的一个或多个兴趣点信息。
在一种实施例中,兴趣网络可以为MLP网络(多层全连接神经网络),其至少可以包括第一全连接网络以及第二全连接网络;兴趣点信息示例性地可以包括初始兴趣点向量、最终兴趣点向量及兴趣点权重。则步骤110-2进一步可以包括如下步骤:
步骤110-2-1,将各历史条目向量分别输入至预先训练的第一全连接网络以及第二全连接网络中,并获得所述第一全连接网络输出的各历史条目向量对应的一个或多个兴趣点的兴趣点权重,以及所述第二全连接网络输出的各历史条目向量对应的一个或多个兴趣点的初始兴趣点向量。
在该步骤中,针对历史条目向量集合中的每一个历史条目向量,都可以分别将其输入至第一全连接网络以及第二全连接网络。其中,第一全连接网络的作用是将历史条目向量映射为一个或多个兴趣点的兴趣点权重;第二全连接网络的作用是将历史条目向量映射为一个或多个兴趣点的初始兴趣点向量。
例如,如图2的粗排序框架示意图所示,各历史条目向量(如图2中的history emb1、history emb 2、…、history emb n)均分别输入至两个全连接网络(MLP)中,从而获得各历史条目向量对应的一个或多个兴趣点的兴趣点权重(如图2中的interest weight)以及初始兴趣点向量(如图2中的interest vector)。其中,一个或多个兴趣点的兴趣点权重可以表示为一个或多个兴趣点的初始兴趣点向量可以表示为T表示兴趣点数目,S表示兴趣点的向量维度。
需要说明的是,根据不同的推荐场景,兴趣点也是不一样的,例如,短视频领域的兴趣点可以包括视频的不同类别,比如美女类、搞笑类、游戏类等等;电商推荐场景的兴趣点则可能是商品的不同类别,比如女士衣服、电器、日用品等等,本实施例不对具体的兴趣点进行限制。
步骤110-2-2,根据各历史条目向量对应的一个或多个兴趣点的初始兴趣点向量以及对应的兴趣点权重,确定各兴趣点的最终兴趣点向量。
针对各历史条目向量而言,当获得某个历史条目向量对应的一个或多个兴趣点的兴趣点权重以及初始兴趣点向量以后,可以融合各兴趣点的兴趣点权重与初始兴趣点向量,得到各兴趣点的最终兴趣点向量。
在一种实施例中,步骤110-2-2可以包括如下步骤:
步骤110-2-2-1,针对每个历史条目向量,将该历史条目向量的各兴趣点权重进行归一化处理。
为了便于不同量级的兴趣点权重能够进行比较和加权处理,当第一全连接网络输出各兴趣点的兴趣点权重以后,可以首先对兴趣点权重采用归一化函数进行归一化处理。其中,本实施例对具体的归一化函数不作限定,只要其能达到归一化的效果即可,例如,如图2所示,归一化函数可以是softmax函数。
步骤110-2-2-2,计算各个兴趣点的初始兴趣点向量以及对应的归一化后的兴趣点权重的乘积,获得各个兴趣点的中间兴趣点向量。
在该步骤中,对于每个历史条目向量,可以分别计算该历史条目向量的各兴趣点的兴趣点向量,作为中间兴趣点向量。具体可以是计算各兴趣点的初始兴趣点向量以及对应的归一化后的兴趣点权重的乘积作为对应兴趣点的中间兴趣点向量。
可以采用如下公式计算各个兴趣点的中间兴趣点向量:
其中,Ii(x,y)表示兴趣点i的中间兴趣点向量,表示兴趣点i的归一化后的兴趣点向量,表示兴趣点i的初始兴趣点向量。
步骤110-2-2-3,对所有历史条目中相同的兴趣点的中间兴趣点向量进行汇总,得到各兴趣点的最终兴趣点向量。
该步骤中,当得到各历史条目向量的各兴趣点的中间兴趣点向量以后,可以对所有历史条目向量中相同的兴趣点的兴趣点向量的累加(Weighted-sum),得到各兴趣点的最终兴趣点向量。即,采用如下公式计算各兴趣点的最终兴趣点向量:
其中,FI(x,y)为兴趣点i的最终兴趣点向量,表示兴趣点i在所有历史条目向量的中间兴趣点向量的之和。
步骤120,获取候选条目集合,并确定所述候选条目集合中各候选条目分别与所述多种兴趣点信息的相关度分数。
在该步骤中,候选条目集合为待推荐的条目组成的集合。在实现时,可以采用相关度计算算法来计算各候选条目与各兴趣点的兴趣点信息的相关度分数。
在一种实施例中,步骤120可以包括如下步骤:
步骤120-1,确定各候选条目对应的候选条目向量。
在实现时,可以将每个候选条目的条目id输入至本系统的Embedding层,以由该Embedding层输出当前候选条目id对应的稠密向量,即候选条目向量。
步骤120-2,针对各候选条目向量,计算所述候选条目向量分别与各兴趣点的最终兴趣点向量的相似度,作为相关度分数。
在该步骤中,针对每一个候选条目的候选条目向量,可以分别计算其与各兴趣点的最终兴趣点向量的相似度。例如,可以根据下述公式,通过点积计算来确定相似度:
Si=FIi·vt,i∈[1,n],S∈RT
其中,Si为当前候选条目向量vt与兴趣点i的最终兴趣点向量FIi通过点积计算得到的相似度。
当然,除了上述点积计算得到相似度以外,还可以有其他相似度的计算方式,如余弦相似度、欧几里得相似度等,本实施例对此不作限定。
步骤130,从所述相关度分数中确定各候选条目的最终相关度分数。
在一种实现中,可以从当前候选条目与各兴趣点的相关度分数中,选取最大的相关度分数作为当前候选条目的最终相关度分数simt,即:
simt=max(Si),i∈[1,n]
步骤140,根据各候选条目的最终相关度分数,从所述候选条目集合中选取用于进行精排序的目标候选条目。
当针对候选条目集合中每个候选条目确定其与当前用户的最终相关度分数以后,则可以依据与用户的最终相关度分数来从候选条目集合中选取用于进行精排序的目标候选条目。
在一种实施例中,可以通过相似度截断的方法确定目标候选条目,则步骤140可以包括如下步骤:
选取最终相关度分数最高的若干候选条目作为目标候选条目。
在该实施例中,在粗排阶段,当得到候选条目集合中每个候选条目与当前用户的最终相关度分数以后,可以使用该最终相关度分数对候选条目进行排序截断,具体的,可以按照最终相关度分数由高到低的顺序、对候选条目集合中的候选条目进行排序,然后选取排序在前的、最终相关度分数最高的若干个候选条目作为用于进行精排序的目标候选条目,以保证后续精排流程使用候选条目的质量。
在另一种实施例中,可以通过融合已有的在先分数的方法确定目标候选条目,则步骤140可以包括如下步骤:
获取各候选条目的在先分数,将各候选条目的所述在先分数与对应的最终相关度分数进行融合,得到最终分数;并选取最终分数最高的若干个候选条目作为目标候选条目。
在该实施例中,可以通过其他流程为各候选条目进行打分,获得在先分数。然后,将各候选条目与当前用户之间的最终相关度分数作为权重,对在先分数进行加权,得到各候选条目的最终分数,即最终分数的计算公式为:
scoret=simt×other
其中,scoret为候选条目t的最终分数,simt为候选条目t与当前用户的最终相关度分数,other为其他流程为候选条目t确定的在先分数。
然后,可以按照最终分数由高到低的顺序、对候选条目集合中的候选条目进行排序,然后选取排序在前的、最终分数最高的若干个候选条目作为用于进行精排序的目标候选条目,以保证后续精排流程使用候选条目的质量。
其中,选取进入精排阶段的目标候选条目的数量可以根据实际需求确定,本实施例对此不作限制。
在本实施例中,在推荐系统的粗排序阶段考虑了用户的历史条目,并从历史条目集合中有效提取出当前用户的多种兴趣点信息,然后可以计算候选条目集合中各候选条目分别与各种兴趣点信息的相关度分数,并基于上述相关度分数确定各候选条目的最终相关度分数,然后各候选条目的最终相关度分数从候选条目集合中选取用于进行精排序的目标候选条目,使得选出的目标候选条目与当前用户的历史使用习惯相匹配,用户个性化程度高,提高了粗排阶段筛选目标候选条目的质量和准确度,很好地提升了粗排阶段决策目标候选条目的个性化能力,进而提升了推荐系统的推荐效果,从而达到提升用户黏性和产品留存的目的。
另外,本实施例可以快速提取出与历史条目相关的兴趣点信息,然后基于该兴趣点信息与候选条目的相关性可以获得各候选条目的最终相关性分数,能够满足粗排阶段对于上万级别的候选条目进行打分的需求,提高了打分效率,进而提升了筛选目标候选条目的效率。
实施例二
图3为本申请实施例二提供的一种粗排序的装置实施例的结构框图,该装置可以应用于推荐系统中,可以包括如下模块:
历史条目获取模块210,用于获取用户的历史条目集合;
兴趣点信息确定模块220,用于根据所述历史条目集合确定所述用户的多种兴趣点信息;
相关度分数确定模块230,用于获取候选条目集合,并确定所述候选条目集合中各候选条目分别与所述多种兴趣点信息的相关度分数;
最终相关度分数确定模块240,用于从所述相关度分数中确定各候选条目的最终相关度分数;
目标候选条目确定模块250,用于根据各候选条目的最终相关度分数,从所述候选条目集合中选取用于进行精排序的目标候选条目。
在一种实施例中,所述兴趣点信息确定模块220可以包括如下子模块:
历史条目向量生成子模块,用于生成各历史条目的历史条目向量;
兴趣网络处理子模块,用于将各历史条目向量输入至预先训练的兴趣网络中,并获得所述兴趣网络输出的多种兴趣点信息。
在一种实施例中,所述兴趣网络包括第一全连接网络以及第二全连接网络,所述兴趣点信息包括初始兴趣点向量、最终兴趣点向量及兴趣点权重;
所述兴趣网络处理子模块可以包括如下单元:
全连接网络处理单元,用于将各历史条目向量分别输入至预先训练的第一全连接网络以及第二全连接网络中,并获得所述第一全连接网络输出的各历史条目向量对应的一个或多个兴趣点的兴趣点权重,以及所述第二全连接网络输出的各历史条目向量对应的一个或多个兴趣点的初始兴趣点向量;
最终兴趣点向量确定单元,用于根据各历史条目向量对应的一个或多个兴趣点的初始兴趣点向量以及对应的兴趣点权重,确定各兴趣点的最终兴趣点向量。
在一种实施例中,所述最终兴趣点向量确定单元具体用于:
针对每个历史条目向量,将该历史条目向量的各兴趣点权重进行归一化处理;
计算各个兴趣点的初始兴趣点向量以及对应的归一化后的兴趣点权重的乘积,获得各个兴趣点的中间兴趣点向量;
对所有历史条目中相同的兴趣点的中间兴趣点向量进行汇总,得到各兴趣点的最终兴趣点向量。
在一种实施例中,所述相关度分数确定模块230具体用于:
确定各候选条目对应的候选条目向量;
针对各候选条目向量,计算所述候选条目向量分别与各兴趣点的最终兴趣点向量的相似度,作为相关度分数。
在一种实施例中,所述最终相关度分数确定模块240具体用于:
从当前候选条目与各兴趣点的相关度分数中,选取最大的相关度分数作为最终相关度分数。
在一种实施例中,所述目标候选条目确定模块250具体用于:
选取最终相关度分数最高的若干候选条目作为目标候选条目;
或者,
获取各候选条目的在先分数,将各候选条目的所述在先分数与对应的最终相关度分数进行融合,得到最终分数;并选取最终分数最高的若干个候选条目作为目标候选条目。
需要说明的是,本申请实施例所提供的上述一种粗排序的装置可执行本申请实施例一所提供的一种粗排序的方法,具备执行方法相应的功能模块和有益效果。
实施例三
图4为本申请实施例四提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区
可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由服务器的处理器执行时用于执行实施例一中任一实施例中的方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。