一种基于排序学习的移动应用推荐方法及其推荐系统与流程

文档序号:11950824阅读:1089来源:国知局
本发明属于电子商务
技术领域
,具体涉及一种基于排序学习的移动应用推荐方法及其推荐系统。
背景技术
:在移动应用程序(Application,APP)极大的方便人们日常生活的今天,数量庞大的APP也带给了用户选择的困惑。用户需要有一种高效的途径来帮助他们从数以百万计的APP中选择感兴趣的少部分。受到推荐系统在传统互联网领域广泛应用的启发,业界将目光投向了APP的推荐。目前大部分APP商店采用了分类目录和热门排行榜的方案帮助用户发现所需的APP,但这并不能很好的满足不同用户的个性化需求,因为呈现在所有用户面前的都是一样的内容,而忽略了用户的性别、年龄和文化等差异。即使对于同一个用户而言,他的兴趣往往会随着时间变化。而基于关键字的搜索则建立在用户对自身需求的明确描述之上,因此在用户不能明确描述自身需求的情况下,呈现的推荐结果往往显得盲目。业界真正投入使用的个性化APP推荐系统很少。技术实现要素:本发明目的在于提供一种基于排序学习的移动应用推荐方法及其推荐系统,以解决目前缺乏针对APP的排序推荐算法框架的问题。一种基于排序学习的移动应用推荐方法,包括如下步骤:(1)收集用户关于APP的行为数据,所述的行为数据包含用户下载以及浏览APP的历史记录;(2)对所述的行为数据进行预处理并从中提取出用户对于各APP的特征向量;然后选用一种评分预测模型,进而根据特征向量计算出用户对于各APP的评分;(3)根据上述评分采用梯度下降法对所述评分预测模型中的各模型参数进行更新;(4)根据更新后确立的评分预测模型,计算出用户对于每个未下载过的APP的评分,并按该评分对APP进行排序,提取评分最高的若干个APP推荐给用户。所述的步骤(2)中对行为数据进行预处理,具体实现包括对缺失值通过统计模拟进行填充以及对异常值进行筛选去除。所述的步骤(2)中选用的评分预测模型可以采用逻辑回归算法(LR)或梯度提升回归树算法(GBRT)。所述的步骤(3)中基于交叉信息熵的损失函数C采用梯度下降法对评分预测模型中的各模型参数进行更新。所述损失函数C的表达式如下:C=-Pij‾lgPij-(1-Pij‾)lg(1-Pij)=12(1-Sij)(si-sj)+lg(1+e-(si-sj))]]>其中:Pij为用户对第i个APP的偏好高于对第j个APP的预测概率,为Pij对应的真实概率,si和sj分别为用户对于第i个APP和第j个APP的评分,Sij=0或±1,若si=sj,则Sij=0;若si>sj,则Sij=1;若si<sj,则Sij=-1;i和j均为自然数且1≤i≤n,1≤j≤n,i≠j,n为APP的数量。所述预测概率Pij的表达式如下:Pij=11+e-(si-sj)]]>所述的评分Si=f(xi),sj=f(xj),xi和xj分别为第i个APP和第j个APP的特征向量,f()表示更新前的评分预测模型。所述的步骤(3)中对于评分预测模型中的任一模型参数,其更新算法如下:wk*=wk-η∂C∂wk=wk-η(∂C∂si∂si∂wk+∂C∂sj∂sj∂wk)]]>其中:wk和分别为更新前后评分预测模型中的第k个模型参数,η为更新系数,k为自然数且1≤k≤K,K为评分预测模型中模型参数的数量。一种基于排序学习的移动应用推荐系统,包括:用户行为数据收集模块,用于收集用户关于APP的行为数据;训练数据生成模块,用于对所述的行为数据进行预处理并从中提取出用户对于各APP的特征向量;进而利用选定的评分预测模型根据特征向量计算出用户对于各APP的评分;参数计算模块,用于根据上述评分采用梯度下降法对所述评分预测模型中的各模型参数进行更新;推荐模块,用于根据更新后确立的评分预测模型,计算出用户对于每个未下载过的APP的评分,并按该评分对APP进行排序,提取评分最高的若干个APP推荐给用户。本发明的优点如下:(1)本发明把APP推荐建模成一个排序问题,相比传统地把推荐看作评分问题,具有更高的推荐准确率。(2)本发明采用的排序推荐算法,结合了按列排序算法计算的高效性和按对排序算法预测的高精度,并且将算法思想框架化,可以结合不同的推荐算法,具有高拓展性。附图说明图1为本发明推荐方法的流程示意图。图2为本发明推荐系统的结构示意图。具体实施方式为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。本发明基于排序学习的移动应用推荐方法,首先对算法框架中的变量和公式进行定义:公式1.当前用户u对APPi的预测评分:si=f(x)其中:x为i的相关数据向量,具体的计算方式f可以是任何可以进行评分预测的算法,比如逻辑回归(LR),梯度提升回归树(GBRT)等。公式2.用户u对APPi的偏好高于j的概率:Pij=11+e-(si-sj)]]>其中:e为自然对数的底数。公式3.基于交叉信息熵的损失函数:C=-Pij‾lgPij-(1-Pij‾)lg(1-Pij)=12(1-Sij)(si-sj)+lg(1+e-(si-sj))]]>其中:表示预测概率Pij对应的真实概率。Sij∈{0,±1},Sij=0表示APPi和APPj的评分一致,Sij=1表示i的评分高于j,反之则低于j。公式4.模型参数更新:wk=wk-η∂C∂wk=wk-η(∂C∂si∂si∂wk+∂C∂sj∂sj∂wk)]]>∂C∂si∂si∂wk+∂C∂sj∂sj∂wk=(12(1-Sij)-11+e(si-sj))(∂si∂wk-∂sj∂wk)=λij(∂si∂wk-∂sj∂wk)]]>其中:wk表示计算预测评分s的模型f中包含的任意一个参数。因此,在确定了f之后即可确定进而计算出并采用梯度下降的方式求解任意一个参数wk,k=1~K(K表示模型参数数目)。公式5.传统信息检索领域的NDCG指标:DCG=Σi=1T2li-1log1+i]]>NDCG=DCGmaxDCG]]>其中:li∈{0,1,2,3,4,5}在传统信息检索领域中,表示当前用户u对推荐列表中第i个物品的感兴趣程度。T表示推荐的商品个数。maxDCG表示为用户u推荐T个商品的最大DCG,即推荐的T个商品根据用户兴趣程度由高到低排序。公式6.引入评分信息的参数更新方式:λij=-11+e(si-sj)|ΔNDCG|]]>本发明以用户对APP的评分来代替传统NDCG计算中的li,ΔNDCG表示对当前u而言,APPi和j的排序位置互换之后,NDCG的改变量;具体计算过程如图1所示:(1)确定模型f。比如f表示逻辑回归模型。(2)确定参数更新公式。用公式6中的λij代替公式4中的λij,同时结合具体的f,确定公式4当前的具体形式。(3)计算参数。根据上一步中的公式4,输入训练数据用梯度下降进行参数计算。如图2所示,实现上述算法框架的推荐系统包括:用户行为数据收集模块,实时收集用户的各种行为数据,将其存入后台数据库中。作为各种算法输入数据的源数据。训练数据生成模块,为框架所用的各种算法产生具体所需的输入数据。f可以是不同的评分计算算法,不同算法其所需的输入数据不同。比如逻辑回归等分类算法的输入数据是:用户ID、应用ID、评分值、特征1、……特征n;而矩阵分解类算法其所需输入数据是:用户ID、应用ID、评分值。因此需要训练数据生成模块进行数据预处理,为不同算法生成相应的输入数据。参数计算模块,以训练数据生成模块的输出数据作为输入,其具体内部流程如图1所示。根据确定的评分预测算法f和相应的参数更新公式以及需要的训练数据进行参数计算,得到最终的f。推荐模块,根据最终的评分预测算法f,预测用户u对每一个没有下载过的APP的评分,推荐评分最高的前T个APP。上述对实施例的描述是为便于本
技术领域
的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1