CN108154380A - 基于大规模评分数据对用户进行商品在线实时推荐的方法 - Google Patents
基于大规模评分数据对用户进行商品在线实时推荐的方法 Download PDFInfo
- Publication number
- CN108154380A CN108154380A CN201710292884.6A CN201710292884A CN108154380A CN 108154380 A CN108154380 A CN 108154380A CN 201710292884 A CN201710292884 A CN 201710292884A CN 108154380 A CN108154380 A CN 108154380A
- Authority
- CN
- China
- Prior art keywords
- commodity
- rating
- user
- itemid
- userid
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0282—Rating or review of business operators or products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Abstract
本发明涉及一种基于大规模评分数据对用户进行商品在线实时推荐的方法,是一种基于并行朴素贝叶斯回归模型的协同过滤推荐方法。首先,将数据存储于Hadoop的HDFS上,并行读取用户对项目的评分数据,对评分进行四舍五入的取整和离散化;其次,将用户和项目作为独立属性,离散化后的各评分作为类别,利用MapReduce框架实现的并行朴素贝叶斯分类模型计算用户对商品各评分类别的概率;最后,通过求期望来预测用户对商品的评分,应用于商品推荐。本方法解决了传统协同过滤算法时空效率低,预测成功率低和实时性不佳的问题,提高了推荐的时空效率、准确率和成功率,适合于大规模评分数据上对用户进行商品在线实时推荐。
Description
技术领域
本发明涉及推荐系统、数据挖掘、大数据技术领域,更具体地说,涉及一种基于大规模 评分数据对用户进行商品在线实时推荐的方法。
背景技术
近年来,随着互联网和电子商务的发展,网络用户和商品的数量都急剧上升,TB级别的 数据的产生标志着大数据时代的来临。因此,如何从海量的数据中,获取有价值的数据成为 一个越来越重要的问题。特别是在电子商务领域,电子商务企业很难分析和处理这么大量的 数据。因此,如何通过从海量消费者的消费行为中提取有价值的信息来发现消费者的兴趣已 经成为当前的研究热点。在大数据时代,数据的庞大规模和复杂性对传统方案的处理和计算 能力提出了挑战,也带来了性能和精度的问题。因此,可以想到采用并行的推荐算法进行重 新设计,以扩展到大数据问题,克服精度和实时性的不足。
推荐系统是最广泛使用的机器学习技术之一。协同过滤(CF)是目前电子商务推荐系统 中最成功的推荐算法。协同过滤可以分为基于内存和基于模型两种。基于模型的协同过滤推 荐技术使用纯评分数据来估计或学习模型进行预测。该模型可以是数据挖掘或机器学习算法。 众所周知的基于模型的协同过滤推荐技术包括:贝叶斯信任网(BN)CF模型,聚类CF模型 和潜在语义CF模型。与基于存储器的协同过滤算法相比,基于模型的协同过滤算法不仅可 以提高推荐速度,而且可以过滤噪声数据,从而提高推荐的质量。因此,基于模型的协同过 滤推荐技术能够以高效率和准确性处理可扩展性问题。
因此,将基于朴素贝叶斯模型的协同过滤推荐方法并行化可以达到更好的推荐效果。但 是,朴素贝叶斯方法通常用于分类问题,用于预测评分可能存在预测准确性不高、时空开销 大、效率低等问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种推荐的效率和准确率的基于大规模评 分数据对用户进行商品在线实时推荐的方法。
本发明的技术方案如下:
一种基于大规模评分数据对用户进行商品在线实时推荐的方法,获取用户对商品的评分 数据,并对其进行离散化处理作为类别属性,利用基于并行朴素贝叶斯分类模型计算用户对 商品各评分类别的概率,通过期望求和预测用户对商品的评分,获得并行朴素贝叶斯回归模 型;通过并行朴素贝叶斯回归模型进行协同过滤推荐,实现商品在线实时推荐。
作为优选,获取用户对商品的评分数据后,将评分数据存储于Hadoop的HDFS分布式 文件系统上;其中,用户对商品的评分数据包括:用户a,商品b,用户a对商品b的评分ra,b。
作为优选,将获取的用户对商品的评分离散化处理后,作为朴素贝叶斯的分类类别Ri, i∈[1,…,s],表示有s种不同的评分。
作为优选,如果获取的评分数据为整数,则评分数据直接作为分类类别;如果获取的评 分数据为小数,则采用四舍五入的方式取整后,再作为分类类别;
则,
作为优选,确定评分数据为朴素贝叶斯分类的特征属性。
作为优选,将获取的评分数据及取整的评分数据读取作为训练样本,用户和商品作为特 征属性,生成用户-商品评分矩阵R={r1,1,…,ra,b,…,rm,n};其中,矩阵包括m个用户 U={u1,u2,…,ua,…,um}和n个商品I={i1,i2,…,ib,…,in}。
作为优选,计算用户对商品各评分类别的概率的方法如下:
读取存储在HDFS分布式文件系统上的评分数据作为输入,则输入为 <offset,(UserID,ItemID,Rating)>;其中,offset是文件位置偏移量,(UserID,ItemID,Rating) 是读取数据中每一行的内容,UserID表示用户,ItemID表示商品,Rating表示用户对商品的评分;
Map-I阶段:评分Rating为key,(UserID,ItemID)和(NUM)为value,输出<Rating,(UserID,ItemID)>和<Rating,(NUM)>的键值对;其中,NUM表示训练样本中数据 的总量;
Reduce-I阶段:读取Map-I阶段的输出,得到各个评分类别的概率,将评分Rating设置 为key,统计各评分出现的次数NUM_Ri,结合Map-I阶段中得到的训练样本数据总量NUM, 则得到各个评分类别的概率并输出<UserID Rating,(1)>、 <ItemID Rating,(1)>、<Rating NUM_Ri P(Ri),(1)>的键值对。
作为优选,计算各个用户和商品的条件概率,方法如下:
Map-II阶段:读取Reduce-I阶段的输出作为Map-II阶段的输入,则输入为 <offset,(UserID,Rating)>、<offset,(ItemID,Rating)>、<offset,(Rating,NUM_Ri,P(Ri))>,将Map-II阶段 的输入进行整理,形成<UserID Rating,(1)>、<ItemID Rating,(1)>、<Rating NUM_Ri P(Ri),(1)>的键 值对,作为Map-II阶段的输出;
Reduce-II阶段:Reduce-II阶段读取Map-II阶段的输出作为Reduce-II阶段的输入,形成 <UserID Rating NUM_UserID,(NULL)>、<ItemID Rating NUM_ItemID,(NULL)>、<Rating NUM_Ri P(Ri),(NULL)>的键值对;
则各种评分下各用户出现的先验概率各种评分下各商品 出现的先验概率
其中,NUM_UserID表示用户出现的次数,NUM_ItemID表示每种评分下各商品出现的次数。
作为优选,计算先验概率并预测评分,方法如下:
Map-III阶段:读取Reduce-II阶段的输出和测试集数据作为Map-III阶段的输入,则输入 为<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、 <offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>;其中,TEST_UserID表 示测试集用户,TEST_ItemID表示测试集商品,TEST_Rating表示测试集评分;
将<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、 <offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>的key值全部设置为 test_flag,形成<test_flag,(UserID,Rating,NUM_UserID)>、<test_flag,(ItemID,Rating,NUM_ItemID)>、 <test_flag,(Rating,NUM_Ri,P(Ri))>的键值对,作为Map-III阶段的输出;
Reduce-III阶段:读取Map-III阶段的输出作为Reduce-III阶段的输入,计算出 P(UserID|Ri)、P(ItemID|Ri),进而计算得到读取测试样本X的条件概率:
P(X|Ri)=P(UserID,ItemID|Ri)=P(UserID|Ri)*P(ItemID|Ri);
计算得到用户对商品的评分期望求和为最终的预测评分值,根 据预测评分值对目标用户产生商品推荐。
作为优选,朴素贝叶斯使用“属性条件独立假设”,则假定所有已知的评分类属性时,用 户属性和商品属性相互独立的。
本发明的有益效果如下:
本发明所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,通过对评分进 行取整离散化处理,对传统的朴素贝叶斯分类模型计算用户对商品各评分类别的概率并将期 望求和作为用户对商品的预测评分,从而达到利用朴素贝叶斯分类模型来解决回归预测问题, 将朴素贝叶斯分类模型转换为朴素贝叶斯回归模型的目的,提出了一种适用于回归问题的朴 素贝叶斯回归模型,从而得到更准确的预测结果。
将本发明在Hadoop平台上实现,并利用并行计算编程框架MapReduce和分布式文件系 统HDFS实行算法的并行化,提高了算法的效率,实时性和可扩展性,在当前的大数据环境 下也能实现高效的推荐。
附图说明
图1是本发明所述HDFS分布式文件系统的结构图;
图2是所述并行化计算编程框架MapReduce的流程图;
图3是本发明本发明所述方法的总体流程图;
图4是五折交叉验证方法的流程图;
图5实验一的实验结果图;
图6实验二的实验结果图;
图7实验三的实验结果图;
图8实验四的实验结果图;
图9实验五的实验结果图;
图10实验六的实验结果图;
图11实验七的实验结果图;
图12实验八的实验结果图;
图13实验九的实验结果图;
图14实验十的实验结果图。
具体实施方式
以下结合附图及实施例对本发明进行进一步的详细说明。
本发明为了解决传统的推荐算法存在的非常耗时,推荐效率不高等问题,提供一种基于 大规模评分数据对用户进行商品在线实时推荐的方法,提高了推荐的时空效率、准确率、成 功率和实时性。
本发明涉及的部分术语,解释如下:
1、朴素贝叶斯分类模型
朴素贝叶斯是一种基于贝叶斯理论的监督概率分类算法,朴素贝叶斯假设一个数据样本 X有A1,A2,...,At,...,An共n个属性,则数据样本X可以用向量表示,其中表示Ai的值。
假设存在m种分类类别,用C={C1,C2,...,Ci,...,Cm}表示。给定位置数据样本X,根据 贝叶斯理论,可以表示为
由于不论计算样本X在哪个类别的后验概率,P(X)的值都是相同,故求最大后验概率P(Ci|X)的问题可以转换为求最大先验概率P(X|Ci)P(Ci)。在哪种分类类别下的先验概率大,则认为数据样本X应该属于该分类类别。
2、MapReduce
MapReduce是一个由Google提出的用于大规模数据集并行计算的软件编程框架。如图2 所示,MapReduce计算模型分为两个阶段:Map和Reduce。Map阶段将输入的HDFS上的文 件块进行分割,映射成一组新的<key1,value1>的键值对,其中key1为数据相较于原文件首 行的偏移量;value1则为读取的数据行的内容。Hadoop收集具有相同键的所有键值对,并将 它们传递到Reduce阶段。Reduce阶段的输入是以<key2,(值列表)>的形式的键值对的集合。
在处理所有<key2,(值列表)>之后,输出具有<key3,value3>形式的键值对作为最终结 果,并存储在HDFS上。
3、HDFS
HDFS是分布式文件系统,如图1所示,HDFS采用(master-slave)的主从结构模型,即 一个系统由主节点和多个从节点组成。主节点(NameNode)是管理文件系统命名空间和对文 件的操作的主服务器。总体上,存储在HDFS上的文件被分成一些数据块,分别存储在多个 从节点(DataNode)上。DataNode处理用户的请求,NameNode则负责统一的命令。
4、Hadoop
Hadoop是最流行的云计算解决方案之一。它是由Apache开发的一个开源的分布式计算 平台。它向用户提供Hadoop分布式文件系统(HDFS)和MapReduce的底层详细信息,作为 透明分布式基础架构。通过使用Hadoop,用户可以方便地组织计算机资源,构建自己的分布 式计算平台,充分利用集群计算和存储能力完成海量数据处理。
本发明所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,是一种基于并 行朴素贝叶斯回归模型的协同过滤推荐方法,主要步骤为:获取用户对商品的评分数据,利 用基于并行朴素贝叶斯分类模型计算用户对商品各评分类别的概率,通过期望求和预测用户 对商品的评分,获得并行朴素贝叶斯回归模型;通过并行朴素贝叶斯回归模型进行协同过滤 推荐,实现商品在线实时推荐。
如图3所示,具体步骤如下:
1)获取用户对商品的评分数据后,将评分数据存储于Hadoop的HDFS分布式文件系统 上;其中,用户对商品的评分数据包括:用户a,商品b,用户a对商品b的评分ra,b。
2)将获取的用户对商品的评分离散化处理后,作为朴素贝叶斯的分类类别Ri, i∈[1,…,s],表示有s种不同的评分。用户对商品的评分可能是整数也可能是小数,这里将步 骤1)获取的用户对商品的评分作为朴素贝叶斯的分类类别。为了便于进行分类,首先将用 户对商品的评分进行取整。如果获取的评分数据为整数,则评分数据直接作为分类类别;如 果获取的评分数据为小数,则采用四舍五入的方式取整后,再作为分类类别;
则,
3)确定步骤1)中获取的评分数据为朴素贝叶斯分类的分类类别属性。由于朴素贝叶斯 推荐模型的目标是预测用户对商品的评分,因此可以将预测评分的过程认为是将用户和商品 划分到相应的评分类别的过程。故,选择用户和商品这两种数据为朴素贝叶斯分类的特征属 性。
4)将步骤1)获取的评分数据(用户和商品数据)及步骤2)取整的评分数据读取作为 训练样本,用户和商品作为特征属性,生成用户-商品评分矩阵R={r1,1,…,ra,b,…,rm,n};其中, 矩阵包括m个用户U={u1,u2,…,ua,…,um}和n个商品I={i1,i2,…,ib,…,in}。
5)利用基于并行朴素贝叶斯回归模型的协同过滤算法对目标用户产生推荐:
5.1)计算用户对商品各评分类别的概率的方法如下:
读取存储在HDFS分布式文件系统上的评分数据作为输入,进行MapReduce并行化计算 编程,则输入为<offset,(UserID,ItemID,Rating)>;其中,offset是文件位置偏移量, (UserID,ItemID,Rating)是读取数据中每一行的内容,UserID表示用户,ItemID表示商品, Rating表示用户对商品的评分;
Map-I阶段:评分Rating为key,(UserID,ItemID)和(NUM)为value,输出 <Rating,(UserID,ItemID)>和<Rating,(NUM)>的键值对;其中,NUM表示训练样本中数据 的总量;
Reduce-I阶段:读取Map-I阶段的输出,得到各个评分类别的概率,并为了之后计算条 件概率,将Map-I的输出进行整理,形成<Rating,(UserID,ItemID)>、<Rating,(NUM)>的 键值对。将评分Rating设置为key,统计各评分出现的次数NUM_Ri,结合Map-I阶段中得到的训练样本数据总量NUM,则得到各个评分类别的概率并输出 <UserID Rating,(1)>、<ItemID Rating,(1)>、<Rating NUM_Ri P(Ri),(1)>的键值对。
5.2)计算各个用户和商品的条件概率,方法如下:
Map-II阶段:读取Reduce-I阶段的输出作为Map-II阶段的输入,则输入为 <offset,(UserID,Rating)>、<offset,(ItemID,Rating)>、<offset,(Rating,NUM_Ri,P(Ri))>,将Map-II阶段 的输入进行整理,形成<UserID Rating,(1)>、<ItemID Rating,(1)>、<Rating NUM_Ri P(Ri),(1)>的键 值对,作为Map-II阶段的输出;
Reduce-II阶段:Reduce-II阶段读取Map-II阶段的输出作为Reduce-II阶段的输入,由于, 以某一项为key,则与以该项作为key值的键值对会发送到同一个reduce节点进行处理。故, 使用UserID Rating和ItemID Rating作为key,便于统计每种评分下各用户出现的次数 NUM_UserID和每种评分下各商品出现的次数NUM_ItemID,形成 <UserID RatingNUM_UserID,(NULL)>、<ItemID Rating NUM_ItemID,(NULL)>、 <Rating NUM_Ri P(Ri),(NULL)>的键值对,作为Reduce-II阶段的输出;
则各种评分下各用户出现的先验概率各种评分下各商品 出现的先验概率
其中,NUM_UserID表示用户出现的次数,NUM_ItemID表示每种评分下各商品出现的次数。
5.3)计算先验概率并预测评分,方法如下:
Map-III阶段:读取Reduce-II阶段的输出和测试集数据作为Map-III阶段的输入,则输入 为<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、<offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>;其中,TEST_UserID表 示测试集用户,TEST_ItemID表示测试集商品,TEST_Rating表示测试集评分;
将<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、 <offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>的key值全部设置为 test_flag,形成<test_flag,(UserID,Rating,NUM_UserID)>、<test_flag,(ItemID,Rating,NUM_ItemID)>、 <test_flag,(Rating,NUM_Ri,P(Ri))>的键值对,作为Map-III阶段的输出;
Reduce-III阶段:读取Map-III阶段的输出作为Reduce-III阶段的输入,由于key值相同, 故读取的数据会在同一个reduce节点处理;计算出P(UserID|Ri)、P(ItemID|Ri),进而计算 得到读取测试样本X的条件概率:
P(X|Ri)=P(UserID,ItemID|Ri)=P(UserID|Ri)*P(ItemID|Ri)。
6)计算得到用户对商品的评分期望求和为最终的预测评分值, 通过期望求和预测用户对商品的评分,应用于协同过滤推荐中用户对项目的推荐,根据预测 评分值对目标用户产生商品推荐。
朴素贝叶斯使用“属性条件独立假设”,则假定所有已知的评分类属性时,用户属性和商 品属性相互独立的。
实验验证
1、验证方法
本发明的实验采用五折交叉验证方法,验证基于并行朴素贝叶斯回归模型的协同过滤推 荐方法效果。
五折交叉法将数据集分为5份,每份循环作为测试集,剩下的作为训练集,训练集用于 评分预测,测试集用于衡量算法效果,如图4所示。
2、评价指标
合适的评价指标可以有效的衡量算法的性能。目前主要采用平均绝对误差MAE(Mean Absolute Error)作为衡量推荐算法推荐质量的标准。而对推荐系统而言,不仅仅需要高的预测 精度,能够成功的预测出用户对项目的评分对一个推荐系统而言也是非常重要的。但是由于 测试数据集往往非常稀疏,传统的推荐算法往往难以达到较好的预测成功率。故,提出预测 成功率作为推荐系统的评价指标,描述推荐系统成功预测用户对项目评分的概率。
平均绝对误差MAE定义如下:
预测成功率定义如下:
其中,ru,i表示用户u对项目i的实际评分,pu,i表示用户u对项目i的预测评分,test表 示预测集中评分不为0的项目集,L表示test集的大小。TS表示预测成功的次数。
实施例1
1、数据集
本实施例使用目前必将常用的公开的Movielens数据集数据集的介绍如表1所示。
表1:实验数据集简介
2、实验设计
试验中类别数s=5,评分为1分为R1类,评分为2分为R2类,评分为3分为R3类,评分为4分为R4类,评分为5分为R5类。用户数m=943,项目数n=1682。测试集test的大小L=2万。
本实验设计了2组实验,比较了传统用户协同过滤推荐,传统项目协同过滤推荐和基于 并行朴素贝叶斯回归模型的协同过滤推荐方法这三种协同过滤推荐在五折交叉的五种不同数 据集划分情况下的实验结果。实验一表示在相同数据集下各算法的MAE值实验结果;实验 二表示相同数据集下各算法的预测成功率实验结果。
实验一评价指标为MAE时,在Movielens数据集上通过五折交叉验证方法比较传统用户 协同过滤推荐,传统项目协同过滤推荐和基于并行朴素贝叶斯回归模型的协同过滤推荐方法, 实验结果如图5所示。
实验二评价指标为预测成功率时,在Movielens数据集上通过五折交叉验证方法比较传 统用户协同过滤推荐,传统项目协同过滤推荐和基于并行朴素贝叶斯回归模型的协同过滤推 荐方法,实验结果如图6所示。
3、实验结果分析
实验结果进行比较:
(1)如图5所示,实验结果表明在基于五折交叉验证方法下,在如Movielens数据集这 样的稀疏数据集上,基于并行朴素贝叶斯回归模型的协同过滤推荐方法取得了较好的推荐质 量。在Movielens数据集上进行五折交叉测试,基于并行朴素贝叶斯回归模型的协同过滤推 荐方法MAE小于传统用户协同过滤推荐和传统项目协同过滤推荐。本发明在稀疏数据集上 都能取得较好的推荐精度。
(2)如图6所示,实验结果表明在基于五折交叉验证方法下,在如Movielens数据集上, 基于并行朴素贝叶斯回归模型的协同过滤推荐方法取得了较好的预测成功率。表明本发明在 稀疏数据集上依然能取得较好的预测成功率。
实施例2
1、数据集
本实施例使用目前必将常用的公开的Eachmovie数据集作为测试数据。数据集的介绍如 表2所示。
表2:实验数据集简介
2、实验设计
试验中类别数s=5,评分为1分为R1类,评分为2分为R2类,评分为3分为R3类,评分为4分为R4类,评分为5分为R5类。用户数m=72916,项目数n=1682。测试集test的大小 L=562389。
本实验设计了2组实验,实现了并行朴素贝叶斯回归模型的协同过滤推荐方法在五折交 叉验证情况下的实验结果。实验三表示在相同数据集下各算法的MAE值实验结果;实验四 表示相同数据集下各算法的预测成功率实验结果。
实验三评价指标为MAE时,在Eachmovie数据集上通过五折交叉验证方法实现基于并 行朴素贝叶斯回归模型的协同过滤推荐方法,实验结果如图7所示。
实验四评价指标为预测成功率时,在Eachmovie数据集上通过五折交叉验证方法实现基 于并行朴素贝叶斯回归模型的协同过滤推荐方法,实验结果如图8所示。
3、实验结果分析
实验结果进行比较:
(1)如图7所示,Eachmovie数据集数据量较Movielens数据集数据量更大,实验结果 表明在基于五折交叉验证方法下,在如Eachmovie数据集这样数据量较大的稀疏数据集上, 传统的协同过滤算法已经难以进行高效的推荐,但是基于并行朴素贝叶斯回归模型的协同过 滤推荐方法依然取得了较好的推荐质量。故本发明在数据规模较大的稀疏数据集上仍能取得 较好的推荐精度。
(2)如图8所示,实验结果表明在基于五折交叉验证方法下,在如Eachmovie数据集这 样的稀疏数据集上,基于并行朴素贝叶斯回归模型的协同过滤推荐方法取得了较好的预测成 功率。表明本发明在数据规模较大的稀疏数据集上依然能取得较好的预测成功率。
实施例3
1、数据集
本实施例使用目前必将常用的公开的jester数据集作为测试数据。数据集的介绍如表3 所示。
表3:实验数据集简介
2、实验设计
本实施例中将评分进行四舍五入离散化,得到-10到+10共21个评分类别,并将这21个 评分作为分类类别。试验中类别数s=21,评分为-10分为R1类,评分为-9分为R2类,一直到 评分为10分为R10类。用户数m=73421,项目数n=100。测试集test的大小L=82万。
本实验设计了2组实验,比较了传统项目协同过滤推荐和基于并行朴素贝叶斯回归模型 的协同过滤推荐方法这两种协同过滤推荐在五种不同数据集划分情况下五折交叉验证的实验 结果。实验五表示在相同数据集下各算法的MAE值实验结果;实验六表示相同数据集下各 算法的预测成功率实验结果。
实验五评价指标为MAE时,在Jester数据集上通过五折交叉验证方法比较传统项目协同 过滤推荐和基于并行朴素贝叶斯回归模型的协同过滤推荐方法,实验结果如图9所示。
实验六评价指标为预测成功率时,在Jester数据集上通过五折交叉验证方法比较传统项 目协同过滤推荐和基于并行朴素贝叶斯回归模型的协同过滤推荐方法,实验结果如图10所 示。
3、实验结果分析
实验结果进行比较:
(1)如图9所示,Jester数据集是一个稠密的数据集,实验结果表明在基于五折交叉验 证方法下,在如Jester数据集这样的稠密数据集上,基于并行朴素贝叶斯回归模型的协同过 滤推荐方法取得了较好的推荐质量。故本发明在稠密数据集上也能取得较好的推荐精度。
(2)如图10所示,实验结果表明在基于五折交叉验证方法下,在如Jester数据集上, 基于并行朴素贝叶斯回归模型的协同过滤推荐方法MAE小于传统项目协同过滤推荐,取得 了较好的预测成功率。表明本发明在稠密数据集上依然能取得较好的预测成功率。
实施例4
1、数据集
本实施例使用目前必将常用的公开的Netflix数据集作为测试数据。数据集的介绍如表4 所示。
表4:实验数据集简介
2、实验设计
试验中类别数s=5,评分为1分为R1类,评分为2分为R2类,评分为3分为R3类,评 分为4分为R4类,评分为5分为R5类。用户数m=2649429,项目数n=17770。测试集test 的大小L=200000000。Hadoop集群分别使用了2个、4个和8个Slave节点。
本实验设计了4组实验,实现了并行朴素贝叶斯回归模型的协同过滤推荐方法在五折 交叉验证情况下的实验结果。实验七表示在相同数据集下各算法的MAE值实验结果;实验 八表示相同数据集下各算法的预测成功率实验结果;实验九表示单节点和Hadoop集群的运 行时间对比实验结果;实验十表示Hadoop集群不同节点数目情况下的运行时间对比实验结 果。
实验七评价指标为MAE时,在Netflix数据集上通过五折交叉验证方法实现基于并行朴 素贝叶斯回归模型的协同过滤推荐方法,实验结果如图11所示。
实验八评价指标为预测成功率时,在Netflix数据集上通过五折交叉验证方法实现基于并 行朴素贝叶斯回归模型的协同过滤推荐方法,实验结果如图12所示。
实验九运行时间单位为秒时,在Netflix数据集上通过五折交叉验证方法实现基于并行朴 素贝叶斯回归模型的协同过滤推荐方法,单节点和Hadoop集群运行时间对比实验结果如图 13所示。
实验十运行时间单位为秒时,在Netflix数据集上通过五折交叉验证方法实现基于并行朴 素贝叶斯回归模型的协同过滤推荐方法,Hadoop集群不同节点数目情况下运行时间对比实验 结果如图14所示。
3、实验结果分析
实验结果进行比较:
(1)如图11所示,Jester数据集是一个稠密的数据集,实验结果表明在基于五折交叉验 证方法下,在如Netflix数据集这样的数据量庞大的数据集上,传统算法耗时太长,已经难以 进行推荐,而基于并行朴素贝叶斯回归模型的协同过滤推荐方法仍能取得较好的推荐结果, 表明本发明适合于大规模评分数据上对用户进行上面在线实时推荐。
(2)如图12所示,实验结果表明在基于五折交叉验证方法下,在如Netflix数据集这样 的数据量庞大的稀疏数据集上,基于并行朴素贝叶斯回归模型的协同过滤推荐方法仍能取得 较好的预测成功率,表明本发明适合于大规模评分数据上对用户进行上面在线实时推荐。
(3)如图13所示,与串行基于朴素贝叶斯回归模型的协同过滤推荐方法相比基于并行 朴素贝叶斯回归模型的协同过滤推荐方法的运行时间更短。这是因为基于并行朴素贝叶斯回 归模型的协同过滤推荐方法基于Hadoop平台实现。该方法不再将数据存储在一个或几个大 文件里,而是通过MapReduce模型将打的文件切分成许多个小的数据块,并单独对各个小的 文件块进行计算。通过采用这种方法,可以讲一个庞大的任务划分成许多个小的任务,可以 大大提高计算的效率。
(4)如图14所示,集群的大小与集群的处理能力相关,当处理相同规模的数据时,算 法的运行时间随集群内节点数目的增加而稳定下降,但是没有达到线性加速比。这是由于 Hadoop的进程内各节点的数据交换会产生额外的时间开销。同时,MapReduce通过调度批处 理任务来处理静态数据也使得线性加速比难以达到。
以上实验说明基于并行朴素贝叶斯回归模型的协同过滤推荐方法不仅解决了传统协同过 滤算法时空效率低,预测成功率低和实时性不佳的问题,而且提高了推荐的效率和准确率, 适合于大规模评分数据上对用户进行商品在线实时推荐。
上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技 术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。
Claims (10)
1.一种基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,获取用户对商品的评分数据,并对其进行离散化处理作为类别属性,利用基于并行朴素贝叶斯分类模型计算用户对商品各评分类别的概率,通过期望求和预测用户对商品的评分,获得并行朴素贝叶斯回归模型;通过并行朴素贝叶斯回归模型进行协同过滤推荐,实现商品在线实时推荐。
2.根据权利要求1所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,获取用户对商品的评分数据后,将评分数据存储于Hadoop的HDFS分布式文件系统上;其中,用户对商品的评分数据包括:用户a,商品b,用户a对商品b的评分ra,b。
3.根据权利要求2所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,将获取的用户对商品的评分离散化处理后,作为朴素贝叶斯的分类类别Ri,i∈[1,…,s],表示有s种不同的评分。
4.根据权利要求3所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,如果获取的评分数据为整数,则评分数据直接作为分类类别;如果获取的评分数据为小数,则采用四舍五入的方式取整后,再作为分类类别;
则,
5.根据权利要求4所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,确定评分数据为朴素贝叶斯分类的特征属性。
6.根据权利要求5所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,将获取的评分数据及取整的评分数据读取作为训练样本,用户和商品作为特征属性,生成用户-商品评分矩阵R={r1,1,…,ra,b,…,rm,n};其中,矩阵包括m个用户U={u1,u2,…,ua,…,um}和n个商品I={i1,i2,…,ib,…,in}。
7.根据权利要求6所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,计算用户对商品各评分类别的概率的方法如下:
读取存储在HDFS分布式文件系统上的评分数据作为输入,则输入为<offset,(UserID,ItemID,Rating)>;其中,offset是文件位置偏移量,(UserID,ItemID,Rating)是读取数据中每一行的内容,UserID表示用户,ItemID表示商品,Rating表示用户对商品的评分;
Map-I阶段:评分Rating为key,(UserID,ItemID)和(NUM)为value,输出<Rating,(UserID,ItemID)>和<Rating,(NUM)>的键值对;其中,NUM表示训练样本中数据的总量;
Reduce-I阶段:读取Map-I阶段的输出,得到各个评分类别的概率,将评分Rating设置为key,统计各评分出现的次数NUM_Ri,结合Map-I阶段中得到的训练样本数据总量NUM,则得到各个评分类别的概率并输出<UserID Rating,(1)>、<ItemIDRating,(1)>、<Rating NUM_Ri P(Ri),(1)>的键值对。
8.根据权利要求7所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,计算各个用户和商品的条件概率,方法如下:
Map-II阶段:读取Reduce-I阶段的输出作为Map-II阶段的输入,则输入为<offset,(UserID,Rating)>、<offset,(ItemID,Rating)>、<offset,(Rating,NUM_Ri,P(Ri))>,将Map-II阶段的输入进行整理,形成<UserID Rating,(1)>、<ItemID Rating,(1)>、<RatingNUM_Ri P(Ri),(1)>的键值对,作为Map-II阶段的输出;
Reduce-II阶段:Reduce-II阶段读取Map-II阶段的输出作为Reduce-II阶段的输入,形成<UserID Rating NUM_UserID,(NULL)>、<ItemID Rating NUM_ItemID,(NULL)>、<RatingNUM_Ri P(Ri),(NULL)>的键值对;
则各种评分下各用户出现的先验概率各种评分下各商品出现的先验概率
其中,NUM_UserID表示用户出现的次数,NUM_ItemID表示每种评分下各商品出现的次数。
9.根据权利要求8所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,计算先验概率并预测评分,方法如下:
Map-III阶段:读取Reduce-II阶段的输出和测试集数据作为Map-III阶段的输入,则输入为<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、<offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>;其中,TEST_UserID表示测试集用户,TEST_ItemID表示测试集商品,TEST_Rating表示测试集评分;
将<offset,(UserID,Rating,NUM_UserID)>、<offset,(ItemID,Rating,NUM_ItemID)>、<offset,(Rating,NUM_Ri,P(Ri))>、<offset,(TEST_UserID,TEST_ItemID,TEST_Rating)>的key值全部设置为test_flag,形成<test_flag,(UserID,Rating,NUM_UserID)>、<test_flag,(ItemID,Rating,NUM_ItemID)>、<test_flag,(Rating,NUM_Ri,P(Ri))>的键值对,作为Map-III阶段的输出;
Reduce-III阶段:读取Map-III阶段的输出作为Reduce-III阶段的输入,计算出P(UserID|Ri)、P(ItemID|Ri),进而计算得到读取测试样本X的条件概率:
P(X|Ri)=P(UserID,ItemID|Ri)=P(UserID|Ri)*P(ItemID|Ri);
计算得到用户对商品的评分期望求和为最终的预测评分值,根据预测评分值对目标用户产生商品推荐。
10.根据权利要求1所述的基于大规模评分数据对用户进行商品在线实时推荐的方法,其特征在于,朴素贝叶斯使用“属性条件独立假设”,则假定所有已知的评分类属性时,用户属性和商品属性相互独立的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710292884.6A CN108154380A (zh) | 2017-04-28 | 2017-04-28 | 基于大规模评分数据对用户进行商品在线实时推荐的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710292884.6A CN108154380A (zh) | 2017-04-28 | 2017-04-28 | 基于大规模评分数据对用户进行商品在线实时推荐的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108154380A true CN108154380A (zh) | 2018-06-12 |
Family
ID=62468709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710292884.6A Pending CN108154380A (zh) | 2017-04-28 | 2017-04-28 | 基于大规模评分数据对用户进行商品在线实时推荐的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108154380A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840833A (zh) * | 2019-02-13 | 2019-06-04 | 苏州大学 | 贝叶斯协同过滤推荐方法 |
CN111612573A (zh) * | 2020-04-30 | 2020-09-01 | 杭州电子科技大学 | 一种基于全贝叶斯方法的推荐系统评分推荐预测方法 |
CN111612583A (zh) * | 2020-05-19 | 2020-09-01 | 江苏大学 | 一种基于聚类的个性化导购系统 |
US11605101B1 (en) | 2020-03-30 | 2023-03-14 | Amdocs Development Limited | Collaborative filtering system, method, and computer program providing a model used to calculate ranked predictions for subscribers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744878A (zh) * | 2013-12-21 | 2014-04-23 | 云南大学 | 一种基于MapReduce的大规模贝叶斯网并行推理方法 |
CN106570525A (zh) * | 2016-10-26 | 2017-04-19 | 昆明理工大学 | 一种基于贝叶斯网络的在线商品评价质量评估方法 |
-
2017
- 2017-04-28 CN CN201710292884.6A patent/CN108154380A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744878A (zh) * | 2013-12-21 | 2014-04-23 | 云南大学 | 一种基于MapReduce的大规模贝叶斯网并行推理方法 |
CN106570525A (zh) * | 2016-10-26 | 2017-04-19 | 昆明理工大学 | 一种基于贝叶斯网络的在线商品评价质量评估方法 |
Non-Patent Citations (2)
Title |
---|
无: "我理解的朴素贝叶斯模型", 《WWW.CNBLOGS.COM/NXLD/P/6607943.HTML》 * |
程曦 等: "基于MapReduce与项目分类的协同过滤算法", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840833A (zh) * | 2019-02-13 | 2019-06-04 | 苏州大学 | 贝叶斯协同过滤推荐方法 |
CN109840833B (zh) * | 2019-02-13 | 2020-11-10 | 苏州大学 | 贝叶斯协同过滤推荐方法 |
US11605101B1 (en) | 2020-03-30 | 2023-03-14 | Amdocs Development Limited | Collaborative filtering system, method, and computer program providing a model used to calculate ranked predictions for subscribers |
CN111612573A (zh) * | 2020-04-30 | 2020-09-01 | 杭州电子科技大学 | 一种基于全贝叶斯方法的推荐系统评分推荐预测方法 |
CN111612573B (zh) * | 2020-04-30 | 2023-04-25 | 杭州电子科技大学 | 一种基于全贝叶斯方法的推荐系统评分推荐预测方法 |
CN111612583A (zh) * | 2020-05-19 | 2020-09-01 | 江苏大学 | 一种基于聚类的个性化导购系统 |
CN111612583B (zh) * | 2020-05-19 | 2024-03-19 | 江苏大学 | 一种基于聚类的个性化导购系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Luo et al. | An inherently nonnegative latent factor model for high-dimensional and sparse matrices from industrial applications | |
CN110674407B (zh) | 基于图卷积神经网络的混合推荐方法 | |
WO2021109464A1 (zh) | 一种面向大规模用户的个性化教学资源推荐方法 | |
Chen et al. | General functional matrix factorization using gradient boosting | |
Li et al. | A comparative analysis of evolutionary and memetic algorithms for community detection from signed social networks | |
CN108154380A (zh) | 基于大规模评分数据对用户进行商品在线实时推荐的方法 | |
CN107480694A (zh) | 基于Spark平台采用两次评价的加权选择集成三支聚类方法 | |
Cong | Personalized recommendation of film and television culture based on an intelligent classification algorithm | |
CN110473073A (zh) | 线性加权推荐的方法及装置 | |
CN104598474B (zh) | 云环境下基于数据语义的信息推荐方法 | |
Zhang et al. | Multi-view clustering of microbiome samples by robust similarity network fusion and spectral clustering | |
CN110727836B (zh) | 基于Spark GraphX的社交网络分析系统及其实现方法 | |
Mao et al. | A MapReduce-based K-means clustering algorithm | |
Wang et al. | Community discovery algorithm of complex network attention model | |
He et al. | SRSH: a social recommender system based on Hadoop | |
An et al. | Strp-dbscan: A parallel dbscan algorithm based on spatial-temporal random partitioning for clustering trajectory data | |
Zhang et al. | Multi-view dynamic heterogeneous information network embedding | |
Zhang et al. | Optimization and application of clustering algorithm in community discovery | |
CN112925994B (zh) | 基于局部和全局信息融合的群组推荐方法、系统及设备 | |
CN109885758A (zh) | 一种基于二部图的新型随机游走的推荐方法 | |
Wang et al. | A dimensionality reduction algorithm for unstructured campus big data fusion | |
Wen et al. | Parallel naïve Bayes regression model-based collaborative filtering recommendation algorithm and its realisation on Hadoop for big data | |
Ma | A new kind of parallel K_NN network public opinion classification algorithm based on Hadoop platform | |
Peng et al. | Hybrid collaborative filtering recommendation algorithm for als model based on a big data platform | |
Xu et al. | Study of network public opinion classification method based on naive Bayesian algorithm in Hadoop environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180612 |
|
RJ01 | Rejection of invention patent application after publication |