基于自适应分布式计算的在线推荐方法、系统和移动终端的制作方法

文档序号:6502630阅读:168来源:国知局
基于自适应分布式计算的在线推荐方法、系统和移动终端的制作方法
【专利摘要】本发明公开了一种基于自适应分布式计算的在线推荐方法、系统和移动终端,其中,自适应性分布式计算主要是通过每一处理装置自适应性地将大数据抽样后训练矩阵分解模型来实现的,然后自发性地进行增量式的模型在线更新,最后对各个模型进行加权集成推荐。这种推荐系统不需要通过任何分布式计算模型去建立集群。而且能够在单台或者多台普通计算机上有效处理的处理海量数据,不仅稳定性好,可扩展性高,而且还可以大大节约成本和开发效率。
【专利说明】基于自适应分布式计算的在线推荐方法、系统和移动终端
【技术领域】
[0001]本发明涉及智能推荐【技术领域】,尤其涉及一种基于自适应分布式计算的在线推荐方法、系统和移动终端。
【背景技术】
[0002]如何从海量大数据中找到用户感兴趣的信息,如何让信息受到广大用户的欢迎,是一件非常困难的事情。推荐系统的任务就是联系用户和信息,帮助用户发现对自己有价值的信息,让信息能够展现在对它有兴趣的用户面前,从而实现信息消费者和信息提供者的双赢。
[0003]推荐系统主要是通过分析用户的行为,对其建模,通过模型来预测用户的兴趣从而做出推荐。主要的方法可分为内容过滤,协同过滤,和基于矩阵分解的模型。内容过滤是在基于物品内容的基础上给用户推荐和他们之前喜欢的物品在内容上相似的其他物品。协同过滤通过分析用户的行为数据来找到相似的用户和相似的物品做出推荐。基于矩阵分解的模型是通过发现隐含的特征(比如类别)来联系用户兴趣和物品。这种模型在用户的行为数据上通过矩阵分解的方法来确定物品在这个类别中的权重,然后计算出用户对物品的感兴趣程度,从而对用户进行推荐。内容过滤和协同过滤的算法大部分都是在物品的内容或用户行为数据上的一些统计方法,而基于矩阵分解的模型是一种机器学习的方法,能更好的学习出用户和物品之间的关系,因此这种模型已经被广泛地应用到了目前主流的推荐系统中。
[0004]虽然基于矩阵分解的模型效果好,但通常是作为一种离线的计算模型。因为它要求在内存里面加载整个数据,而且时间计算复杂度也很高。在普通机器上很难利用矩阵分解模型对海量的大数据部署推荐系统。目前也有提出利用分布式计算模型比如MPI (Message Passing Interface)或者MapReduce在大型的集群系统中快速地进行分布式矩阵分解运算,同时通过增量式模型实现在线更新和推荐。然而这种方法需要搭建高性能计算机,同时部署集群系统和分布式计算的框架复杂度高,且不利于系统的维护和扩展。
[0005]有鉴于此,如何针对大数据设计一种快速、稳定、可靠、有效的基于矩阵分解的在线模型对当前智能推荐系统起着至关重要的作用。

【发明内容】

[0006]鉴于现有技术中的不足,本发明目的在于提供一种基于自适应分布式计算的在线推荐方法和系统。旨在解决现有技术中智能推荐系统利用矩阵分解模型处理海量大数据时面临的计算复杂度高、维护扩展困难等问题。
[0007]本发明的技术方案如下:
一种基于自适应分布式计算的在线推荐方法,用于通过处理装置对海量数据信息处理后向用户进行推荐,其中,所述在线推荐方法包括以下步骤:
A、根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息;
B、利用基于偏置量的矩阵分解模型对所分配的数据信息进行训练,得到一评分预测模
型;
C、通过增量式在线更新方法更新所述评分预测模型;
D、通过加权集成更新后的评分预测模型获取对用户的最终推荐列表。
[0008]所述的基于自适应分布式计算的在线推荐方法,其中,所述步骤A中,采用基于范数的矩阵抽样算法具体包括以下步骤:
Al、获取海量数据信息对应的数据矩阵;
A2、对所述数据矩阵的行和列同时进行采样,得到一子矩阵;并根据向量的第一或第二范数来确保采样后的子矩阵包含的数据和海量数据之间的近似度小于预定的误差阈值。
[0009]所述的基于自适应分布式计算的在线推荐方法,其中,所述步骤C中增量式在线更新方法包括对已知用户进行预测和对新用户/物品进行预测。
[0010]所述的基于自适应分布式计算的在线推荐方法,其中,所述步骤D中所述加权集成中的权重是根据每一处理装置的处理能力来进行分配。
[0011]所述的基于自适应分布式计算的在线推荐方法,其中,所述处理装置为计算机,所述处理装置的处理能力包括计算机的内存和运算能力。
[0012]一种基于自适应分布式计算的在线推荐系统,用于通过处理装置对海量数据信息处理后向用户进行推荐,其中,所述在线推荐系统包括:
自适应负载均衡单元,用于根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息;
分布式矩阵分解单元,用于利用基于偏置量的矩阵分解模型对所分配的数据信息进行训练,得到一评分预测模型;
增量式在线更新单元,用于通过增量式在线更新方法更新所述评分预测模型;
在线集成推荐单元,用于通过加权集成更新后的评分预测模型获取对用户的最终推荐列表。
[0013]所述的基于自适应分布式计算的在线推荐系统,其中,所述处理装置为计算机,所述处理装置的处理能力包括计算机的内存和运算能力。
[0014]所述的基于自适应分布式计算的在线推荐系统,其中,所述增量式在线更新单元中增量式在线更新方法包括对已知用户进行预测和对新用户/物品进行预测。
[0015]所述的基于自适应分布式计算的在线推荐系统,其中,所述在线集成推荐单元中所述加权集成中的权重是根据每一处理装置的处理能力来进行分配。
[0016]一种移动终端,其中,包括上述的基于自适应分布式计算的在线推荐系统。
[0017]有益效果:
本发明的基于自适应分布式计算的在线推荐方法、系统和移动终端,其中,所述推荐系统不需要通过任何分布式计算模型去建立集群。而且能够在单台或者多台普通处理装置上有效处理的处理海量数据,不仅稳定性好,可扩展性高,而且还可以大大节约成本和开发效率。
【专利附图】

【附图说明】[0018]图1为本发明的基于自适应分布式计算的在线推荐方法的流程图。
[0019]图2为本发明的基于自适应分布式计算的在线推荐系统的结构框图。
[0020]图3为现有技术的基于矩阵分解的推荐系统的框架示意图。
[0021]图4为本发明的基于自适应分布式计算的在线推荐系统的框架示意图。
【具体实施方式】
[0022]本发明提供一种基于自适应分布式计算的在线推荐方法、系统和移动终端,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]请参阅图1,其为本发明的基于自适应分布式计算的在线推荐方法的流程图。所述基于自适应分布式计算的在线推荐方法,用于通过处理装置对海量数据信息处理后向用户进行推荐,如图1所示,所述在线推荐方法包括以下步骤:
51、根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息;
52、利用基于偏置量的矩阵分解模型对所分配的数据信息进行训练,得到一评分预测模型;
53、通过增量式在线更新方法更新所述评分预测模型;
54、通过加权集成更新后的评分预测模型获取对用户的最终推荐列表。
[0024]下面分别针对上述步骤进行详细描述:
所述步骤SI为根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息。
[0025]通常对大数据处理的算法都是基于MapReduce模型。首先对数据进行分片,然后在多台机器(即处理装置)上同时对分片数据进行处理,最后将各个在Map中相关的数据归结在一起。这种模型的优点在于第一,通过MapReduce这个分布式处理框架,不仅能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,比如,自动并行化、负载均衡和灾备管理等,这样将极大地简化程序员的开发工作;第二,MapReduce的伸缩性非常好,也就是说,每增加一台服务器,其就能将差不多的计算能力接入到集群中,而过去的大多数分布式处理框架,在伸缩性方面都与MapReduce相差甚远。但缺点是:第一,将输入数据分隔成固定大小的片段,再由MapReduce平台处理,这样处理延迟与数据片段的长度、初始化处理任务的开销成正比。小的分段会降低延迟,增加附加开销,并且分段之间的依赖管理更加复杂(例如一个分段可能会需要前一个分段的信息);反之,大的分段会增加延迟。最优化的分段大小取决于具体应用;第二,为了支持流式处理,MapReduce需要被改造成Pipeline的模式,而不是Reduce直接输出;考虑到效率,中间结果最好只保存在内存中等等。这些改动使得原有的MapReduce框架的复杂度大大增加,不利于系统的维护和扩展。
[0026]而在本发明中,采用一种动态自适应性负载均衡技术,也就是根据各个计算机的处理能力来分配数据片,每台处理装置(在本实施例中,所述处理装置为计算机)都可以独立地在它所分配的数据上参与计算,而彼此间不需要通过消息机制来通信。这样做的好处是:第一,如果某台计算机出现了故障,其他的计算机依然可以独立的进行运算;第二,由于我们不需要建立集群,所以任何一台计算机都可以被充分地利用起来,这样可以大大节约成本;第三,可扩展性好,任何一台计算机都可以无缝地接入在这个系统来,同时却没有带来额外的运营和管理的开销。
[0027]另外,对于海量数据信息(即数据信息量足够大),采用基于矩阵范数的随机抽样理论上可以保证尽可能的近似原始数据,同时所抽样的数据也具有一定的代表性。以电影推荐网站为主,成千上万部电影中评价好的,被观看次数多的电影通常才几千而已,有统计显示活跃的用户平均观看的电影数目也不超过3000部,于是我们可以只在这些抽样出的电影中利用目前现有的矩阵分解的方法给用户做有效的推荐。在本实施例中,采用基于范数的矩阵抽样算法具体包括以下步骤:
511、获取海量数据信息对应的数据矩阵;
512、对所述数据矩阵的行和列同时进行采样,得到一子矩阵;并根据向量的第一或第二范数来确保采样后的子矩阵包含的数据和海量数据之间的近似度小于预定的误差阈值。
[0028]具体来说,我们采用如下的基于范数的随机取样算法:
首先输入:原始矩阵AGm 行和列的采样数目为P和q ;然后输出包含P行q列的子矩阵,同时根据第二范数计算行和列在整个矩阵范数中的比例,以列的抽样为例(行的
抽样类似)按照如下方法生成每一列的范数比例?,比如
【权利要求】
1.一种基于自适应分布式计算的在线推荐方法,用于通过处理装置对海量数据信息处理后向用户进行推荐,其特征在于,所述在线推荐方法包括以下步骤: A、根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息; B、利用基于偏置量的矩阵分解模型对所分配的数据信息进行训练,得到一评分预测模型; C、通过增量式在线更新方法更新所述评分预测模型; D、通过加权集成更新后的评分预测模型获取对用户的最终推荐列表。
2.根据权利要求1所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述步骤A中,采用基于范数的矩阵抽样算法具体包括以下步骤: Al、获取海量数据信息对应的数据矩阵; A2、对所述数据矩阵的行和列同时进行采样,得到一子矩阵;并根据向量的第一或第二范数来确保采样后的子矩阵包含的数据和海量数据之间的近似度小于预定的误差阈值。
3.根据权利要求2所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述步骤A2中具体包括以下步骤: A21、对数据矩阵的行和列同时进行采样,行和列的采样数目分别为p和q,输出一包含P行q列的子矩阵; A22、根据第二范数计算行和列在整个矩阵范数中的比例,生成每一行和列的范数比例; A23、对上述范数比例进行归一化处理后,得到样本取样的概率,并生成相应的概率区间; A24、随机生成一大于O小于I的数,判断其是否在上述概率区间内,如是则抽取与其对应的样本。
4.根据权利要求1所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述步骤C中增量式在线更新方法包括对已知用户进行预测和对新用户/物品进行预测。
5.根据权利要求1所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述步骤D中所述加权集成中的权重是根据每一处理装置的处理能力来进行分配。
6.根据权利要求5所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述步骤D中加权集成中的权重是根据每一处理装置的处理能力来进行分配具体包括: D1、每一处理装置的抽样的行列个数分别为义和O ; D2、则设置权重巧=g xg。
7.根据权利要求1或4所述的基于自适应分布式计算的在线推荐方法,其特征在于,所述处理装置为计算机,所述处理装置的处理能力包括计算机的内存和运算能力。
8.一种基于自适应分布式计算的在线推荐系统,用于通过处理装置对海量数据信息处理后向用户进行推荐,其特征在于,所述在线推荐系统包括: 自适应负载均衡单元,用于根据处理装置的处理能力,采用基于范数的矩阵抽样算法从海量数据信息中抽样后进行分配,令每一处理装置能够独自处理分配的数据信息;分布式矩阵分解单元,用于利用基于偏置量的矩阵分解模型对所分配的数据信息进行训练,得到一评分预测模型; 增量式在线更新单元,用于通过增量式在线更新方法更新所述评分预测模型; 在线集成推荐单元,用于通过加权集成更新后的评分预测模型获取对用户的最终推荐列表。
9.根据权利要求8所述的基于自适应分布式计算的在线推荐系统,其特征在于,所述增量式在线更新单元中增量式在线更新方法包括对已知用户进行预测和对新用户/物品进行预测。
10.一种移动终端,其特征在于,包括权利要求6所述的基于自适应分布式计算的在线推荐系统。
【文档编号】G06F17/30GK103530304SQ201310171026
【公开日】2014年1月22日 申请日期:2013年5月10日 优先权日:2013年5月10日
【发明者】李朝, 汪灏泓 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1