协同过滤推荐方法、装置及设备与流程

文档序号:33251278发布日期:2023-02-18 02:31阅读:62来源:国知局
协同过滤推荐方法、装置及设备与流程

1.本发明实施例涉及推荐系统技术领域,具体涉及一种协同过滤推荐方法、 装置、设备及计算机可读存储介质。


背景技术:

2.随着云计算、大数据、物联网等技术的迅猛发展,网络体系结构中的各 类应用引发了数据规模的爆发式增长,大数据信息由此而生。另一方面,互 联网用户每天都在生产数据、创造数据和使用数据,那么如何在用户和数据 信息之间建立有效、直接的关联则变得至关重要。推荐系统作为解决这类问 题的有效方法,在学术研究和工业应用中已取得很多成果。
3.目前,推荐系统中主流的推荐算法有基于内容的推荐算法、基于内容的 协同过滤算法、基于标签的推荐算法等。其中,协同过滤算法是在推荐系统 领域中研究最为深入、最为业界认可、应用最为广泛的推荐方法。协同过滤 算法的核心思想是基于近邻的推荐方法,利用用户之间的相似度以及历史评 分数据可以对目标用户进行有效的推荐。
4.但是,现有协同过滤推荐技术中却存在很多不足,例如在当前的大数据 环境下,面对大规模数据集,推荐系统及推荐算法的运行效率和可扩展性难 以提升。
5.又例如,随着数据规模的急速增长,用户对项目的评分数据相对于项目 而言数量过于稀少。且,历史评分数据随着时间的推移也存在时间效应的影 响,即用户的个人兴趣度、项目的流行程度等会随着时间的推移持续动态发 生,但现有的协同过滤推荐技术在面对推荐系统缺少针对降低时间效应问题 所带来的影响方面的解决方法。基于上述两方面原因,导致推荐系统将无法 获取准确的用户评分数据,进而使得推荐系统常常遭遇推荐准确率低的问题
6.再者,现有的协同过滤推荐技术严重依赖于用户的历史行为数据。在数 据规模较大的情况下,无论是显性反馈行为还是隐形反馈行为,用户对项目 的历史评分数据相对于项目而言数量都较为稀少,根据稀疏数据计算出的推 荐效果也相对较差。并且,对于没有历史行为数据的新用户而言还存在有冷 启动的问题。


技术实现要素:

7.鉴于上述问题,本发明实施例提供了一种协同过滤推荐方法、装置及设 备,用于解决现有技术中存在的推荐系统及推荐算法的运行效率和可扩展性 难以提升的问题。
8.根据本发明实施例的一个方面,提供了一种协同过滤推荐方法,所述方 法包括:
9.获取大数据平台的用户历史行为数据,并存储至分布式文件系统;
10.对存储在所述分布式文件系统中的所述用户历史行为数据进行相似性度 量及多阶段并行进行处理,生成待推荐项目集;
11.将所述待推荐项目集中的项目推荐至目标用户。
12.在一种可选的方式中,所述待推荐项目集为基于目标项目的待推荐项目 集;所述
对存储在所述分布式文件系统中的所述用户历史行为数据进行相似 性度量及多阶段并行进行处理,生成待推荐项目集的步骤,进一步包括:
13.根据所述用户历史行为数据处理,寻找所述目标用户喜欢的项目数据;
14.寻找与所述目标用户喜欢的项目数据相似的项目数据,生成所述待推荐 项目集。
15.在一种可选的方式中,所述目标用户喜欢的项目数据包括:项目与项目 相似度矩阵,所述根据所述用户历史行为数据处理,寻找所述目标用户喜欢 的项目数据的步骤,进一步包括:
16.对存储在所述分布式文件系统中的所述用户历史行为数据进行并行处理, 得到用户与项目评分矩阵;
17.对所述用户项目评分矩阵进行相似度度量及并行处理,得到项目与项目 相似度矩阵。
18.在一种可选的方式中,所述寻找与所述目标用户喜欢的项目数据相似的 项目数据,生成所述待推荐项目集的步骤,进一步包括:
19.对所述项目与项目相似度矩阵进行相似度度量及并行处理,得到所述目 标项目与其他项目之间的相似度矩阵;
20.根据所述目标用户的用户与项目评分矩阵与所述目标项目与其他项目之 间的相似度矩阵,生成基于所述待推荐项目集。
21.在一种可选的方式中,所述对所述用户项目评分矩阵进行相似度度量及 并行处理,得到项目与项目相似度矩阵的步骤,进一步包括:
22.通过引入时间因子的相似性度量方法对所述用户项目评分矩阵进行并行 处理,得到所述项目与项目相似度矩阵。
23.在一种可选的方式中,所述时间因子的公式包括:
[0024][0025]
其中,α为时间衰减因子,t
ui
表示用户i对物品u产生行为的时间,t
uj
表 示用户j对于物品u产生行为的时间。
[0026]
在一种可选的方式中,当采用皮尔逊相关系数作为所述相似性度量的衡 量标准时,所述时间因子的公式包括::
[0027][0028]
其中,u
ij
表示用户i、j均有评分的项目集,即ui和uj的交集;r
ui
和r
uj
表示用户i、j对项目u的评分;ri和rj表示用户i、j已有评分项目的平均评分。
[0029]
在一种可选的方式中,所述将所述待推荐项目集中的项目推荐至目标用 户的步骤,进一步包括:
[0030]
确定所述待推荐项目集中所含项目个数是否大于预设阈值n;
[0031]
当所述待推荐项目集中所含项目个数大于预设阈值n时,则使用top-n 的推荐策略生成推荐列表;
[0032]
将所述推荐列表推荐至所述目标用户。
[0033]
在一种可选的方式中,若判断结果为否,则所述方法进一步还包括:
[0034]
当所述待推荐项目集中所含项目个数不大于预设阈值n时,统计所述目 标用户的用户历史行为数据中产生评分数据最多的前n个项目,得到top-n 个热门项目;
[0035]
将所述top-n个热门项目填充至所述待推荐项目集中,然后返回执行所述 确定所述待推荐项目集中所含项目个数是否大于预设阈值n的步骤。
[0036]
根据本发明实施例的另一方面,提供了一种协同过滤推荐装置,包括:
[0037]
获取模块,用于获取大数据平台的用户历史行为数据;
[0038]
分布式存储模块,用于存储所述获取模块获取的所述用户历史行为数据;
[0039]
处理模块,用于对所述分布式存储模块中的所述用户历史行为数据进行 相似性度量及多阶段的并行处理,生成待推荐项目集;
[0040]
推荐模块,用于将所述处理模块生成的所述待推荐项目集的项目推荐至 所述目标用户。
[0041]
根据本发明实施例的另一方面,提供了一种协同过滤推荐设备,包括:
[0042]
处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所 述通信接口通过所述通信总线完成相互间的通信;
[0043]
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执 行上述任意一项所述的协同过滤推荐方法的操作。
[0044]
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述 存储介质中存储有至少一可执行指令,所述可执行指令使协同过滤推荐设备 执行以下操作:
[0045]
获取大数据平台的用户历史行为数据,并存储至分布式文件系统;
[0046]
集对存储在所述分布式文件系统中的所述用户历史行为数据进行相似性 度量及多阶段并行进行处理,生成待推荐项目集;
[0047]
将所述待推荐项目集的项目推荐至所述目标用户。
[0048]
本发明实施例通过分布式文件系统并行数据处理架构对大数据平台中获 取到的用户历史行为数据进行相似性度量以及多阶段的并行处理,不依赖传 统的数据处理方式,因此能够提升推荐系统的运行效率和可扩展性。
[0049]
进一步地,本发明实施例通过多阶段的并行计算过程构建用户-项目评分 矩阵,并根据相似性度量计算方法预测用户对未评分项目的评分数据,从而 提升推荐质量,解决了数据稀疏及冷启动时推荐准确率不高的问题。
[0050]
进一步,本发明实施例在多阶段的并行计算过程中引入时间因子改进的 相似性度量计算方法,提高了评分预测数据的精度,进而提升了协同过滤推 荐结果的准确率,降低了时间效应问题对协同过滤推荐技术带来的影响。
[0051]
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发 明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明 实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的 具体实施方式。
附图说明
[0052]
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个 附图中,
用相同的参考符号表示相同的部件。在附图中:
[0053]
图1示出了本发明第一实施例提供的协同过滤推荐方法的流程示意图;
[0054]
图2示出了本发明第二实施例提供的协同过滤推荐方法的流程示意图;
[0055]
图3示出了本发明第三实施例提供的协同过滤推荐方法的流程示意图;
[0056]
图4为本为图3中步骤s320-350的数据结果输出示意图;
[0057]
图5示出了本发明第四实施例提供的协同过滤推荐方法的流程示意图;
[0058]
图6示出了本发明实施例提供的协同过滤推荐装置的结构示意图;
[0059]
图7示出了本发明实施例提供的协同过滤推荐设备的结构示意图。
具体实施方式
[0060]
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示 了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不 应被这里阐述的实施例所限制。
[0061]
图1示出了本发明一种协同过滤推荐方法第一实施例的流程示意图,该 方法由协同过滤推荐设备执行。该协同过滤推荐设备具有协同过滤推荐能力, 包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和 所述通信接口通过所述通信总线完成相互间的通信。该设备用于执行协同过 滤推荐方法,具体可以包括pc、服务器、服务器集群或具有大数据平台的协 同过滤推荐功能的计算机产品。
[0062]
如图1所示,该方法包括以下步骤:
[0063]
步骤110:获取大数据平台的用户历史行为数据,并存储至分布式文件系 统。
[0064]
步骤120:对存储在所述分布式文件系统中的所述用户历史行为数据进行 相似性度量以及多阶段的并行处理,生成待推荐项目集。
[0065]
步骤130:将所述待推荐项目集的项目推荐至目标用户。
[0066]
其中,步骤110中,由于互联网用户每天都在生产数据、创造数据和使 用数据,从而会在大数据平台上留下大量的用户历史行为数据。本发明实施 例的方法则通过获取与分析互联网用户的历史行为数据的,从而确定特定目 标用户准确的推荐项目并推荐至目标用户。
[0067]
步骤110-步骤130具体实现时,可通过hadoop的hdfs架构及多阶段的 mapreduce并行计算处理来实现,并在mapreduce并行计算架构中加入相似 性度量即可。hadoop实现了一个分布式文件系统(distributed file system), 其中一个组件是hdfs(hadoop distributed file system)。hdfs有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐 量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(largedata set)的应用程序。hdfs为海量的数据提供了存储,而mapreduce则为 海量的数据提供了计算。因此,通过hadoop的hdfs架构及多阶段的 mapreduce并行计算过程来处理用户的历史行为数据,可以对用户历史行为 数据进行多阶段的并行处理。该种数据处理方式不同于传统的数据处理方式, 能够提升协同过滤算法的运行效率与可扩展性。
[0068]
图2示出了本发明协同过滤推荐方法第二个实施例的流程示意图,该方 法与第一实施例的方法相同,由协同过滤推荐设备执行。如图2所示,该方 法包括以下步骤:
[0069]
步骤210:获取大数据平台的用户历史行为数据,并存储至分布式文件系 统。
[0070]
步骤210的具体操作与步骤110相同,具体操作时,例如可以是:
[0071]
获取大数据平台的用户历史行为数据,并以《offset,(user,item,score)》的 形式存储至hdfs上。其中,offset为文件位置的偏移量,user为用户的唯 一标识符,item为项目的唯一标识符,score为该项记录中用户对项目的评分 数据。
[0072]
本实施例与第一实施例不同的是,对第一实施例中的步骤120进行了细 化。需要说明的是,协同过滤推荐方法:主要有基于用户的协同过滤推荐方 法和基于项目的协同过滤推荐方法,两种方法都需要利用用户对项目的评分 数据。基于用户的协同过滤推荐方法的核心思想是:先找到相似的用户,再 找到相似用户喜欢的项目进行推荐。而基于项目的协同过滤推荐方法的核心 思想是:先找到目标用户喜欢的项目,再找到与目标用户喜欢项目相似的项 目进行推荐。本发明实施例中的协同过滤推荐方法为基于项目的协同过滤推 荐方法,因此得到的待推荐项目集则具体为基于目标项目的待推荐项目集。
[0073]
采用基于项目的协同推荐方法的原因是:
[0074]
可以通过项目的特征信息对项目进行细化分类,考虑到用户感兴趣并产 生行为的项目通常可以根据项目本身所包含的特征信息划分出具体的类别。 并且,相同类别内项目的相似度往往比不同类别内项目的相似度要高。因此, 在将项目划分为不同的类别之后,可以根据项目类别查找与目标用户相似的 最近邻居集。同时由于是在同一类别内进行查找,形成的最近邻居集中用户 的兴趣信息会更加准确,构建出的用户-项目评分数据矩阵相对于原始评分数 据矩阵也更为精准,从而降低了数据稀疏对推荐准确率的影响。
[0075]
另外,在具体执行对存储在所述分布式文件系统中的所述用户历史行为 数据进行相似性度量计算及多阶段并行处理的步骤时,可以拆分为:根据用 户历史行为数据处理,寻找目标用户喜欢的项目数据;以及,寻找与目标用 户喜欢的项目数据相似的项目数据生成待推荐项目集两个步骤。其中,根据 用户历史行为数据处理,寻找目标用户喜欢的项目数据的步骤具体实现时包 括后续步骤220-步骤230。寻找与目标用户喜欢的项目数据相似的项目数据生 成待推荐项目集的步骤具体实现时包括后续步骤240-步骤250。也即是说,本 发明实施例实现相似性度量和多阶段的mapreduce并行计算生成待推荐项目 集的步骤时,多阶段的mapreduce操作过程包含四个阶段,即下述步骤220 至步骤250:
[0076]
步骤220:对存储在所述分布式文件系统中的所述用户历史行为数据进行 并行处理,得到用户与项目评分矩阵。
[0077]
步骤230:对所述用户项目评分矩阵进行相似度度量及并行处理,得到项 目与项目的相似度矩阵。
[0078]
步骤240:对所述项目与项目相似度矩阵进行相似度度量及并行处理,得 到目标项目与其他项目之间的相似度矩阵。
[0079]
步骤250:根据所述目标用户的用户与项目评分矩阵与所述目标项目与其 他项目之间的相似度矩阵,生成基于所述目标用户所述目标项目的待推荐项 目集。
[0080]
下面,将通过hadoop的hdfs架构及多阶段的mapreduce并行计算架构 来实现步骤220-步骤250的每个步骤进行详细描述。在对这几个步骤进行详 细描述之前,先对相关的几个基本概念进行解释:
[0081]
第一,mapreduce并行计算框架:包括map阶段和reduce阶段。map阶 段将hdfs文件
块的键值对《key,value》进行并行化处理。而reduce阶段用 于将map阶段输出的数据进行汇总,并同样以键值对《key,value》的形式输出 结果。
[0082]
第二,相似性度量:用于评定两个事物之间相近程度的一种度量方法。常 用的相似性度量方法有余弦相似度、欧式距离和皮尔逊相关系数等。
[0083]
其中,步骤220为第一阶段的mapreduce过程,map函数扫描用户对项 目的评分数据并按键划分,以键值对《user,(item:score)》的形式将用户对每个 项目的所有历史评分数据传递到第一阶段的reduce函数,reduce函数对map 函数的输入结果进行解析,将属于同一用户项的键值对进行合并,并以 《user,list[(item:score)]》的形式输出,得到用户与项目评分矩阵,如下表1所 示。
[0084]
表1用户对项目的评分矩阵
[0085]
user/itemi1i2i3......iju1s
11s12s13
......s
1j
u2s
21s22s23
......s
2j
u3s
31s32s33
......s
3j
........................score......uis
i1si2si3
......s
ij
[0086]
其中,步骤230为第二阶段的mapreduce过程,map函数将第一阶段 reduce函数的输出结果作为数据输入,计算出不同项目之间同一用户的历史 评分数据生成用户对项目的评分矩阵,以《user,[(item i,item j)(score,score)]》 的形式传递至第二阶段的reduce函数。reduce函数根据用户-项目评分矩阵, 使用相似性度量计算方法计算出项目与项目之间的相似度,以《(item i,itemj),similarity》的形式输出,即生成项目与项目相似度矩阵,见表2,该矩阵可 以标识目标用户喜欢的项目数据。
[0087]
表2项目-项目相似度矩阵
[0088]
item/itemi1i2i3......iii1s
11s12s13
......s
1i
i2s
21s22s23
......s
2i
i3s
31s32s33
......s
3i
........................similarity......iis
i1si2si3
......s
ii
[0089]
其中,步骤240为第三阶段的mapreduce过程中,map函数将第二阶段 reduce函数的输出结果作为数据输入,计算每一个项目与其他项目之间相似 度,以《item i,(item j,similarity)》的形式传递至第三阶段reduce函数,reduce 函数对map函数的输入结果进行解析,将属于同一个项目的键值对进行合并, 构建出最近邻集合,生成忙目标项目与其他项目之间的相似度矩阵,以《itemi,list[(item j,similarity)]》的形式输出。
[0090]
其中,步骤250为第四阶段的mapreduce过程中,map函数将第三阶段 reduce函数输出的目标项目与其他项目之间的相似度矩阵作为数据输入,通 过将目标用户对每个项目的历史评分数据构建的用户-项目评分矩阵与目标项 目与其他项目之间的相似度矩阵相乘,计算出目标用户对未产生评分项目的 预测评分,进而生成目标用户的预测评分矩阵,以《user,list[(item:predictionscore)]》的形式传递至第四阶段的reduce函数。而
后,reduce函数对map函 数的输入结果进行解析和排序,生成待推荐项目集。
[0091]
上述步骤220-步骤250中,通过相似性度量计算方法以及多阶段的 mapreduce并行计算,可以构建出用户-项目评分矩阵以及不同项目之间的相 似度矩阵,并计算目标用户对未评分项目更为准确的预测评分数据,生成待 推荐项目集。
[0092]
在执行步骤220-步骤250之后,还包括:
[0093]
步骤260:将步骤250得到的待推荐项目集中的项目推荐至目标用户。
[0094]
其中,步骤260与第一实施例中的步骤130相同,在此不再赘述。
[0095]
本发明实施例的协同过滤推荐方法,在处理用户历史行为数据时进行相 似性度量及多阶段并行处理,该种数据处理方式不同于传统的数据处理方式, 能够提升协同过滤算法的运行效率与可扩展性。
[0096]
同时,在相似性度量及多阶段并行处理过程中,采用的是基于项目的协 同过滤推荐方法,具体是先根据用户历史行为数据处理,寻找目标用户喜欢 的项目数据,然后再寻找与目标用户喜欢的项目数据相似的项目数据,生成 待推荐项目集。这样做的好处是,可以在一定程度上降低数据稀疏对推荐准 确率的影响,提升数据推荐准确率。
[0097]
再者,在相似性度量及多阶段并行处理过程中,可以构建出用户-项目评 分矩阵以及不同项目之间的相似度矩阵,并计算目标用户对未评分项目更为 准确的预测评分数据,生成待推荐项目集,从而可以进一步降低因历史评分 数据稀疏和冷启动问题对推荐系统产生的影响,提高了个性化推荐结果的准 确率及质量。
[0098]
图3示出了本发明协同过滤推荐方法第三个实施例的流程示意图,该方 法与第二实施例的方法相同,由协同过滤推荐设备执行。如图3所示,该方 法包括以下步骤:
[0099]
与步骤210-步骤220相同的步骤310-步骤320,以及与步骤240-步骤260 相同的步骤340-步骤360。本实施例与第二实施例不同的是,对步骤230的操 作进行了细化,在具体执行对用户项目评分矩阵进行相似度度量及并行处理, 得到项目与项目的相似度矩阵时,还引入了改进的时间因子,其好处时可以 降低时间效应问题所带来的影响,进一步提升推荐的准确率。
[0100]
具体地,步骤330:通过引入时间因子的相似性度量方法对所述用户项目 评分矩阵进行并行处理,得到项目与项目相似度矩阵。即,本实施例在对协 同过滤算法在时间效应下项目之间的相似性度量计算方法提出了一种基于 sigmoid函数的改进方案。
[0101]
其中,sigmoid函数具有连续、对称、严格单调的良好特性,整个函数的 特征可以概括为:初始值较低,加速增长后逐渐减慢,最终趋于稳定。这符 合很多自然的生态过程包括人类的兴趣度分布等,并且由于sigmoid函授的值 域限制在了(0,1)之间,使得函数可以与一个概率分布联系起来。使用sigmoid 函数作为推荐系统因时间效应问题致使推荐结果受到影响的衡量标准,构建 出时间因子的具体公式如下:
[0102][0103]
其中,α为时间衰减因子,t
ui
表示用户i对物品u产生行为的时间,t
uj
表 示用户j对于物品u产生行为的时间。
[0104]
前文已经介绍,常用的相似性度量方法有余弦相似度、欧式距离和皮尔 逊相关系
数等。在使用皮尔逊相关系数作为相似性度量的衡量标准时,具体 改进后的相似性度量计算方法公式如下:
[0105][0106]
其中,u
ij
表示用户i、j均有评分的项目集,即ui和uj的交集;r
ui
和r
uj
表示用户i、j对项目u的评分;ri和rj表示用户i、j已有评分项目的平均评分。 可以理解的是,本领域技术人员还可以将余弦相似度、欧式距离等因素作为 相似性度量方法的相关参数,代入公式(1),进而得到相应改进的相似性度 量计算公式。
[0107]
结合步骤320-步骤360可以看出,本发明第三实施例的协同过滤推荐方 法,其数据输入与数据输出过程可通过图4来表示。结合图4可知,本发明 实施例的协同过滤推荐方法,除具有第二实施例中描述的运行效率高、可扩 展性强之外,还可以先根据用户历史行为数据处理,寻找目标用户喜欢的项 目数据,然后再根据相似性度量计算方法预测用户对未评分项目的评分,寻 找与目标用户喜欢的项目数据相似的项目数据,从而能够避免数据稀疏及冷 启动问题;并且在数据处理过程中还引入了时间因子,从而降低了时间效应 问题对协同过滤推荐技术带来的影响,进一步提升了协同过滤推荐结果的准 确率。
[0108]
图5示出了本发明协同过滤推荐方法第四实施例的流程示意图,该方法 与第三实施例的方法相同,由协同过滤推荐设备执行。如图5所示,该方法 包括以下步骤:
[0109]
与步骤310-步骤350相同的步骤510-步骤550,本实施例与第四实施例 不同的是,对第三实施例中步骤360的操作进行了细化,在具体执行将所述 待推荐项目集中的项目推荐至目标用户时,提出使用不同的推荐策略对目标 用户进行推荐。对于待推荐项目集中项目个数不满足要求的情况时,通过计 算热门项目填充待推荐项目集生成推荐列表,保证个性化推荐结果的质量。
[0110]
具体到本实施例中,在执行步骤550之后,还包括:
[0111]
步骤560,确定待推荐项目集中所含项目个数是否大于预设阈值n;
[0112]
步骤570,当所述待推荐项目集中所含项目个数大于预设阈值n时,使 用top-n的推荐策略生成推荐列表;
[0113]
步骤580,当所述待推荐项目集中所含项目个数不大于预设阈值n时, 统计目标用户的用户历史行为数据中产生评分数据最多的前n个项目,得到 top-n个热门项目;
[0114]
步骤590,将top-n个热门项目填充至待推荐项目集中,并返回步骤560;
[0115]
步骤510,将推荐列表推荐至目标用户。
[0116]
步骤步骤560-步骤510中,在实现根据待推荐项目集中所包含的项目个 数,使用不同的推荐策略对目标用户进行推荐,具体如下:
[0117]
首先确定步骤550中得到的待推荐项目集中所含项目个数是否大于预设 阈值n。若大于阈值n,则使用top-n的推荐策略生成最终的推荐列表向目 标用户进行推荐,即从待推荐项目集选取排序最大或最小的n个数据生成推 荐列表。对于top-n中的预设阈值n由hadoop的配置文档进行设置,保障 mapreduce过程中所有任务获取到的参数一致。
[0118]
其次,针对待推荐项目集中所含项目个数小于或等于预设阈值n的情况, 则通过
独立的mapreduce过程统计用户历史行为数据中产生评分数据最多的 前n个项目。具体执行时,首先,map函数读取用户历史行为数据按键划分, 以《item,list[value]》的形式输入可选的combiner任务进行局部的top-n排序, 减少传递到reduce函数的数据量,提升整个mapreduce过程的执行效率。 reduce函数对combiner任务输出的多个局部的排序结果进行汇总,以 《item,frequency》的形式输出排序靠前的n个项目,得到top-n个热门项目, 并用以填充待推荐项目集,然后回到执行步骤560的步骤,进而生成混合推 荐列表。
[0119]
本发明实施例的协同过滤推荐方法,除具有第三实施例中描述的运行效 率高、可扩展性强之外,还可以先根据用户历史行为数据处理,寻找目标用 户喜欢的项目数据,然后再根据相似性度量计算方法预测用户对未评分项目 的评分,寻找与目标用户喜欢的项目数据相似的项目数据,从而能够避免数 据稀疏及冷启动问题;并且在数据处理过程中还引入了时间因子,从而降低 了时间效应问题对协同过滤推荐技术带来的影响,进一步提升了协同过滤推 荐结果的准确率。最后,在待推荐项目集种的项目小于或等于预设阈值n时, 还通过计算热门项目填充待推荐项目集生成推荐列表,从而能够保证个性化 推荐结果的质量。
[0120]
前面第一实施例至第四实施例对本发明的协同过滤推荐方法进行了详细 的阐述,下面,将结合附图6,对运用本发明实施例的协同过滤推荐方法的装 置进行详细描述。可以理解的是,为避免赘述,在前文后已进行了一些描述 和扩展,可同样适用于发明实施例的协同过滤推荐装置。
[0121]
图6示出了本发明协同过滤推荐装置实施例的结构示意图。如图6所示, 该装置600包括:获取模块610、分布式存储模块620和处理模块630和推荐 模块640。
[0122]
其中,获取模块610用于获取大数据平台的用户历史行为数据;而分布 式存储模块620,用于存储获取模块610获取的用户历史行为数据。处理模块 630,则用于对分布式存储模块620中的用户历史行为数据进行相似性度量及 多阶段的并行处理,生成待推荐项目集;最后,推荐模块640,用于将处理模 块630生成的待推荐项目集的项目推荐至目标用户。
[0123]
本发明实施例的协同过滤推荐装置,通过分布式文件系统并行数据处理 架构对大数据平台中获取到的用户历史行为数据进行相似性度量以及多阶段 的并行处理,不依赖传统的数据处理方式,因此能够提升推荐系统的运行效 率和可扩展性。
[0124]
在一种可选的方式中,分布式存储模块620具体可以为基于hadoop的分 布式文件系统,而处理模块630进行数据处理时,具体是基于hadoop的多阶 段mapreduce并行处理。
[0125]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 处理模块630存储在分布式存储模块620中的用户历史行为数据进行相似性 度量及多阶段并行进行处理时,包括:根据用户历史行为数据处理,寻找目 标用户喜欢的项目数据;寻找与目标用户喜欢的项目数据相似的项目数据, 生成待推荐项目集。具体地,处理模块630包括:
[0126]
第一处理单元,用于对分布式存储模块620中的用户历史行为数据进行 并行处理,得到用户与项目评分矩阵。
[0127]
第二处理单元,用于对第一处理单元处理得到的用户与项目评分矩阵进 行相似度度量及并行处理,得到项目与项目相似度矩阵。
[0128]
第三处理单元,用于对第二处理单元处理得到的项目与项目相似度矩阵 进行相似度度量及并行处理,得到目标项目与其他项目之间的相似度矩阵。
[0129]
第四处理单元,用于根据第一处理单元处理得到的目标用户的用户与项 目评分矩阵与第三处理单元得到的目标项目与其他项目之间的相似度矩阵, 生成基于所述待推荐项目集。
[0130]
通过第一处理单元至第四处理单元的处理过程,能够提升协同过滤算法 的运行效率与可扩展性。同时,在相似性度量及多阶段并行处理过程中,采 用的是基于项目的协同过滤推荐方法,具体是先根据用户历史行为数据处理, 寻找目标用户喜欢的项目数据,然后再寻找与目标用户喜欢的项目数据相似 的项目数据,生成待推荐项目集。这样做的好处是,可以在一定程度上降低 数据稀疏对推荐准确率的影响,提升数据推荐准确率。再者,在相似性度量 及多阶段并行处理过程中,可以构建出用户-项目评分矩阵以及不同项目之间 的相似度矩阵,并计算目标用户对未评分项目更为准确的预测评分数据,生 成待推荐项目集,从而可以进一步降低因历史评分数据稀疏和冷启动问题对 推荐系统产生的影响,提高了个性化推荐结果的准确率及质量。
[0131]
需要说明的是,在一种可选的实施方式中,第二处理单元在对用户项目 评分矩阵进行相似度度量及并行处理,得到项目与项目相似度矩阵,还可以 通过引入时间因子的相似性度量方法对用户项目评分矩阵进行并行处理,从 而使得得到的项目与项目相似度矩阵不受时间效应的影响,能够提升推荐的 准确率。其中,引入的时间因子的具体公式可以是上文中提到的公式(1)。 在使用皮尔逊相关系数作为相似性度量的衡量标准时,改进后的相似性度量 计算方法的公式可以为上文中提到的公式(2)。
[0132]
进一步地,在一种可选的实施方式中,推荐模块640在将待推荐项目集 中的项目推荐至目标用户时,会使用不同的推荐策略对目标用户进行推荐。 对于待推荐项目集中项目个数不满足要求的情况时,通过计算热门项目填充 待推荐项目集生成推荐列表,保证个性化推荐结果的质量。
[0133]
具体地,推荐模块640进一步包括:
[0134]
确定单元用于确定处理模块630处理得到的推荐项目集中所含项目个数 是否大于预设阈值n;
[0135]
生成单元,用于在确定单元确定推荐项目集中所含项目个数大于预设阈 值n时,使用top-n的推荐策略生成推荐列表;
[0136]
统计单元,用于在确定单元确定推荐项目集中所含项目个数不大于预设 阈值n时,统计获取模块610获取的目标用户的用户历史行为数据中产生评 分数据最多的前n个项目,得到top-n个热门项目;
[0137]
填充单元,用于将统计单元统计得到的top-n个热门项目填充到待推荐项 目集中;
[0138]
推荐单元,用于将生成单元生成的推荐列表推荐至目标用户。
[0139]
本发明实施例中,在待推荐项目集种的项目小于或等于预设阈值n时, 还通过计算热门项目填充待推荐项目集生成推荐列表,从而能够保证个性化 推荐结果的质量。
[0140]
下面,将通过图7,对本发明实施例的协同过滤推荐设备进行详细描述。
[0141]
图7示出了本发明协同过滤推荐设备实施例的结构示意图,本发明具体 实施例并不对协同过滤推荐设备的具体实现做限定。
[0142]
如图7所示,该协同过滤推荐设备可以包括:处理器(processor)702、通 信接口
(communications interface)704、存储器(memory)706、以及通信总线708。
[0143]
其中:处理器702、通信接口704、以及存储器706通过通信总线708完 成相互间的通信。通信接口704,用于与其它设备比如客户端或其它服务器等 的网元通信。处理器702,用于执行程序710,具体可以执行上述用于协同过 滤推荐方法实施例中的相关步骤。
[0144]
具体地,程序710可以包括程序代码,该程序代码包括计算机可执行指 令。
[0145]
处理器702可能是中央处理器cpu,或者是特定集成电路asic (application specific integrated circuit),或者是被配置成实施本发明实施例 的一个或多个集成电路。协同过滤推荐设备包括的一个或多个处理器,可以 是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如 一个或多个cpu以及一个或多个asic。
[0146]
存储器706,用于存放程序710。存储器706可能包含高速ram存储器, 也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存 储器。
[0147]
程序710具体可以被处理器702调用使协同过滤推荐设备执行以下操作:
[0148]
获取大数据平台的用户历史行为数据,并存储至分布式文件系统;
[0149]
对存储在分布式文件系统中的用户历史行为数据进行相似性度量及多阶 段并行进行处理,生成待推荐项目集;
[0150]
将待推荐项目集中的项目推荐至目标用户。
[0151]
在一种可选的方式中,分布式文件系统为基于hadoop的分布式文件系统, 所述多阶段并行处理具体为多阶段mapreduce并行处理。
[0152]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 所述程序710被处理器702调用使协同过滤推荐设备执行以下操作:
[0153]
根据用户历史行为数据处理,寻找目标用户喜欢的项目数据;以及寻找 与目标用户喜欢的项目数据相似的项目数据,生成待推荐项目集。
[0154]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 所述程序710被处理器702调用使协同过滤推荐设备执行以下操作:
[0155]
对存储在所述分布式文件系统中的所述用户历史行为数据进行并行处理, 得到用户与项目评分矩阵;
[0156]
对所述用户项目评分矩阵进行相似度度量及并行处理,得到项目与项目 相似度矩阵;
[0157]
对所述项目与项目相似度矩阵进行相似度度量及并行处理,得到所述目 标项目与其他项目之间的相似度矩阵;
[0158]
根据所述目标用户的用户与项目评分矩阵与所述目标项目与其他项目之 间的相似度矩阵,生成基于所述待推荐项目集。
[0159]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 所述程序710被处理器702调用使协同过滤推荐设备执行以下操作:
[0160]
引入时间因子的相似性度量方法对所述用户项目评分矩阵进行并行处理, 得到所述项目与项目相似度矩阵。
[0161]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 所述程序710被处理器702调用使协同过滤推荐设备执行以下操作:
[0162]
确定所述待推荐项目集中所含项目个数是否大于预设阈值n;
[0163]
当确定待推荐项目集中所含项目个数是否大于预设阈值n时,则使用 top-n的推荐策略生成推荐列表;
[0164]
当确定待推荐项目集中所含项目个数是否不大于预设阈值n时,统计所 述目标用户的用户历史行为数据中产生评分数据最多的前n个项目,得到 top-n个热门项目;
[0165]
将所述top-n个热门项目填充至所述待推荐项目集中,然后返回执行确定 所述待推荐项目集中所含项目个数是否大于预设阈值n的步骤;以及,
[0166]
将所述推荐列表推荐至所述目标用户。
[0167]
本发明实施例的协同过滤推荐设备,具有运行效率高、可扩展性强的有 点,同时,还可以先根据用户历史行为数据处理,寻找目标用户喜欢的项目 数据,然后再根据相似性度量计算方法预测用户对未评分项目的评分,寻找 与目标用户喜欢的项目数据相似的项目数据,从而能够避免数据稀疏及冷启 动问题;并且在数据处理过程中还引入了时间因子,从而降低了时间效应问 题对协同过滤推荐技术带来的影响,进一步提升了协同过滤推荐结果的准确 率。并且,在待推荐项目集种的项目小于预设阈值n时,还通过计算热门项 目填充待推荐项目集生成推荐列表,从而能够保证个性化推荐结果的质量。
[0168]
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至 少一可执行指令,该可执行指令在协同过滤推荐设备上运行时,使得所述协 同过滤推荐设备执行上述任意方法实施例中的协同过滤推荐方法。
[0169]
可执行指令具体可以用于使得协同过滤推荐设备执行以下操作:
[0170]
获取大数据平台的用户历史行为数据,并存储至分布式文件系统;
[0171]
对存储在分布式文件系统中的用户历史行为数据进行相似性度量及多阶 段并行进行处理,生成待推荐项目集;
[0172]
将待推荐项目集中的项目推荐至目标用户。
[0173]
在一种可选的方式中,分布式文件系统为基于hadoop的分布式文件系统, 所述多阶段并行处理具体为多阶段mapreduce并行处理。
[0174]
在一种可选的方式中,可执行指令具体可以用于使得协同过滤推荐设备 执行以下操作:
[0175]
根据用户历史行为数据处理,寻找目标用户喜欢的项目数据;以及寻找 与目标用户喜欢的项目数据相似的项目数据,生成待推荐项目集。
[0176]
在一种可选的方式中,待推荐项目集为基于目标项目的待推荐项目集, 可执行指令具体可以用于使得协同过滤推荐设备执行以下操作:
[0177]
对存储在所述分布式文件系统中的所述用户历史行为数据进行并行处理, 得到用户与项目评分矩阵;对所述用户项目评分矩阵进行相似度度量及并行 处理,得到项目与项目相似度矩阵;对所述项目与项目相似度矩阵进行相似 度度量及并行处理,得到所述目标项目与其他项目之间的相似度矩阵;根据 所述目标用户的用户与项目评分矩阵与所述目标项目与其他项目之间的相似 度矩阵,生成基于所述待推荐项目集。
[0178]
在一种可选的方式中,可执行指令具体可以用于使得协同过滤推荐设备 执行以下操作:
[0179]
引入时间因子的相似性度量方法对所述用户项目评分矩阵进行并行处理, 得到所述项目与项目相似度矩阵。
[0180]
在一种可选的方式中,可执行指令具体可以用于使得协同过滤推荐设备 执行以下操作:
[0181]
确定所述待推荐项目集中所含项目个数是否大于预设阈值n;若确定所 述待推荐项目集中所含项目个数大于预设阈值n,则使用top-n的推荐策略 生成推荐列表;若确定所述待推荐项目集中所含项目个数不大于预设阈值n, 则统计所述目标用户的用户历史行为数据中产生评分数据最多的前n个项目, 得到top-n个热门项目;将所述top-n个热门项目填充至所述待推荐项目集中, 然后返回执行确定所述待推荐项目集中所含项目个数是否大于预设阈值n的 步骤;以及,将所述推荐列表推荐至所述目标用户。
[0182]
本发明实施例的计算机可读存储介质,具有运行效率高、可扩展性强的 有点,同时,还可以先根据用户历史行为数据处理,寻找目标用户喜欢的项 目数据,然后再根据相似性度量计算方法预测用户对未评分项目的评分,寻 找与目标用户喜欢的项目数据相似的项目数据,从而能够避免音粗数据稀疏 及冷启动问题;并且在数据处理过程中还引入了时间因子,从而降低了时间 效应问题对协同过滤推荐技术带来的影响,进一步提升了协同过滤推荐结果 的准确率。并且,在待推荐项目集种的项目小于预设阈值n时,还通过计算 热门项目填充待推荐项目集生成推荐列表,从而能够保证个性化推荐结果的 质量。
[0183]
本发明实施例提供一种协同过滤推荐装置,用于执行上述协同过滤推荐 方法。
[0184]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用 使协同过滤推荐设备执行上述任意方法实施例中的协同过滤推荐方法。
[0185]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在 计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指 令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的协同过 滤推荐方法。
[0186]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固 有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任 何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明 的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0187]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本 发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未 详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0188]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个 或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特 征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将 该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权 利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书 所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个 权利要求本身都作为本发明的单独实施例。
[0189]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子
单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。
[0190]
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实 施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意 味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要 求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0191]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实 施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要 求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件 之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括 有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干 装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具 体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单 词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行 顺序的限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1