一种基于分步动态填充缓解推荐系统数据稀疏性的方法技术方案

技术编号:19481468 阅读:24 留言:0更新日期:2018-11-17 10:41
本发明专利技术请求保护一种基于分步动态填充缓解推荐系统数据稀疏性的方法。方法首先对用户行为数据预处理,建立用户—美食商家评分矩阵;其次,选取目标用户计算用户相似度,选取相似度大于阈值α的用户作为目标用户的预选相似邻居用户;然后,计算用户共同评分差均值,选取共同评分差均值小于阈值β的预选邻居用户作为最终的相似邻居用户,利用邻居用户对评分矩阵做第一步填充;最后,对评分矩阵中剩下的未填充数据,同样采用相似度阈值法和共同评分差均值来选取相似商家,并利用相似商家对评分矩阵做第二步填充。本发明专利技术在一定程度上缓解了美食商家推荐系统中评分矩阵的稀疏性问题,提高了推荐系统的准确度。

【技术实现步骤摘要】
一种基于分步动态填充缓解推荐系统数据稀疏性的方法
本专利技术属于美食推荐
,尤其涉及一种基于分步动态填充缓解推荐系统数据稀疏性的方法。
技术介绍
随着互联网技术的迅猛发展,数据规模的爆炸式增长,带来了严重的“信息过载”问题。如何快速有效地从纷繁复杂的数据中获取有价值的信息成为了当前大数据发展的关键难题。为了解决该难题,个性化推荐算法被广泛研究,其中最常见的是协同过滤算法。在美食商家推荐领域,由于网站上的美食商家数量巨大,但只有很少的用户愿意给去过的美食商家评分,所以造成了用户—美食商家评分数据矩阵的极大稀疏,导致基于协同过滤算法得到的商家推荐列表不够准确。因此,如何对稀疏的用户—美食商家评分矩阵进行准确的预填充是美食推荐算法首要解决的问题。
技术实现思路
本专利技术旨在解决以上现有技术的问题。提出了一种提高推荐准确度的基于分步动态填充缓解推荐系统数据稀疏性的方法。本专利技术的技术方案如下:一种基于分步动态填充缓解推荐系统数据稀疏性的方法,其包括以下步骤:步骤1、对用户行为数据进行预处理,选取与美食商家及美食用户相关的信息,得到用户—美食商家评分矩阵;步骤2、利用建立的用户—美食商家评分矩阵,为每个用户和每个美食商家构建历史评分记录集合,同时构建用户集合,按照用户的评分商家数从大到小对用户集合中的用户排序;步骤3、设置用户相似度阈值α和用户历史共同评分差均值阈值β;步骤4、按用户在用户集合中的顺序,选取一个目标用户;根据用户—美食商家评分矩阵,计算其余用户与目标用户的相似度;选取与目标用户相似度大于α的用户构建目标用户的预选相似邻居用户集;步骤5、计算目标用户与各预选相似邻居用户的历史共同评分差均值,若两个用户历史本身没有共同评分商家,则他们的共同评分差均值为+∞;选取共同评分差均值小于β的预选邻居用户构造最终的相似邻居用户集;步骤6、利用目标用户的相似邻居用户集对用户—美食商家评分矩阵进行第一步填充;步骤7、对评分矩阵中剩下的未填充数据,同样采用相似度阈值法和共同评分差均值来选取最相似商家,并利用相似商家集来对用户—美食商家评分矩阵进行第二步填充。进一步的,所述步骤1中的用户行为数据预处理过程如下:步骤1.1:对从点评网站中获得用户行为数据,只选取美食商家及其用户的相关信息;步骤1.2:建立用户—美食商家评分矩阵,(1)从总的数据中筛选出与美食商家及美食用户相关的信息;(2)用这些信息来建立用户—美食商家评分矩阵。进一步的,所述步骤2具体过程如下:步骤2.1:为每个用户构建用户的历史评分记录集合;为每个商家构建商家的历史评分记录集合;步骤2.2:构建用户集合,统计每个用户的评分商家个数,按照用户评分商家个数从大到小对用户集合中的用户排序。进一步的,所述步骤4中构建目标用户的预选相似邻居用户集过程如下:步骤4.1:按用户在用户集合中的顺序,取一个用户作为目标用户;步骤4.2:利用用户—美食商家评分矩阵,通过Pearson皮尔逊相关系数公式来计算其余用户与目标用户的相似度;步骤4.3:选取与目标用户相似度大于α的用户构建目标用户的预选相似邻居用户集p_N(u)。进一步的,所述Pearson皮尔逊相关系数计算公式如下:其中,simu,v表示用户u和用户v的相似度,Iu,v为用户u和用户v的共同评分商家集合,Rui、Rvi分别为用户u、用户v对商家i的评分,分别为用户u、用户v的平均评分。进一步的,所述步骤5中的最终相似邻居集的选取过程如下:步骤5.1:计算目标用户与各选预相似邻居用户的历史共同评分差均值,计算公式如下:其中,avg(u,v)为用户u和用户v的历史共同评分差均值,I′u,v为目标用户u和用户v的历史共同评分商家集合,Rui、Rvi分别为用户u、用户v对商家i的评分;步骤5.2:选取共同评分差均值小于β的预选邻居用户构造最终的相似邻居用户集N(u)。进一步的,所述步骤6的利用相似邻居用户集N(u)对稀疏的用户—美食商家评分矩阵进行评分数据填充过程如下:步骤6.1:利用相似邻居用户集对目标用户的未评分项进行填充;步骤6.2:反复选取用户集合中下一个用户作为目标用户,对评分矩阵进行填充,即重复执行步骤4-步骤6,其中每次用于填充和计算用户相似度的用户—美食商家评分矩阵都是对上一个用户填充完成后的矩阵。直到取完用户集合中的所有用户为止,第一步填充完毕。进一步的,所述步骤7对评分矩阵中剩下的未填充数据,采用类似的方法,利用相似商家集来对用户—美食商家评分矩阵进行填充,填充过程如下:步骤7.1:对于第一步填充后得到的用户—美食商家评分矩阵,构建商家集合I,统计每个商家被评分的次数,并按照商家被评分次数从大到小对商家集合排序;步骤7.2:设置商家相似度阈值γ和商家历史共同评分差均值的阈值η;步骤7.3:按商家在商家集合中的顺序,取一个目标商家,利用Pearson相关系数,计算其余商家与目标商家的相似度;将相似度大于γ的商家作为目标商家的预选邻居商家,构建预选邻居商家集p_N(i);步骤7.4:计算预选邻居集中的商家与目标商家历史被相同用户评分的共同评分差均值,若两个商家历史没有被同一用户评分,则商家的共同评分差均值为+∞;将共同评分差均值小于η的商家作为目标商家的邻居商家,构建邻居商家集N(i);步骤7.5:利用邻居商家集对评分矩阵中目标商家未评分数据进行填充,反复选取商家集合中的下一个商家,即重复执行步骤7.3-步骤7.5,其中每次用于相似度计算和填充的用户—美食商家评分矩阵都是对上一个商家填充完成后的矩阵。直到取到商家集合中的所有商家为止,用户—美食商家评分矩阵填充完毕。本专利技术的优点及有益效果如下:本专利技术与现有的稀疏矩阵填充方法相比,本专利技术的优点及有益效果如下:相对于传统的协同过滤算法中相似邻居集的选取,本文加入了历史共同评分差均值来筛选邻居,去掉了与目标项评分差异较大的邻居,使相似邻居集的选取更加准确,有效避免了把一个用户讨厌的商家当成另一个用户喜欢的商家来进行推荐,使推荐更加准确。本专利技术采用分步动态填充法,先从用户的角度做第一步填充,再从商家的角度做第二步填充,使稀疏的用户—美食商家评分矩阵的填充更加完整。同时每一步填充都采用动态填充方式,按评分个数的大小来依次选取目标用户或目标商家进行填充,每一次做填充的矩阵都是对上一个目标填充完成后的矩阵。动态填充使用户或商家的共同评分数增多,相似度计算更加准确,因此对稀疏的用户—美食商家评分矩阵的填充也更加准确,最后给出的推荐列表更加符合用户的心意,提高了用户对推荐系统的粘性。附图说明图1是本专利技术提供优选实施例是美食商家信息表;图2是用户信息表图3是用户—美食商家评分矩阵;图4是算法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本专利技术的一部分实施例。本专利技术解决上述技术问题的技术方案是:实施例1本专利技术实施例在传统的基于用户和项目的协同过滤推荐算法的基础上,对相似邻居集的选取加入了对用户、商家的历史共同评分差均值的考量,最后分步动态的对用户—美食商家评分矩阵中未评分数据进行填充,该方法包括以下步骤:101:对用户行为数据进行预处理,建立用户—美食商家评分矩阵;102:为每个用户和商家构建本文档来自技高网...

【技术保护点】
1.一种基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,包括以下步骤:步骤1、对用户行为数据进行预处理,选取与美食商家及美食用户相关的信息,得到用户—美食商家评分矩阵;步骤2、利用建立的用户—美食商家评分矩阵,为每个用户和每个美食商家构建历史评分记录集合,同时构建用户集合,按照用户的评分商家数从大到小对用户集合中的用户排序;步骤3、设置用户相似度阈值α和用户历史共同评分差均值阈值β;步骤4、按用户在用户集合中的顺序,选取一个目标用户;根据用户—美食商家评分矩阵,计算其余用户与目标用户的相似度;选取与目标用户相似度大于α的用户构建目标用户的预选相似邻居用户集;步骤5、计算目标用户与各预选相似邻居用户的历史共同评分差均值,若两个用户历史本身没有共同评分商家,则他们的共同评分差均值为+∞;选取共同评分差均值小于β的预选邻居用户构造最终的相似邻居用户集;步骤6、利用目标用户的相似邻居用户集对用户—美食商家评分矩阵进行第一步填充;步骤7、对评分矩阵中剩下的未填充数据,同样采用相似度阈值法和共同评分差均值来选取最相似商家,并利用相似商家集来对用户—美食商家评分矩阵进行第二步填充。

【技术特征摘要】
1.一种基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,包括以下步骤:步骤1、对用户行为数据进行预处理,选取与美食商家及美食用户相关的信息,得到用户—美食商家评分矩阵;步骤2、利用建立的用户—美食商家评分矩阵,为每个用户和每个美食商家构建历史评分记录集合,同时构建用户集合,按照用户的评分商家数从大到小对用户集合中的用户排序;步骤3、设置用户相似度阈值α和用户历史共同评分差均值阈值β;步骤4、按用户在用户集合中的顺序,选取一个目标用户;根据用户—美食商家评分矩阵,计算其余用户与目标用户的相似度;选取与目标用户相似度大于α的用户构建目标用户的预选相似邻居用户集;步骤5、计算目标用户与各预选相似邻居用户的历史共同评分差均值,若两个用户历史本身没有共同评分商家,则他们的共同评分差均值为+∞;选取共同评分差均值小于β的预选邻居用户构造最终的相似邻居用户集;步骤6、利用目标用户的相似邻居用户集对用户—美食商家评分矩阵进行第一步填充;步骤7、对评分矩阵中剩下的未填充数据,同样采用相似度阈值法和共同评分差均值来选取最相似商家,并利用相似商家集来对用户—美食商家评分矩阵进行第二步填充。2.根据权利要求1所述的基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,所述步骤1中的用户行为数据预处理过程如下:步骤1.1:对从点评网站中获得用户行为数据,只选取美食商家及其用户的相关信息;步骤1.2:建立用户—美食商家评分矩阵,(1)从总的数据中筛选出与美食商家及美食用户相关的信息;(2)用这些信息来建立用户—美食商家评分矩阵。3.根据权利要求1所述的基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,所述步骤2具体过程如下:步骤2.1:为每个用户构建用户的历史评分记录集合;为每个商家构建商家的历史评分记录集合;步骤2.2:构建用户集合,统计每个用户的评分商家个数,按照用户评分商家个数从大到小对用户集合中的用户排序。4.根据权利要求1所述的基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,所述步骤4中构建目标用户的预选相似邻居用户集过程如下:步骤4.1:按用户在用户集合中的顺序,取一个用户作为目标用户;步骤4.2:利用用户—美食商家评分矩阵,通过Pearson皮尔逊相关系数公式来计算其余用户与目标用户的相似度;步骤4.3:选取与目标用户相似度大于α的用户构建目标用户的预选相似邻居用户集p_N(u)。5.根据权利要求4所述的基于分步动态填充缓解推荐系统数据稀疏性的方法,其特征在于,所述Pearson皮尔逊相关系数计算公式如下:其中,simu,v表示用...

【专利技术属性】
技术研发人员:黄梅根王渝周理含
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1