基于计算机系统的推荐方法及其装置制造方法及图纸

技术编号:13326823 阅读:51 留言:0更新日期:2016-07-11 16:13
本发明专利技术涉及以计算机系统实现的推荐技术,公开了一种基于计算机系统的推荐方法及其装置。在本发明专利技术的推荐方法中,先根据每个用户的项目评分记录进行聚类,将用户特征数据划分到多个类别中,再在每个类别的用户特征数据中基于项目为目标用户推荐项目,可以在大数据下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。此外,每个计算节点不需要保存所有类别的用户特征数据,避免了内存不足的问题。

【技术实现步骤摘要】

本专利技术涉及以计算机系统实现的推荐技术,特别涉及基于计算机系统的推荐方法及其装置
技术介绍
推荐算法通常分为基于内容的推荐,基于关联规则的推荐,基于协同过滤推荐,以及一些基本方法的组合。然而,本专利技术的专利技术人发现,当前CF(CollaborativeFiltering,协同过滤)算法存在一些问题,特别是在分布式环境下,有些问题更加明显,从CF运行逻辑来理解,算法瓶颈主要在以下三个地方:第一点存在于数据规模中,无论哪次推荐,分布式框架的每个计算节点都要保留全局数据,因为每个reducer不能提前得知当前节点被分配的是哪些用户,所以只存储局部数据会影响数据精度。这时每个reducer就被实例化为一个小型的推荐场景。假设共有t单位的计算资源,则全局数据被冗余存储了t-1份,同时每个reducer在真正的推荐过程中只会遇到小部分数据计算,其它数据也会造成极大的资源浪费。因此当数据规模较大时,无论从时间上还是存储上,对每个计算节点都是巨大的负担。在我们的实验过程中,由于编程语言以及编译器的本地设计,当用户或者项目任一数据量超过千万级时,必然会出现数组过大越界问题,当用户或者项目任一数据量在千万级别时,则由于集群中各个计算节点的配置参差不齐,有些低配节点就会出现内存不足问题。第二点为数据倾斜问题。从CF算法过程来看,无论是基于项目还是基于用户,我们都需要计算项目之间的相似度。这里存在一个隐蔽的问题:实际应用场景中,有些项目属于”活跃份子”,有些属于”不活跃份子”,例如在使用MapReduceframework时,在<key,value>数据schema(模式)下,有些key对应的value会很多,有些会很少,这种数量不一致,参差不齐的情况,称为数据倾斜(dataskew)。当value数量在不同key之间相差3个以上数量级时,在计算项目之间相似度过程中就会造成严重的数据倾斜,”活跃份子”导致计算时间长尾。同理,在推荐过程中,有些用户之前积累的行为多,有些用户之前积累的行为少,这时”活跃用户”就会拖累整体计算过程。第三点为数据稀疏问题。在对象集合中,产生关系的对象对很少;可以理解为把所有对象划分为一个矩阵,其中(i,j)表示第i个用户和第j个项目之间的关系,如果大多数点均为0(表示没有关系),则定义为数据稀疏。数据稠密与之相反。特别是初始数据往往是不完全的,这时在计算项目之间相似度时就很容易出现数据稀疏问题,即用户项目矩阵的大部分位置都是0。
技术实现思路
本专利技术的目的在于提供一种基于计算机系统的推荐方法及其装置,可以在大数据下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。为解决上述技术问题,本专利技术的实施方式公开了一种基于计算机系统的推荐方法,该方法包括以下步骤:获取各用户对各项目的项目评分记录;根据每个用户的项目评分记录进行聚类,将用户特征数据划分到R个类别中,R是大于1的整数;在每个类别的用户特征数据中,基于项目为目标用户推荐项目。本专利技术的实施方式还公开了一种基于计算机系统的推荐装置,装置包括:用户项目初始关系计算模块,用于获取各用户对各项目的项目评分记录;聚类模块,用于根据用户项目初始关系计算模块获取的每个用户的项目评分记录进行聚类,将用户特征数据划分到R个类别中,R是大于1的整数;以及推荐模块,用于在聚类模块所划分的每个类别的用户特征数据中,基于项目为目标用户推荐项目。本专利技术实施方式与现有技术相比,主要区别及其效果在于:在本专利技术的推荐方法中,先根据每个用户的项目评分记录进行聚类,将用户特征数据划分到多个类别中,再在每个类别的用户特征数据中基于项目为目标用户推荐项目,可以在大数据下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。进一步地,每个计算节点不需要保存所有类别的用户特征数据,避免了内存不足的问题。进一步地,对于每个类别中的每个项目或每个用户,只选取与其关系最强的几个项目,而不是保留与其有关系的所有项目,可以避免关系较弱的项目产生的数据倾斜问题。进一步地,采用数据稀疏度对数据稀疏问题进行检测,并在发现数据稀疏问题后,通过项目间的二度关系进行相似度补全,以避免数据稀疏对推荐准确度的影响。进一步地,根据用户数量来选择是否要对用户进行聚类,以更好地适应于小数据下和大数据下的项目推荐。附图说明图1是本专利技术第一实施方式中一种基于计算机系统的推荐方法的流程示意图;图2本专利技术第一实施方式中一种基于计算机系统的推荐方法中聚类判断的流程示意图;图3是本专利技术第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流程示意图;图4是本专利技术第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流程示意图;图5是本专利技术第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流程示意图;图6是本专利技术第二实施方式中一种基于计算机系统的推荐方法中数据补全的流程示意图;图7是现有的计算用户相似度的示意图;图8和图9是现有的基于用户的协同过滤的示意图;图10和图11是现有的基于项目的协同过滤的示意图;图12是现有的实现分布式CF算法的MapReduce框架图;图13是本专利技术第二实施方式中一种基于计算机系统的推荐方法的流程示意图;图14是本专利技术第二实施方式中一种基于计算机系统的推荐方法的流程示意图;图15是本专利技术第三实施方式中一种基于计算机系统的推荐装置的结构示意图;图16是本专利技术第四实施方式中一种基于计算机系统的推荐装置中推荐模块的结构示意图。具体实施方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的实施方式作进一步地详细描述。本专利技术第一实施方式涉及一种基于计算机系统的推荐方法。图1是该基于计算机系统的推荐方法的流程示意图。如图1所示,该方法包括以下步骤:在步骤101中,获取各用户对各项目的项目评分记录。可以理解,在本专利技术的各个实施方式中,项目可以为商品、服务或其它推荐对象。此后进入步骤102,根据每个用户的项目评分记录进行聚类,本文档来自技高网
...

【技术保护点】
一种基于计算机系统的推荐方法,其特征在于,该方法包括以下步骤:获取各用户对各项目的项目评分记录;根据每个用户的项目评分记录进行聚类,将用户特征数据划分到R个类别中,R是大于1的整数;在每个所述类别的用户特征数据中,基于项目为目标用户推荐项目。

【技术特征摘要】
1.一种基于计算机系统的推荐方法,其特征在于,该方法包括以下步
骤:
获取各用户对各项目的项目评分记录;
根据每个用户的项目评分记录进行聚类,将用户特征数据划分到R个
类别中,R是大于1的整数;
在每个所述类别的用户特征数据中,基于项目为目标用户推荐项目。
2.根据权利要求1所述的基于计算机系统的推荐方法,其特征在于,
所述计算机系统包括至少两个计算节点;
所述“在每个所述类别的用户特征数据中,基于项目为目标用户推荐
项目”的步骤中,将各所述类别的用户特征数据分配给多个计算节点,每
个计算节点最多保存R-1个所述类别的用户特征数据,每个计算节点在所
保存的每个所述类别的用户特征数据中基于项目为目标用户推荐项目。
3.根据权利要求1所述的基于计算机系统的推荐方法,其特征在于,
所述“在每个所述类别的用户特征数据中,基于项目为目标用户推荐项
目”的步骤中,采用基于项目的协同过滤算法为目标用户推荐项目;
所述“在每个所述类别的用户特征数据中,基于项目为目标用户推荐
项目”的步骤中包括以下子步骤:
根据所述类别中每个用户的项目评分记录,计算所述类别中所有项目
间相似度,并为每个项目选取相似度最高的M个项目,M为预定义的整
数;
根据所述类别中所述目标用户的项目评分记录,为所述目标用户选取
评分最高的T个项目,T为预定义的整数;
将为所述目标用户选取的T个项目与为所述T个项目中每个项目选取
的M个项目相结合,并从中去除所述目标用户的项目列表中的项目,形成
初始推荐结果。
4.根据权利要求3所述的基于计算机系统的推荐方法,其特征在于,
在形成初始推荐结果的子步骤后还包括以下子步骤:
判断所述初始推荐结果中的项目数量是否大于N,N为预定义的整
数;
若所述初始推荐结果中的项目数量大于N,则从所述初始推荐结果中
选取相似度最高的N个项目推荐给所述目标用户;
若所述初始推荐结果中的项目数量小于N,则将所述目标用户的项目
列表中的所有项目与为所述目标用户的项目列表中每个项目选取的M个项
目相结合,并从中去除所述目标用户的项目列表中的所有项目,形成用户
数据补全推荐结果。
5.根据权利要求4所述的基于计算机系统的推荐方法,其特征在于,
在形成用户数据补全推荐结果的子步骤后还包括以下子步骤:
判断所述用户数据补全推荐结果中的项目数量是否大于N,N为预定
义的整数;
若所述用户数据补全推荐结果中的项目数量大于N,则从所述用户数
据补全推荐结果中选取相似度最高的N个项目推荐给所述目标用户;
若所述用户数据补全推荐结果中的项目数量小于N,则将所述目标用
户的项目列表中的所有项目与和所述目标用户的项目列表中每个项目具有
相似度关系的所有项目相结合,并从中去除所述目标用户的项目列表中的
所有项目,形成项目数据补全推荐结果。
6.根据权利要求1所述的基于计算机系统的推荐方法,其特征在于,

\t所述“在每个所述类别的用户特征数据中,基于项目为目标用户推荐项
目”的步骤后还包括以下步骤:
判断数据稀疏度是否大于数据稀疏度阈值,所述数据稀疏度
其中k为计算得到的所述类别中具有相似度关系的项目对的数
量,l为所述类别中项目的数量,若所述数据稀疏度小于数据稀疏度阈值,则以第一项目、第二项目和
第三项目为一组,所述第一项目与所述第二项目间、所述第二项目与所述
第三项目间具有相似度关系,通过所述第二项目为所述第一项目和所述第
三项目建立相似度关系,并根据补充的项目间相似度关系在所述类别中再
次基于项目为所述目标用户推荐项目;
若所述数据稀疏度大于数据稀疏度阈值,则将基于项目计算得到的推
荐项目推荐给所述目标用户。
7.根据权利要求1至6中任一项所述的基于计算机系统的推荐方法,
其特征在于,所述“根据每个用户的项目评分记录进行聚类,将用户特征
数据划分到R个类别中,R是大于1的整数”的步骤前还包括以下步骤:
判断用户数量是否大于用户规模阈值;
若所述用户数量小于用户规模阈值,则直接在所有用户特征数据中基
于项目为目标用户推荐项目;
若所述用户数量大于用户规模阈值,则进入“根据每个用户的项目评
分记录进行聚类,将用户特征数据划分到R个类别中,R是大于1的整数”
的步骤。
8.一种基于计算机系统的推荐装置,其特征在于,所述装置包括:
用户项目初始关系计算模块,用于获取各用户对各项目的项目评分记

\t录;
聚类模块,用于根据所述用户项目初始关系计算模块获取的每个用户
的...

【专利技术属性】
技术研发人员:潘晓彤金柯刘忠义魏虎
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1