一种根据海量数据进行应用相似度判断的方法及系统的制作方法

文档序号:6486867阅读:245来源:国知局
一种根据海量数据进行应用相似度判断的方法及系统的制作方法
【专利摘要】本发明提供一种根据海量数据进行应用相似度判断的方法,包括步骤:获取至少两个用户对至少两个应用的评分;根据所述评分生成评分矩阵;根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。相应的,本发明还提供一种根据海量数据进行应用相似度判断的系统,包括:获取装置,用于获取至少两个用户对至少两个应用的评分;生成装置,用于根据所述评分生成评分矩阵;计算装置,用于根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。本发明可以高效准确地获得应用相似度结果。
【专利说明】一种根据海量数据进行应用相似度判断的方法及系统
【技术领域】
[0001]本发明涉及海量数据分析领域,具体地说涉及一种根据海量数据进行应用相似度判断的方法及系统。
【背景技术】
[0002]随着技术的发展以及更好地提高用户体验的需求,在用户选择某一应用,视频或者书籍等各种内容时,大部分系统都会为用户推荐与用户所选内容相关的内容供用户参考或者选择。这种相关内容的推荐源于推荐系统对海量数据的处理,在经过对海量用户数据进行分析计算之后,才可以为用户推荐更适合、匹配度更好的内容。
[0003]在目前推荐系统中,通常使用协同过滤计算产生推荐结果。在这种方法中,需要计算用户-项目(应用)评价矩阵及其转置矩阵的乘法。现有技术中,采用多线程方法计算矩阵乘法,尽管目前多核心计算机应用十分普遍,但多线程编程难以实现,并且容易出错。另夕卜,虽然多线程的计算能力比单线程强,但是仍受限于单机核心数量,因此扩展性很差,无法获得强大的计算性能和扩展能力。
[0004]因此,随着用户数据的不断积累,单机计算海量数据组成的矩阵乘法将变得非常困难,采用分布式计算的方式分析处理用户数据势在必行。

【发明内容】

[0005]本发明提供一种根据海量数据进行应用相似度判断的方法,用于根据海量的用户数据,高效、实时、准确地获取各种应用之间的相似度。
[0006]根据本发明的一个方面,提供一种根据海量数据进行应用相似度判断的方法,其中,包括以下步骤:
[0007]a)获取至少两个用户对至少两个应用的评分;
[0008]b)根据所述评分生成评分矩阵;
[0009]c)根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。
[0010]根据本发明的另一个方面,提供一种根据海量数据进行应用相似度判断的系统,其中,包括:
[0011]获取装置,用于获取至少两个用户对至少两个应用的评分;
[0012]生成装置,用于根据所述评分生成评分矩阵;
[0013]计算装置,用于根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。
[0014]本发明提供的根据海量数据进行应用相似度判断的方法及系统。在协同计算中,协同过滤的关键在于评价矩阵及其转置矩阵的相乘结果。本发明的方法利用Map-Reduce的计算思想,将矩阵乘法的各个元素乘积与加和分别在Map和Reduce两步实现,再输出最终结果。MapReduce是一种编程模型。在这种编程模型下,用户通过定义一个map函数和一个reduce函数来解决问题。map函数对用户输入的键/值对(key/value pair)进行处理(处理时可能只有值这一项有用),生成一系列新的键/值对作为中间结果;系统(MapReduce的实现)对map函数生成的键/值对进行处理,将同属于一个键(key)的值(value)组合在一起,生成键/值列表((key/list of values)pair)对;reduce函数将键/值列表对作为输入,对同属于一个键的值列表进行处理,生成最终处理结果输出。如果一个问题可以通过MapReduce编程模型来表达和解决,就可以通过MapReduce系统自动获得并行执行能力。程序员不需要有并行程序设计的经验,只需要定义map和reduce函数。由于Map-Reduce的实现一般都是海量分布式计算平台(如Hadoop),因此本方法对海量用户数据的协同过滤计算十分有效,可以充分解决单机计算性能不足、存储空间有限的问题,为协同过滤的推荐系统在海量数据集上的应用提供了可能。
【专利附图】

【附图说明】
[0015]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0016]图1为根据本发明的一种根据海量数据进行应用相似度判断的方法的一种【具体实施方式】的流程示意图;
[0017]图2为根据本发明的一种根据海量数据进行应用相似度判断的系统的一种【具体实施方式】的结构示意图;
[0018]图3为根据本发明的一种根据海量数据进行应用相似度判断的系统的另一种【具体实施方式】的结构示意图;
[0019]图4为根据本发明的一种根据海量数据进行应用相似度判断的系统的又一种【具体实施方式】的结构示意图。
[0020]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0021]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施例作详细描述。
[0022]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0023]下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
[0024]如图1所示,图1为根据本发明提供的一种根据海量数据进行应用相似度判断的方法的一个【具体实施方式】的流程示意图,包括步骤SlOf S103,下面结合具体的实施例对图1所示的方法进行说明。
[0025]步骤S101,获取至少两个用户对至少两个应用的评分。随着技术的发展,以及以用户为主的发展思路,出现了越来越多的应用来满足不同用户的需求。不同的商家会推出功能类似的应用供用户进行选择。以地图客户端为例,比较常用的地图客户端有:谷歌地图、百度地图、SOSO地图、高德地图、老虎地图等。以聊天软件为例,比较常用的有:QQ、MSN、飞?目、微?目、Youni短信等。
[0026]当用户选择了某一应用之后,大部分用户会对所述应用进行打分,并提交至系统中。系统需要获取大量用户对某个应用的评分,才可以根据海量数据对这个应用进行分析。由于本发明中,需要根据评分对应用进行相似度判断,要至少存在两个应用才可以做对比,因此系统需要至少获取两个用户对至少两个应用的评分。
[0027]评分获取方式,除了用户上传以外,还可以根据通过检测用户的下载安装情况进行统计。例如,下载一次记I分,安装一次记I分,卸载记-0.5分等,最后进行总分统计。还可以采取其他常用的计分方式来进行评分统计。
[0028]步骤S102,根据所述评分生成评分矩阵。
【权利要求】
1.一种根据海量数据进行应用相似度判断的方法,其中,包括以下步骤: a)获取至少两个用户对至少两个应用的评分; b)根据所述评分生成评分矩阵; c)根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。
2.根据权利要求1所述的方法,其中,所述步骤c)包括: 将Map-Reduce模型分为Mapper和Reducer两个计算阶段, 在Mapper中对所述评分矩阵与所述评分矩阵的转置矩阵进行乘积操作; 在Reducer中对所述乘积进行加和操作。
3.根据权利要求1所述的方法,其中,在所述步骤c)之后还包括步骤: 对所述相关度进行由高至低的排序。
4.根据权利要求3所述的方法,其中,还包括步骤: 响应于用户对应用的选择,根据所述排序,向所述用户推荐与所述应用相关度高的至少一个其他应用。
5.根据权利要求2所述的方法,其中,所述Mapper和所述Reducer在不同的计算机上实现并行处理。
6.一种根据海量数据进行应用相似度判断的系统,其中,包括: 获取装置,用于获取至少两个用户对至少两个应用的评分; 生成装置,用于根据所述评分生成评分矩阵; 计算装置,用于根据Map-Reduce模型计算所述矩阵中任意两个应用的相似度。
7.根据权利要求6所述的系统,其中,所述计算装置包括Mapper和Reducer两个计算装置, 在Mapper计算装置中对所述评分矩阵与所述评分矩阵的转置矩阵进行乘积操作; 在Reducer计算装置中对所述乘积进行加和操作。
8.根据权利要求6所述的系统,其中,还包括: 排序装置,用于对所述相关度进行由高至低的排序。
9.根据权利要求8所述的系统,其中,还包括: 推荐装置,用于响应于用户对应用的选择,根据所述排序,向所述用户推荐与所述应用相关度高的至少一个其他应用。
10.根据权利要求7所述的系统,其中,所述Mapper计算装置和所述Reducer计算装置在不同的计算机上实现并行处理。
【文档编号】G06Q30/02GK103544625SQ201210238193
【公开日】2014年1月29日 申请日期:2012年7月10日 优先权日:2012年7月10日
【发明者】刘一丁 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1