[发明专利]一种电商协同过滤推荐方法在审

专利信息
申请号: 201810412962.6 申请日: 2018-05-03
公开(公告)号: CN108876508A 公开(公告)日: 2018-11-23
发明(设计)人: 张吉曜;韩德志;王军;毕坤 申请(专利权)人: 上海海事大学
主分类号: G06Q30/06 分类号: G06Q30/06
代理公司: 上海互顺专利代理事务所(普通合伙) 31332 代理人: 余毅勤
地址: 201306 上海市*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种改进的电商协同过滤推荐方法,提供基于Hadoop和Spark框架下的一种混合式推荐方法。在Hadoop框架下,使用基于用户的协同过滤算法,对海量数据进行离线数据分析,生成一个离线推荐列表;在Spark框架下,采用基于物品的协同过滤算法生成用户物品的实时推荐列表;最后,将离线推荐列表和实时推荐列表合并成一个最终的推荐列表提供给用户,使用户能得到最完美的推荐结果。该方法解决了现有的推荐方法更新时间周期过长,不能随着用户的购物行为而实时改变的缺陷。
搜索关键词: 协同过滤 离线 方法更新 购物行为 海量数据 离线数据 列表提供 时间周期 算法生成 用户物品 算法 合并 改进 分析
【主权项】:
1.一种电商协同过滤推荐方法,其特征在于包括以下步骤:步骤1:获取用户购物数据;步骤2:获取用户数据进行判断,如果是离线数据则采用Hadoop进行离线数据的处理,即跳转到步骤3,如果是实时数据则通过sparkstreaming进行实时数据的处理,即跳转到步骤6;步骤3:获取离线数据步骤3.1:商家都将用户的操作和购买.log日志文件使用HDFS存储起来;步骤3.2:用MapReduce将大量的日志文件导入到MapReduce计算框架下进行切分、派发、整理、合并计算,主要是Map和Reduce两个方面从而得出需要的结果;步骤3.3:将分解的矩阵按照商品和用户的关联度进行评分整合,再按照用户之前的相似度生成离线推荐列表,将列表存入数据库等待每天更新时间与实时推荐列表进行合并;步骤4:清洗整合数据步骤4.1:map处理,即每个输入分片会让一个map任务来处理,默认情况下,以HDFS的一个块的大小为一个分片,Map输出的结果会暂且放在一个环形内存缓冲区中,当该缓冲区快要溢出时,会在本地文件系统中创建一个溢出文件,将该缓冲区中的数据写入这个文件,在写入磁盘之前,线程首先根据reduce任务的数目将数据划分为相同数目的分区,也就是一个reduce任务对应一个分区的数据,这样做是为了避免有些reduce任务分配到大量数据,而有些reduce任务却分到很少数据,甚至没有分到数据的尴尬局面。其实分区就是对数据进行hash的过程,然后对每个分区中的数据进行排序,如果此时设置了Combiner,将排序后的结果进行Combine操作,这样做的目的是让尽可能少的数据写入到磁盘,当map任务输出最后一个记录时,可能会有很多的溢出文件,这时需要将这些文件合并;步骤4.2:Reduce处理,即Reduce会接收到不同map任务传来的数据,并且每个map传来的数据都是有序的,如果reduce端接受的数据量相当小,则直接存储在内存中,如果数据量超过了该缓冲区大小的一定比例,则对数据合并后溢写到磁盘中,随着溢写文件的增多,后台线程会将它们合并成一个更大的有序的文件,这样做是为了给后面的合并节省时间,其实不管在map端还是reduce端,MapReduce都是反复地执行排序,合并操作,合并的过程中会产生许多的中间文件,但MapReduce会让写入磁盘的数据尽可能地少,并且最后一次合并的结果并没有写入磁盘,而是直接输入到reduce函数;步骤5:商品和用户的关联度是根据用户物品数据生成的矩阵(m×n)阶用户‑项目评分矩阵R(m,n),在R(m,n)中,m行标识m个用户,n列标识n个项目,Ri,j表示用户i对项目j的评分值;因为数据量大并且数据稀松,用SVD(奇异值分解)来给矩阵降维;对于奇异值,与特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,奇异值的减少快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例;本发明用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵:Rm×n=Um×mΣm×nVTn×n≈Um×kΣk×kVTk×ν其中k要比n小很多,即一个大的矩阵R用三个小的矩阵Um×k,Σk×k,来表示,跳转到步骤9;步骤6:获取实时数据步骤6.1:后台把用户最新操作的信息以数据流的方式传输到Kafka进行存放;所述的Kafka,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据;步骤6.2:通过flume将kafka和Spark平台相连接,把用户的最新操作数据实时的传输到sparkstreaming下面进行切分、整合、聚类的操作;所述的flume,是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统;步骤6.3:将相似的商品进行关联、评分、整合后与之前的推荐列表进行比对,如有新出现的推荐商品即加入推荐列表推荐给用户。步骤7:SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘;步骤8:商品之间的关联数据生成一个物品与物品之间相关的矩阵;物品之间的相似度用皮尔森相似性来计算;物品i和j之间的皮尔森相似性sim(i,j)如式(1)所示:其中:假设对物品i和j共同评分的用户集合用Uij表示;Ru,i表示用户u对物品i的评分;分别表示物品的i和j的平均评分;在皮尔森相似性计算方法中,需要计算对物品i和j共同评过分的用户集合,然后通过这个集合里的用户对物品的评分来计算项目之间的相似性,用这种方式来处理,比修正的余弦相似性计算方法具有更好的推荐质量;步骤9:设定特定的时间,将离线推荐列表和实时推荐列表进行比对加权,生成新的推荐列表,即最终推荐列表推荐给用户;步骤10:最终生成的推荐列表使用了马尔科夫过程,设{X(t),t∈T}为一随机过程,E为其状态空间,任意t1<t2<…<tn<t任意x1,x2,…,xn,x,∈E,随机变量X(t)已知X(t1)=x1,...,X(tn)=xn之下的条件分布函数只与X(tn)=xn有关,而与X(t1)=x1,…,X(tn‑1)=xn‑1无关,即条件分布函数满足等式(2):F(x,t|xn,xn‑1,…,x2,x1,tn,tn‑1,…,t2,t1)=F(x,t|xn,tn)即P{X(t)≤x|X(tn)=xn,…,X(t1)=x1}=P{X(t)≤x|X(tn)=xn}    (2)最终的合并推荐表单至于最新的离线表单和实时表单有关,与之前的推荐列表毫无关系。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海海事大学,未经上海海事大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810412962.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top