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

文档序号:9929552阅读:346来源:国知局
基于计算机系统的推荐方法及其装置的制造方法
【技术领域】
[0001] 本发明涉及W计算机系统实现的推荐技术,特别涉及基于计算机系统的推荐方法 及其装置。
【背景技术】
[0002] 推荐算法通常分为基于内容的推荐,基于关联规则的推荐,基于协同过滤推荐,W 及一些基本方法的组合。然而,本发明的发明人发现,当前CF(Coll油orative Filtering, 协同过滤)算法存在一些问题,特别是在分布式环境下,有些问题更加明显,从CF运行逻辑 来理解,算法瓶颈主要在W下H个地方:
[0003] 第一点存在于数据规模中,无论哪次推荐,分布式框架的每个计算节点都要保留 全局数据,因为每个re化cer不能提前得知当前节点被分配的是哪些用户,所W只存储局 部数据会影响数据精度。送时每个re化cer就被实例化为一个小型的推荐场景。假设共有 t单位的计算资源,则全局数据被兀余存储了 t-1份,同时每个re化cer在真正的推荐过程 中只会遇到小部分数据计算,其它数据也会造成极大的资源浪费。因此当数据规模较大时, 无论从时间上还是存储上,对每个计算节点都是巨大的负担。在我们的实验过程中,由于编 程语言W及编译器的本地设计,当用户或者项目任一数据量超过千万级时,必然会出现数 组过大越界问题,当用户或者项目任一数据量在千万级别时,则由于集群中各个计算节点 的配置参差不齐,有些低配节点就会出现内存不足问题。
[0004] 第二点为数据倾斜问题。从CF算法过程来看,无论是基于项目还是基于用户, 我们都需要计算项目之间的相似度。送里存在一个隐蔽的问题:实际应用场景中,有些 项目属于"活跃份子",有些属于"不活跃份子",例如在使用MapRe化Ce化amework时,在 <key, value〉数据schema(模式)下,有些key对应的value会很多,有些会很少,送种数量 不一致,参差不齐的情况,称为数据倾斜(data skew)。当value数量在不同key之间相差 3个W上数量级时,在计算项目之间相似度过程中就会造成严重的数据倾斜,"活跃份子"导 致计算时间长尾。同理,在推荐过程中,有些用户之前积累的行为多,有些用户之前积累的 行为少,送时"活跃用户"就会拖累整体计算过程。
[0005] 第H点为数据稀疏问题。在对象集合中,产生关系的对象对很少;可W理解为把所 有对象划分为一个矩阵,其中(i,j)表示第i个用户和第j个项目之间的关系,如果大多数 点均为0 (表示没有关系),则定义为数据稀疏。数据稠密与之相反。特别是初始数据往往 是不完全的,送时在计算项目之间相似度时就很容易出现数据稀疏问题,即用户项目矩阵 的大部分位置都是0。

【发明内容】

[0006] 本发明的目的在于提供一种基于计算机系统的推荐方法及其装置,可W在大数据 下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。
[0007] 为解决上述技术问题,本发明的实施方式公开了一种基于计算机系统的推荐方 法,该方法包括W下步骤:
[000引获取各用户对各项目的项目评分记录;
[0009] 根据每个用户的项目评分记录进行聚类,将用户特征数据划分到R个类别中,R是 大于1的整数;
[0010] 在每个类别的用户特征数据中,基于项目为目标用户推荐项目。
[0011] 本发明的实施方式还公开了一种基于计算机系统的推荐装置,装置包括:
[0012] 用户项目初始关系计算模块,用于获取各用户对各项目的项目评分记录;
[0013] 聚类模块,用于根据用户项目初始关系计算模块获取的每个用户的项目评分记录 进行聚类,将用户特征数据划分到R个类别中,R是大于1的整数;W及
[0014] 推荐模块,用于在聚类模块所划分的每个类别的用户特征数据中,基于项目为目 标用户推荐项目。
[0015] 本发明实施方式与现有技术相比,主要区别及其效果在于:
[0016] 在本发明的推荐方法中,先根据每个用户的项目评分记录进行聚类,将用户特征 数据划分到多个类别中,再在每个类别的用户特征数据中基于项目为目标用户推荐项目, 可W在大数据下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。
[0017] 进一步地,每个计算节点不需要保存所有类别的用户特征数据,避免了内存不足 的问题。
[0018] 进一步地,对于每个类别中的每个项目或每个用户,只选取与其关系最强的几个 项目,而不是保留与其有关系的所有项目,可W避免关系较弱的项目产生的数据倾斜问题。
[0019] 进一步地,采用数据稀疏度对数据稀疏问题进行检测,并在发现数据稀疏问题后, 通过项目间的二度关系进行相似度补全,W避免数据稀疏对推荐准确度的影响。
[0020] 进一步地,根据用户数量来选择是否要对用户进行聚类,W更好地适应于小数据 下和大数据下的项目推荐。
【附图说明】
[0021] 图1是本发明第一实施方式中一种基于计算机系统的推荐方法的流程示意图;
[0022] 图2本发明第一实施方式中一种基于计算机系统的推荐方法中聚类判断的流程 示意图;
[0023] 图3是本发明第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流 程TK意图;
[0024] 图4是本发明第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流 程TK意图;
[0025] 图5是本发明第二实施方式中一种基于计算机系统的推荐方法中推荐步骤的流 程TK意图;
[0026] 图6是本发明第二实施方式中一种基于计算机系统的推荐方法中数据补全的流 程TK意图;
[0027] 图7是现有的计算用户相似度的示意图;
[0028] 图8和图9是现有的基于用户的协同过滤的示意图;
[0029] 图10和图11是现有的基于项目的协同过滤的示意图;
[0030] 图12是现有的实现分布式CF算法的MapRe化Ce框架图;
[0031] 图13是本发明第二实施方式中一种基于计算机系统的推荐方法的流程示意图;
[0032] 图14是本发明第二实施方式中一种基于计算机系统的推荐方法的流程示意图;
[0033] 图15是本发明第H实施方式中一种基于计算机系统的推荐装置的结构示意图;
[0034] 图16是本发明第四实施方式中一种基于计算机系统的推荐装置中推荐模块的结 构示意图。
【具体实施方式】
[0035] 在W下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本 领域的普通技术人员可W理解,即使没有送些技术细节和基于W下各实施方式的种种变化 和修改,也可W实现本申请各权利要求所要求保护的技术方案。
[0036] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施 方式作进一步地详细描述。
[0037] 本发明第一实施方式涉及一种基于计算机系统的推荐方法。图1是该基于计算机 系统的推荐方法的流程示意图。如图1所示,该方法包括W下步骤:
[0038] 在步骤101中,获取各用户对各项目的项目评分记录。可W理解,在本发明的各个 实施方式中,项目可W为商品、服务或其它推荐对象。
[0039] 此后进入步骤102,根据每个用户的项目评分记录进行聚类,将用户特征数据划 分到R个类别中,R是大于1的整数。可W理解,在本发明的各个实施方式中,可W采用 K-means算法直接对用户特征数据进行聚类,也可W先采用Canopy算法进行粗聚类,再采 用K-means算法进行细聚类。
[0040] 先采用Canopy算法进行粗聚类,再采用K-means算法进行细聚类,在保证准确性 的同时,提高了聚类速度。
[00川此外,可W理解,用户特征数据是由用户信息、项目信息和用户对项目的评分记录 组成的数据。
[0042] 此后进入步骤103,在每个类别的用户特征数据中,基于项目为目标用户推荐项 目。可W理解,在本发明的各个实施方式中,可W采用基于协同过滤、基于关联规则或基于 效用的推荐算法来为目标用户推荐项目。
[0043] 此后结束本流程。
[0044] 当然,在本发明的其他实施方式中,也可W W项目为对象进行聚类,再在每个类别 的用户特征数据中基于用户来为目标用户推荐项目,或是聚类和推荐都基于用户或都基于 项目。
[0045] 在本实施方式的推荐方法中,先根据每个用户的项目评分记录进行聚类,将用户 特征数据划分到多个类别中,再在每个类别的用户特征数据中基于项目为目标用户推荐项 目,可W在大数据下实现高效的推荐方法,保证了系统的稳定性和推荐的多样性。
[0046] 优选地,上述计算机系统为分布式系统。该计算机系统包括至少两个计算节点。
[0047] 在步骤103中,将各类别的用户特征数据分配给多个计算节点,每个计算节点最 多保存R - 1个类别的用户特征数据,每个计算节点在所保存的每个类别的用户特征数据 中基于项目为目标用户推荐项目。每个计算节点不需要保存所有类别的用户特征数据,避 免了内存不足的问题。
[0048] 优选地,每个计算节点保存一个类别的用户特征数据并进行处理。此外,可W理 解,在本发明的各实施方式中,可W根据各计算节点的配置将两个或两个W上类别的用户 特征数据分配给高配置的计算节点进行处理。当然,在用户特征数据量不是很大的时候,也 可W由一个计算节点进行处理。
[0049] 作为可选实施方式,如图2所示,在步骤102前还包括W下步骤:
[0050] 在步骤201中,判断用户数量是否大于用户规模阔值。若用户数量小于用户规模 阔值,则进入步骤202 ;若用户数量大于用户规模阔值,则进入步骤102。
[0051] 在步骤202中,直接在
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1