发明内容
基于此,有必要针对现有技术的网站项目的推荐质量较低的技术问题,提供一种网站项目的通知方法及系统。
一种网站项目的通知方法,包括:
获取多个用户对多个项目的兴趣度评分;
确定与目标项目的近邻项目集合,所述近邻项目集合为与目标项目相似度最高的K个其他项目,所述目标项目与所述其他项目的相似度由用户并集中的用户对目标项目及所述其他项目的兴趣度评分计算,所述并集为目标项目与其中一个其他项目具有兴趣度评分的用户的并集,目标项目或所述其他项目中未具有所述并集中的用户的兴趣度评分采用组合加权评分方法填补;
根据目标用户对近邻项目的兴趣度评分,确定目标用户对目标项目的预测评分;
如果目标用户对目标项目的预测评分超出预设评分阈值,则向目标用户发送目标项目通知。
在其中一个实施例中,所述获取多个用户对多个项目的兴趣度评分的步骤,具体包括:
获取用户对每个项目的购买次数buy、喜欢过次数like和订阅次数subs;
兴趣度评分R=log(nbuy*buy+nlike*like+nsubs*subs)+nR,其中nbuy为预设的购买次数权重,nlike为预设的喜欢过次数权重,nsubs为预设的订阅次数权重,nR为兴趣度权重。
在其中一个实施例中,所述确定与目标项目的近邻项目集合的步骤,具体包括:
计算目标项目i与所有其他项目的相似度,其中,目标项目i与任一其他项目j的相似度计算如下:
确定目标项目i与其他项目j有过兴趣度评分记录的用户集合分别为Ui和Uj;
计算目标项目i与其他项目j的相似度为:
其中|Ui∩Uj|为目标项目i和其他项目j的共同兴趣度评分用户数,η为预设的用户数阈值是用户u的平均兴趣度评分,Ru,i为用户u对目标项目i的修正评分,Ru,i为用户u对其他项目j的修正评分;
其中Ru,i采用如下方式计算:
如果具有用户u对目标项目i的兴趣度评分Ru,i,则Ru,i=Ru,i;
如果不具有用户u对目标项目i的兴趣度评分,则Ru,i=ru,i,其中ru,i为用户u对目标项目i的组合加权评分:
其中ru为用户u的平均加权评分, Iu是具有用户u的兴趣度评分的项目集合,|Iu|为项目集合Iu的项目个数,Ru,k为用户u对项目集合Iu的项目k的兴趣度评分,是目标项目i收到的平均兴趣度评分,其中ri为目标项目i的平均加权评分,|Ui|为用户集合Ui的用户个数;Rk,i为用户k对目标项目i的兴趣度评分;
其中Ru,j采用如下方式计算:
如果具有用户u对其他项目j的兴趣度评分Ru,j,则Ru,j=Ru,j;
如果不具有用户u对目标项目j的兴趣度评分,则Ru,j=ru,j,其中ru,j为用户u对其他项目j的组合加权评分:
其中ri为其他项目j的平均加权评分, 是其他项目j收到的平均兴趣度评分,|Uj|为用户集合Uj的用户个数;Rk,j为用户k对其他项目j的兴趣度评分;
确定与目标项目i的相似度最高的K个项目作为目标项目i的近邻项目集合。
在其中一个实施例中,所述根据目标用户对近邻项目的兴趣度评分,确定目标用户对目标项目的预测评分的步骤,具体包括:
目标用户v对目标项目i的预测评分Pv,i为:
其中S(i)是目标项目i的近邻项目集合,其中Rv,l为目标用户v对近邻项目集合中其中一个近邻项目l的兴趣度评分,是近邻项目l收到的平均兴趣度评分。
在其中一个实施例中,所述目标用户为对所述目标项目为具有兴趣度评分的用户。
一种网站项目的通知系统,包括:
兴趣度评分模块,用于获取多个用户对多个项目的兴趣度评分;
近邻项目集合模块,用于确定与目标项目的近邻项目集合,所述近邻项目集合为与目标项目相似度最高的K个其他项目,所述目标项目与所述其他项目的相似度由用户并集中的用户对目标项目及所述其他项目的兴趣度评分计算,所述并集为目标项目与其中一个其他项目具有兴趣度评分的用户的并集,目标项目或所述其他项目中未具有所述并集中的用户的兴趣度评分采用组合加权评分方法填补;
预测评分模块,用于根据目标用户对近邻项目的兴趣度评分,确定目标用户对目标项目的预测评分;
目标项目通知模块,用于如果目标用户对目标项目的预测评分超出预设评分阈值,则向目标用户发送目标项目通知。
在其中一个实施例中,所述兴趣度评分模块,具体包括:
兴趣度行为获取子模块,用于获取用户对每个项目的购买次数buy、喜欢过次数like和订阅次数subs;
兴趣度评分计算子模块,用于计算兴趣度评分R:
R=log(nbuy*buy+nlike*like+nsubs*subs)+nR,其中nbuy为预设的购买次数权重,nlike为预设的喜欢过次数权重,nsubs为预设的订阅次数权重,nR为兴趣度权重。
在其中一个实施例中,所述近邻项目集合模块,具体包括:
相似度计算子模块,用于计算目标项目i与所有其他项目的相似度,其中,目标项目i与任一其他项目j的相似度计算如下:
确定目标项目i与其他项目j有过兴趣度评分记录的用户集合分别为Ui和Uj;
计算目标项目i与其他项目j的相似度为:
其中|Ui∩Uj|为目标项目i和其他项目j的共同兴趣度评分用户数,η为预设的用户数阈值,是用户u的平均兴趣度评分,Ru,i为用户u对目标项目i的修正评分,Ru,i为用户u对其他项目j的修正评分;
其中Ru,i采用如下方式计算:
如果具有用户u对目标项目i的兴趣度评分Ru,i,则Ru,i=Ru,i;
如果不具有用户u对目标项目i的兴趣度评分,则Ru,i=ru,i,其中ru,i为用户u对目标项目i的组合加权评分:
其中ru为用户u的平均加权评分, Iu是具有用户u的兴趣度评分的项目集合,|Iu|为项目集合Iu的项目个数,Ru,k为用户u对项目集合Iu的项目k的兴趣度评分,是目标项目i收到的平均兴趣度评分,其中ri为目标项目i的平均加权评分,|Ui|为用户集合Ui的用户个数;Rk,i为用户k对目标项目i的兴趣度评分;
其中Ru,j采用如下方式计算:
如果具有用户u对其他项目j的兴趣度评分Ru,j,则Ru,j=Ru,j;
如果不具有用户u对目标项目j的兴趣度评分,则Ru,j=ru,j,其中ru,j为用户u对其他项目j的组合加权评分:
其中ri为其他项目j的平均加权评分, 是其他项目j收到的平均兴趣度评分,|Uj|为用户集合Uj的用户个数;Rk,j为用户k对其他项目j的兴趣度评分;
近邻项目确定子模块,用于确定与目标项目i的相似度最高的K个项目作为目标项目i的近邻项目集合。
在其中一个实施例中,所述预测评分模块,具体用于:
目标用户v对目标项目i的预测评分Pv,i为:
其中S(i)是目标项目i的近邻项目集合,其中Rv,l为目标用户v对近邻项目集合中其中一个近邻项目l的兴趣度评分,是近邻项目l收到的平均兴趣度评分。
在其中一个实施例中,所述目标用户为对所述目标项目为具有兴趣度评分的用户。
上述的网站项目的通知方法及系统,计算项目相似度时,考虑的是两个项目的评分用户的并集,使用组合加权评分方法去填补评分空缺项。与现有的协同过滤技术计算项目相似度时考虑的是项目的评分用户的交集,更适合高度稀疏的现实数据,而且引入共同评分用户数阈值调整项目的相似度,更加能反映项目的相似度。同时现有技术的评分预测公式只考虑用户对目标项目的近邻项目的评分,而没有考虑到其他用户对目标项目的评分情况,以及近邻项目评分的总体情况,这使得预测评分过度依赖目标用户已有的评分数据,这会导致预测评分产生较大的偏差。所以本发明的评分预测方法的推荐效果比现有技术更佳,推荐商品的质量等到很大提高。
同时,本发明使用修正的余弦相似度公式计算两个项目的相似度,再考虑项目共同评分用户数,引入共同评分阈值调整项目的相似度。而现有技术使用的相似度计算方法一般为余弦相似性、Pearson相关系数和修正的余弦相似性,而且没有考虑项目的共同评分用户数。另外,本发明计算用户对指定项目的预测评分时,本发明把目标用户对近邻项目的评分与近邻项目获得的平均评分的偏差为加权相加项,并以目标项目的平均评分为基准。而现有的协同过滤技术把用户对近邻项目的评分作为加权相加项。因此,本发明的计算结果能得到进一步的提高,网站项目的推荐质量也得到大大提高。
同时,本发明利用用户历史行为数据生成用户对项目的评分,根据用户的购买、订阅以及“喜欢”按钮的点击记录评估用户对项目的兴趣度评分。本发明的评分方式综合考虑用户的多种行为,对用户的兴趣度评估更加全面、客观和切合业务逻辑,而且最后得到的数据分布适合分析和输入到推荐算法中。而现有的协同过滤技术直接使用用户对项目的打分数据,带有一定的用户主观性。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1所示为本发明的一种网站项目的通知方法的工作流程图,包括:
步骤S101,获取多个用户对多个项目的兴趣度评分;
步骤S102,确定与目标项目的近邻项目集合,所述近邻项目集合为与目标项目相似度最高的K个其他项目,所述目标项目与所述其他项目的相似度由用户并集中的用户对目标项目及所述其他项目的兴趣度评分计算,所述并集为目标项目与其中一个其他项目具有兴趣度评分的用户的并集,目标项目或所述其他项目中未具有所述并集中的用户的兴趣度评分采用组合加权评分方法填补;
步骤S103,根据目标用户对近邻项目的兴趣度评分,确定目标用户对目标项目的预测评分;
步骤S104,如果目标用户对目标项目的预测评分超出预设评分阈值,则向目标用户发送目标项目通知。
本领域普通技术人员在阅读本专利后,可以确定步骤S101的具体步骤。在其中一个实施例中,所述步骤S101,具体包括:
获取用户对每个项目的购买次数buy、喜欢过次数like和订阅次数subs;
兴趣度评分R=log(nbuy*buy+nlike*like+nsubs*subs)+nR,其中nbuy为预设的购买次数权重,nlike为预设的喜欢过次数权重,nsubs为预设的订阅次数权重,nR为兴趣度权重。
本实施例利用用户历史行为数据生成用户对项目的评分,根据用户的购买、订阅以及“喜欢”按钮的点击记录评估用户对项目的兴趣度评分。因此,其数据与用户的需求更为接近
对于相似度的计算,本领域普通技术人员在阅读本专利后可以提出具体的实现方式。在其中一个实施例中,所述步骤S102,具体包括:
计算目标项目i与所有其他项目的相似度,其中,目标项目i与任一其他项目j的相似度计算如下:
确定目标项目i与其他项目j有过兴趣度评分记录的用户集合分别为Ui和Uj;
计算目标项目i与其他项目j的相似度为:
其中|Ui∩Uj|为目标项目i和其他项目j的共同兴趣度评分用户数,η为预设的用户数阈值,是用户u的平均兴趣度评分,Ru,i为用户u对目标项目i的修正评分,Ru,i为用户u对其他项目j的修正评分;
其中Ru,i采用如下方式计算:
如果具有用户u对目标项目i的兴趣度评分Ru,i,则Ru,i=Ru,i;
如果不具有用户u对目标项目i的兴趣度评分,则Ru,i=ru,i,其中ru,i为用户u对目标项目i的组合加权评分:
其中ru为用户u的平均加权评分, Iu是具有用户u的兴趣度评分的项目集合,|Iu|为项目集合Iu的项目个数,Ruk为用户u对项目集合Iu的项目k的兴趣度评分,是目标项目i收到的平均兴趣度评分,其中ri为目标项目i的平均加权评分,|Ui|为用户集合Ui的用户个数;Rk,i为用户k对目标项目i的兴趣度评分;
其中Ru,j采用如下方式计算:
如果具有用户u对其他项目j的兴趣度评分Ru,j,则Ru,j=Ru,j;
如果不具有用户u对目标项目j的兴趣度评分,则Ru,j=ru,j,其中ru,j为用户u对其他项目j的组合加权评分:
其中ri为其他项目j的平均加权评分, 是其他项目j收到的平均兴趣度评分,|Uj|为用户集合Uj的用户个数;Rk,j为用户k对其他项目j的兴趣度评分;
确定与目标项目i的相似度最高的K个项目作为目标项目i的近邻项目集合。
本实施例计算项目相似度时,考虑的是两个项目的评分用户的并集,使用组合加权评分方法去填补评分空缺项,再使用修正的余弦相似度公式计算两个项目的相似度,再考虑项目共同评分用户数,引入共同评分阈值调整项目的相似度。而现有的协同过滤技术计算项目相似度时考虑的是项目的评分用户的交集,使用的相似度计算方法一般为余弦相似性、Pearson相关系数和修正的余弦相似性,而且没有考虑项目的共同评分用户数。
在其中一个实施例中,步骤S103,具体包括:
目标用户v对目标项目i的预测评分Pv,i为:
其中S(i)是目标项目i的近邻项目集合,其中Rv,l为目标用户v对近邻项目集合中其中一个近邻项目l的兴趣度评分,是近邻项目l收到的平均兴趣度评分。
本实施例把目标用户对近邻项目的评分与近邻项目获得的平均评分的偏差为加权相加项,并以目标项目的平均评分为基准。而现有的协同过滤技术把用户对近邻项目的评分作为加权相加项
在其中一个实施例中,所述目标用户为对所述目标项目为具有兴趣度评分的用户。
对于每天新上线的项目,网站都需要挑选一部分可能对上线项目可能感兴趣的用户,对他们发送项目的上线信息,提醒他们准时访问网站对感兴趣的商品进行抢购。现有的用户挑选策略都是挑选对目标项目有过行为的用户,即对该项目的商品有过购买、放入购物车、订阅等行为的用户。但这种策略推荐的都是本来对目标项目就感兴趣的用户,忽略了其他没有对该项目产生过行为但具有有潜在兴趣的用户。
为了发掘目标项目更多潜在用户,开拓用户的项目兴趣,和为了避免与常规策略抽取的用户重复,本实施例的目标用户为对所述目标项目为具有兴趣度评分的用户。其中,通知方法,可以采用短信通知的方式。
如图2所示为本发明一种网站项目的通知系统的模块结构图,包括:
兴趣度评分模块210,用于获取多个用户对多个项目的兴趣度评分;
近邻项目集合模块220,用于确定与目标项目的近邻项目集合,所述近邻项目集合为与目标项目相似度最高的K个其他项目,所述目标项目与所述其他项目的相似度由用户并集中的用户对目标项目及所述其他项目的兴趣度评分计算,所述并集为目标项目与其中一个其他项目具有兴趣度评分的用户的并集,目标项目或所述其他项目中未具有所述并集中的用户的兴趣度评分采用组合加权评分方法填补;
预测评分模块230,用于根据目标用户对近邻项目的兴趣度评分,确定目标用户对目标项目的预测评分;
目标项目通知模块240,用于如果目标用户对目标项目的预测评分超出预设评分阈值,则向目标用户发送目标项目通知。
在其中一个实施例中,所述兴趣度评分模块210,具体包括:
兴趣度行为获取子模块211,用于获取用户对每个项目的购买次数buy、喜欢过次数like和订阅次数subs;
兴趣度评分计算子模块212,用于计算兴趣度评分R:
R=log(nbuy*buy+nlike*like+nsubs*subs)+nR,其中nbuy为预设的购买次数权重,nlike为预设的喜欢过次数权重,nsubs为预设的订阅次数权重,nR为兴趣度权重。
在其中一个实施例中,所述近邻项目集合模块220,具体包括:
相似度计算子模块221,用于计算目标项目i与所有其他项目的相似度,其中,目标项目i与任一其他项目j的相似度计算如下:
确定目标项目i与其他项目j有过兴趣度评分记录的用户集合分别为Ui和Uj;
计算目标项目i与其他项目j的相似度为:
其中|Ui∩Uj|为目标项目i和其他项目j的共同兴趣度评分用户数,η为预设的用户数阈值,是用户u的平均兴趣度评分,Ru,i为用户u对目标项目i的修正评分,Ru,i为用户u对其他项目j的修正评分;
其中Ru,i采用如下方式计算:
如果具有用户u对目标项目i的兴趣度评分Ru,i,则Ru,i=Ru,i;
如果不具有用户u对目标项目i的兴趣度评分,则Ru,i=ru,i,其中ru,i为用户u对目标项目i的组合加权评分:
其中ru为用户u的平均加权评分, Iu是具有用户u的兴趣度评分的项目集合,|Iu|为项目集合Iu的项目个数,Ru,k为用户u对项目集合Iu的项目k的兴趣度评分,是目标项目i收到的平均兴趣度评分,其中ri为目标项目i的平均加权评分,|Ui|为用户集合Ui的用户个数;Rk,i为用户k对目标项目i的兴趣度评分;
其中Ru,j采用如下方式计算:
如果具有用户u对其他项目j的兴趣度评分Ru,j,则Ru,j=Ru,j;
如果不具有用户u对目标项目j的兴趣度评分,则Ru,j=ru,j,其中ru,j为用户u对其他项目j的组合加权评分:
其中ri为其他项目j的平均加权评分, 是其他项目j收到的平均兴趣度评分,|Uj|为用户集合Uj的用户个数;Rk,j为用户k对其他项目j的兴趣度评分;
近邻项目确定子模块222,用于确定与目标项目i的相似度最高的K个项目作为目标项目i的近邻项目集合。
在其中一个实施例中,所述预测评分模块230,具体用于:
目标用户v对目标项目i的预测评分Pv,i为:
其中S(i)是目标项目i的近邻项目集合,其中Rv,l为目标用户v对近邻项目集合中其中一个近邻项目l的兴趣度评分,是近邻项目l收到的平均兴趣度评分。
在其中一个实施例中,所述目标用户为对所述目标项目为具有兴趣度评分的用户。
作为一个例子,为一个网站品牌的通知方法。
该例子中,网站从成立到现在的用户行为数据都保存在数据库里,包括用户的购买记录、订阅记录以及品牌“喜欢”按钮的点击记录。而评价用户对某个品牌的偏好程度就是根据用户对该品牌的购买次数(buy)、喜欢过次数(like)以及订阅次数(subs)这三个指标来衡量。根据经验,评估这三个指标对用户兴趣度不同的代表程度,给它们赋予不同的权重,给出下述的兴趣度评分公式:
R=log(0.3*buy+0.3*like+0.4*subs)+6 (1)
R就是用户对品牌的兴趣度评分,如果用户对品牌没有发生过上述的三种行为,则该用户对该品牌兴趣度评分为0。依据该公式和相关的用户网站行为记录就可以得到用户对品牌的评分数据,可表示成一个n×m阶的矩阵,m行代表m个用户,n列代表n个品牌,第u行第i列的元素Ru,i代表用户u对品牌i的评分:
|
Brand1 |
… |
Brandj |
… |
Brandn |
User1 |
R1,1 |
… |
R1,i |
… |
R1,m |
… |
… |
… |
… |
… |
… |
Useru |
Ru,1 |
… |
Ru,i |
… |
Ru,n |
… |
… |
… |
… |
… |
… |
Usern |
Rn,1 |
… |
Rn,i |
… |
Rm,n |
计算品牌相似度。
对于两个品牌i与j,记对它们有过评分记录的用户集合分别为Ui和Uj。计算品牌i与j的相似性时,传统的三种相似性度量只考虑两者的共同评分用户集合(即Ui与Uj的交集Ui∩Uj),因为这种方法受数据的稀疏性影响比较大,所以本算法考虑的是两个评分用户集合的并集Ui∪Uj。但并集中存在用户对品牌i或j没有评分数据,称为空缺项,如何填补这些空缺项成为计算相似度的关键。本发明采用的填补方式是组合加权评分法。
组合加权评分由用户平均加权评分和品牌加权评分两部分组成。对用户u∈Ui∪Uj-Ui,即品牌i未经用户u评分。用户u的平均加权评分ru如下式:
其中是用户u的平均评分,是品牌i收到的平均评分,Iu是经用户u评分的品牌集合,则用户的平均加权评分ru是该用户平均评分与用户各项评分相对于未评分品牌i平均评分的平均偏差之和。品牌i的平均加权评分ri如下式:
即品牌的平均加权评分ri是品牌i的平均评分与各用户对该品牌的评分与用户u的平均评分的平均偏差之和。结合ru与ri,可求用户u对品牌i的组合加权评分ru,i:
对Ui∪Uj中未对品牌i或j未有评分记录的用户,根据上式来估计他们的缺失评分,这样品牌i和j对Ui∪Uj中的每个用户都对应一个评分值,然后可以根据这些评分值去计算品牌i和j的相似度,本发明使用的是修正的余弦相似度,计算公式如下:
其中当Ru,i存在时,Ru,i=Ru,i,否则,Ru,i=ru,i。
而由于上述的相似度计算公式并没有考虑两个品牌的共同评分用户数,这是一个衡量相似度的重要因素,所以引入共同评分阈值η来调整品牌的相似性,修改后的相似度公式如下:
其中|Ui∩Uj|就是品牌i和j的共同评分用户数,min(η,|Ui∩Uj|)就是取共同用户数与阈值η的最小值。
评分预测。
为了使预测更加准确,本发明使用一种优化的预测评分策略:先确定近邻集的大小K,以目标品牌获得的平均评分作为基准评分,然后寻找目标品牌的近邻品牌集合(即与目标品牌相似度最高的K个品牌组成的集合),再以品牌相似性作为权重结合目标用户对近邻品牌的评分与近邻品牌获得的平均评分的偏差,最后通过基准评分和加权组合的偏差评分来预测目标用户对目标品牌的评分,如下所示:
其中Pu,i是用户u对品牌i的预测评分,S(i)是品牌i的近邻品牌集合。
依据评分生成短信营销目标用户。
对于每天新上线的品牌,网站都需要挑选一部分可能对上线品牌可能感兴趣的用户,对他们发送品牌的上线信息,提醒他们准时访问网站对感兴趣的商品进行抢购。以往的用户挑选策略都是挑选对目标品牌有过行为的用户,即对该品牌的商品有过购买、放入购物车、订阅等行为的用户。但这种策略推荐的都是本来对目标品牌就感兴趣的用户,忽略了其他没有对该品牌产生过行为但具有有潜在兴趣的用户。
为了发掘目标品牌更多潜在用户,开拓用户的品牌兴趣,和为了避免与常规策略抽取的用户重复,本发明首先筛选掉对目标品牌有评分记录的用户,然后根据式子(7)预测其他用户对目标品牌的评分,最后挑选预测评分最高的若干个用户作为网站的短信营销对象。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。