一种推荐结果排序修正方法及装置,电子设备与流程

文档序号:15047412发布日期:2018-07-27 22:59阅读:151来源:国知局

本申请涉及计算机技术领域,特别是涉及一种推荐结果排序修正方法及装置,电子设备。



背景技术:

针对用户的个性化排序是推荐系统里面很重要的一个研究课题。随着网络平台业务的快速发展,每次用户在访问平台页面上的展位时,都有上百商家及产品被召回,进入到候选集展示给用户。现有技术中,推荐结果列表主要通过推荐模型,如learntorank(排序学习)模型获取。learntorank模型将机器学习技术应用到排序中,通过对每个用户的推荐结果排序问题抽象为最优化问题;数据源是过去一段时间内的用户行为日志,通过特征工程构造排序特征求解最优化问题。这种排序方法受限于系统采集的用户行为日志,因为用户的误点或者线上日志记录的问题,会导致得到的日志中会有很多噪声;基于行为日志训练机器学习模型,将会导致学习到的模型不准确,为了提升推荐效果,通常做法是对推荐结果列表的排序进行修正。

现有技术中常用的修正方法包括:对于推荐结果列表进行人为干预,对曝光多次,但是一直没点击的推荐结果做降权处理;或者,在训练数据中增加用户-推荐结果维度的交叉特征。然而,基于点击率调权时,在推荐结果曝光次数足够多的情况下,点击率是一个常量,即推荐结果每次的调权值都是固定的,起不到优化推荐结果的作用。而用户-推荐结果维度的交叉特征较难衡量,同样无法有效修正推荐结果的排序。

可见,现有技术中的推荐结果排序修正方法,依然无法解决推荐结果准确率低的问题。



技术实现要素:

本申请提供一种推荐结果排序修正方法,至少解决现有技术中的推荐排序方法存在的推荐结果准确率低的问题。

为了解决上述问题,第一方面,本申请实施例提供了一种推荐结果排序修正方法包括:

获取当前用户对历史推荐结果的实时行为数据;

根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型;

根据所述概率分布模型的采样值,对所述当前推荐结果进行修正。

第二方面,本申请实施例提供了一种推荐结果排序修正装置,包括:

实时行为数据获取模块,用于获取当前用户对历史推荐结果的实时行为数据;

用户行为概率分布模型构造模块,用于根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型;

排序修正模块,用于根据所述概率分布模型的采样值,对所述当前推荐结果进行修正。

第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的推荐结果排序修正方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的推荐结果排序修正方法的步骤。

本申请实施例公开的推荐结果排序修正方法,通过获取当前用户对历史推荐结果的实时行为数据,然后,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型,并进一步根据所述概率分布模型的采样值,对所述当前推荐结果进行修正,解决了现有技术中推荐排序方法存在的推荐结果准确率低的问题。本申请基于用户的实时行为统计量对推荐结果列表的排序进行修正,推荐结果基于用户的行为习惯获得,有效提升了推荐结果的准确率,同时,提升了用户体验。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一的推荐结果排序修正方法流程图;

图2是本申请实施例二的推荐结果排序修正方法构造的一个beta分布示意图;

图3是本申请实施例三的推荐结果排序修正装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

本实施例公开的一种推荐结果排序修正方法,如图1所示,该方法包括:步骤110至步骤130。

步骤110,获取当前用户对历史推荐结果的实时行为数据。

具体实施时,从全网用户实时行为数据流解析出当前用户对已经展示的推荐结果的预设行为列表,而后从推荐结果的品类维度,对所述当前用户的行为列表进行统计分析,确定用户在过去指定时间段(如两个小时)内,对已经曝光(即展示)的不同品类的推荐结果的点击次数和不点击次数。具体实施时,此处预设行为根据推荐结果的优化目标确定。例如,对于以提高点击率为优化目标的推荐系统,所述预设行为包括,“点击”;对于以提高访购率为优化目标的推荐系统,所述预设行为包括,“购买”。

具体实施时,也可以从推荐结果维度,对所述当前用户的行为列表进行统计分析,确定用户在过去指定时间段(如两个小时)内,对已经曝光(即展示)的不同推荐结果的点击次数和不点击次数。

步骤120,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型。

具体实施时,所述实时行为数据包括:用户对已曝光推荐结果的预设行为次数。以预设行为为“点击”为例,所述实时行为数据包括:用户在过去预设时间内(如两个小时内)对曝光的推荐结果的点击次数,和未点击次数。然后,以所述点击次数和未点击次数作为参数,构造用户对当前推荐结果执行点击行为的概率分布模型。具体实施时,所述概率分布模型可以为beta分布模型,也可以为高斯分布模型。

步骤130,根据所述概率分布模型的采样值,对所述当前推荐结果进行修正。

在构造概率分布模型之后,通过对概率分布曲线进行采样,以得到的采样值作为权重,修正推荐结果列表中推荐结果的推荐得分,并进一步对推荐结果列表进行重新排序,从而起到修正推荐结果的作用。

本申请实施例公开的推荐结果排序修正方法,通过获取当前用户对历史推荐结果的实时行为数据,然后,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型,并进一步根据所述概率分布模型的采样值,对所述当前推荐结果进行修正,解决了现有技术中推荐排序方法存在的推荐结果准确率低的问题。本申请基于用户的实时行为统计量对推荐结果列表的排序进行修正,推荐结果基于用户的行为习惯获得,有效提升了推荐结果的准确率,同时,提升了用户体验。

实施例二

本实施例是本申请公开的推荐结果排序修正方法的一个具体实施例,。

基于实施例一,具体实施时,所述获取当前用户对历史推荐结果的实时行为数据,包括:获取当前用户对历史曝光的三级品类推荐结果所执行的实时行为数据。在获取当前用户对历史推荐结果的实时行为数据时,可以从品类的维度获取实时数据,也可以从产品维度获取实时数据。由于推荐系统产品众多,从产品维度获取实时数据,可能会存在数据稀疏的问题,即在预设时间段内,某些产品可能从未曝光过,系统将无法获取用户对该产品的实时数据流。因此,优选的,基于品类维度,获取当前用户对历史曝光的推荐结果所执行的实时行为数据。具体实施时,推荐系统的产品会设置不同级别的品位标签。例如,推荐结果“金泉港imax国际影城”的一级品类标签为“休闲娱乐”,二级品类标签为“休闲”,三级品类标签为“电影院”,四级品类标签为“朝阳区”。可见,一、二级品类太宽泛,不够细致,用户对历史曝光的一、二级品类推荐结果所执行的实时行为数据无法体现用户对不同推荐结果的区分度。而四级及以下级别品类过于细致,从四级及以下级别品类维度获取实时数据,可能会存在数据稀疏的问题。优选的,本申请获取当前用户对历史曝光的三级品类推荐结果所执行的实时行为数据。

具体实施时,所述实时行为数据包括:指定时间段内,对历史曝光的每个三级品类下的推荐结果执行预设行为的次数和不执行预设行为的次数。

本申请具体实施时,所述预设行为根据推荐结果的优化目标确定,所述预设行为包括但不限于:点击或购买。如果推荐系统以提升推荐结果的点击率为优化目标,则预设行为包括:点击推荐结果;如果推荐系统以提升推荐结果的访购率为优化目标,则预设行为包括:购买推荐结果。

下面,以预设行为为点击举例,详细说明获取当前用户对历史曝光的三级品类推荐结果所执行的实时行为数据的具体技术方案。

首先,从全网实时数据中获取指定时间段内对当前用户已曝光的所有推荐结果。所述指定时间段根据具体需求确定,例如可以为最近两小时。然后,根据各推荐结果的三级品类标签,对已经曝光的推荐结果进行分类,每个三级品类对应的推荐结果包括多个。具体实施时,每个三级品类对应的类别下的所有推荐结果的总曝光次数作为该三级品类推荐结果对当前用户的总曝光次数;当前用户某个三级品类对应的类别下的所有推荐结果的总点击次数作为当前用户对该三级品类推荐结果的总点击次数;每个三级品类对当前用户的总曝光次数减去当前用户对该三级品类推荐结果的总点击次数,得到当前用户对该三级品类推荐结果的曝光未点击次数。假设最近两小时内已经曝光的推荐结果包括:c1,c2,c3三个三级品类,其中,品类c1中包括推荐结果p1和p2,如果推荐结果p1曝光了50次,当前用户点击了10次,推荐结果p2曝光了50次,则三级品类c1对当前用户总共曝光100次,当前用户点击10次。依据此方法,可以得到指定时间段内,对当前用户已经曝光的每个三级品类推荐结果的曝光未点击次数和曝光点击次数。

具体实施时,还可以通过机器学习的方法(如最大似然)建模,结合当前用户的实时行为数据,作为训练数据进行参数学习,得到概率分布模型的参数。

然后,根据获取的所述当前用户的实时行为数据,构造所述当前用户针对当前推荐结果执行点击行为的概率分布模型。具体实施时,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型包括:根据当前用户对历史曝光的每个三级品类下的推荐结果执行预设行为的次数和不执行预设行为的次数确定模型参数,构造所述当前用户针对相应三级品类推荐结果执行预设行为的概率分布模型。

具体实施时,根据对当前用户已经曝光的每个三级品类推荐结果的曝光未点击次数和曝光点击次数构造所述当前用户针对当前推荐结果执行点击行为的概率分布模型。其中,概率分布模型可以为贝塔分布(betadistribution)分布模型,也可以为高斯分布模型。本实施例中,以构建beta分布模型为例,详细说明根据对当前用户已经曝光的每个三级品类推荐结果的曝光未点击次数和曝光点击次数构造所述当前用户针对当前推荐结果执行点击行为的概率分布模型。

贝塔分布(beta分布)模型是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数,在机器学习和数理统计学中有重要应用。在概率论中,beta分布是指一组定义在(0,1)区间的连续概率分布。beta分布模型有两个参数,分别为α和β,本实施例中,另α=γ+曝光点击次数,β=γ+曝光未点击次数,其中,γ为较小的常数,例如取值为1。

以当前用户对已经曝光了三级品类c1的推荐结果的曝光未点击次数和曝光点击次数,构造所述当前用户针对当前推荐结果中属于三级品类c1的推荐结果执行点击行为的beta分布模型举例,α=1+10,β=1+90,则可以得到如图2所示的beta分布曲线。

beta分布,α和β的均值e=α/(α+β),在本实施例中,beta分布的均值e=11/102,均值比较小,即对图2所示的beta分布采样时,有很大概率得到的采样值会比较小,因此,以beta分布的采样值作为权重对推荐得分进行调整,将起到打压该beta分布对应的三极品类推荐结果排序的作用。可见,beta分布的采样值的大小与当前用户最近对该三级品类推荐结果的曝光点击率正相关,充分体现了用户的搜索需求。

按照上述方法,可以得到用户对每个三级品类推荐结果的点击行为概率分布模型。如果获取的当前用户对历史曝光的某个三级品类推荐结果所执行的实时行为数据中,曝光点击次数比较多,beta分布的均值会比较大,beta分布的采样值会大概率的落在均值e附近,因此这个时候得到的采样值会较大,在以beta分布的采样值作为权重对推荐得分进行调整,将起到提升该beta分布对应的三极品类推荐结果排序的作用。

具体实施时,如果推荐系统以提升访购率为优化目标,则根据获取的当前用户对历史曝光的三级品类推荐结果所执行的实时购买行为数据,构造用户对每个三级品类推荐结果的预设行为概率分布模型。

具体实施时,还可以根据获取的用户实时行为数据构造高斯分布模型,本实施例不再赘述。

在得到用户对每个三级品类推荐结果的预设行为概率分布模型之后,进一步根据所述概率分布模型的采样值,对所述当前推荐结果中相应的推荐结果进行修正。

具体实施时,所述根据所述概率分布模型的采样值,对所述当前推荐结果修正,包括:通过对所述概率分布模型对应的概率分布曲线进行随机采样,确定所述概率分布模型的采样值;将所述采样值与所述当前推荐结果的推荐得分的乘积,作为所述当前推荐结果修正后的推荐得分;根据所述修正后的推荐得分,对所述当前推荐结果的排序进行修正。在构造每个三级品类推荐结果的预设行为概率分布模型之后,根据每个概率分布的采样值,分别对属于相应三级品类的推荐结果的推荐得分进行修正。

以推荐系统返回的推荐结果列表包括推荐结果p1为例,因为推荐结果p1的三级品类标签为c1,因此,通过对三级品类推荐结果c1的概率分布模型对应的概率分布曲线进行采样,得到采样值sample(beta(c1)),然后,将所述采样值与推荐系统对推荐结果p1预估的推荐得分(p1)的乘积,作为当前推荐结果p1的最终推荐得分。即,通过公式ctr_new(p1)=ctr(p1)*sample(beta(c1)),计算推荐结果p1的最终推荐得分,对推荐系统计算的排序得分进行修正。如果推荐系统返回的推荐结果列表包括推荐结果p3,而推荐结果p3的三级品类标签为c2,通过对三级品类推荐结果c2的概率分布模型对应的概率分布曲线进行采样,得到采样值sample(beta(c2)),并通过公式ctr_new(p3)=ctr(p3)*sample(beta(c2)),计算推荐结果p3的最终推荐得分,其中,ctr(p3)为推荐系统对推荐结果p3预估的推荐得分。

按照上述方法,可以得到推荐系统返回的推荐结果列表中每个推荐结果的修正后的推荐得分。最后,按照修正后的推荐得分对推荐结果进行重新排序,并输出至客户端进行展示。

本方案基于用户实时数据流中的用户三级品类行为统计量,结合beta分布采样,对推荐系统中推荐模型预估的推荐得分进行实时干预修正,可以大幅度打压曝光量大,点击次数少的推荐结果的展示,提升用户体验,同时提升日活跃用户数量。使用beta分布得到随机值对推荐得分进行修正,可以提升推荐系统返回的推荐结果的多样性。

本申请实施例公开的推荐结果排序修正方法,通过获取当前用户对历史推荐结果的实时行为数据,然后,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型,并进一步根据所述概率分布模型的采样值,对所述当前推荐结果进行修正,解决了现有技术中推荐排序方法存在的推荐结果准确率低的问题。本申请基于用户的实时行为统计量对推荐结果列表的排序进行修正,推荐结果基于用户的行为习惯获得,有效提升了推荐结果的准确率,同时,提升了用户体验。

通过在三级品类上利用beta分布对推荐得分进行干预,对于用户点击次数高的三级品类,干预之后会排在推荐结果列表的前面,增加了曝光机会;对于用户点击次数少的三级品类,干预之后会排在推荐结果列表的后面,减少了曝光机会,进而提升了推荐结果的准确度。同时,如果直接在推荐结果维度实时行为数据获取,会使得过去一段时间用户点击次数多的推荐结果一直曝光,用户体验不好,使用三级品类,会增加与用户点击次数多的推荐结果属于一个三级品类的推荐结果的曝光次数,对提升推荐多样性很有帮助。

实施例三

本实施例公开的一种推荐结果排序修正装置,如图3所示,所述装置包括:

实时行为数据获取模块310,用于获取当前用户对历史推荐结果的实时行为数据;

用户行为概率分布模型构造模块320,用于根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型;

排序修正模块330,用于根据所述概率分布模型的采样值,对所述当前推荐结果进行修正。

可选的,所述实时行为数据获取模块310,进一步用于:

获取当前用户对历史曝光的三级品类推荐结果所执行的实时行为数据。

可选的,所述实时行为数据包括:指定时间段内,对历史曝光的每个三级品类下的推荐结果执行预设行为的次数和不执行预设行为的次数。

具体实施时,可以通过统计的方法根据用户实时行为数据,得到概率分布模型的参数;还可以通过机器学习的方法(如最大似然)建模,结合当前用户的实时行为数据,作为训练数据进行参数学习,得到概率分布模型的参数,本申请对此不做限定。

可选的,所述用户行为概率分布模型构造模块320,进一步用于:

根据当前用户对历史曝光的每个三级品类下的推荐结果执行预设行为的次数和不执行预设行为的次数确定模型参数,构造所述当前用户针对相应三级品类推荐结果执行预设行为的概率分布模型。

具体实施时,所述概率分布模型可以为beta分布模型,也可以为高斯分布模型。

可选的,所述排序修正模块330进一步用于:

通过对所述概率分布模型对应的概率分布曲线进行随机采样,确定所述概率分布模型的采样值;

将所述采样值与所述当前推荐结果的推荐得分的乘积,作为所述当前推荐结果修正后的推荐得分;

根据所述修正后的推荐得分,对所述当前推荐结果的排序进行修正。

本方案基于用户实时数据流中的用户三级品类行为统计量构建概率分布模型,结合概率分布的采样值,对推荐系统中推荐模型预估的推荐得分进行实时干预修正,可以大幅度打压曝光量大,点击次数少的推荐结果的展示,提升用户体验,同时提升日活跃用户数量。使用概率分布随机采样值对推荐得分进行修正,可以提升推荐系统返回的推荐结果的多样性。

可选的,所述预设行为根据推荐结果的优化目标确定,所述预设行为包括:点击或购买。

本申请实施例公开的推荐结果排序修正装置,通过获取当前用户对历史推荐结果的实时行为数据,然后,根据所述实时行为数据,构造所述当前用户针对当前推荐结果执行预设行为的概率分布模型,并进一步根据所述概率分布模型的采样值,对所述当前推荐结果进行修正,解决了现有技术中推荐排序方法存在的推荐结果准确率低的问题。本申请基于用户的实时行为统计量对推荐结果列表的排序进行修正,推荐结果基于用户的行为习惯获得,有效提升了推荐结果的准确率,同时,提升了用户体验。

通过在三级品类上利用beta分布对推荐得分进行干预,对于用户点击次数高的三级品类,干预之后会排在推荐结果列表的前面,增加了曝光机会;对于用户点击次数少的三级品类,干预之后会排在推荐结果列表的后面,减少了曝光机会,进而提升了推荐结果的准确度。同时,如果直接在推荐结果维度实时行为数据获取,会使得过去一段时间用户点击次数多的推荐结果一直曝光,用户体验不好,使用三级品类,会增加与用户点击次数多的推荐结果属于一个三级品类的推荐结果的曝光次数,对提升推荐多样性很有帮助。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一和实施例二所述的推荐结果排序修正方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一和实施例二所述的推荐结果排序修正方法的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请提供的一种推荐结果排序修正方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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