CN105488216A - 基于隐式反馈协同过滤算法的推荐系统及方法 - Google Patents

基于隐式反馈协同过滤算法的推荐系统及方法 Download PDF

Info

Publication number
CN105488216A
CN105488216A CN201510955153.6A CN201510955153A CN105488216A CN 105488216 A CN105488216 A CN 105488216A CN 201510955153 A CN201510955153 A CN 201510955153A CN 105488216 A CN105488216 A CN 105488216A
Authority
CN
China
Prior art keywords
user
model
cluster
redirect
commerce website
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510955153.6A
Other languages
English (en)
Other versions
CN105488216B (zh
Inventor
朱旻
胡雄华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI ZHONGYAN INFORMATION TECHNOLOGY Co.,Ltd.
Original Assignee
Shanghai Zhongyan Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongyan Information Technology Co Ltd filed Critical Shanghai Zhongyan Information Technology Co Ltd
Priority to CN201510955153.6A priority Critical patent/CN105488216B/zh
Publication of CN105488216A publication Critical patent/CN105488216A/zh
Application granted granted Critical
Publication of CN105488216B publication Critical patent/CN105488216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Abstract

本发明提供一种基于隐式反馈协同过滤算法的推荐系统及方法,所述推荐方法包括:步骤1),根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;步骤2),根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;步骤3),根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品偏好,形成推荐结果;步骤4),将所述推荐结果索引入所述电子商务网站的搜索引擎中。本发明的技术方案利用用户的跳转行为训练模型,并利用用户分组实现集群的并行运算,大大提升了推荐效果和计算效率。

Description

基于隐式反馈协同过滤算法的推荐系统及方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于隐式反馈协同过滤算法的推荐系统及方法。
背景技术
电子商务领域中,随着商品越来越丰富,品类越来越多,人们从海量的商品里找到自己感兴趣商品的时间成本越来越高。为解决这个问题,有效指导用户在电子商务网站中购物,电子商务推荐系统应运而生。电子商务推荐系统可以根据已有的用户信息,向目标用户推荐其可能感兴趣的产品信息。然而,随着移动互联网的到来,以大不同于PC时代的产品形态面向用户,商品的展现形式及用户购物的习惯已呈一个全新的局面,营销如何更精准、市场投放如何有更高的回报、长尾商品如何有更多的机会去展现从而提升转化,这些问题都是商家和电子商务平台目前面临的重大难题,也正是推荐系统亟待解决的问题。发明人发现目前的推荐系统存在以下缺陷:
目前,推荐系统常用算法主要包括三类:基于内容的推荐算法、协同过滤推荐算法、基于关联规则的推荐算法。其中被广泛使用的是协同过滤算法,常用的协同过滤主要分为基于用户的协同过滤和基于商品的协同过滤。基于用户的协同过滤推荐根据相似用户群的观点来产生对目标用户的推荐,使用统计方法挑选出与目标用户最相似的若干用户,称为“邻居”,然后根据这些邻居对与目标商品相似的商品的评分来推测用户对目标商品的感兴趣程度;基于产品的协同过滤推荐是根据用户对与目标商品相似的商品的评分来预测该用户对目标商品的感兴趣程度。显然,无论是哪种协同过滤,数据都是基于用户对于商品的评分,评分通常是用户对商品的浏览次数、点击次数、购买次数等转换而来的显示数据,在这其中,基于用户的协同过滤和基于商品的协同过滤都没有考虑用户的噪声行为,例如用户购买某件商品可能是送给自己的朋友,或者点击某个商品可能只是无意点中偶然产生的行为,使得直接使用这种评分类数据会给用户的这些噪声行为更高的权重,而不能反映用户真实的兴趣,导致推荐效果不佳。
另外,在集群受限及算法实现框架的限制下,大部分的推荐系统会采用单机运算,不仅效率不高,而且没办法利用更丰富的数据去建模,推荐效果也会大打折扣。
发明内容
本发明的目的在于提供一种基于Spark隐式反馈协同过滤算法的产品推荐系统及方法,在计算资源有限的环境下,大大提升推荐数据计算效率和推荐效果。
为解决上述问题,本发明提出一种基于隐式反馈协同过滤算法的推荐方法,包括:
步骤1),根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
步骤2),根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
步骤3),根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品偏好,形成推荐结果;
步骤4),将所述推荐结果索引入所述电子商务网站的搜索引擎中。
进一步的,所述电子商务网站为能够链接产品直属的电子商务网站的第三方电子商务网站。
进一步的,所述步骤1)包括:
步骤1.1)先通过所述电子商务网站的生产服务器的日志采集系统采集本地日志,再从所述本地日志中获取用户跳转行为数据后,存入所述生产服务器的消息系统,再由所述消息系统输出存放于所述集群中;
步骤1.2)建立用户与跳转行为的数据模型表,按照一预定义规则对所述数据模型表进行分区;
步骤1.3)通过分区的数据模型表,并行抽取用户一段时间内的跳转记录,汇总生成训练数据集。
进一步的,所述日志采集系统为flume系统,所述消息系统为Kafka系统,所述集群为Spark集群,所述数据模型表为hive模型表。
进一步的,所述步骤2)包括:
步骤2.1),设置好用户对产品的评分维度,建立评分矩阵,形成隐式反馈协同过滤算法基本模型;
步骤2.2),根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;
步骤2.3),根据每次训练结果反复调整各所述参数值,使得产品跳转率达到所述目标跳转率,以获得所述预测模型。
进一步的,所述步骤3)包括:
步骤3.1),将所述电子商务网站的用户拆分成多组,并将每组用户按一次计算M个用户的方式进行用户集合与被推荐产品集合的笛卡尔积运算,生成预测数据集;
步骤3.2),所述集群基于所述预测模型对所述预测数据集进行并行运算,每次并行运算N个预测任务,能获得M*N个用户的推荐结果。
进一步的,所述步骤4)包括:
步骤4.1),所述集群的每个分区各自计算,且每个分区分别建立与所述搜索引擎的链接,并通过所述搜索引擎的用户接口,实时将运算所得的推荐结果索引入所述搜索引擎中;
步骤4.2)所述搜索引擎预设有用于提交推荐结果的索引文档数量及提交时间,以自动提交每个推荐结果的索引。
进一步的,所述搜索引擎为Solr搜索引擎。
本发明还提供一种基于隐式反馈协同过滤算法的推荐系统,包括:
数据采集模块,用于根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
模型训练模块,用于根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
并行预测模块,用于根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测每组用户的产品偏好,形成推荐结果;
推荐显示模块,用于将所述推荐结果索引入所述电子商务网站的搜索引擎中。
进一步的,所述数据采集模块通过所述电子商务网站的生产服务器的日志采集系统采集本地日志,以获取用户跳转行为数据,并用于建立用户与跳转行为的数据模型表,所述数据采集模块按照一预定义规则对所述数据模型表进行分区,并通过分区的数据模型表来并行抽取用户一段时间内的跳转记录,汇总生成训练数据集,并通过所述生产服务器的消息系统将所述训练数据集存入所述集群中;
所述模型训练模块包括:基本模型设置单元,用于设置好用户对产品的评分维度,建立评分矩阵,形成基本模型;模型训练单元,用于根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;预测模型生成单元,用于根据每次训练结果反复调整所述参数值,使得产品跳转率达到所述目标跳转率,得到所述预测模型;
所述并行预测模块包括:分组单元,用于将所述电子商务网站的用户拆分成多组,并根据所述集群的并行运算能力进行用户集合和被推荐产品集合的笛卡尔积运算,生成所述的预测数据集;预测单元,用于基于所述预测模型,并根据所述集群的并行运算能力对多个预测数据集进行并行运算,以获得推荐结果。
与现有技术相比,本发明提供的基于隐式反馈协同过滤算法的推荐系统及方法,将用户的跳转行为作为产品评分的一种参考,合理调整训练模型参数,大大提升了推荐效果;同时利用用户分组实现集群的并行运算,在计算资源有限的环境下,大大提升了计算效率。经发明人检验,8000万用户的离线推荐运算以小型集群的计算能力可以在24小时内计算完成,且实现了产品跳转率达到60%以上的实际推荐效果。
附图说明
图1是本发明具体实施例的基于隐式反馈协同过滤算法的推荐方法流程图;
图2是图1所示的推荐方法中的并行化运算流程图;
图3是图1所示的推荐方法的获得预测模型过程中,当迭代次数固定时,商品跳转率随rank取值的变化曲线图;
图4是图1所示的推荐方法的获得预测模型过程中,当rank值固定时,商品跳转率随迭代次数取值的变化曲线图;
图5是本发明具体实施例的基于隐式反馈协同过滤算法的推荐系统的结构示意图。
具体实施方式
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的具体实施方式作进一步的说明,然而,本发明可以用不同的形式实现,不应只是局限在所述的实施例。
请参考图1,本发明提出一种基于隐式反馈协同过滤算法的推荐方法,包括以下步骤:
S1,根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
S2,根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
S3,根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品偏好,形成推荐结果;
S4,将所述推荐结果索引入所述电子商务网站的搜索引擎中。
下面以该图1所示的推荐方法直接被应用于返利网站这种第三方电子商务网站来说明本发明的发明目的、技术方案和技术效果。其中,返利是厂家或供货商为了刺激销售,提高经销商(或代理商)的销售积极性而采取的一种正常商业操作模式。随着电子商务的发展,网上购物正成为一种流行的消费福利方式,大多数的网上商城(即商品直属的电子商务网站)为了促进产品销量,将一部分利润分给推广者,而推广者又将利润返还给消费者,从而滋生了一个新生的行业---返还利润平台,也就是返利网站。返利网站属于CPS(商品推广解决方案)中的一种,主要是按销量分成的方式付费。该返利网站有自己的服务器平台以及搜索引擎,自身并不出售商品,其一种应用场景是,用户可以在该返利网站的搜索引擎的用户接口,输入自己想要关注的商品的名称或关键字/词等信息,该返利网站的搜索引擎会根据这些信息向用户提供相应的搜索推荐结果(即商品的推荐列表);另一种应用场景是,只要用户登录该返利网站,就可以通过该返利网站首页上的用户接口,例如“猜你喜欢”的入口,就可以立刻看到该返利网站给该用户的商品推荐列表。不管哪种应用场景,只要用户点阅推荐列表中相应的商品时,返利网站会直接为跳转到该商品直属的网上商城,从而实现该商品的购买,在该商品的购买交易成功完成后,返利网站会向用户返还一定的利润。显然,返利网站本身的推荐系统如果推荐效果较好的话,让用户能及时看到最新的推荐商品,极大的增加商品跳转率。因此,本发明的技术方案采用用户跳转记录作为显示数据,从而计算出用户对产品的隐式置信度,以此建模,得到了更好的推荐效果。因此本实施例返利网站的具体推荐方法如下:
步骤S1:根据一返利网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集,具体过程包括:
步骤1.1)所述返利网站的每台生产服务器,通过flume(即一种分布式日志采集系统)采集本地日志(即其中包括各个用户访问返利网站的信息以及各个用户通过该返利网站跳转到相关的网上商城的行为记录信息),并将该日志存入Kafka(一种高吞吐量的分布式发布订阅消息系统)的消息队列中,再由Kafka的消费端输出并存放于Spark集群中;
步骤1.2)在Spark集群上,建立用户跳转行为记录的hive模型表(即用户与其感兴趣的商品的关联数据模型表),按天及小时(即一预定义规则)对用户跳转行为数据进行分区,可进一步地过滤hive模型表中的噪声数据;
步骤1.3)通过hive模型表,按天并行抽取用户一段时间内的跳转记录,最后汇总,生成训练数据集。例如采用最近30天内的用户跳转行为记录,每天一个hive模型表查询,并行抽取用户跳转记录,通常半小时内就可以全部抽取完毕;汇总抽取出的所有用户数据记为data文件,从中抽取出用户列表,生成user文件,从商品数据库中抽取当天商品生成item文件;将data文件、user文件,item文件上传至Spark集群指定目录中。
其中,Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,kafka的目的是通过Spark框架的分布式文件系统的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费,Spark是新一代大数据分布式处理框架,这一框架可运行在HadoopYarn(一种分布式计算存储平台)之上,以解决大数据的问题,SparkML(分布式机器学习系统)提供了分布式的隐式反馈协同过滤算法,使得集群运算成为可能。
S2,根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型,具体包括:
步骤2.1)采用Spark所实现的隐式反馈协同过滤算法,并利用训练数据集,建立用户商品的评分矩阵,作为基本模型,用户商品的评分矩阵可以如下:
I1 I2 I3 I4 I5 I6 I7
U1 3 5
U2 4 6 8
U3 5 9 3
U4 6 8 3
U5 8 5 7
U6 4 8 6
该矩阵中每一行U代表一个用户,每一列I代表一个商品。矩阵中已有的每个值代表相对应的用户对商品的评分,是训练数据集中已知的训练数据,而矩阵中的空白项就是我们要求解的预测得分。区别于显示计算,隐式计算将用户对商品的跳转次数转化为置信度,置信度计算公式为:CUI=1+αlog(1+rUI/ε),其中CUI表示用户U对商品I的置信度,rUI表示用户U对商品I的跳转次数,取对数使得跳转次数少的与跳转次数多的计算所得CUI相差不会太大,常数ε修正rUI,当rUI较小时取对数所得值不会趋近于0,方便计算。
然而,现实中商品种类繁多,用户并不会关注商品的所有特征,用户对商品的喜好描述基本上是在一个低维的空间,因此上述评分矩阵一般是低秩的。我们假定k个特征可以描述用户关注的特征以及商品本身的特征,那么用户U对商品I的评分可以计算为:XU TYI,XU、YI均是k维的。那么评分矩阵可以用维度较小的两个矩阵U(m*k)V(n*k)的乘积来近似:UVT
步骤2.2)根据集群计算能力,设置隐式反馈协同过滤算法需要的用户、商品维度(rank)、置信度计算公式中的α、训练迭代次数以及所采用的损失函数的参数λ等以及目标跳转率,并采用已知训练数据来训练基本模型以获得预测模型,具体地:
在利用基本模型进行模型训练来获得预测模型的过程中所采用的损失函数为:
min X U , X I Σ U , I C U I ( P U I - X U T Y I ) 2 + λ ( Σ U | | X U | | 2 + Σ I | | Y I | | 2 ) , P U I = 1 r U I > 0 0 r U I = 0
其中,XU为用户U特征向量,XT U为XU转置,YI为商品I的特征向量,XT UYI为用户U对商品I的预测得分,即通过训练模型计算出来的用户U对商品I的预测得分。损失函数最小,即为所求得的最优训练模型。求解最优模型的过程就转变为求解最优化问题了。由于我们只知道训练数据集的真实得分,所以求解最优化问题近似为由已知训练数据集所求得的损失函数值最小的问题,求解此最优化问题,SparkML采用了ALS(交替最小二乘),即固定一个变量,求解另外一个变量。比如,固定U,去求解V。初始化U0去求解V0,固定V0去求解U1,如此不断的迭代下去,直到收敛到某一值,即以步骤S1中获得的data,user,item文件作为输入,固定一个变量U(或V),求解另外一个变量V(或U)。
步骤2.3),根据每次训练结果反复调整各所述参数值,使得商品跳转率达到所述目标跳转率,以获得所述预测模型,其中,商品跳转率=(点击商品跳转到商品直属网上商城的用户数)/(进入商品所在推荐列表页的用户总数)。具体地,Spark隐式反馈协同过滤算法参数经过实际效果验证调整为:α取值为40,λ取值0.01,模型迭代次数为50次,特征数量(rank值)取为150。实际训练30天内数据,3小时内可以训练完成。目前推荐设置与具体应用场景有关,参数调整效果对比如图3与图4。
S3,根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品偏好,形成推荐结果。由于spark集群受限,每个spark应用的计算能力有限,为了提升运算效率,需要多个spark应用并行计算,因此,步骤S3具体包括:
步骤3.1)将用户拆分成K组,每组分别运算,以生成预测数据集。生成预测数据集需要将用户集合与商品集合进行笛卡尔积的运算,产生的中间结果会占用大量的内存,因此每组用户不能一次全部进行运算,所以将每组用户按一次计算M个用户的方式进行运算,计算完成后释放此次运算占用的内存,即将每组用户按一次计算M个用户的方式进行用户集合与被推荐产品集合的笛卡尔积运算,生成预测数据集。具体举例说明如下:将用户按100万一批进行分组,假如返利网站的总用户为8000万,则用户被分成80组,每组用户数100万,总任务数为80;而假如该返利网站的Spark集群计算能力的并行度是20,每次只可以同时并行运算20个Spark应用,一个任务完成后马上启动一个新的任务开始运算,直到所有80个任务运算完成;一个Spark应用即对应一个任务,该任务(即该分组)中的用户是顺序计算的,每次能对该任务(即该分组)中的5000个用户进行一次性计算,即每组100万个用户,一个Spark应用一次可以计算5000个用户,则需计算200次才能彻底执行完成,也就是说一个任务需要计算200次才能彻底完成。例如,该返利网站有20000件被推荐商品,一个Spark应用一次可以计算5000用户与20000件商品的笛卡尔积,顺序计算完100万用户与20000件商品的笛卡尔积,共运算200次,这个任务才算完成。
步骤3.2)Spark集群一次可以并行运行N个Spark应用,同时每个Spark应用可以计算M个用户对各个商品的预测得分,则每次并行运算可以计算M*N个推荐结果。因此Spark集群并行运算进行预测得分的具体过程,如图2所示,包括:根据总用户数Q和分组时的每组用户数S,计算总任务数Q/S,例如,返利网站的总用户为8000万,则用户被分成80组,每个分组有100万用户,则总任务数为80;获取当前正在执行的任务数i;计算当前可启动的Spark应用数n,启动n个新任务(即n个Spark应用),Spark集群每次只能并行启动N个Spark应用进行预测得分计算,N=i+n。而每个Spark应用可以一次计算M个用户与所有商品的笛卡尔积运算,则每次计算可以并行运算出M*N个推荐结果,例如当N=20、M=5000时,Spark集群每次可以并行计算出10万个推荐结果,且每当有一个Spark应用执行完成后,并行化调度程序才会启动下一个Spark应用,例如当每个任务的分组中有100万用户时,执行一个任务即启动一个Spark应用,按照每个Spark应用一次计算5000个用户的计算能力,每个Spark应用需计算200次才能执行完成。每当有一个Spark应用运行结束后,并行化调度程序会启动一个新的Spark应用进行运算,即分配和启动下一个新的任务,直到所有任务完成。假如所有的Spark应用的计算速度是相同的,则该Spark集群每次并行分配20个任务,即每次并行运行20个Spark应用,20个Spark应用同时分别计算200次,最终可以计算出20*100万个推荐结果,而8000万用户共分成的80个任务,仅需要该Spark集群并行分配任务4次,就可以全部完成。经检验,以该Spark集群的计算能力,8000万用户的推荐结果可以在24小时内运算完成。
S4,将所述推荐结果索引入所述电子商务网站的搜索引擎中。其中,每个用户的推荐列表,存放于该返利网站的搜索引擎中,便于用户实时查询。此外,离线运算与生产实时查询解耦,保证生产环境的稳定性。搜索引擎可以是Solr搜索引擎,Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过HttpGet操作提出查找请求,并得到XML格式的返回结果。以Solr为例,步骤S4具体包括:
步骤4.1)Spark集群的每个Partition(分区)各自计算,每个Partition(分区)分别建立与Solr的链接,通过SolrClient(客户端)接口,每个partition各自将计算用户及其推荐商品列表索引进搜索引擎,每个Sparkpartition(分区)只管通过接口添加索引文档,实时索引入Solr搜索引擎,其中,每个用户的推荐商品列表是由模型对预测数据集做出预测得分(即评分)后,按评分高低排序,选取评分靠前的1000个商品列表形成的;
步骤4.2)在每个Sparkpartition(分区)将用户及其推荐商品列表索引入搜索引擎之前,还要先建立Solr推荐列表索引实例,设置索引方式为autocommit(自动提交),设置合理的autocommit索引文档数量及提交时间,从而实现每个Sparkpartition通过接口自动添加索引文档的效果,这种自动提交的方式,可以避免直接提交索引时不必要的提交等待时间,进而保证搜索引擎的索引及查询效率,减少耗时。例如每次最大提交索引文档数为50000,最大提交时间间隔为5分钟。
经验证,应用本发明的基于Spark隐式反馈协同过滤算法实现的商品推荐方法的返利网站,在其计算集群资源有限的环境下,大大提升了推荐商品列表的计算效率,且基于其生产实际环境以及该返利网站的真实用户行为记录,按本发明实施,8000万用户的离线推荐运算可以在24小时内计算完成,且实现了商品跳转率达到60%以上的实际推荐效果。
请参考图5,本发明还提供一种基于隐式反馈协同过滤算法的推荐系统,该系统可以在Spark框架上实现,包括以下功能:
数据采集模块51,用于根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
模型训练模块52,用于根据数据采集模块51中的所述训练数据集产生调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
并行预测模块53,用于根据该电子商务网站的集群的计算能力把数据采集模块51中采集的所有用户分组,并整合用户与所有被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测每组用户的产品偏好,形成推荐结果;
推荐显示模块54,用于将并行预测模块53的所述推荐结果索引入所述电子商务网站的搜索引擎中。
本实施例中,所述数据采集模块51通过所述电子商务网站的生产服务器的日志采集系统采集本地日志以获取用户跳转行为数据,并用于建立用户与商品跳转行为的数据模型表,并按照一预定义规则(例如按天和小时)对用户跳转行为数据进行分区,通过所述数据模型表来并行抽取用户一段时间内(例如30天内)的跳转记录,汇总生成训练数据集,并通过所述生产服务器的消息系统将所述训练数据集存入所述集群中,其中,所述日志采集系统为flume系统,所述消息系统为Kafka系统,所述集群为Spark集群,所述数据模型表为hive模型表。
所述模型训练模块52包括:基本模型设置单元521,用于设置好用户对产品的评分维度,建立评分矩阵,形成基本模型;模型训练单元522,用于根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;预测模型生成单元523,用于根据每次训练结果反复调整所述参数值,使得产品跳转率达到所述目标跳转率,得到所述预测模型;
所述并行预测模块53包括:分组单元531,用于将所述电子商务网站的用户拆分成多组,并根据所述集群的并行运算能力进行用户集合和被推荐产品集合的笛卡尔积运算,生成所述的预测数据集;预测单元532,用于基于所述预测模型,并根据所述集群的并行运算能力对多个预测数据集进行并行运算,以获得推荐结果。
所述推荐显示模块54包括:设置单元541,用于建立所述电子商务网站搜索引擎的推荐列表索引实例,以及设置自动提交索引方式和每次自动提交时合理的索引文档数量及提交时间,例如每次最大提交索引文档数为50000,最大提交时间间隔为5分钟;索引提交单元,用于建立搜索引擎与每个SparkPartition(分区)的链接,使得每个partition(分区)通过接口添加索引文档的方式各自将计算用户及其推荐商品列表自动实时索引进搜索引擎,其中,每个用户的推荐商品列表可以是由模型对预测数据集做出预测得分(即评分)后,按评分高低排序,选取评分靠前的1000个商品列表形成的。
本发明的推荐系统是基于Spark隐式反馈协同过滤算法实现的推荐系统,在计算资源有限的环境下,不但可以通过数据采集模块51和模型训练模块52应用海量的用户行为数据,而且还可以通过并行预测模块53中的并行运算来大大提升计算效率和实现离线运算,并通过推荐显示模块54实时索引,是一种基于大数据的推荐系统。此外,合理调整模型训练模块52训练模型时的相关参数,能够提高预测评分的可靠性,从而可以大大提升按评分高低排列形成的推荐列表页的产品跳转率(或称用户跳转率)。
需要说明的是,虽然本发明上述的具体实施例以Spark这一框架上的推荐系统为例来具体说明了本发明的发明目的、技术方案和技术效果,但本发明的保护范围并不仅限于Spark框架,而是可以扩展到任何能够支持隐式反馈协同过滤算法、且同时具有集群并行运算能力的大数据处理框架,例如Nectar、HaLoop、Twister、Samza以及Storm等,都是类似于Spark的大数据处理框架,这些框架也能够实现本发明的发明目的,达到本发明的技术效果。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于隐式反馈协同过滤算法的推荐方法,其特征在于,包括:
步骤1),根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
步骤2),根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
步骤3),根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品偏好,形成推荐结果;
步骤4),将所述推荐结果索引入所述电子商务网站的搜索引擎中。
2.根据权利要求1所述的推荐方法,其特征在于,所述电子商务网站为能够链接产品直属的电子商务网站的第三方电子商务网站。
3.根据权利要求1或2所述的推荐方法,其特征在于,所述步骤1)包括:
步骤1.1)先通过所述电子商务网站的生产服务器的日志采集系统采集本地日志,再从所述本地日志中获取用户跳转行为数据后,存入所述生产服务器的消息系统,再由所述消息系统输出存放于所述集群中;
步骤1.2)建立用户与跳转行为的数据模型表,按照一预定义规则对所述数据模型表进行分区;
步骤1.3)通过分区的数据模型表,并行抽取用户一段时间内的跳转记录,汇总生成训练数据集。
4.根据权利要求3所述的推荐方法,其特征在于,所述日志采集系统为flume系统,所述消息系统为Kafka系统,所述集群为Spark集群,所述数据模型表为hive模型表。
5.根据权利要求1所述的推荐方法,其特征在于,所述步骤2)包括:
步骤2.1),设置好用户对产品的评分维度,建立评分矩阵,形成隐式反馈协同过滤算法基本模型;
步骤2.2),根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;
步骤2.3),根据每次训练结果反复调整各所述参数值,使得产品跳转率达到所述目标跳转率,以获得所述预测模型。
6.根据权利要求1所述的推荐方法,其特征在于,所述步骤3)包括:
步骤3.1),将所述电子商务网站的用户拆分成多组,并将每组用户按一次计算M个用户的方式进行用户集合与被推荐产品集合的笛卡尔积运算,生成预测数据集;
步骤3.2),所述集群基于所述预测模型对所述预测数据集进行并行运算,每次并行运算N个预测任务,能获得M*N个用户的推荐结果。
7.根据权利要求1或6所述的推荐方法,其特征在于,所述步骤4)包括:
步骤4.1),所述集群的每个分区各自计算,且每个分区分别建立与所述搜索引擎的链接,并通过所述搜索引擎的用户接口,实时将运算所得的推荐结果索引入所述搜索引擎中;
步骤4.2)所述搜索引擎预设有用于提交推荐结果的索引文档数量及提交时间,以自动提交每个推荐结果的索引。
8.根据权利要求7所述的推荐方法,其特征在于,所述搜索引擎为Solr搜索引擎。
9.一种基于隐式反馈协同过滤算法的推荐系统,其特征在于,包括:
数据采集模块,用于根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳转行为记录,形成训练数据集;
模型训练模块,用于根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成预测模型;
并行预测模块,用于根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测每组用户的产品偏好,形成推荐结果;
推荐显示模块,用于将所述推荐结果索引入所述电子商务网站的搜索引擎中。
10.根据权利要求9所述的推荐系统,其特征在于,所述数据采集模块通过所述电子商务网站的生产服务器的日志采集系统采集本地日志,以获取用户跳转行为数据,并用于建立用户与跳转行为的数据模型表,所述数据采集模块按照一预定义规则对所述数据模型表进行分区,并通过分区的数据模型表来并行抽取用户一段时间内的跳转记录,汇总生成训练数据集,并通过所述生产服务器的消息系统将所述训练数据集存入所述集群中;
所述模型训练模块包括:基本模型设置单元,用于设置好用户对产品的评分维度,建立评分矩阵,形成基本模型;模型训练单元,用于根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;预测模型生成单元,用于根据每次训练结果反复调整所述参数值,使得产品跳转率达到所述目标跳转率,得到所述预测模型;
所述并行预测模块包括:分组单元,用于将所述电子商务网站的用户拆分成多组,并根据所述集群的并行运算能力进行用户集合和被推荐产品集合的笛卡尔积运算,生成所述的预测数据集;预测单元,用于基于所述预测模型,并根据所述集群的并行运算能力对多个预测数据集进行并行运算,以获得推荐结果。
CN201510955153.6A 2015-12-17 2015-12-17 基于隐式反馈协同过滤算法的推荐系统及方法 Active CN105488216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510955153.6A CN105488216B (zh) 2015-12-17 2015-12-17 基于隐式反馈协同过滤算法的推荐系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510955153.6A CN105488216B (zh) 2015-12-17 2015-12-17 基于隐式反馈协同过滤算法的推荐系统及方法

Publications (2)

Publication Number Publication Date
CN105488216A true CN105488216A (zh) 2016-04-13
CN105488216B CN105488216B (zh) 2020-08-21

Family

ID=55675191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510955153.6A Active CN105488216B (zh) 2015-12-17 2015-12-17 基于隐式反馈协同过滤算法的推荐系统及方法

Country Status (1)

Country Link
CN (1) CN105488216B (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893628A (zh) * 2016-05-17 2016-08-24 中国农业银行股份有限公司 一种数据实时收集系统及方法
CN106056427A (zh) * 2016-05-25 2016-10-26 中南大学 一种基于Spark的大数据混合模型的移动推荐方法
CN106251174A (zh) * 2016-07-26 2016-12-21 北京小米移动软件有限公司 信息推荐方法及装置
CN106296305A (zh) * 2016-08-23 2017-01-04 上海海事大学 大数据环境下的电商网站实时推荐系统与方法
CN106557951A (zh) * 2016-10-27 2017-04-05 湖北大学 一种物联网电子商务购物数据的处理方法及系统
WO2017193323A1 (zh) * 2016-05-12 2017-11-16 深圳大学 一种基于用户偏好的个性化推荐方法及其系统
CN107515909A (zh) * 2017-08-11 2017-12-26 深圳市耐飞科技有限公司 一种视频推荐方法及系统
CN107623862A (zh) * 2017-09-21 2018-01-23 广州华多网络科技有限公司 多媒体信息推送控制方法、装置及服务器
CN108090810A (zh) * 2017-12-19 2018-05-29 中国科学院合肥物质科学研究院 一种基于大数据的产品推荐系统
CN108241905A (zh) * 2016-12-23 2018-07-03 赫克斯冈技术中心 用于预测土壤和/或植物状况的方法
CN108647329A (zh) * 2018-05-11 2018-10-12 中国联合网络通信集团有限公司 用户行为数据的处理方法、装置及计算机可读存储介质
CN108762846A (zh) * 2018-05-30 2018-11-06 努比亚技术有限公司 插件化实时推荐方法、服务器及计算机可读存储介质
CN108805593A (zh) * 2017-04-27 2018-11-13 北京京东尚科信息技术有限公司 一种数据处理的方法、系统、电子设备和可读存储介质
CN109242520A (zh) * 2017-07-10 2019-01-18 中移(杭州)信息技术有限公司 一种目标用户群定位方法及装置
CN110008408A (zh) * 2019-04-12 2019-07-12 山东大学 一种会话推荐方法、系统、设备及介质
CN110059251A (zh) * 2019-04-22 2019-07-26 郑州大学 基于多关系隐式反馈置信度的协同过滤推荐方法
CN110163747A (zh) * 2019-05-24 2019-08-23 同盾控股有限公司 目标推荐对象挖掘方法、装置、介质及电子设备
CN110175287A (zh) * 2019-05-22 2019-08-27 湖南大学 一种基于Flink的矩阵分解隐式反馈推荐方法和系统
CN110245299A (zh) * 2019-06-19 2019-09-17 中国人民解放军国防科技大学 一种基于动态交互注意力机制的序列推荐方法及其系统
CN110348906A (zh) * 2019-07-11 2019-10-18 天津大学 一种基于多类型隐式反馈的改进商品推荐方法
CN110674964A (zh) * 2019-05-14 2020-01-10 南京邮电大学 基于农业溯源信息的搜索预测系统及方法
CN111079002A (zh) * 2019-11-27 2020-04-28 北京大生在线科技有限公司 一种基于隐式反馈数据的偏好计算方法及数据生成装置
CN111310042A (zh) * 2020-02-13 2020-06-19 研祥智能科技股份有限公司 基于云计算的协同过滤推荐方法及系统
CN111492392A (zh) * 2017-12-22 2020-08-04 华为技术有限公司 用于更新客户端-项目矩阵的客户端、服务器和客户端-服务器系统
CN112270568A (zh) * 2020-11-02 2021-01-26 重庆邮电大学 面向隐藏信息的社交电商平台营销活动下单率预测方法
CN113168424A (zh) * 2018-12-11 2021-07-23 贝宝公司 使用可伸缩的跨领域协同过滤来获得推荐的系统和方法
CN116468265A (zh) * 2023-03-23 2023-07-21 杭州瓴羊智能服务有限公司 批量用户数据处理方法和装置
US20230273843A1 (en) * 2022-02-28 2023-08-31 Bank Of America Corporation Real Time Intelligent Message Bus Management Tool

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037080B2 (en) * 2008-07-30 2011-10-11 At&T Intellectual Property Ii, Lp Recommender system utilizing collaborative filtering combining explicit and implicit feedback with both neighborhood and latent factor models
CN102508907A (zh) * 2011-11-11 2012-06-20 北京航空航天大学 一种基于训练集优化的推荐系统的动态推荐方法
CN103617540A (zh) * 2013-10-17 2014-03-05 浙江大学 一种追踪用户兴趣变化的电子商务推荐方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037080B2 (en) * 2008-07-30 2011-10-11 At&T Intellectual Property Ii, Lp Recommender system utilizing collaborative filtering combining explicit and implicit feedback with both neighborhood and latent factor models
CN102508907A (zh) * 2011-11-11 2012-06-20 北京航空航天大学 一种基于训练集优化的推荐系统的动态推荐方法
CN103617540A (zh) * 2013-10-17 2014-03-05 浙江大学 一种追踪用户兴趣变化的电子商务推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SMALLNEST: "使用Spark MLIib给豆瓣用户推荐电影", 《HTTP://COLOBU.COM/2015/11/30/MOVIE-RECOMMENDATION-FOR-DOUBAN-USERS-BY-SPARK-MLLIB/》 *
YIFAN HU ETC.: "Collaborative Filtering for Implicit Feedback Datasets", 《IEEE》 *
余小高 等: "基于隐式评分的推荐系统研究", 《计算机应用》 *

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017193323A1 (zh) * 2016-05-12 2017-11-16 深圳大学 一种基于用户偏好的个性化推荐方法及其系统
CN105893628A (zh) * 2016-05-17 2016-08-24 中国农业银行股份有限公司 一种数据实时收集系统及方法
CN106056427A (zh) * 2016-05-25 2016-10-26 中南大学 一种基于Spark的大数据混合模型的移动推荐方法
CN106251174A (zh) * 2016-07-26 2016-12-21 北京小米移动软件有限公司 信息推荐方法及装置
CN106296305A (zh) * 2016-08-23 2017-01-04 上海海事大学 大数据环境下的电商网站实时推荐系统与方法
CN106557951A (zh) * 2016-10-27 2017-04-05 湖北大学 一种物联网电子商务购物数据的处理方法及系统
CN108241905A (zh) * 2016-12-23 2018-07-03 赫克斯冈技术中心 用于预测土壤和/或植物状况的方法
CN108241905B (zh) * 2016-12-23 2023-03-21 赫克斯冈技术中心 用于预测土壤和/或植物状况的方法
CN108805593A (zh) * 2017-04-27 2018-11-13 北京京东尚科信息技术有限公司 一种数据处理的方法、系统、电子设备和可读存储介质
CN109242520A (zh) * 2017-07-10 2019-01-18 中移(杭州)信息技术有限公司 一种目标用户群定位方法及装置
CN107515909B (zh) * 2017-08-11 2020-05-19 深圳市云网拜特科技有限公司 一种视频推荐方法及系统
CN107515909A (zh) * 2017-08-11 2017-12-26 深圳市耐飞科技有限公司 一种视频推荐方法及系统
CN107623862A (zh) * 2017-09-21 2018-01-23 广州华多网络科技有限公司 多媒体信息推送控制方法、装置及服务器
CN108090810A (zh) * 2017-12-19 2018-05-29 中国科学院合肥物质科学研究院 一种基于大数据的产品推荐系统
CN111492392B (zh) * 2017-12-22 2023-11-17 华为技术有限公司 用于更新客户端-项目矩阵的客户端、服务器和客户端-服务器系统
CN111492392A (zh) * 2017-12-22 2020-08-04 华为技术有限公司 用于更新客户端-项目矩阵的客户端、服务器和客户端-服务器系统
CN108647329B (zh) * 2018-05-11 2021-08-10 中国联合网络通信集团有限公司 用户行为数据的处理方法、装置及计算机可读存储介质
CN108647329A (zh) * 2018-05-11 2018-10-12 中国联合网络通信集团有限公司 用户行为数据的处理方法、装置及计算机可读存储介质
CN108762846B (zh) * 2018-05-30 2024-02-09 努比亚技术有限公司 插件化实时推荐方法、服务器及计算机可读存储介质
CN108762846A (zh) * 2018-05-30 2018-11-06 努比亚技术有限公司 插件化实时推荐方法、服务器及计算机可读存储介质
CN113168424A (zh) * 2018-12-11 2021-07-23 贝宝公司 使用可伸缩的跨领域协同过滤来获得推荐的系统和方法
CN110008408A (zh) * 2019-04-12 2019-07-12 山东大学 一种会话推荐方法、系统、设备及介质
CN110059251B (zh) * 2019-04-22 2022-10-28 郑州大学 基于多关系隐式反馈置信度的协同过滤推荐方法
CN110059251A (zh) * 2019-04-22 2019-07-26 郑州大学 基于多关系隐式反馈置信度的协同过滤推荐方法
CN110674964A (zh) * 2019-05-14 2020-01-10 南京邮电大学 基于农业溯源信息的搜索预测系统及方法
CN110175287A (zh) * 2019-05-22 2019-08-27 湖南大学 一种基于Flink的矩阵分解隐式反馈推荐方法和系统
CN110163747A (zh) * 2019-05-24 2019-08-23 同盾控股有限公司 目标推荐对象挖掘方法、装置、介质及电子设备
CN110245299B (zh) * 2019-06-19 2022-02-08 中国人民解放军国防科技大学 一种基于动态交互注意力机制的序列推荐方法及其系统
CN110245299A (zh) * 2019-06-19 2019-09-17 中国人民解放军国防科技大学 一种基于动态交互注意力机制的序列推荐方法及其系统
CN110348906B (zh) * 2019-07-11 2023-04-07 天津大学 一种基于多类型隐式反馈的改进商品推荐方法
CN110348906A (zh) * 2019-07-11 2019-10-18 天津大学 一种基于多类型隐式反馈的改进商品推荐方法
CN111079002A (zh) * 2019-11-27 2020-04-28 北京大生在线科技有限公司 一种基于隐式反馈数据的偏好计算方法及数据生成装置
CN111079002B (zh) * 2019-11-27 2023-09-22 北京哈沃在线科技有限公司 一种基于隐式反馈数据的偏好计算方法及数据生成装置
CN111310042A (zh) * 2020-02-13 2020-06-19 研祥智能科技股份有限公司 基于云计算的协同过滤推荐方法及系统
CN112270568A (zh) * 2020-11-02 2021-01-26 重庆邮电大学 面向隐藏信息的社交电商平台营销活动下单率预测方法
CN112270568B (zh) * 2020-11-02 2022-07-12 重庆邮电大学 面向隐藏信息的社交电商平台营销活动下单率预测方法
US20230273843A1 (en) * 2022-02-28 2023-08-31 Bank Of America Corporation Real Time Intelligent Message Bus Management Tool
CN116468265A (zh) * 2023-03-23 2023-07-21 杭州瓴羊智能服务有限公司 批量用户数据处理方法和装置

Also Published As

Publication number Publication date
CN105488216B (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
CN105488216A (zh) 基于隐式反馈协同过滤算法的推荐系统及方法
TWI603273B (zh) Method and device for placing information search
CN103886487B (zh) 基于分布式的b2b平台的个性化推荐方法与系统
CN106296305A (zh) 大数据环境下的电商网站实时推荐系统与方法
CN102629360B (zh) 一种有效的动态商品推荐方法及商品推荐系统
CN103345698A (zh) 电子商务环境下基于云计算处理模式的个性化推荐方法
CN102254028A (zh) 一种集成属性和结构相似性的个性化商品推荐方法和系统
CN106251174A (zh) 信息推荐方法及装置
Verma et al. An intelligent approach to Big Data analytics for sustainable retail environment using Apriori-MapReduce framework
US20230153857A1 (en) Recommendation model training method, recommendation method, apparatus, and computer-readable medium
CN104866540A (zh) 一种基于群体用户行为分析的个性化推荐方法
CN104866474A (zh) 个性化数据搜索方法及装置
CN104239338A (zh) 信息推荐方法及装置
CN104134159A (zh) 一种基于随机模型预测信息最大化传播范围的方法
CN104166668A (zh) 基于folfm模型的新闻推荐系统及方法
CN102609533A (zh) 一种基于核方法的协同过滤推荐系统及方法
CN105574025A (zh) 用于计算排序分及建立模型的方法、装置及商品推荐系统
CN104679771A (zh) 一种个性化数据搜索方法和装置
CN106447463A (zh) 一种基于马尔科夫决策过程模型的商品推荐方法
Yeo et al. Conversion prediction from clickstream: Modeling market prediction and customer predictability
KR20200121391A (ko) 오픈마켓 빅데이터 기반 ai 키워드 추천 시스템 및 방법
CN104317790A (zh) 一种基于大数据的用户行为的控制方法及系统
CN111798280B (zh) 多媒体信息推荐方法、装置和设备及存储介质
US11321724B1 (en) Product evaluation system and method of use
CN103258248A (zh) 一种微博流行趋势预测方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 200235 No. 200, Lane 19, dragon road, Shanghai, Xuhui District

Applicant after: SHANGHAI ZHONGYAN INFORMATION TECHNOLOGY Co.,Ltd.

Address before: No.19, Lane 200, Longcao Road, Xuhui District, Shanghai, 200235

Applicant before: SHANGHAI ZHONGYAN INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: No.19, Lane 200, Longcao Road, Xuhui District, Shanghai 200235

Patentee after: SHANGHAI ZHONGYAN INFORMATION TECHNOLOGY Co.,Ltd.

Address before: No.19, Lane 200, Longcao Road, Xuhui District, Shanghai 200235

Patentee before: SHANGHAI ZHONGYAN INFORMATION TECHNOLOGY Co.,Ltd.