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

文档序号:9727492阅读:638来源:国知局
基于隐式反馈协同过滤算法的推荐系统及方法
【技术领域】
[0001] 本发明涉及互联网技术领域,尤其涉及一种基于隐式反馈协同过滤算法的推荐系 统及方法。
【背景技术】
[0002] 电子商务领域中,随着商品越来越丰富,品类越来越多,人们从海量的商品里找到 自己感兴趣商品的时间成本越来越高。为解决这个问题,有效指导用户在电子商务网站中 购物,电子商务推荐系统应运而生。电子商务推荐系统可以根据已有的用户信息,向目标用 户推荐其可能感兴趣的产品信息。然而,随着移动互联网的到来,以大不同于PC时代的产品 形态面向用户,商品的展现形式及用户购物的习惯已呈一个全新的局面,营销如何更精准、 市场投放如何有更高的回报、长尾商品如何有更多的机会去展现从而提升转化,这些问题 都是商家和电子商务平台目前面临的重大难题,也正是推荐系统亟待解决的问题。发明人 发现目前的推荐系统存在以下缺陷:
[0003] 目前,推荐系统常用算法主要包括三类:基于内容的推荐算法、协同过滤推荐算 法、基于关联规则的推荐算法。其中被广泛使用的是协同过滤算法,常用的协同过滤主要分 为基于用户的协同过滤和基于商品的协同过滤。基于用户的协同过滤推荐根据相似用户群 的观点来产生对目标用户的推荐,使用统计方法挑选出与目标用户最相似的若干用户,称 为"邻居",然后根据这些邻居对与目标商品相似的商品的评分来推测用户对目标商品的感 兴趣程度;基于产品的协同过滤推荐是根据用户对与目标商品相似的商品的评分来预测该 用户对目标商品的感兴趣程度。显然,无论是哪种协同过滤,数据都是基于用户对于商品的 评分,评分通常是用户对商品的浏览次数、点击次数、购买次数等转换而来的显示数据,在 这其中,基于用户的协同过滤和基于商品的协同过滤都没有考虑用户的噪声行为,例如用 户购买某件商品可能是送给自己的朋友,或者点击某个商品可能只是无意点中偶然产生的 行为,使得直接使用这种评分类数据会给用户的这些噪声行为更高的权重,而不能反映用 户真实的兴趣,导致推荐效果不佳。
[0004] 另外,在集群受限及算法实现框架的限制下,大部分的推荐系统会采用单机运算, 不仅效率不高,而且没办法利用更丰富的数据去建模,推荐效果也会大打折扣。

【发明内容】

[0005] 本发明的目的在于提供一种基于Spark隐式反馈协同过滤算法的产品推荐系统及 方法,在计算资源有限的环境下,大大提升推荐数据计算效率和推荐效果。
[0006] 为解决上述问题,本发明提出一种基于隐式反馈协同过滤算法的推荐方法,包括:
[0007] 步骤1),根据一电子商务网站上的历史用户访问信息,抽取一段时间内的用户跳 转行为记录,形成训练数据集;
[0008] 步骤2),根据所述训练数据集调整隐式反馈协同过滤算法基本模型的参数,生成 预测模型;
[0009] 步骤3),根据该电子商务网站的集群的计算能力把用户分组,整合用户与被推荐 的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测出每组用户的产品 偏好,形成推荐结果;
[0010] 步骤4),将所述推荐结果索引入所述电子商务网站的搜索引擎中。
[0011] 进一步的,所述电子商务网站为能够链接产品直属的电子商务网站的第三方电子 商务网站。
[0012]进一步的,所述步骤1)包括:
[0013] 步骤1.1)先通过所述电子商务网站的生产服务器的日志采集系统采集本地日志, 再从所述本地日志中获取用户跳转行为数据后,存入所述生产服务器的消息系统,再由所 述消息系统输出存放于所述集群中;
[0014] 步骤1.2)建立用户与跳转行为的数据模型表,按照一预定义规则对所述数据模型 表进行分区;
[0015] 步骤1.3)通过分区的数据模型表,并行抽取用户一段时间内的跳转记录,汇总生 成训练数据集。
[0016] 进一步的,所述日志采集系统为flume系统,所述消息系统为Kafka系统,所述集群 为Spark集群,所述数据模型表为hive模型表。
[0017]进一步的,所述步骤2)包括:
[0018] 步骤2.1),设置好用户对产品的评分维度,建立评分矩阵,形成隐式反馈协同过滤 算法基本模型;
[0019] 步骤2.2),根据所述集群的计算能力,设置隐式反馈协同过滤算法的参数值以及 目标跳转率,并采用所述训练数据集训练所述基本模型;
[0020] 步骤2.3),根据每次训练结果反复调整各所述参数值,使得产品跳转率达到所述 目标跳转率,以获得所述预测模型。
[0021] 进一步的,所述步骤3)包括:
[0022] 步骤3.1),将所述电子商务网站的用户拆分成多组,并将每组用户按一次计算Μ个 用户的方式进行用户集合与被推荐产品集合的笛卡尔积运算,生成预测数据集;
[0023] 步骤3.2),所述集群基于所述预测模型对所述预测数据集进行并行运算,每次并 行运算Ν个预测任务,能获得Μ*Ν个用户的推荐结果。
[0024]进一步的,所述步骤4)包括:
[0025] 步骤4.1),所述集群的每个分区各自计算,且每个分区分别建立与所述搜索引擎 的链接,并通过所述搜索引擎的用户接口,实时将运算所得的推荐结果索引入所述搜索引 擎中;
[0026] 步骤4.2)所述搜索引擎预设有用于提交推荐结果的索引文档数量及提交时间,以 自动提交每个推荐结果的索引。
[0027] 进一步的,所述搜索引擎为Solr搜索引擎。
[0028] 本发明还提供一种基于隐式反馈协同过滤算法的推荐系统,包括:
[0029] 数据采集模块,用于根据一电子商务网站上的历史用户访问信息,抽取一段时间 内的用户跳转行为记录,形成训练数据集;
[0030] 模型训练模块,用于根据所述训练数据集调整隐式反馈协同过滤算法基本模型的 参数,生成预测模型;
[0031] 并行预测模块,用于根据该电子商务网站的集群的计算能力把用户分组,整合用 户与被推荐的产品,生成多个预测数据集,并利用所述预测模型进行并行运算,预测每组用 户的产品偏好,形成推荐结果;
[0032] 推荐显示模块,用于将所述推荐结果索引入所述电子商务网站的搜索引擎中。
[0033] 进一步的,所述数据采集模块通过所述电子商务网站的生产服务器的日志采集系 统采集本地日志,以获取用户跳转行为数据,并用于建立用户与跳转行为的数据模型表,所 述数据采集模块按照一预定义规则对所述数据模型表进行分区,并通过分区的数据模型表 来并行抽取用户一段时间内的跳转记录,汇总生成训练数据集,并通过所述生产服务器的 消息系统将所述训练数据集存入所述集群中;
[0034] 所述模型训练模块包括:基本模型设置单元,用于设置好用户对产品的评分维度, 建立评分矩阵,形成基本模型;模型训练单元,用于根据所述集群的计算能力,设置隐式反 馈协同过滤算法的参数值以及目标跳转率,并采用所述训练数据集训练所述基本模型;预 测模型生成单元,用于根据每次训练结果反复调整所述参数值,使得产品跳转率达到所述 目标跳转率,得到所述预测模型;
[0035] 所述并行预测模块包括:分组单元,用于将所述电子商务网站的用户拆分成多组, 并根据所述集群的并行运算能力进行用户集合和被推荐产品集合的笛卡尔积运算,生成所 述的预测数据集;预测单元,用于基于所述预测模型,并根据所述集群的并行运算能力对多 个预测数据集进行并行运算,以获得推荐结果。
[0036] 与现有技术相比,本发明提供的基于隐式反馈协同过滤算法的推荐系统及方法, 将用户的跳转行为作为产品评分的一种参考,合理调整训练模型参数,大大提升了推荐效 果;同时利用用户分组实现集群的并行运算,在计算资源有限的环境下,大大提升了计算效 率。经发明人检验,8000万用户的离线推荐运算以小型集群的计算能力可以在24小时内计 算完成,且实现了产品跳转率达到60%以上的实际推荐效果。
【附图说明】
[0037] 图1是本发明具体实施例的基于隐式反馈协同过滤算法的推荐方法流程图;
[0038] 图2是图1所示的推荐方法中的并行化运算流程图;
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1